From d4813346e9419afb8a39a43c2ae3d67583ce0aa6 Mon Sep 17 00:00:00 2001 From: Merlin Beutlberger Date: Fri, 27 Sep 2024 16:54:39 +0200 Subject: [PATCH] refactor(messages)!: Merge no-deprecated-property/parameter into no-deprecated-api (#324) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also sort all messages alphabetically --------- Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- src/linter/messages.ts | 274 +++++++++--------- .../rules/snapshots/AsyncComponentFlags.ts.md | 104 +++---- .../snapshots/AsyncComponentFlags.ts.snap | Bin 2665 -> 2658 bytes .../rules/snapshots/NoDeprecatedApi.ts.md | 182 ++++++------ .../rules/snapshots/NoDeprecatedApi.ts.snap | Bin 13476 -> 13665 bytes .../linter/rules/snapshots/NoGlobals.ts.md | 11 + .../linter/rules/snapshots/NoGlobals.ts.snap | Bin 1827 -> 2012 bytes .../rules/snapshots/NoPseudoModules.ts.md | 6 +- .../rules/snapshots/NoPseudoModules.ts.snap | Bin 754 -> 756 bytes .../xmlTemplate/snapshots/transpiler.ts.md | 9 +- .../xmlTemplate/snapshots/transpiler.ts.snap | Bin 5374 -> 5459 bytes 11 files changed, 302 insertions(+), 284 deletions(-) diff --git a/src/linter/messages.ts b/src/linter/messages.ts index 7c6cf5c4..816cbfaf 100644 --- a/src/linter/messages.ts +++ b/src/linter/messages.ts @@ -2,15 +2,13 @@ // Currently, it's done this way to avoid pollution of the test snapshots const RULES = { "async-component-flags": "async-component-flags", + "csp-unsafe-inline-script": "csp-unsafe-inline-script", "no-deprecated-api": "no-deprecated-api", - "no-deprecated-parameter": "no-deprecated-parameter", - "no-deprecated-property": "no-deprecated-property", - "no-pseudo-modules": "no-pseudo-modules", + "no-deprecated-component": "no-deprecated-component", + "no-deprecated-library": "no-deprecated-library", "no-globals": "no-globals", + "no-pseudo-modules": "no-pseudo-modules", "parsing-error": "parsing-error", - "no-deprecated-library": "no-deprecated-library", - "no-deprecated-component": "no-deprecated-component", - "csp-unsafe-inline-script": "csp-unsafe-inline-script", } as const; export enum LintMessageSeverity { @@ -19,47 +17,56 @@ export enum LintMessageSeverity { } export enum MESSAGE { + ABANDONED_BOOTSTRAP_PARAM, COMPONENT_MISSING_ASYNC_INTERFACE, COMPONENT_MISSING_MANIFEST_DECLARATION, COMPONENT_REDUNDANT_ASYNC_FLAG, CSP_UNSAFE_INLINE_SCRIPT, DEPRECATED_API_ACCESS, + DEPRECATED_BOOTSTRAP_PARAM, DEPRECATED_CLASS, DEPRECATED_COMPONENT, DEPRECATED_FUNCTION_CALL, DEPRECATED_LIBRARY, - DEPRECATED_THEME_LIBRARY, DEPRECATED_MANIFEST_JS_RESOURCES, DEPRECATED_MODULE_IMPORT, - DEPRECATED_PROPERTY_OF_CLASS, + DEPRECATED_ODATA_MODEL_V4_SYNCHRONIZATION_MODE, DEPRECATED_PROPERTY, + DEPRECATED_PROPERTY_OF_CLASS, + DEPRECATED_THEME_LIBRARY, DEPRECATED_VIEW_CONFIG, DEPRECATED_VIEW_TYPE, - DEPRECATED_BOOTSTRAP_PARAM, DUPLICATE_BOOTSTRAP_PARAM, - REDUNDANT_BOOTSTRAP_PARAM, - ABANDONED_BOOTSTRAP_PARAM, - MISSING_BOOTSTRAP_PARAM, - SPELLING_BOOTSTRAP_PARAM, HTML_IN_XML, LIB_INIT_API_VERSION, + MISSING_BOOTSTRAP_PARAM, NO_DIRECT_DATATYPE_ACCESS, NO_DIRECT_ENUM_ACCESS, NO_GLOBALS, - PARTIALLY_DEPRECATED_PARAMETERS_GET, + PARSING_ERROR, + PARTIALLY_DEPRECATED_CORE_ROUTER, PARTIALLY_DEPRECATED_CREATE_COMPONENT, - PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY, - PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY_PROPERTIES_ARRAY, PARTIALLY_DEPRECATED_JSON_MODEL_LOAD_DATA, PARTIALLY_DEPRECATED_MOBILE_INIT, - PARTIALLY_DEPRECATED_CORE_ROUTER, + PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY, + PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY_PROPERTIES_ARRAY, + PARTIALLY_DEPRECATED_PARAMETERS_GET, + REDUNDANT_BOOTSTRAP_PARAM, REDUNDANT_VIEW_CONFIG_PROPERTY, - DEPRECATED_ODATA_MODEL_V4_SYNCHRONIZATION_MODE, - PARSING_ERROR, + SPELLING_BOOTSTRAP_PARAM, SVG_IN_XML, } export const MESSAGE_INFO = { + [MESSAGE.ABANDONED_BOOTSTRAP_PARAM]: { + severity: LintMessageSeverity.Warning, + ruleId: RULES["no-deprecated-api"], + + message: ({name}: {name: string}) => + `Abandoned bootstrap parameter '${name}' should be removed`, + details: () => undefined, + }, + [MESSAGE.COMPONENT_MISSING_ASYNC_INTERFACE]: { severity: LintMessageSeverity.Error, ruleId: RULES["async-component-flags"], @@ -69,7 +76,7 @@ export const MESSAGE_INFO = { details: ({componentFileName, asyncFlagMissingIn}: {componentFileName: string; asyncFlagMissingIn: string}) => `{@link topic:676b636446c94eada183b1218a824717 Use Asynchronous Loading}. ` + `Implement sap.ui.core.IAsyncContentCreation interface in ${componentFileName}. ` + - `Alternatively, set the "async" flag to "true" in ${asyncFlagMissingIn} in the component manifest.`, + `Alternatively, set the 'async' flag to 'true' in ${asyncFlagMissingIn} in the component manifest.`, }, [MESSAGE.COMPONENT_MISSING_MANIFEST_DECLARATION]: { @@ -90,7 +97,7 @@ export const MESSAGE_INFO = { message: ({asyncFlagLocation}: {asyncFlagLocation: string}) => `Component implements the sap.ui.core.IAsyncContentCreation interface. ` + - `The redundant "async" flag at "${asyncFlagLocation}" should be removed from the component manifest`, + `The redundant 'async' flag at '${asyncFlagLocation}' should be removed from the component manifest`, details: () => `{@link sap.ui.core.IAsyncContentCreation sap.ui.core.IAsyncContentCreation}`, }, @@ -112,6 +119,15 @@ export const MESSAGE_INFO = { details: ({details}: {details: string}) => details, }, + [MESSAGE.DEPRECATED_BOOTSTRAP_PARAM]: { + severity: LintMessageSeverity.Error, + ruleId: RULES["no-deprecated-api"], + + message: ({name, value}: {name: string; value: string}) => + `Use of deprecated value '${value}' for bootstrap parameter '${name}'`, + details: ({details}: {details?: string}) => details, + }, + [MESSAGE.DEPRECATED_CLASS]: { severity: LintMessageSeverity.Error, ruleId: RULES["no-deprecated-api"], @@ -148,15 +164,6 @@ export const MESSAGE_INFO = { details: () => undefined, }, - [MESSAGE.DEPRECATED_THEME_LIBRARY]: { - severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-library"], - - message: ({themeName}: {themeName: string}) => - `Use of deprecated theme '${themeName}'`, - details: () => undefined, - }, - [MESSAGE.DEPRECATED_MANIFEST_JS_RESOURCES]: { severity: LintMessageSeverity.Error, ruleId: RULES["no-deprecated-api"], @@ -176,94 +183,70 @@ export const MESSAGE_INFO = { details: ({details}: {details: string}) => details, }, - [MESSAGE.DEPRECATED_PROPERTY_OF_CLASS]: { + [MESSAGE.DEPRECATED_ODATA_MODEL_V4_SYNCHRONIZATION_MODE]: { severity: LintMessageSeverity.Error, ruleId: RULES["no-deprecated-api"], - message: ({propertyName, className}: {propertyName: string; className: string}) => - `Use of deprecated property '${propertyName}' of class '${className}'`, - details: ({details}: {details: string}) => details, + message: ({modelName}: {modelName?: string}) => + `Usage of deprecated parameter 'synchronizationMode' ` + + `of constructor 'sap/ui/model/odata/v4/ODataModel'${modelName ? ` (model: '${modelName}')` : ""}`, + details: () => + `As of version 1.110.0, the 'synchronizationMode' parameter is obsolete and must be omitted. ` + + `{@link sap/ui/model/odata/v4/ODataModel#constructor See the API reference}`, }, [MESSAGE.DEPRECATED_PROPERTY]: { severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-property"], + ruleId: RULES["no-deprecated-api"], message: ({propertyName}: {propertyName: string}) => `Use of deprecated property '${propertyName}'`, details: ({details}: {details: string}) => details, }, - [MESSAGE.DEPRECATED_VIEW_CONFIG]: { + [MESSAGE.DEPRECATED_PROPERTY_OF_CLASS]: { severity: LintMessageSeverity.Error, ruleId: RULES["no-deprecated-api"], - message: ({propertyName}: {propertyName: string}) => - `Use of property '${propertyName}' is deprecated. ` + - `Use '${propertyName.substring(4).toLowerCase()}' instead.'`, - details: () => undefined, + message: ({propertyName, className}: {propertyName: string; className: string}) => + `Use of deprecated property '${propertyName}' of class '${className}'`, + details: ({details}: {details: string}) => details, }, - [MESSAGE.DEPRECATED_VIEW_TYPE]: { + [MESSAGE.DEPRECATED_THEME_LIBRARY]: { severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-api"], + ruleId: RULES["no-deprecated-library"], - message: ({viewType}: {viewType: string}) => - `Use of view type '${viewType}' is deprecated. Use 'XML' instead.'`, + message: ({themeName}: {themeName: string}) => + `Use of deprecated theme '${themeName}'`, details: () => undefined, }, - [MESSAGE.DEPRECATED_BOOTSTRAP_PARAM]: { + [MESSAGE.DEPRECATED_VIEW_CONFIG]: { severity: LintMessageSeverity.Error, ruleId: RULES["no-deprecated-api"], - message: ({name, value}: {name: string; value: string}) => - `Use of deprecated value '${value}' for bootstrap parameter '${name}'`, - details: ({details}: {details?: string}) => details, - }, - - [MESSAGE.DUPLICATE_BOOTSTRAP_PARAM]: { - severity: LintMessageSeverity.Warning, - ruleId: RULES["no-deprecated-api"], - - message: ({name, value}: {name: string; value: string}) => - `Duplicate bootstrap parameter '${name}' with value '${value}'`, + message: ({propertyName}: {propertyName: string}) => + `Use of deprecated property '${propertyName}'.` + + `Use '${propertyName.substring(4).toLowerCase()}' instead'`, details: () => undefined, }, - [MESSAGE.MISSING_BOOTSTRAP_PARAM]: { + [MESSAGE.DEPRECATED_VIEW_TYPE]: { severity: LintMessageSeverity.Error, ruleId: RULES["no-deprecated-api"], - message: ({name}: {name: string}) => - `Missing bootstrap parameter '${name}'`, - details: ({details}: {details?: string}) => details, - }, - - [MESSAGE.REDUNDANT_BOOTSTRAP_PARAM]: { - severity: LintMessageSeverity.Warning, - ruleId: RULES["no-deprecated-api"], - - message: ({name}: {name: string}) => - `Redundant bootstrap parameter '${name}' should be removed`, - details: () => undefined, - }, - - [MESSAGE.ABANDONED_BOOTSTRAP_PARAM]: { - severity: LintMessageSeverity.Warning, - ruleId: RULES["no-deprecated-api"], - - message: ({name}: {name: string}) => - `Abandoned bootstrap parameter '${name}' should be removed`, + message: ({viewType}: {viewType: string}) => + `Use of deprecated view type '${viewType}'. Use 'XML' instead'`, details: () => undefined, }, - [MESSAGE.SPELLING_BOOTSTRAP_PARAM]: { + [MESSAGE.DUPLICATE_BOOTSTRAP_PARAM]: { severity: LintMessageSeverity.Warning, ruleId: RULES["no-deprecated-api"], - message: ({oldName, newName}: {oldName: string; newName: string}) => - `Outdated spelling of bootstrap parameter: '${oldName}' should be '${newName}'`, + message: ({name, value}: {name: string; value: string}) => + `Duplicate bootstrap parameter '${name}' with value '${value}'`, details: () => undefined, }, @@ -277,19 +260,28 @@ export const MESSAGE_INFO = { [MESSAGE.LIB_INIT_API_VERSION]: { severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-parameter"], + ruleId: RULES["no-deprecated-api"], message: ({libInitFunction}: {libInitFunction: string}) => - `Call to ${libInitFunction}() must be declared with property {apiVersion: 2}`, + `Deprecated call to ${libInitFunction}(). Use parameter {apiVersion: 2} instead`, details: () => `{@link sap.ui.core.Lib.init Lib.init}`, }, + [MESSAGE.MISSING_BOOTSTRAP_PARAM]: { + severity: LintMessageSeverity.Error, + ruleId: RULES["no-deprecated-api"], + + message: ({name}: {name: string}) => + `Missing bootstrap parameter '${name}'`, + details: ({details}: {details?: string}) => details, + }, + [MESSAGE.NO_DIRECT_DATATYPE_ACCESS]: { severity: LintMessageSeverity.Error, ruleId: RULES["no-pseudo-modules"], message: ({moduleName}: {moduleName: string}) => - `Deprecated access to DataType pseudo module '${moduleName}'`, + `Deprecated access of DataType pseudo module '${moduleName}'`, details: () => "{@link topic:00737d6c1b864dc3ab72ef56611491c4 Migrating Access to Pseudo Modules}", }, @@ -299,7 +291,7 @@ export const MESSAGE_INFO = { ruleId: RULES["no-pseudo-modules"], message: ({moduleName}: {moduleName: string}) => - `Deprecated access to enum pseudo module '${moduleName}'`, + `Deprecated access of enum pseudo module '${moduleName}'`, details: () => "{@link topic:00737d6c1b864dc3ab72ef56611491c4 Migrating Access to Pseudo Modules}", }, @@ -310,52 +302,44 @@ export const MESSAGE_INFO = { message: ({variableName, namespace}: {variableName: string; namespace: string}) => `Access of global variable '${variableName}' (${namespace})`, - details: () => undefined, - }, - - [MESSAGE.PARTIALLY_DEPRECATED_PARAMETERS_GET]: { - severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-parameter"], - - message: () => - `Usage of deprecated variant of 'sap/ui/core/theming/Parameters.get'`, - details: () => `{@link sap.ui.core.theming.Parameters#sap.ui.core.theming.Parameters.get Parameters.get}`, + details: () => + `Do not use global variables to access UI5 modules or APIs. ` + + `{@link topic:28fcd55b04654977b63dacbee0552712 See Best Practices for Developers}`, }, - [MESSAGE.PARTIALLY_DEPRECATED_CREATE_COMPONENT]: { + [MESSAGE.PARSING_ERROR]: { severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-parameter"], + ruleId: RULES["parsing-error"], + fatal: true, - message: () => - `Usage of deprecated value for parameter 'async' of 'sap/ui/core/Component#createComponent'`, - details: () => `Property 'async' must be either omitted or set to true. ` + - `{@link sap.ui.core.Component#createComponent See API reference}`, + message: ({message}: {message: string}) => message, + details: () => `Check the source file for syntax errors`, }, - [MESSAGE.PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY]: { + [MESSAGE.PARTIALLY_DEPRECATED_CORE_ROUTER]: { severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-parameter"], + ruleId: RULES["no-deprecated-api"], message: () => - `Usage of deprecated parameter 'batchGroupId' in 'sap/ui/model/odata/v2/ODataModel#createEntry'`, - details: () => `Use parameter 'groupId' instead. ` + - `{@link sap.ui.model.odata.v2.ODataModel#createEntry See API reference}`, + `Usage of deprecated value for parameter 'oConfig.async' of constructor 'sap/ui/core/Router'`, + details: () => + `The 'oConfig.async' parameter must be set to true. ` + + `{@link sap/ui/core/routing/Router#constructor See the API reference}`, }, - [MESSAGE.PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY_PROPERTIES_ARRAY]: { + [MESSAGE.PARTIALLY_DEPRECATED_CREATE_COMPONENT]: { severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-parameter"], + ruleId: RULES["no-deprecated-api"], message: () => - `Usage of deprecated value for parameter 'properties' in 'sap/ui/model/odata/v2/ODataModel#createEntry'`, - details: () => - `Passing a list of property names is deprecated. Pass the initial values as an object instead. ` + - `{@link sap.ui.model.odata.v2.ODataModel#createEntry See API reference}`, + `Usage of deprecated value for parameter 'async' of 'sap/ui/core/Component#createComponent'`, + details: () => `The 'async' property must be either omitted or set to true. ` + + `{@link sap.ui.core.Component#createComponent See the API reference}`, }, [MESSAGE.PARTIALLY_DEPRECATED_JSON_MODEL_LOAD_DATA]: { severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-parameter"], + ruleId: RULES["no-deprecated-api"], message: ({paramName}: {paramName: string}) => `Usage of deprecated value for parameter '${paramName}' of 'sap/ui/model/json/JSONModel#loadData'`, @@ -366,7 +350,7 @@ export const MESSAGE_INFO = { [MESSAGE.PARTIALLY_DEPRECATED_MOBILE_INIT]: { severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-parameter"], + ruleId: RULES["no-deprecated-api"], message: ({paramName}: {paramName: string}) => `Usage of deprecated value for parameter '${paramName}' of 'sap/ui/util/Mobile#init'`, @@ -375,44 +359,60 @@ export const MESSAGE_INFO = { `{@link sap.ui.util.Mobile#init See API reference}`, }, - [MESSAGE.PARTIALLY_DEPRECATED_CORE_ROUTER]: { + [MESSAGE.PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY]: { severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-parameter"], + ruleId: RULES["no-deprecated-api"], message: () => - `Usage of deprecated value for parameter 'oConfig.async' of constructor 'sap/ui/core/Router'`, + `Usage of deprecated parameter 'batchGroupId' in 'sap/ui/model/odata/v2/ODataModel#createEntry'`, + details: () => `Use the 'groupId' parameter instead. ` + + `{@link sap.ui.model.odata.v2.ODataModel#createEntry See the API reference}`, + }, + + [MESSAGE.PARTIALLY_DEPRECATED_ODATA_MODEL_V2_CREATE_ENTRY_PROPERTIES_ARRAY]: { + severity: LintMessageSeverity.Error, + ruleId: RULES["no-deprecated-api"], + + message: () => + `Usage of deprecated value for parameter 'properties' in 'sap/ui/model/odata/v2/ODataModel#createEntry'`, details: () => - `Parameter 'oConfig.async' must be set to true. ` + - `{@link sap/ui/core/routing/Router#constructor See API reference}`, + `Passing a list of property names is deprecated. Pass the initial values as an object instead. ` + + `{@link sap.ui.model.odata.v2.ODataModel#createEntry See the API reference}`, }, - [MESSAGE.REDUNDANT_VIEW_CONFIG_PROPERTY]: { + [MESSAGE.PARTIALLY_DEPRECATED_PARAMETERS_GET]: { + severity: LintMessageSeverity.Error, + ruleId: RULES["no-deprecated-api"], + + message: () => + `Usage of deprecated variant of 'sap/ui/core/theming/Parameters.get'`, + details: () => `{@link sap.ui.core.theming.Parameters#sap.ui.core.theming.Parameters.get Parameters.get}`, + }, + + [MESSAGE.REDUNDANT_BOOTSTRAP_PARAM]: { severity: LintMessageSeverity.Warning, ruleId: RULES["no-deprecated-api"], - message: ({propertyName}: {propertyName: string}) => - `Redundant view configuration property '${propertyName}' can be omitted`, + message: ({name}: {name: string}) => + `Redundant bootstrap parameter '${name}' should be removed`, details: () => undefined, }, - [MESSAGE.DEPRECATED_ODATA_MODEL_V4_SYNCHRONIZATION_MODE]: { - severity: LintMessageSeverity.Error, - ruleId: RULES["no-deprecated-parameter"], + [MESSAGE.REDUNDANT_VIEW_CONFIG_PROPERTY]: { + severity: LintMessageSeverity.Warning, + ruleId: RULES["no-deprecated-api"], - message: ({modelName}: {modelName?: string}) => - `Usage of deprecated parameter 'synchronizationMode' ` + - `of constructor 'sap/ui/model/odata/v4/ODataModel'${modelName ? ` (model: '${modelName}')` : ""}`, - details: () => - `As of version 1.110.0, parameter 'synchronizationMode' is obsolete and must be omitted. ` + - `{@link sap/ui/model/odata/v4/ODataModel#constructor See API reference}`, + message: ({propertyName}: {propertyName: string}) => + `Redundant view configuration property '${propertyName}' can be omitted`, + details: () => undefined, }, - [MESSAGE.PARSING_ERROR]: { - severity: LintMessageSeverity.Error, - ruleId: RULES["parsing-error"], - fatal: true, + [MESSAGE.SPELLING_BOOTSTRAP_PARAM]: { + severity: LintMessageSeverity.Warning, + ruleId: RULES["no-deprecated-api"], - message: ({message}: {message: string}) => message, + message: ({oldName, newName}: {oldName: string; newName: string}) => + `Outdated spelling of bootstrap parameter: '${oldName}'; should be written as '${newName}'`, details: () => undefined, }, @@ -420,8 +420,8 @@ export const MESSAGE_INFO = { severity: LintMessageSeverity.Error, ruleId: RULES["no-deprecated-api"], - message: () => `Usage of SVG in XML Views/Fragments is deprecated`, - details: () => undefined, + message: () => `Deprecated use of SVG in XML View or Fragment`, + details: () => `{@link topic:28fcd55b04654977b63dacbee0552712 See Best Practices for Developers}`, }, } as const; diff --git a/test/lib/linter/rules/snapshots/AsyncComponentFlags.ts.md b/test/lib/linter/rules/snapshots/AsyncComponentFlags.ts.md index 2c340695..aa3cbbe6 100644 --- a/test/lib/linter/rules/snapshots/AsyncComponentFlags.ts.md +++ b/test/lib/linter/rules/snapshots/AsyncComponentFlags.ts.md @@ -26,21 +26,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 26, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 39, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 40, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -71,21 +71,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 27, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 41, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 42, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -146,21 +146,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 27, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 41, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 42, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -206,21 +206,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 26, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 39, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 40, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -266,21 +266,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 26, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 39, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 40, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -311,21 +311,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 26, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 39, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 40, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -349,7 +349,7 @@ Generated by [AVA](https://avajs.dev). column: 9, line: 6, message: 'Component is not configured for asynchronous loading.', - messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the "async" flag to "true" in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', + messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the \'async\' flag to \'true\' in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', ruleId: 'async-component-flags', severity: 2, }, @@ -365,21 +365,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 26, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 39, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 40, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -410,28 +410,28 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 27, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 41, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 42, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 12, line: 18, - message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant "async" flag at "/sap.ui5/rootView/async" should be removed from the component manifest', + message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant \'async\' flag at \'/sap.ui5/rootView/async\' should be removed from the component manifest', messageDetails: 'sap.ui.core.IAsyncContentCreation (https://ui5.sap.com/1.120/#/api/sap.ui.core.IAsyncContentCreation)', ruleId: 'async-component-flags', severity: 1, @@ -439,7 +439,7 @@ Generated by [AVA](https://avajs.dev). { column: 16, line: 29, - message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant "async" flag at "/sap.ui5/routing/config/async" should be removed from the component manifest', + message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant \'async\' flag at \'/sap.ui5/routing/config/async\' should be removed from the component manifest', messageDetails: 'sap.ui.core.IAsyncContentCreation (https://ui5.sap.com/1.120/#/api/sap.ui.core.IAsyncContentCreation)', ruleId: 'async-component-flags', severity: 1, @@ -464,7 +464,7 @@ Generated by [AVA](https://avajs.dev). column: 9, line: 6, message: 'Component is not configured for asynchronous loading.', - messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the "async" flag to "true" in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', + messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the \'async\' flag to \'true\' in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', ruleId: 'async-component-flags', severity: 2, }, @@ -487,7 +487,7 @@ Generated by [AVA](https://avajs.dev). { column: 9, line: 6, - message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant "async" flag at "/sap.ui5/rootView/async" should be removed from the component manifest', + message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant \'async\' flag at \'/sap.ui5/rootView/async\' should be removed from the component manifest', messageDetails: 'sap.ui.core.IAsyncContentCreation (https://ui5.sap.com/1.120/#/api/sap.ui.core.IAsyncContentCreation)', ruleId: 'async-component-flags', severity: 1, @@ -495,7 +495,7 @@ Generated by [AVA](https://avajs.dev). { column: 9, line: 6, - message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant "async" flag at "/sap.ui5/routing/config/async" should be removed from the component manifest', + message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant \'async\' flag at \'/sap.ui5/routing/config/async\' should be removed from the component manifest', messageDetails: 'sap.ui.core.IAsyncContentCreation (https://ui5.sap.com/1.120/#/api/sap.ui.core.IAsyncContentCreation)', ruleId: 'async-component-flags', severity: 1, @@ -519,7 +519,7 @@ Generated by [AVA](https://avajs.dev). { column: 9, line: 6, - message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant "async" flag at "/sap.ui5/rootView/async" should be removed from the component manifest', + message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant \'async\' flag at \'/sap.ui5/rootView/async\' should be removed from the component manifest', messageDetails: 'sap.ui.core.IAsyncContentCreation (https://ui5.sap.com/1.120/#/api/sap.ui.core.IAsyncContentCreation)', ruleId: 'async-component-flags', severity: 1, @@ -560,28 +560,28 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 27, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 40, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 41, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 12, line: 19, - message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant "async" flag at "/sap.ui5/rootView/async" should be removed from the component manifest', + message: 'Component implements the sap.ui.core.IAsyncContentCreation interface. The redundant \'async\' flag at \'/sap.ui5/rootView/async\' should be removed from the component manifest', messageDetails: 'sap.ui.core.IAsyncContentCreation (https://ui5.sap.com/1.120/#/api/sap.ui.core.IAsyncContentCreation)', ruleId: 'async-component-flags', severity: 1, @@ -606,7 +606,7 @@ Generated by [AVA](https://avajs.dev). column: 9, line: 6, message: 'Component is not configured for asynchronous loading.', - messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the "async" flag to "true" in "sap.ui5/rootView" in the component manifest.', + messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the \'async\' flag to \'true\' in "sap.ui5/rootView" in the component manifest.', ruleId: 'async-component-flags', severity: 2, }, @@ -630,7 +630,7 @@ Generated by [AVA](https://avajs.dev). column: 9, line: 6, message: 'Component is not configured for asynchronous loading.', - messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the "async" flag to "true" in "sap.ui5/routing/config" in the component manifest.', + messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the \'async\' flag to \'true\' in "sap.ui5/routing/config" in the component manifest.', ruleId: 'async-component-flags', severity: 2, }, @@ -646,21 +646,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 20, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 33, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 34, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -684,7 +684,7 @@ Generated by [AVA](https://avajs.dev). column: 9, line: 6, message: 'Component is not configured for asynchronous loading.', - messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the "async" flag to "true" in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', + messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the \'async\' flag to \'true\' in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', ruleId: 'async-component-flags', severity: 2, }, @@ -700,21 +700,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 26, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 39, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 40, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -738,7 +738,7 @@ Generated by [AVA](https://avajs.dev). column: 9, line: 5, message: 'Component is not configured for asynchronous loading.', - messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the "async" flag to "true" in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', + messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.js. Alternatively, set the \'async\' flag to \'true\' in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', ruleId: 'async-component-flags', severity: 2, }, @@ -754,21 +754,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 26, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 39, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 40, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -800,7 +800,7 @@ Generated by [AVA](https://avajs.dev). column: 1, line: 5, message: 'Component is not configured for asynchronous loading.', - messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.ts. Alternatively, set the "async" flag to "true" in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', + messageDetails: 'Use Asynchronous Loading (https://ui5.sap.com/#/topic/676b636446c94eada183b1218a824717). Implement sap.ui.core.IAsyncContentCreation interface in Component.ts. Alternatively, set the \'async\' flag to \'true\' in "sap.ui5/routing/config" and "sap.ui5/rootView" in the component manifest.', ruleId: 'async-component-flags', severity: 2, }, @@ -816,21 +816,21 @@ Generated by [AVA](https://avajs.dev). { column: 17, line: 26, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 39, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 40, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, diff --git a/test/lib/linter/rules/snapshots/AsyncComponentFlags.ts.snap b/test/lib/linter/rules/snapshots/AsyncComponentFlags.ts.snap index beaf7fb376cc84c7ddb2045c921d0585fdf1a01d..bdcd48680a7a0cab08c4c3ce61f21bf3d66db560 100644 GIT binary patch delta 2650 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 Ik$i^$0Ba60YybcN delta 2657 zcmV-n3ZC`i6zLRyK~_N^Q*L2!b7*gLAa*kf0|2{KWAiMy)<=rJUaLn<$rbF#Jxu!y zax&9vdn>+Bh!!7<2mk;800003?VNp#9AzEHKhMnU%O11^4ftxFY?_=G!ewnO?MXxZtPxT-l$`d{1dj&2Y^xFVqm>6 z*NV)ZFmxw>g_!xYdi82V4xu4>gxEi2*dxRzlmA6hhxG{X6X03E6tGpmH3A|rU8i~Z z*mW`=3$6Zf&6+he)6Wa|l7R0E_=5mVg8>aL)l#OJxuz=-CSsKkWeqk6o#cQO`QV@o z-Eq0kF9wL!tQXo$Sx$yw5bh1Ceq8&>Aa%g%q8qz^rFXPA$}V~(d4(HK)X%v$C|3es z`f=ZNQSFLuo^?fbSw@jNE~8X6D-OA#@A>0%&s1;Jz3nzC`Lh_UT3L2|uPCFWQGs8( zrbpUtmOW=+>2n6w+%ls{nK`#i82{AZB@JHHAgj+Ey;gek>a{VuL7y4D`}L{O+atus zl8;({QlVc6tz-UpL^00Z$n4oB?|>aD66amYrvITLuni z;5!-kWd{09xYkUW<>rn1OzNha`JhxS`_ltpZK~8LdA^)3J3CcoO?TtW_lw>WNhc^e zl`yEtFrIWa9rWa(WL#`=yvQlYN+|PgEDL>qPIBa?%2bIT#nLVGZAxEPSS`tYg_*Bw z{b1X%8n(F=FFgn&c~FL4JUM-}+5%d8Mw8a2uP5Ew-3?p2uh6)yUZHziy1A`>z057k z#%=YdN;=irCUP~Te3o2kTY;fgQZ@B| zTwge2WE}!-0KN!34EzOHEnrIveX7sL2Sm4t%!D|#vvHF?8&Q3>Q=eBB8a@>X1ZtTq+D47wh4HjfVj0>9Tsq> zfQJM;B|z6;P=ozxxiXIN@Yf8SotBq>%sf@v zZNkMSe87Z{nDC?tw$)P1He1kV!2t^Z`_ zs?t@{mA+lZu2+htf7Z?s$@IE^XLbb#rYdkYPsDL0+TGt@^|tp#Zly0Dl>0aK$3ex* z_mA!v9UC1U9T^$T?;4SA!5!Q=JT^EqxYOM^G_qrG$Cf^4U%66}<>aapnMZ?!n6KaD`h(kC zWzMKw!M3{Hw&YUMk8?Y^s(4B9($eLn23sw1FD@tdzHMIWSS(@@aOrDZh)a*Q*Q^?E zbi}_m|E<9*8dy54)8Sly9X7Y}^E0)yF{k-P3r~BgB)*$0?FppWH2@cESXd zt}-Ar;8p|vVZiItZv1@j|H2HsEdw9Sz(+Iin+%v~&YBNQZ!%%43748sG~vf4ywt+` zw}rLAg0n5yX~9(%I5vE90nlU%i!7K~cw-hW&ceDJ+?9i0Yf0P_c>QhNGFtqs$X#ZcrJFkvD4e12I~IlBch3* zS}HhWiFG+Rn7AroP(BW7FUVODvh{^GbXo@c28RavH}<;~ufJs#>E~rJs9!9guh%r` z>vLQ5^#iB8uV;IIR;tGv^mr3OZm_${$Si7(%@2TQfHeXxSZI#TJKN2%>D)S?*O??6 zq1}44;@d^D1+)4czDvy9;ok{(TEHs;UZ+9g2t1&}v-(0j2emk)7Kcv4t!}Wr&=jwI zVqV*mM#r4tHs_3%UZc=IE8q(P?rAk~OnG!i#Ei%Hyr?gKTx`@}iw2iykk_DJhlh0d zSBp8s7S?J5&M;uufXfXyKLbZH@aMEY*f7x3ndwJSW;ZcMhx=MlX4mz26TxV(w^@Ho z3C7|HhB!5p`K$)l>u~RDNSSJyUm_2EgB_whJGvKA4f1tPaBoq`w2d>n+6jvLL@quT1kL{J@{NG|k{S1Kj?RgGjJ(Ymne z$6i@4I&L)%%5LoC-BPlG5l?v0jM_!Yp^im1IJC+>c$y&|c-B0tZ7-rC*Xc+}P2V!|aR!>&*Z(XJb~O-I}J? z{UVWhxv%EUIrvNtj^yC+9Bk@=t4}s4?=}6@od|lVyw~NH_u9F!a{6L=tT0_+y2AAC P!}R|H%d;7_KZpPTH@i5N diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md index 91a0de64..2f4d71f4 100644 --- a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md +++ b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.md @@ -140,7 +140,7 @@ Generated by [AVA](https://avajs.dev). { column: 3, line: 11, - message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-compatVersion\' should be \'data-sap-ui-compat-version\'', + message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-compatVersion\'; should be written as \'data-sap-ui-compat-version\'', ruleId: 'no-deprecated-api', severity: 1, }, @@ -155,21 +155,21 @@ Generated by [AVA](https://avajs.dev). { column: 3, line: 12, - message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-flexibilityservices\' should be \'data-sap-ui-flexibility-services\'', + message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-flexibilityservices\'; should be written as \'data-sap-ui-flexibility-services\'', ruleId: 'no-deprecated-api', severity: 1, }, { column: 3, line: 13, - message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-frameoptions\' should be \'data-sap-ui-frame-options\'', + message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-frameoptions\'; should be written as \'data-sap-ui-frame-options\'', ruleId: 'no-deprecated-api', severity: 1, }, { column: 3, line: 14, - message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-evt-oninit\' should be \'data-sap-ui-on-init\'', + message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-evt-oninit\'; should be written as \'data-sap-ui-on-init\'', ruleId: 'no-deprecated-api', severity: 1, }, @@ -184,7 +184,7 @@ Generated by [AVA](https://avajs.dev). { column: 3, line: 15, - message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-onInit\' should be \'data-sap-ui-on-init\'', + message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-onInit\'; should be written as \'data-sap-ui-on-init\'', ruleId: 'no-deprecated-api', severity: 1, }, @@ -206,7 +206,7 @@ Generated by [AVA](https://avajs.dev). { column: 3, line: 16, - message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-resourceroots\' should be \'data-sap-ui-resource-roots\'', + message: 'Outdated spelling of bootstrap parameter: \'data-sap-ui-resourceroots\'; should be written as \'data-sap-ui-resource-roots\'', ruleId: 'no-deprecated-api', severity: 1, }, @@ -462,7 +462,7 @@ Generated by [AVA](https://avajs.dev). line: 32, message: 'Use of deprecated property \'webview\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -470,7 +470,7 @@ Generated by [AVA](https://avajs.dev). line: 33, message: 'Use of deprecated property \'webview\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -478,7 +478,7 @@ Generated by [AVA](https://avajs.dev). line: 35, message: 'Use of deprecated property \'AnimationMode\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -486,7 +486,7 @@ Generated by [AVA](https://avajs.dev). line: 37, message: 'Use of deprecated property \'MessageType\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -526,7 +526,7 @@ Generated by [AVA](https://avajs.dev). line: 47, message: 'Use of deprecated property \'Date\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -662,7 +662,7 @@ Generated by [AVA](https://avajs.dev). line: 35, message: 'Use of deprecated property \'webview\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -670,7 +670,7 @@ Generated by [AVA](https://avajs.dev). line: 36, message: 'Use of deprecated property \'webview\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -678,7 +678,7 @@ Generated by [AVA](https://avajs.dev). line: 38, message: 'Use of deprecated property \'AnimationMode\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -686,7 +686,7 @@ Generated by [AVA](https://avajs.dev). line: 42, message: 'Use of deprecated property \'Date\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -731,7 +731,7 @@ Generated by [AVA](https://avajs.dev). { column: undefined, line: undefined, - message: 'Use of view type \'HTML\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'HTML\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -754,7 +754,7 @@ Generated by [AVA](https://avajs.dev). { column: undefined, line: undefined, - message: 'Use of view type \'JS\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'JS\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -777,7 +777,7 @@ Generated by [AVA](https://avajs.dev). { column: undefined, line: undefined, - message: 'Use of view type \'TS\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'TS\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -800,7 +800,7 @@ Generated by [AVA](https://avajs.dev). { column: undefined, line: undefined, - message: 'Use of view type \'HTML\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'HTML\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -823,7 +823,7 @@ Generated by [AVA](https://avajs.dev). { column: undefined, line: undefined, - message: 'Use of view type \'JS\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'JS\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -846,7 +846,7 @@ Generated by [AVA](https://avajs.dev). { column: undefined, line: undefined, - message: 'Use of view type \'JSON\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'JSON\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -869,7 +869,7 @@ Generated by [AVA](https://avajs.dev). { column: undefined, line: undefined, - message: 'Use of view type \'TS\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'TS\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -894,7 +894,7 @@ Generated by [AVA](https://avajs.dev). line: 11, message: 'Usage of deprecated variant of \'sap/ui/core/theming/Parameters.get\'', messageDetails: 'Parameters.get (https://ui5.sap.com/1.120/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -902,7 +902,7 @@ Generated by [AVA](https://avajs.dev). line: 12, message: 'Usage of deprecated variant of \'sap/ui/core/theming/Parameters.get\'', messageDetails: 'Parameters.get (https://ui5.sap.com/1.120/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -910,7 +910,7 @@ Generated by [AVA](https://avajs.dev). line: 13, message: 'Usage of deprecated variant of \'sap/ui/core/theming/Parameters.get\'', messageDetails: 'Parameters.get (https://ui5.sap.com/1.120/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -918,7 +918,7 @@ Generated by [AVA](https://avajs.dev). line: 22, message: 'Usage of deprecated variant of \'sap/ui/core/theming/Parameters.get\'', messageDetails: 'Parameters.get (https://ui5.sap.com/1.120/#/api/sap.ui.core.theming.Parameters%23methods/sap.ui.core.theming.Parameters.get)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -926,7 +926,7 @@ Generated by [AVA](https://avajs.dev). line: 25, message: 'Usage of deprecated value for parameter \'bAsync\' of \'sap/ui/model/json/JSONModel#loadData\'', messageDetails: 'Parameter \'bAsync\' must be either omitted or set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.json.JSONModel%23methods/loadData)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -934,63 +934,63 @@ Generated by [AVA](https://avajs.dev). line: 26, message: 'Usage of deprecated value for parameter \'bCache\' of \'sap/ui/model/json/JSONModel#loadData\'', messageDetails: 'Parameter \'bCache\' must be either omitted or set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.json.JSONModel%23methods/loadData)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 3, line: 29, message: 'Usage of deprecated parameter \'synchronizationMode\' of constructor \'sap/ui/model/odata/v4/ODataModel\'', - messageDetails: 'As of version 1.110.0, parameter \'synchronizationMode\' is obsolete and must be omitted. See API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', - ruleId: 'no-deprecated-parameter', + messageDetails: 'As of version 1.110.0, the \'synchronizationMode\' parameter is obsolete and must be omitted. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 3, line: 32, message: 'Usage of deprecated parameter \'synchronizationMode\' of constructor \'sap/ui/model/odata/v4/ODataModel\'', - messageDetails: 'As of version 1.110.0, parameter \'synchronizationMode\' is obsolete and must be omitted. See API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', - ruleId: 'no-deprecated-parameter', + messageDetails: 'As of version 1.110.0, the \'synchronizationMode\' parameter is obsolete and must be omitted. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 3, line: 40, message: 'Usage of deprecated parameter \'batchGroupId\' in \'sap/ui/model/odata/v2/ODataModel#createEntry\'', - messageDetails: 'Use parameter \'groupId\' instead. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.odata.v2.ODataModel%23methods/createEntry)', - ruleId: 'no-deprecated-parameter', + messageDetails: 'Use the \'groupId\' parameter instead. See the API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.odata.v2.ODataModel%23methods/createEntry)', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 3, line: 41, message: 'Usage of deprecated value for parameter \'properties\' in \'sap/ui/model/odata/v2/ODataModel#createEntry\'', - messageDetails: 'Passing a list of property names is deprecated. Pass the initial values as an object instead. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.odata.v2.ODataModel%23methods/createEntry)', - ruleId: 'no-deprecated-parameter', + messageDetails: 'Passing a list of property names is deprecated. Pass the initial values as an object instead. See the API reference (https://ui5.sap.com/1.120/#/api/sap.ui.model.odata.v2.ODataModel%23methods/createEntry)', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 4, line: 53, message: 'Usage of deprecated value for parameter \'async\' of \'sap/ui/core/Component#createComponent\'', - messageDetails: 'Property \'async\' must be either omitted or set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.core.Component%23methods/createComponent)', - ruleId: 'no-deprecated-parameter', + messageDetails: 'The \'async\' property must be either omitted or set to true. See the API reference (https://ui5.sap.com/1.120/#/api/sap.ui.core.Component%23methods/createComponent)', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 2, line: 68, message: 'Usage of deprecated value for parameter \'oConfig.async\' of constructor \'sap/ui/core/Router\'', - messageDetails: 'Parameter \'oConfig.async\' must be set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap/ui/core/routing/Router#constructor)', - ruleId: 'no-deprecated-parameter', + messageDetails: 'The \'oConfig.async\' parameter must be set to true. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/core/routing/Router#constructor)', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 2, line: 69, message: 'Usage of deprecated value for parameter \'oConfig.async\' of constructor \'sap/ui/core/Router\'', - messageDetails: 'Parameter \'oConfig.async\' must be set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap/ui/core/routing/Router#constructor)', - ruleId: 'no-deprecated-parameter', + messageDetails: 'The \'oConfig.async\' parameter must be set to true. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/core/routing/Router#constructor)', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -998,7 +998,7 @@ Generated by [AVA](https://avajs.dev). line: 73, message: 'Usage of deprecated value for parameter \'homeIcon\' of \'sap/ui/util/Mobile#init\'', messageDetails: 'Parameter \'homeIcon\' must be either omitted or set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.util.Mobile%23methods/init)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -1006,7 +1006,7 @@ Generated by [AVA](https://avajs.dev). line: 74, message: 'Usage of deprecated value for parameter \'homeIconPrecomposed\' of \'sap/ui/util/Mobile#init\'', messageDetails: 'Parameter \'homeIconPrecomposed\' must be either omitted or set to true. See API reference (https://ui5.sap.com/1.120/#/api/sap.ui.util.Mobile%23methods/init)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, ], @@ -1188,21 +1188,24 @@ Generated by [AVA](https://avajs.dev). { column: 1, line: 8, - message: 'Usage of SVG in XML Views/Fragments is deprecated', + message: 'Deprecated use of SVG in XML View or Fragment', + messageDetails: 'See Best Practices for Developers (https://ui5.sap.com/#/topic/28fcd55b04654977b63dacbee0552712)', ruleId: 'no-deprecated-api', severity: 2, }, { column: 2, line: 9, - message: 'Usage of SVG in XML Views/Fragments is deprecated', + message: 'Deprecated use of SVG in XML View or Fragment', + messageDetails: 'See Best Practices for Developers (https://ui5.sap.com/#/topic/28fcd55b04654977b63dacbee0552712)', ruleId: 'no-deprecated-api', severity: 2, }, { column: 3, line: 10, - message: 'Usage of SVG in XML Views/Fragments is deprecated', + message: 'Deprecated use of SVG in XML View or Fragment', + messageDetails: 'See Best Practices for Developers (https://ui5.sap.com/#/topic/28fcd55b04654977b63dacbee0552712)', ruleId: 'no-deprecated-api', severity: 2, }, @@ -1347,7 +1350,7 @@ Generated by [AVA](https://avajs.dev). line: 2, message: 'Use of deprecated property \'device\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -1355,7 +1358,7 @@ Generated by [AVA](https://avajs.dev). line: 3, message: 'Use of deprecated property \'os\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -1363,7 +1366,7 @@ Generated by [AVA](https://avajs.dev). line: 4, message: 'Use of deprecated property \'os\'', messageDetails: 'Deprecated test message', - ruleId: 'no-deprecated-property', + ruleId: 'no-deprecated-api', severity: 2, }, ], @@ -1571,33 +1574,33 @@ Generated by [AVA](https://avajs.dev). { column: 2, line: 9, - message: 'Call to Library.init() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to Library.init(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 2, line: 10, - message: 'Call to Library.init() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to Library.init(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 2, line: 11, - message: 'Call to Library.init() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to Library.init(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 2, line: 14, - message: 'Call to Library.init() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to Library.init(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -1659,33 +1662,33 @@ Generated by [AVA](https://avajs.dev). { column: 3, line: 28, - message: 'Call to Library.init() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to Library.init(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 3, line: 31, - message: 'Call to Library.init() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to Library.init(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 3, line: 34, - message: 'Call to Library.init() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to Library.init(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 3, line: 37, - message: 'Call to Library.init() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to Library.init(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -1747,9 +1750,9 @@ Generated by [AVA](https://avajs.dev). { column: 3, line: 52, - message: 'Call to LibInit() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to LibInit(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -1811,9 +1814,9 @@ Generated by [AVA](https://avajs.dev). { column: 3, line: 67, - message: 'Call to init() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to init(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -1875,9 +1878,9 @@ Generated by [AVA](https://avajs.dev). { column: 3, line: 82, - message: 'Call to intRenames() must be declared with property {apiVersion: 2}', + message: 'Deprecated call to intRenames(). Use parameter {apiVersion: 2} instead', messageDetails: 'Lib.init (https://ui5.sap.com/1.120/#/api/sap.ui.core.Lib)', - ruleId: 'no-deprecated-parameter', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -2103,49 +2106,49 @@ Generated by [AVA](https://avajs.dev). { column: 13, line: 37, - message: 'Use of view type \'JS\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'JS\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 17, line: 112, - message: 'Use of view type \'HTML\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'HTML\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 17, line: 113, - message: 'Use of property \'viewPath\' is deprecated. Use \'path\' instead.\'', + message: 'Use of deprecated property \'viewPath\'.Use \'path\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 17, line: 114, - message: 'Use of property \'viewLevel\' is deprecated. Use \'level\' instead.\'', + message: 'Use of deprecated property \'viewLevel\'.Use \'level\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 17, line: 115, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 129, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 130, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -2159,42 +2162,42 @@ Generated by [AVA](https://avajs.dev). { column: 21, line: 138, - message: 'Use of view type \'HTML\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'HTML\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 142, - message: 'Use of view type \'JS\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'JS\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 146, - message: 'Use of view type \'Template\' is deprecated. Use \'XML\' instead.\'', + message: 'Use of deprecated view type \'Template\'. Use \'XML\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 23, line: 149, - message: 'Use of property \'viewName\' is deprecated. Use \'name\' instead.\'', + message: 'Use of deprecated property \'viewName\'.Use \'name\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 150, - message: 'Use of property \'viewId\' is deprecated. Use \'id\' instead.\'', + message: 'Use of deprecated property \'viewId\'.Use \'id\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 151, - message: 'Use of property \'viewLevel\' is deprecated. Use \'level\' instead.\'', + message: 'Use of deprecated property \'viewLevel\'.Use \'level\' instead\'', ruleId: 'no-deprecated-api', severity: 2, }, @@ -2210,16 +2213,16 @@ Generated by [AVA](https://avajs.dev). column: 21, line: 92, message: 'Usage of deprecated parameter \'synchronizationMode\' of constructor \'sap/ui/model/odata/v4/ODataModel\' (model: \'odata-v4\')', - messageDetails: 'As of version 1.110.0, parameter \'synchronizationMode\' is obsolete and must be omitted. See API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', - ruleId: 'no-deprecated-parameter', + messageDetails: 'As of version 1.110.0, the \'synchronizationMode\' parameter is obsolete and must be omitted. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', + ruleId: 'no-deprecated-api', severity: 2, }, { column: 21, line: 98, message: 'Usage of deprecated parameter \'synchronizationMode\' of constructor \'sap/ui/model/odata/v4/ODataModel\' (model: \'odata-v4-via-dataSource\')', - messageDetails: 'As of version 1.110.0, parameter \'synchronizationMode\' is obsolete and must be omitted. See API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', - ruleId: 'no-deprecated-parameter', + messageDetails: 'As of version 1.110.0, the \'synchronizationMode\' parameter is obsolete and must be omitted. See the API reference (https://ui5.sap.com/1.120/#/api/sap/ui/model/odata/v4/ODataModel#constructor)', + ruleId: 'no-deprecated-api', severity: 2, }, { @@ -2270,6 +2273,7 @@ Generated by [AVA](https://avajs.dev). column: 1, line: 1, message: 'Access of global variable \'sap\' (sap.ui.jsview)', + messageDetails: 'Do not use global variables to access UI5 modules or APIs. See Best Practices for Developers (https://ui5.sap.com/#/topic/28fcd55b04654977b63dacbee0552712)', ruleId: 'no-globals', severity: 2, }, diff --git a/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap b/test/lib/linter/rules/snapshots/NoDeprecatedApi.ts.snap index b8ece60cf8f339bf303018adea071e1b63fa18b7..c1483914ebff7b403cf309646770b9a344a732b3 100644 GIT binary patch literal 13665 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�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≪M3qvCt`^ANI8Gafe*?{se8)?1s0M(CI8QW z{C-5r@eOjV(U!U3n>i%Gp|OlVfhr9LpX(keuNAr5OCPdHt}OW65K9F|pfBrc=q@n?_asFbp^7662Gd~s_Yeh<)*w4(` ztIJSmjQd&VT~btDcK@ELvKW=nFN8wQ;_?N;hd$BZ_%4%Vb>aKW22|mf@Rm~`#xR-A zBP?Fr8#0Zh)>Y0}Hz=Ldc~dJ7xj+)E_tpo%e5f=Zn49_n+-CoE8LokB~XybpIdci^7ExzR z1j^H`3@RuS{xrE3@7uATW^Ahe&|L5|ZWCP$j1HdOC??_I#z`Y%S%$A}~KMYjlx z9OwaUuH?UtZJ@Uu$PR2h=Uz=>PDl~3!_8;ojK;oJBWBSD*~0&p<#HU)1mzeox-baZ zpU0PND#8~fEcSgiNBqNJr9H6vo)+9gMie|4FSbdA-tV;`8yL0l52Y;Q$01_s+c*CQ D#DgF! literal 13476 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 literal 1827 zcmV+;2i*8URzVSic!hs`yWc!#zxO@o%sIz8Pb`)#r}8fEp-)NQ^etIGA#Ldz z)@}N|&I!vY8O0q+JL2fhY8599>w7p;ckZ!Dje6<=uWFqg|AGKe^$Pl$U2 z42l?{J1^1|=c06tC3(_bbP!nvgtnIJm9Fc!cR6+255DRWY2}IRqTw6X>y^h)o=Ps7 zmON$n%k3Xs?@>_FXV;aKT#=q1i*Wj=Q zcWQ8t25-@zqJgc!ss``X;86`eu5ENbw!!_R$b4FZ&uQ=_4Zfkl(;7Uh!7nuUtp+b@ zpv52)gF+1U#WprLpmt|A=+06s=+2Z7MvS#S{zxnk(g>ewgs~v}TO;fW!i9$7?jU?; zBa8>(hZ|uc2)`3p5`=$kggrqx-%aq-DIv}^!c-7`s1c@v@Y{_r6NE1{!oJ|~X6`_I ztksbHfa z?BFEaItg!@1a}gio`gTE*jNY~EW%h3ZY{!@B7C6;&lVMIJcRwF2>)oHQ*g@^T$zH; zOexqz2zzP@o|%H*OhH12H|y|#u3(cP?2|e?sl&H)cut1{({N^5!HO!D@TcMaX?ScJ zzBmp4nugnFz?xCesnA}cOI_tFhA)>KceS-w5K2B?ajg1^{W94u%d}-H_i81VXl)2u zpS2Hi);7wP)O|-cY{Oc;U+Vs{>FF!dUv{c`#jq^BEGtIcYb2!ZuhyjQEb3-e+P=AH zN>`t8<%PQG%KKLB%8YK>`b?vRl4sP8lP`%VWogx}xe;-Ouc6P{5k)y*3?8Md+@8)3o2yJEp5)2=#~-qx^U<{h15Ms82u zkxes79W^ZS5l%d^D^4s0=hri>_hsj}(I4T)`*vsTbZVVt!@!-POQ^*7tj;eqV%oZwJ(Se!bk9 z1*YxTrN-wylzh_-=oRQ{veZ?2y{uG(tl90!x}kdhhXb5=&9?MxTt+%ZT*T2#%teZ8o-8^>P{i>{ zyl$IR0XWr(!*^W^dvA5lZ!k5{nc8tRD|F;*+ zWQ3rbw-D6aQP1jgt*y0j-niT`!io{X4s2i84r_|<+L>wpSufZVR%OkVjjd}{KYHrq znx6GXpIN1)zE(@eq;Hs(xAyhOv1={)()0D!V_O@Nx1EJ+B`g>6N<(13D@a>gz z_sS*1H!sRfud#?ncJvy{SAkyw1px=QdyVDn^u{0}_q$&-J9AWgDrwrQ1CFXA4S`Fh`( z`91IOY?W67;oVgCwz>9oz;6v+;vttTn02m*WyNbHu_Q{hfUD7U<*SfIYE5W$cdJxl znq9X)m`G#iqYN3R0gM9}AUj9aoRq9i6t}Y3ET{`apl+hGaZq{_z#RZj0lWq93BWM| z#;BFZzPh^3Jx#{NE<*3IK8(gvqUku9vl*IrU@mv>|QpkBx z3w2{CwexFRku5XLf{Te|NUX|~{eUksy%rA~*-ff(F!9sDGF7e=t8kS_*0afE=!cc| z{W5I`%{GJ?NyflEE z2|O`@_hv!`t6hZ*r9Yd%7Zd1B0mCWaK?=xPzfuX_buSL1;7R#+Q4f& z5t{C#eH%#I6G5#Swv;szv#G!j`5trWmNaqy+yajz_n77-hj|`X$`NIUhqbB`HDq?G z4V|4K#Ui)nyPlBTy};zW2!tF;WbbQbU*MYgfr^LOl3$Tb`(eeIYwn?i)2t$=RYuOK zHLW8x>$)|6YE-dk)Du&of~`)E^YT=okk3z^$$OK- zNj|a`@WoQx&4ps5d7F{uZIXqVQGA0-U)O(7I~4WgTRR-}s(aa2y2v9YnHEz0r{0-* z>KD}KI#OR?nq8|$e7}01FBXgbZT`=KkNxoEUVgX|@(R=b2JdK$^yrTo;~M}U0URe_ m=68+p#zBoS>39e9#ld}uH4eD>cMNh*Kl}!ilRs4L2mk=sVQO>$ literal 754 zcmVxEk00000000B+mCb7tK^VrLcQ?BU{YqoSOFDJB8GBat7;6Xj;-GhjNv}bP~^q?1S{s*4*px%s5xYlH&EUSQO=Yz}3jA@>R$pwIZ~-w^1%L z&2HEqO{B5)QHG4u0LB0ekewrIR!Y_&id)%i7SshIP&d)JI4Hdi;4Xk?0Nw%k4B!|6 zqtr@dUn{M0Pm{6J?CfovKSyEp6lXL3OOh0 zp>7VPwtj6ZvK6LTa4E42iB*}3AMhonSK@&qyGb<(UdB3M7?{1=Rgjj@W10bWRf--=H0X#8)R|b$X zfu|<$!Az)NwX2Y!^cNHOY686}U^oRlOaWO7xL_qh?OmbE7Qijwfd#y<0NB7I8+cg)_D7P)ob^@QZ^MJDG&AmmUYdtWR2JlD(*R6NWU{iV?oW;=7L9nK=ALl1h{ss2;%Og;4r z>a!iG&oj-gHzK}Yz0VbkMgI=}XTisQcycd4Tn>4aX@8A(G)8*-M~(3_T>m=;xu+j~2b>EOPwfZ*032R!MgRZ+ diff --git a/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.md b/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.md index 82d3e3fc..1aee0f9c 100644 --- a/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.md +++ b/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.md @@ -708,21 +708,24 @@ Generated by [AVA](https://avajs.dev). { column: 1, line: 8, - message: 'Usage of SVG in XML Views/Fragments is deprecated', + message: 'Deprecated use of SVG in XML View or Fragment', + messageDetails: 'See Best Practices for Developers (https://ui5.sap.com/#/topic/28fcd55b04654977b63dacbee0552712)', ruleId: 'no-deprecated-api', severity: 2, }, { column: 2, line: 9, - message: 'Usage of SVG in XML Views/Fragments is deprecated', + message: 'Deprecated use of SVG in XML View or Fragment', + messageDetails: 'See Best Practices for Developers (https://ui5.sap.com/#/topic/28fcd55b04654977b63dacbee0552712)', ruleId: 'no-deprecated-api', severity: 2, }, { column: 3, line: 10, - message: 'Usage of SVG in XML Views/Fragments is deprecated', + message: 'Deprecated use of SVG in XML View or Fragment', + messageDetails: 'See Best Practices for Developers (https://ui5.sap.com/#/topic/28fcd55b04654977b63dacbee0552712)', ruleId: 'no-deprecated-api', severity: 2, }, diff --git a/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.snap b/test/lib/linter/xmlTemplate/snapshots/transpiler.ts.snap index ed91765cdae9068e572ec0f702d8ac22f3c8f95a..c256293bb2b8bd6fd21352854bc2bf59e63926f4 100644 GIT binary patch literal 5459 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 J0h;Aw008|)v4;Qv literal 5374 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