diff --git a/.changeset/fair-adults-cheat.md b/.changeset/fair-adults-cheat.md new file mode 100644 index 00000000000..5b15e7ecd81 --- /dev/null +++ b/.changeset/fair-adults-cheat.md @@ -0,0 +1,9 @@ +--- +'@sap-ux/eslint-plugin-fiori-tools': major +'@sap-ux/app-config-writer': patch +'@sap-ux/ui5-application-writer': patch +'@sap-ux/ui5-library-writer': patch +'@sap-ux-private/preview-middleware-client': patch +--- + +feat: support ESLint 10 diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000000..586e275eb9b --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20.20.0 diff --git a/examples/ui-prompting-examples/package.json b/examples/ui-prompting-examples/package.json index 6482ff50d65..616a320b661 100644 --- a/examples/ui-prompting-examples/package.json +++ b/examples/ui-prompting-examples/package.json @@ -53,6 +53,7 @@ "babel-loader": "10.1.1", "copyfiles": "2.4.1", "css-loader": "7.1.4", + "eslint": "9.39.1", "eslint-plugin-react": "7.37.5", "eslint-plugin-storybook": "0.6.15", "mem-fs": "2.1.0", diff --git a/package.json b/package.json index c80e8e50e64..0a56960ecdc 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "devDependencies": { "@changesets/cli": "2.30.0", "@eslint/eslintrc": "3.3.5", - "@eslint/js": "9.22.0", + "@eslint/js": "10.0.1", "@playwright/test": "1.58.2", "@types/jest": "30.0.0", "@types/node": "20.19.37", @@ -15,7 +15,7 @@ "check-dependency-version-consistency": "6.0.0", "esbuild": "0.27.4", "esbuild-sass-plugin": "3.7.0", - "eslint": "9.39.1", + "eslint": "10.0.3", "eslint-config-prettier": "10.1.8", "eslint-import-resolver-typescript": "4.4.4", "eslint-plugin-import": "2.32.0", diff --git a/packages/app-config-writer/src/eslint-config/convert.ts b/packages/app-config-writer/src/eslint-config/convert.ts index 0ef3942684f..a51cdcfa62c 100644 --- a/packages/app-config-writer/src/eslint-config/convert.ts +++ b/packages/app-config-writer/src/eslint-config/convert.ts @@ -369,8 +369,8 @@ async function updatePackageJson(basePath: string, fs: Editor, logger?: ToolsLog const packageJsonPath = join(basePath, FileName.Package); const packageJson = fs.readJSON(packageJsonPath) as Package; packageJson.devDependencies ??= {}; - packageJson.devDependencies[packageName.ESLINT] = '^9.0.0'; - packageJson.devDependencies[packageName.ESLINT_PLUGIN_FIORI_TOOLS] = '^9.0.0'; + packageJson.devDependencies[packageName.ESLINT] = '^10.0.0'; + packageJson.devDependencies[packageName.ESLINT_PLUGIN_FIORI_TOOLS] = '^10.0.0'; delete packageJson.devDependencies[packageName.ESLINT_PLUGIN_FIORI_CUSTOM]; packageJson.scripts ??= {}; if (packageJson.scripts['lint']) { diff --git a/packages/app-config-writer/test/unit/eslint-config/add.test.ts b/packages/app-config-writer/test/unit/eslint-config/add.test.ts index 38ea9c37e0b..a80db3ba462 100644 --- a/packages/app-config-writer/test/unit/eslint-config/add.test.ts +++ b/packages/app-config-writer/test/unit/eslint-config/add.test.ts @@ -79,8 +79,8 @@ describe('generateEslintConfig', () => { const packageJson = fs.readJSON(packageJsonPath) as Package; expect(packageJson.devDependencies).toBeDefined(); - expect(packageJson.devDependencies?.eslint).toBe('^9'); - expect(packageJson.devDependencies?.['@sap-ux/eslint-plugin-fiori-tools']).toBe('^9.0.0'); + expect(packageJson.devDependencies?.eslint).toBe('^10'); + expect(packageJson.devDependencies?.['@sap-ux/eslint-plugin-fiori-tools']).toBe('^10.0.0'); }); test('should add lint script to package.json', async () => { diff --git a/packages/app-config-writer/test/unit/eslint-config/convert.test.ts b/packages/app-config-writer/test/unit/eslint-config/convert.test.ts index 7a3ef760147..b816c27e3e9 100644 --- a/packages/app-config-writer/test/unit/eslint-config/convert.test.ts +++ b/packages/app-config-writer/test/unit/eslint-config/convert.test.ts @@ -610,7 +610,7 @@ describe('convertEslintConfig', () => { const packageJsonPath = join(basePath, 'package.json'); const packageJson = fs.readJSON(packageJsonPath) as Package; - expect(packageJson.devDependencies?.eslint).toBe('^9.0.0'); + expect(packageJson.devDependencies?.eslint).toBe('^10.0.0'); }); test('should update @sap-ux/eslint-plugin-fiori-tools version to ^9.0.0', async () => { @@ -620,7 +620,7 @@ describe('convertEslintConfig', () => { const packageJsonPath = join(basePath, 'package.json'); const packageJson = fs.readJSON(packageJsonPath) as Package; - expect(packageJson.devDependencies?.['@sap-ux/eslint-plugin-fiori-tools']).toBe('^9.0.0'); + expect(packageJson.devDependencies?.['@sap-ux/eslint-plugin-fiori-tools']).toBe('^10.0.0'); }); test('should preserve existing devDependencies', async () => { @@ -660,7 +660,7 @@ describe('convertEslintConfig', () => { const updatedPackageJson = fs.readJSON(packageJsonPath) as Package; expect(updatedPackageJson.devDependencies).toBeDefined(); - expect(updatedPackageJson.devDependencies?.eslint).toBe('^9.0.0'); + expect(updatedPackageJson.devDependencies?.eslint).toBe('^10.0.0'); }); }); @@ -762,8 +762,8 @@ describe('convertEslintConfig', () => { // Verify package.json was updated const packageJsonPath = join(basePath, 'package.json'); const packageJson = fs.readJSON(packageJsonPath) as Package; - expect(packageJson.devDependencies?.eslint).toBe('^9.0.0'); - expect(packageJson.devDependencies?.['@sap-ux/eslint-plugin-fiori-tools']).toBe('^9.0.0'); + expect(packageJson.devDependencies?.eslint).toBe('^10.0.0'); + expect(packageJson.devDependencies?.['@sap-ux/eslint-plugin-fiori-tools']).toBe('^10.0.0'); // Verify result is the fs instance expect(result).toBe(fs); diff --git a/packages/control-property-editor/package.json b/packages/control-property-editor/package.json index 2c2d73a1e4e..4f6d8def4af 100644 --- a/packages/control-property-editor/package.json +++ b/packages/control-property-editor/package.json @@ -37,6 +37,7 @@ "@types/remote-redux-devtools": "0.5.8", "@types/source-map-support": "0.5.10", "@types/react": "16.14.69", + "eslint": "9.39.1", "eslint-plugin-react": "7.37.5", "http-proxy-middleware": "3.0.5", "i18next": "25.10.10", diff --git a/packages/eslint-plugin-fiori-tools/package.json b/packages/eslint-plugin-fiori-tools/package.json index 57716ee73fe..71eeb73c037 100644 --- a/packages/eslint-plugin-fiori-tools/package.json +++ b/packages/eslint-plugin-fiori-tools/package.json @@ -27,17 +27,18 @@ "cross-env": "10.1.0", "eslint": "9.39.1", "@typescript-eslint/rule-tester": "8.57.2", - "eslint-plugin-eslint-plugin": "7.3.2" + "eslint-plugin-eslint-plugin": "7.3.2", + "@types/semver": "7.7.1" }, "dependencies": { "@babel/core": "7.29.0", "@babel/eslint-parser": "^7.28.5", - "@eslint/js": "9.22.0", + "@eslint/js": "10.0.1", "@eslint/json": "0.14.0", - "@eslint/core": "0.17.0", + "@eslint/core": "1.1.1", "@eslint/config-helpers": "0.5.3", - "@typescript-eslint/eslint-plugin": ">=8.57.2", - "@typescript-eslint/parser": ">=8.57.2", + "@typescript-eslint/eslint-plugin": "8.57.2", + "@typescript-eslint/parser": "8.57.2", "@sap-ux/fiori-annotation-api": "workspace:*", "@sap-ux/odata-annotation-core": "workspace:*", "@sap-ux/odata-vocabularies": "workspace:*", @@ -47,7 +48,7 @@ "@xml-tools/ast": "5.0.5", "@xml-tools/parser": "1.0.11", "@humanwhocodes/momoa": "^3.3.9", - "@eslint/plugin-kit": "0.5.0", + "@eslint/plugin-kit": "0.6.1", "globals": "17.4.0", "lodash": "4.18.1", "requireindex": "^1.2.0", @@ -56,7 +57,7 @@ "semver": "7.7.4" }, "peerDependencies": { - "eslint": "^9", + "eslint": ">=9", "typescript-eslint": "^8.57.2", "@types/semver": "7.7.1" }, diff --git a/packages/eslint-plugin-fiori-tools/src/index.ts b/packages/eslint-plugin-fiori-tools/src/index.ts index 443e5d935eb..0c94db66f4a 100644 --- a/packages/eslint-plugin-fiori-tools/src/index.ts +++ b/packages/eslint-plugin-fiori-tools/src/index.ts @@ -40,6 +40,8 @@ export const languages = { fiori: new FioriLanguage() }; +const fioriRules = rules as Plugin['rules']; + /** * Default export following ESLint 9 plugin structure. * This is the recommended way to export plugins in ESLint 9. @@ -52,7 +54,7 @@ const plugin: Plugin = { namespace: '@sap-ux/fiori-tools' }, languages, - rules: rules as Plugin['rules'], + rules: fioriRules, processors: {} }; @@ -493,7 +495,7 @@ export const configs: Record = { plugins: { '@sap-ux/fiori-tools': { meta, - rules: rules as Plugin['rules'] + rules: fioriRules } } }, @@ -507,7 +509,7 @@ export const configs: Record = { '@sap-ux/fiori-tools': { meta, languages, - rules: rules as Plugin['rules'] + rules: fioriRules } } }, diff --git a/packages/eslint-plugin-fiori-tools/src/language/annotations/types.ts b/packages/eslint-plugin-fiori-tools/src/language/annotations/types.ts index 2db1a014cd1..1e2c2e8c607 100644 --- a/packages/eslint-plugin-fiori-tools/src/language/annotations/types.ts +++ b/packages/eslint-plugin-fiori-tools/src/language/annotations/types.ts @@ -1,4 +1,5 @@ -import type { CustomRuleDefinitionType, CustomRuleTypeDefinitions, RuleVisitor } from '@eslint/core'; +import type { RuleVisitor } from '@eslint/core'; +import type { CustomRuleDefinitionType, CustomRuleTypeDefinitions } from '@eslint/plugin-kit'; import type { FioriAnnotationSourceCode } from './source-code'; import type { AnyNode } from '@sap-ux/odata-annotation-core'; diff --git a/packages/eslint-plugin-fiori-tools/src/language/json/types.ts b/packages/eslint-plugin-fiori-tools/src/language/json/types.ts index 89cba11746d..7fb4915a163 100644 --- a/packages/eslint-plugin-fiori-tools/src/language/json/types.ts +++ b/packages/eslint-plugin-fiori-tools/src/language/json/types.ts @@ -1,4 +1,5 @@ -import type { CustomRuleDefinitionType, CustomRuleTypeDefinitions, RuleVisitor } from '@eslint/core'; +import type { RuleVisitor } from '@eslint/core'; +import type { CustomRuleDefinitionType, CustomRuleTypeDefinitions } from '@eslint/plugin-kit'; import type { JSONLanguageOptions } from '@eslint/json'; import type { AnyNode } from '@humanwhocodes/momoa'; diff --git a/packages/eslint-plugin-fiori-tools/src/language/xml/types.ts b/packages/eslint-plugin-fiori-tools/src/language/xml/types.ts index b9668c8958d..e1725d82713 100644 --- a/packages/eslint-plugin-fiori-tools/src/language/xml/types.ts +++ b/packages/eslint-plugin-fiori-tools/src/language/xml/types.ts @@ -1,4 +1,5 @@ -import type { CustomRuleDefinitionType, CustomRuleTypeDefinitions, RuleVisitor } from '@eslint/core'; +import type { RuleVisitor } from '@eslint/core'; +import type { CustomRuleDefinitionType, CustomRuleTypeDefinitions } from '@eslint/plugin-kit'; import type { XMLAstNode, XMLToken } from '@xml-tools/ast'; import type { FioriXMLSourceCode } from './source-code'; diff --git a/packages/eslint-plugin-fiori-tools/src/project-context/parser/service.ts b/packages/eslint-plugin-fiori-tools/src/project-context/parser/service.ts index 6ba588aa1f3..1f37eae249c 100644 --- a/packages/eslint-plugin-fiori-tools/src/project-context/parser/service.ts +++ b/packages/eslint-plugin-fiori-tools/src/project-context/parser/service.ts @@ -8,7 +8,7 @@ import { parseIdentifier, toFullyQualifiedName } from '@sap-ux/odata-annotation-core'; -import type { ServiceArtifacts } from '@sap-ux/fiori-annotation-api/src/types'; +import type { ServiceArtifacts } from '@sap-ux/fiori-annotation-api'; import type { DocumentType } from '../types'; diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-bookmark-performance.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-bookmark-performance.ts index f63247fc7a1..a3090881c1a 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-bookmark-performance.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-bookmark-performance.ts @@ -28,7 +28,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-browser-api-error.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-browser-api-error.ts index f8ef21f89f1..e3ffb4ec9e8 100755 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-browser-api-error.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-browser-api-error.ts @@ -57,7 +57,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-browser-api-warning.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-browser-api-warning.ts index 64fc55e0a12..5d5f464ee5c 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-browser-api-warning.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-browser-api-warning.ts @@ -64,7 +64,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-cross-application-navigation.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-cross-application-navigation.ts index c10ba09bfe6..4d8168d7937 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-cross-application-navigation.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-cross-application-navigation.ts @@ -227,7 +227,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-forbidden-window-property.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-forbidden-window-property.ts index ee050c8d4ef..775c9ddd8f5 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-forbidden-window-property.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-forbidden-window-property.ts @@ -29,7 +29,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-message-toast.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-message-toast.ts index 77f5a9ff01d..bcf5acfd2ea 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-message-toast.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-message-toast.ts @@ -48,7 +48,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-absolute-component-path.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-absolute-component-path.ts index 4c7aa2aa99f..1ae56680e23 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-absolute-component-path.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-absolute-component-path.ts @@ -28,7 +28,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-br-on-return.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-br-on-return.ts index d364b927401..873b942aa93 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-br-on-return.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-br-on-return.ts @@ -13,7 +13,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-commons-usage.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-commons-usage.ts index 02e3c5cfd3d..fa2041d8991 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-commons-usage.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-commons-usage.ts @@ -55,7 +55,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dom-access.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dom-access.ts index 3627311575e..1f15a470074 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dom-access.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dom-access.ts @@ -13,7 +13,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dom-insertion.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dom-insertion.ts index 772304ae887..94b2b017973 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dom-insertion.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dom-insertion.ts @@ -48,7 +48,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dynamic-style-insertion.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dynamic-style-insertion.ts index 6b8b8a01329..210936c2120 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dynamic-style-insertion.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-dynamic-style-insertion.ts @@ -29,7 +29,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-element-creation.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-element-creation.ts index c8efdbb0d32..e6e0fdca259 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-element-creation.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-element-creation.ts @@ -20,7 +20,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-encode-file-service.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-encode-file-service.ts index f345c0d571b..14a94b5c8b2 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-encode-file-service.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-encode-file-service.ts @@ -37,7 +37,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-event-prop.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-event-prop.ts index eb657b57429..4e234cfe4f5 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-event-prop.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-event-prop.ts @@ -30,7 +30,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-exec-command.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-exec-command.ts index 524a5e4ca00..b9a6301ca98 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-exec-command.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-exec-command.ts @@ -28,7 +28,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-define.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-define.ts index 9f2e81e3862..e1c30728028 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-define.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-define.ts @@ -69,7 +69,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-event.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-event.ts index 431b73013e3..6b1a29b5df5 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-event.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-event.ts @@ -79,7 +79,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-selection.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-selection.ts index 4601d1f7473..884dae40069 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-selection.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-selection.ts @@ -20,7 +20,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-variable.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-variable.ts index 91eff8ac405..24d349f4415 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-variable.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-global-variable.ts @@ -29,7 +29,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'disallow global variable declarations', - category: 'Best Practices', recommended: true }, fixable: undefined, @@ -48,7 +47,7 @@ const rule: Rule.RuleModule = { return { VariableDeclaration(node: ASTNode) { - const sourceCode = context.sourceCode ?? context.getSourceCode(); + const sourceCode = context.sourceCode; const scope: Scope.Scope = sourceCode.getScope ? sourceCode.getScope(node) : (context as any).getScope(); diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-hardcoded-color.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-hardcoded-color.ts index b004f3fe6b6..3cc10501545 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-hardcoded-color.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-hardcoded-color.ts @@ -32,7 +32,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-hardcoded-url.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-hardcoded-url.ts index a67e23aa97e..2beda650bc4 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-hardcoded-url.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-hardcoded-url.ts @@ -33,7 +33,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-history-manipulation.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-history-manipulation.ts index ff46b862028..74a6f279cf4 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-history-manipulation.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-history-manipulation.ts @@ -95,7 +95,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-inner-html-access.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-inner-html-access.ts index 9042876c814..5403d64c66a 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-inner-html-access.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-inner-html-access.ts @@ -37,7 +37,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-inner-html-write.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-inner-html-write.ts index 72046c85c3c..9afa2a6be6a 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-inner-html-write.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-inner-html-write.ts @@ -54,7 +54,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-jquery-device-api.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-jquery-device-api.ts index 16207e4167b..d52ffe166ab 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-jquery-device-api.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-jquery-device-api.ts @@ -21,7 +21,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-localhost.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-localhost.ts index 110b69ed3cf..eaa36174c80 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-localhost.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-localhost.ts @@ -32,7 +32,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-localstorage.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-localstorage.ts index 91852d454de..edc1e88c5ca 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-localstorage.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-localstorage.ts @@ -13,7 +13,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-location-reload.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-location-reload.ts index 2a525a1481c..ad989f0f392 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-location-reload.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-location-reload.ts @@ -82,7 +82,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-location-usage.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-location-usage.ts index d4a4170a4fe..d8890ce1e58 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-location-usage.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-location-usage.ts @@ -26,7 +26,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-navigator.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-navigator.ts index 024f5a2c2f5..d3fbf011b91 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-navigator.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-navigator.ts @@ -77,7 +77,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-override-rendering.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-override-rendering.ts index df84175ada7..fd7433d38ca 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-override-rendering.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-override-rendering.ts @@ -72,7 +72,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { @@ -96,7 +95,7 @@ const rule: Rule.RuleModule = { defaultOptions: [{}] }, create(context: Rule.RuleContext) { - const sourceCode = context.sourceCode ?? context.getSourceCode(); + const sourceCode = context.sourceCode; const customNS = context.options[0]?.ns ? context.options[0].ns : []; const configuration = { 'ns': uniquifyArray( diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-override-storage-prototype.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-override-storage-prototype.ts index 3ce117651b5..1f583074590 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-override-storage-prototype.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-override-storage-prototype.ts @@ -39,7 +39,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-proprietary-browser-api.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-proprietary-browser-api.ts index 083cc0efcbd..8c0f09c6af1 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-proprietary-browser-api.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-proprietary-browser-api.ts @@ -73,7 +73,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-sessionstorage.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-sessionstorage.ts index 23f667fe583..916f877bfd0 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-sessionstorage.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-sessionstorage.ts @@ -13,7 +13,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5-prop-warning.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5-prop-warning.ts index 0580063fc3b..25c72e19f6e 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5-prop-warning.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5-prop-warning.ts @@ -25,7 +25,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5base-prop.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5base-prop.ts index f0fb45a78ac..d93245e4d2f 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5base-prop.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5base-prop.ts @@ -14,7 +14,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5eventprovider-prop.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5eventprovider-prop.ts index b122f1be8d9..2242a230220 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5eventprovider-prop.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5eventprovider-prop.ts @@ -29,7 +29,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5odatamodel-prop.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5odatamodel-prop.ts index 3aa1975aefe..e3e8e1cdbda 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5odatamodel-prop.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-ui5odatamodel-prop.ts @@ -16,7 +16,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-window-alert.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-window-alert.ts index 65b7491a37b..93689313bee 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-no-window-alert.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-no-window-alert.ts @@ -17,7 +17,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-opa5-autowait-true.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-opa5-autowait-true.ts index cbacf19e327..657fa733cb5 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-opa5-autowait-true.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-opa5-autowait-true.ts @@ -46,7 +46,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-timeout-usage.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-timeout-usage.ts index 3bd062ad746..10d1f0a9b35 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-timeout-usage.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-timeout-usage.ts @@ -49,7 +49,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-forms.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-forms.ts index c3c6e232a68..4924071a7b6 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-forms.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-forms.ts @@ -86,7 +86,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-global-eval.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-global-eval.ts index 9114484bbd5..7324b40e09a 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-global-eval.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-global-eval.ts @@ -56,7 +56,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-legacy-factories.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-legacy-factories.ts index bb55a1dea7f..beee3d64e69 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-legacy-factories.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-legacy-factories.ts @@ -14,7 +14,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-legacy-jquerysap-usage.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-legacy-jquerysap-usage.ts index 16a90701a8a..c96bd5566d8 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-legacy-jquerysap-usage.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-legacy-jquerysap-usage.ts @@ -14,7 +14,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-no-private-prop.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-no-private-prop.ts index 1d3907c397d..b263899c53f 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-no-private-prop.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-ui5-no-private-prop.ts @@ -59,7 +59,6 @@ const rule: Rule.RuleModule = { docs: { description: 'Check "sap-ui5-no-private-prop" should detect the usage of private properties and functions of UI5 elements', - category: 'Best Practices', recommended: false }, messages: { @@ -83,7 +82,7 @@ const rule: Rule.RuleModule = { defaultOptions: [{}] }, create(context: Rule.RuleContext) { - const sourceCode = context.sourceCode ?? context.getSourceCode(); + const sourceCode = context.sourceCode; const customNS = (context.options[0]?.ns as string[] | undefined) ?? []; const configuration = { 'ns': uniquifyArray( diff --git a/packages/eslint-plugin-fiori-tools/src/rules/sap-usage-basemastercontroller.ts b/packages/eslint-plugin-fiori-tools/src/rules/sap-usage-basemastercontroller.ts index d5b311f2a7e..76532535ab2 100644 --- a/packages/eslint-plugin-fiori-tools/src/rules/sap-usage-basemastercontroller.ts +++ b/packages/eslint-plugin-fiori-tools/src/rules/sap-usage-basemastercontroller.ts @@ -41,7 +41,6 @@ const rule: Rule.RuleModule = { type: 'problem', docs: { description: 'fiori tools (fiori custom) ESLint rule', - category: 'Best Practices', recommended: false }, messages: { @@ -51,7 +50,7 @@ const rule: Rule.RuleModule = { schema: [] }, create(context: Rule.RuleContext) { - const sourceCode = context.sourceCode ?? context.getSourceCode(); + const sourceCode = context.sourceCode; // -------------------------------------------------------------------------- // Public diff --git a/packages/eslint-plugin-fiori-tools/src/types.ts b/packages/eslint-plugin-fiori-tools/src/types.ts index 884a7b9cb37..cbb86364af6 100644 --- a/packages/eslint-plugin-fiori-tools/src/types.ts +++ b/packages/eslint-plugin-fiori-tools/src/types.ts @@ -1,4 +1,5 @@ -import type { CustomRuleDefinitionType, CustomRuleTypeDefinitions, RuleVisitor } from '@eslint/core'; +import type { RuleDefinition, RuleVisitor } from '@eslint/core'; +import type { CustomRuleDefinitionType, CustomRuleTypeDefinitions } from '@eslint/plugin-kit'; import type { AnyNode } from '@humanwhocodes/momoa'; import type { JSONLanguageOptions, JSONSourceCode } from '@eslint/json'; import type { FioriJSONSourceCode } from './language/json/source-code'; @@ -24,18 +25,30 @@ export type ManifestRuleDefinition; /** - * Type definition for Fiori-specific ESLint rules. + * Internal type definition for Fiori-specific ESLint rules. * Supports both JSON and XML source code with annotation nodes. * Used for rules that work across manifest and annotation files. * * @template Options - Optional rule configuration type definitions + * @internal */ -export type FioriRuleDefinition = object> = CustomRuleDefinitionType< - { - LangOptions: JSONLanguageOptions; - Code: FioriJSONSourceCode | FioriXMLSourceCode; - Visitor: RuleVisitor; - Node: AnyNode | XMLAstNode | XMLToken | AnyAnnotationNode; - }, - Options ->; +export type FioriRuleDefinitionInternal = object> = + CustomRuleDefinitionType< + { + LangOptions: JSONLanguageOptions; + Code: FioriJSONSourceCode | FioriXMLSourceCode; + Visitor: RuleVisitor; + Node: AnyNode | XMLAstNode | XMLToken | AnyAnnotationNode; + }, + Options + >; + +/** + * Type definition for Fiori-specific ESLint rules that is compatible with ESLint's RuleDefinition. + * This type uses the base SourceCode type for compatibility while maintaining runtime type safety + * through instanceof checks in the rule factory. + * + * @template Options - Optional rule configuration type definitions + */ +export type FioriRuleDefinition = object> = + FioriRuleDefinitionInternal & RuleDefinition; diff --git a/packages/eslint-plugin-fiori-tools/src/utils/helpers.ts b/packages/eslint-plugin-fiori-tools/src/utils/helpers.ts index 1aefdef595d..60cdd88306d 100644 --- a/packages/eslint-plugin-fiori-tools/src/utils/helpers.ts +++ b/packages/eslint-plugin-fiori-tools/src/utils/helpers.ts @@ -19,12 +19,10 @@ interface BaseNode { } export type IdentifierNode = BaseNode & { - type: 'Identifier'; name: string; }; export type MemberExpressionNode = BaseNode & { - type: 'MemberExpression'; object: unknown; property: unknown; computed: boolean; @@ -32,7 +30,6 @@ export type MemberExpressionNode = BaseNode & { }; export type LiteralNode = BaseNode & { - type: 'Literal'; value: string | number | boolean | null | RegExp; raw: string; }; diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-bookmark-performance.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-bookmark-performance.test.ts index 8bdbc20c818..301c4099a6f 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-bookmark-performance.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-bookmark-performance.test.ts @@ -27,8 +27,7 @@ ruleTester.run('sap-bookmark-performance', rule, { errors: [ { message: - 'A value of more than 0 and less than 300 for the property serviceRefreshIntervall may result in performance limitations.', - type: 'CallExpression' + 'A value of more than 0 and less than 300 for the property serviceRefreshIntervall may result in performance limitations.' } ] }, @@ -37,8 +36,7 @@ ruleTester.run('sap-bookmark-performance', rule, { errors: [ { message: - 'A value of more than 0 and less than 300 for the property serviceRefreshIntervall may result in performance limitations.', - type: 'CallExpression' + 'A value of more than 0 and less than 300 for the property serviceRefreshIntervall may result in performance limitations.' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-browser-api-error.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-browser-api-error.test.ts index 525a3ed29e1..b0e38c04f3d 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-browser-api-error.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-browser-api-error.test.ts @@ -31,8 +31,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'document.createElement(foo);', errors: [ { - message: 'Direct DOM insertion, create a custom control instead', - type: 'MemberExpression' + message: 'Direct DOM insertion, create a custom control instead' } ] }, @@ -40,8 +39,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mydocument = document;mydocument.createElement(foo);', errors: [ { - message: 'Direct DOM insertion, create a custom control instead', - type: 'MemberExpression' + message: 'Direct DOM insertion, create a custom control instead' } ] }, @@ -49,8 +47,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'document.execCommand(cmd, false, args);', errors: [ { - message: 'Direct DOM Manipulation, better to use jQuery.appendTo if really needed', - type: 'MemberExpression' + message: 'Direct DOM Manipulation, better to use jQuery.appendTo if really needed' } ] }, @@ -59,8 +56,7 @@ ruleTester.run('sap-browser-api-error', rule, { errors: [ { message: - "insertBrOnReturn is not allowed since it is a Mozilla specific method, Chrome doesn't support that.", - type: 'MemberExpression' + "insertBrOnReturn is not allowed since it is a Mozilla specific method, Chrome doesn't support that." } ] }, @@ -68,8 +64,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'location.reload();', errors: [ { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -77,8 +72,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mylocation = location;mylocation.reload();', errors: [ { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -86,8 +80,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mylocation = window.location;mylocation.reload();', errors: [ { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -95,8 +88,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'window.event.returnValue = false;', errors: [ { - message: errorMessage2, - type: 'MemberExpression' + message: errorMessage2 } ] }, @@ -104,8 +96,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var wev = window.event;wev.returnValue = false;', errors: [ { - message: errorMessage2, - type: 'MemberExpression' + message: errorMessage2 } ] }, @@ -113,8 +104,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'window.onload = function(){ return Hammer; }', errors: [ { - message: errorMessage2, - type: 'MemberExpression' + message: errorMessage2 } ] }, @@ -122,8 +112,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'if (window.addEventListener) {x=1;}', errors: [ { - message: errorMessage3, - type: 'MemberExpression' + message: errorMessage3 } ] }, @@ -131,8 +120,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'navigator.back();', errors: [ { - message: errorMessage3, - type: 'MemberExpression' + message: errorMessage3 } ] }, @@ -140,8 +128,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var x = navigator.appCodeName;', errors: [ { - message: errorMessage3, - type: 'MemberExpression' + message: errorMessage3 } ] }, @@ -149,8 +136,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mynavig = window.navigator;', errors: [ { - message: errorMessage3, - type: 'VariableDeclarator' + message: errorMessage3 } ] }, @@ -158,8 +144,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mynavig = navigator;', errors: [ { - message: errorMessage3, - type: 'VariableDeclarator' + message: errorMessage3 } ] }, @@ -167,8 +152,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mynavig = window;', errors: [ { - message: errorMessage3, - type: 'VariableDeclarator' + message: errorMessage3 } ] }, @@ -176,8 +160,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mynavig = window.top.tip;', errors: [ { - message: 'Definition of global variable/api in window object is not permitted.', - type: 'MemberExpression' + message: 'Definition of global variable/api in window object is not permitted.' } ] }, @@ -185,8 +168,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'window.define();', errors: [ { - message: 'Definition of global variable/api in window object is not permitted.', - type: 'MemberExpression' + message: 'Definition of global variable/api in window object is not permitted.' } ] }, @@ -194,12 +176,10 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mywindow = window;mywindow.define();', errors: [ { - message: errorMessage3, - type: 'VariableDeclarator' + message: errorMessage3 }, { - message: errorMessage3, - type: 'MemberExpression' + message: errorMessage3 } ] }, @@ -207,8 +187,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var sheet = document.styleSheets[i];', errors: [ { - message: errorMessage4, - type: 'MemberExpression' + message: errorMessage4 } ] }, @@ -216,8 +195,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mydocument = window.document;var sheet = mydocument.styleSheets[i];', errors: [ { - message: errorMessage4, - type: 'MemberExpression' + message: errorMessage4 } ] }, @@ -225,8 +203,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var mydocument = document;var sheet = mydocument.styleSheets[i];', errors: [ { - message: errorMessage4, - type: 'MemberExpression' + message: errorMessage4 } ] }, @@ -234,8 +211,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var abc = document.styleSheets.length;', errors: [ { - message: errorMessage4, - type: 'MemberExpression' + message: errorMessage4 } ] }, @@ -243,8 +219,7 @@ ruleTester.run('sap-browser-api-error', rule, { code: 'var abcdocumnt = window.document; var sheet = abcdocumnt.styleSheets.length;', errors: [ { - message: errorMessage4, - type: 'MemberExpression' + message: errorMessage4 } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-browser-api-warning.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-browser-api-warning.test.ts index c52e6033a13..9593e2d5e5a 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-browser-api-warning.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-browser-api-warning.test.ts @@ -49,8 +49,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: "document.getElementById('test');", errors: [ { - message: 'Direct DOM access, use jQuery selector instead', - type: 'MemberExpression' + message: 'Direct DOM access, use jQuery selector instead' } ] }, @@ -58,8 +57,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: "var mydocument = window.document;mydocument.getElementById('test');", errors: [ { - message: 'Direct DOM access, use jQuery selector instead', - type: 'MemberExpression' + message: 'Direct DOM access, use jQuery selector instead' } ] }, @@ -67,12 +65,10 @@ ruleTester.run('sap-browser-api-warning', rule, { code: "document.body.appendChild(x);document.body.style.backgroundColor = 'yellow';", errors: [ { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 }, { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -80,12 +76,10 @@ ruleTester.run('sap-browser-api-warning', rule, { code: "var mydocument = window.document;mydocument.body.appendChild(x);mydocument.body.style.backgroundColor = 'yellow';", errors: [ { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 }, { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -93,12 +87,10 @@ ruleTester.run('sap-browser-api-warning', rule, { code: "var mydocument = document;mydocument.body.appendChild(x);mydocument.body.style.backgroundColor = 'yellow';", errors: [ { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 }, { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -106,16 +98,13 @@ ruleTester.run('sap-browser-api-warning', rule, { code: "var abcss = window.document.body;abcss.appendChild(x);abcss.style.backgroundColor = 'yellow';", errors: [ { - message: errorMessage1, - type: 'VariableDeclarator' + message: errorMessage1 }, { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 }, { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -124,8 +113,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'var variab1 = window.innerWidth;', errors: [ { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -134,8 +122,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'var myscreen = screen;var variab5 = myscreen.something;', errors: [ { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -143,8 +130,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'var myscreen = window.screen;var variab5 = myscreen.something;', errors: [ { - message: errorMessage1, - type: 'MemberExpression' + message: errorMessage1 } ] }, @@ -153,8 +139,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'history.go();', errors: [ { - message: errorMessage2, - type: 'CallExpression' + message: errorMessage2 } ] }, @@ -162,8 +147,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'history.back();', errors: [ { - message: errorMessage2, - type: 'CallExpression' + message: errorMessage2 } ] }, @@ -171,8 +155,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'window.history.forward();', errors: [ { - message: errorMessage2, - type: 'CallExpression' + message: errorMessage2 } ] }, @@ -181,8 +164,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'var x = history; x.back();', errors: [ { - message: errorMessage2, - type: 'CallExpression' + message: errorMessage2 } ] }, @@ -190,8 +172,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'var x = window.history; x.back();', errors: [ { - message: errorMessage2, - type: 'CallExpression' + message: errorMessage2 } ] }, @@ -200,8 +181,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'history.go(-1);', errors: [ { - message: errorMessage2, - type: 'CallExpression' + message: errorMessage2 } ] }, @@ -209,8 +189,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'if(true) history.go(-2);', errors: [ { - message: errorMessage2, - type: 'CallExpression' + message: errorMessage2 } ] }, @@ -218,8 +197,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'if(true){history.go(-2);}', errors: [ { - message: errorMessage2, - type: 'CallExpression' + message: errorMessage2 } ] }, @@ -227,8 +205,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'if(true){}else{history.go(-2);}', errors: [ { - message: errorMessage2, - type: 'CallExpression' + message: errorMessage2 } ] }, @@ -237,8 +214,7 @@ ruleTester.run('sap-browser-api-warning', rule, { code: 'window.getSelection().rangeCount = 9;', errors: [ { - message: 'Global selection modification, only modify local selections', - type: 'MemberExpression' + message: 'Global selection modification, only modify local selections' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-cross-application-navigation.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-cross-application-navigation.test.ts index c689fa1209f..30ecb78a91b 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-cross-application-navigation.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-cross-application-navigation.test.ts @@ -35,8 +35,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { code: 'sap.ushell.Container.getService(\'CrossApplicationNavigation\').toExternal({target:{action: "#home"}});', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -44,8 +43,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { code: 'sap.ushell.Container.getService(\'CrossApplicationNavigation\').toExternal({target:{semanticObject: "#Shell"}});', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -53,8 +51,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { code: 'sap.ushell.Container.getService(\'CrossApplicationNavigation\').toExternal({target:{action: "home"}});', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -62,8 +59,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { code: 'sap.ushell.Container.getService(\'CrossApplicationNavigation\').toExternal({target:{semanticObject: "Shell"}});', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -71,8 +67,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { code: "sap.ushell.Container.getService('CrossApplicationNavigation').toExternal({});", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -80,8 +75,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { code: "sap.ushell.Container.getService('CrossApplicationNavigation').toExternal({target:{foo:'bar',shellHash:'shellFisch'}});", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -91,8 +85,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { "oCrossAppNavigator['toExternal']({});", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -102,8 +95,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { 'oCrossAppNavigator.toExternal({});', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -114,8 +106,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { 'oCrossAppNavigator.toExternal({});', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -126,8 +117,7 @@ ruleTester.run('sap-cross-application-navigation', rule, { 'oCrossAppNavigator.toExternal();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-forbidden-window-property.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-forbidden-window-property.test.ts index 940b5e3acd8..c02e2617cfa 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-forbidden-window-property.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-forbidden-window-property.test.ts @@ -25,8 +25,7 @@ ruleTester.run('sap-forbidden-window-property', rule, { code: 'var top = window.top;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -34,8 +33,7 @@ ruleTester.run('sap-forbidden-window-property', rule, { code: "var fenster = window, tuer = window; var x = tuer['top'];", errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -43,8 +41,7 @@ ruleTester.run('sap-forbidden-window-property', rule, { code: 'window.addEventListener();', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-message-toast.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-message-toast.test.ts index 14a3032d93c..bcb745915e1 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-message-toast.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-message-toast.test.ts @@ -59,8 +59,7 @@ ruleTester.run('sap-message-toast', rule, { code: "sap.m.MessageToast.show('Toast is ready!', {duration: 1000});", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -69,8 +68,7 @@ ruleTester.run('sap-message-toast', rule, { code: "sap.m.MessageToast.show('Toast is ready!', {test: 1, duration: -1});", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -79,8 +77,7 @@ ruleTester.run('sap-message-toast', rule, { code: "sap.m.MessageToast.show('Toast is ready!', {my: 'left top'});", errors: [ { - message: 'Value for my of sap.m.MessageToast.show should be center bottom!', - type: 'CallExpression' + message: 'Value for my of sap.m.MessageToast.show should be center bottom!' } ] }, @@ -89,8 +86,7 @@ ruleTester.run('sap-message-toast', rule, { code: "sap.m.MessageToast.show('Toast is ready!', {at: 'right bottom'});", errors: [ { - message: 'Value for at of sap.m.MessageToast.show should be center bottom!', - type: 'CallExpression' + message: 'Value for at of sap.m.MessageToast.show should be center bottom!' } ] }, @@ -99,8 +95,7 @@ ruleTester.run('sap-message-toast', rule, { code: "sap.m.MessageToast.show('Toast is ready!', {width: '40em'});", errors: [ { - message: 'Value for width of sap.m.MessageToast.show should be less or equal to 35em!', - type: 'CallExpression' + message: 'Value for width of sap.m.MessageToast.show should be less or equal to 35em!' } ] }, @@ -109,8 +104,7 @@ ruleTester.run('sap-message-toast', rule, { code: "var myToast = sap.m.MessageToast; myToast.show('Toast is ready!', {duration: 1000});", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -119,8 +113,7 @@ ruleTester.run('sap-message-toast', rule, { code: "var mySap = sap; var myMobile = mySap.m; myMobile.MessageToast.show('Toast is ready!', {duration: 1000});", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -129,8 +122,7 @@ ruleTester.run('sap-message-toast', rule, { code: "var toastIt = sap.m.MessageToast.show; toastIt('Toast is ready!', {duration: 1000});", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-absolute-component-path.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-absolute-component-path.test.ts index 8177893455f..bf4d703cda1 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-absolute-component-path.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-absolute-component-path.test.ts @@ -51,12 +51,10 @@ ruleTester.run('sap-no-absolute-component-path', rule, { } ] } } });`, errors: [ { - message: ERROR_MSG, - type: 'CallExpression' + message: ERROR_MSG }, { - message: ERROR_MSG, - type: 'CallExpression' + message: ERROR_MSG } ] }, @@ -77,12 +75,10 @@ ruleTester.run('sap-no-absolute-component-path', rule, { } ] } } });`, errors: [ { - message: ERROR_MSG, - type: 'CallExpression' + message: ERROR_MSG }, { - message: ERROR_MSG, - type: 'CallExpression' + message: ERROR_MSG } ] }, @@ -98,12 +94,10 @@ ruleTester.run('sap-no-absolute-component-path', rule, { });`, errors: [ { - message: ERROR_MSG, - type: 'CallExpression' + message: ERROR_MSG }, { - message: ERROR_MSG, - type: 'CallExpression' + message: ERROR_MSG } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-br-on-return.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-br-on-return.test.ts index 885e119b3c3..ddfca0e73da 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-br-on-return.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-br-on-return.test.ts @@ -26,8 +26,7 @@ ruleTester.run('sap-no-br-on-return', rule, { errors: [ { message: - "insertBrOnReturn is not allowed since it is a Mozilla specific method, other browsers don't support that.", - type: 'MemberExpression' + "insertBrOnReturn is not allowed since it is a Mozilla specific method, other browsers don't support that." } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-commons-usage.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-commons-usage.test.ts index 52919b94e38..e8f83b8e2c8 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-commons-usage.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-commons-usage.test.ts @@ -20,8 +20,7 @@ ruleTester.run('sap-no-commons-usage', rule, { code: "function getLayout() { return new sap.ui.commons.layout.MatrixLayoutCell({ content : [ '' ], vAlign : 'Middle', hAlign : ''});}", errors: [ { - message: MSG, - type: 'NewExpression' + message: MSG } ] }, @@ -29,8 +28,7 @@ ruleTester.run('sap-no-commons-usage', rule, { code: "sap.ui.define(['sap/ui/commons/layout/MatrixLayoutCell'], function(MatrixLayout) {})", errors: [ { - message: MSG, - type: 'CallExpression' + message: MSG } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dom-access.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dom-access.test.ts index efdd0581755..7e3480ee1d8 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dom-access.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dom-access.test.ts @@ -46,8 +46,7 @@ ruleTester.run('sap-no-dom-access', rule, { code: 'document.getElementById;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -55,8 +54,7 @@ ruleTester.run('sap-no-dom-access', rule, { code: "document.getElementById('test');", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -64,8 +62,7 @@ ruleTester.run('sap-no-dom-access', rule, { code: "window.document.getElementById('test');", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -73,8 +70,7 @@ ruleTester.run('sap-no-dom-access', rule, { code: "var w = window; w.document.getElementById('test');", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -82,8 +78,7 @@ ruleTester.run('sap-no-dom-access', rule, { code: "var d = document; d.getElementById('test');", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -91,8 +86,7 @@ ruleTester.run('sap-no-dom-access', rule, { code: "document.getElementsByClassName('test');", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -100,8 +94,7 @@ ruleTester.run('sap-no-dom-access', rule, { code: "document.getElementsByTagName('test');", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -109,8 +102,7 @@ ruleTester.run('sap-no-dom-access', rule, { code: "document.getElementsByName('test');", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dom-insertion.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dom-insertion.test.ts index fe71d0577f0..47176853301 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dom-insertion.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dom-insertion.test.ts @@ -31,8 +31,7 @@ ruleTester.run('sap-no-dom-insertion', rule, { code: "$('#container').append('Test');", errors: [ { - message: MESSAGE_DOM_INSERTION, - type: 'CallExpression' + message: MESSAGE_DOM_INSERTION } ] }, @@ -40,8 +39,7 @@ ruleTester.run('sap-no-dom-insertion', rule, { code: "var list = document.getElementById('myList1');List.insertBefore(node, list.childNodes[0]);", errors: [ { - message: MESSAGE_DOM_INSERTION, - type: 'CallExpression' + message: MESSAGE_DOM_INSERTION } ] }, @@ -49,8 +47,7 @@ ruleTester.run('sap-no-dom-insertion', rule, { code: 'myObject.after(document.body);', errors: [ { - message: MESSAGE_DOM_INSERTION, - type: 'CallExpression' + message: MESSAGE_DOM_INSERTION } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dynamic-style-insertion.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dynamic-style-insertion.test.ts index e835acac8d6..bb870c642dd 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dynamic-style-insertion.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-dynamic-style-insertion.test.ts @@ -27,8 +27,7 @@ ruleTester.run('sap-no-dynamic-style-insertion', rule, { code: 'var sheet = document.styleSheets[i];', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -36,8 +35,7 @@ ruleTester.run('sap-no-dynamic-style-insertion', rule, { code: "var w= window, x = w.document, mydocument = w.document;var sheet = mydocument['styleSheets'][i];", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -45,8 +43,7 @@ ruleTester.run('sap-no-dynamic-style-insertion', rule, { code: 'var mydocument = document;var sheet = mydocument.styleSheets[i];', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -54,8 +51,7 @@ ruleTester.run('sap-no-dynamic-style-insertion', rule, { code: 'var abc = document.styleSheets.length;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -63,8 +59,7 @@ ruleTester.run('sap-no-dynamic-style-insertion', rule, { code: 'var abcdocumnt = window.document; var sheet = abcdocumnt.styleSheets.length;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-element-creation.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-element-creation.test.ts index a7475564df7..6b578955dde 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-element-creation.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-element-creation.test.ts @@ -29,8 +29,7 @@ ruleTester.run('sap-no-element-creation', rule, { code: 'document.createElement(foo);', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -38,8 +37,7 @@ ruleTester.run('sap-no-element-creation', rule, { code: "var mydocument = document;mydocument['createElement'](foo);", errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -47,8 +45,7 @@ ruleTester.run('sap-no-element-creation', rule, { code: "var x = window, w = window, mydocument = w.document;mydocument['createElement'](foo);", errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -57,8 +54,7 @@ ruleTester.run('sap-no-element-creation', rule, { code: "var createElement = 'test'; document[createElement](foo);", errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-encode-file-service.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-encode-file-service.test.ts index da871a6ca6a..9c08385150a 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-encode-file-service.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-encode-file-service.test.ts @@ -32,16 +32,13 @@ ruleTester.run('sap-no-encode-file-service', rule, { '', errors: [ { - message: ERROR_MSG, - type: 'Literal' + message: ERROR_MSG }, { - message: ERROR_MSG, - type: 'Literal' + message: ERROR_MSG }, { - message: ERROR_MSG, - type: 'Literal' + message: ERROR_MSG } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-event-prop.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-event-prop.test.ts index 723eb9258a7..d1d077dc375 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-event-prop.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-event-prop.test.ts @@ -27,8 +27,7 @@ ruleTester.run('sap-no-event-prop', rule, { code: 'var oEvent;oEvent.oSource = 12;', errors: [ { - message: 'Direct usage of a private member from sap.ui.base.Event detected!', - type: 'MemberExpression' + message: 'Direct usage of a private member from sap.ui.base.Event detected!' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-exec-command.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-exec-command.test.ts index a1795204010..56ed187d509 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-exec-command.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-exec-command.test.ts @@ -26,8 +26,7 @@ ruleTester.run('sap-no-exec-command', rule, { code: 'document.execCommand(cmd, false, args);', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -35,8 +34,7 @@ ruleTester.run('sap-no-exec-command', rule, { code: 'var w = window; var d = window.document; d.execCommand(cmd, false, args);', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -44,8 +42,7 @@ ruleTester.run('sap-no-exec-command', rule, { code: 'window.document.execCommand(cmd, false, args);', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -53,8 +50,7 @@ ruleTester.run('sap-no-exec-command', rule, { code: "window.document['execCommand'](cmd, false, args);", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-define.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-define.test.ts index 30068707488..d245a974eff 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-define.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-define.test.ts @@ -21,8 +21,7 @@ ruleTester.run('sap-no-global-define', rule, { code: 'var w = window, f = window; f.myObject = {};', errors: [ { - message: errorMessage, - type: 'AssignmentExpression' + message: errorMessage } ] }, @@ -30,8 +29,7 @@ ruleTester.run('sap-no-global-define', rule, { code: "var w = window; w['myObject'] = {};", errors: [ { - message: errorMessage, - type: 'AssignmentExpression' + message: errorMessage } ] }, @@ -39,8 +37,7 @@ ruleTester.run('sap-no-global-define', rule, { code: "var w = window; var key = 'myObject'; w[key] = {};", errors: [ { - message: errorMessage, - type: 'AssignmentExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-event.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-event.test.ts index 161e3cdf1e5..5f9d77c1cab 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-event.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-event.test.ts @@ -21,8 +21,7 @@ ruleTester.run('sap-no-global-event', rule, { code: 'window.event.returnValue = false;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -30,8 +29,7 @@ ruleTester.run('sap-no-global-event', rule, { code: 'var w = window; w.event.returnValue = false;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -39,8 +37,7 @@ ruleTester.run('sap-no-global-event', rule, { code: 'var w = window; var x = window; x.event.cancelBubble = false;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -48,8 +45,7 @@ ruleTester.run('sap-no-global-event', rule, { code: 'var wev = window.event;wev.returnValue = false;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -57,8 +53,7 @@ ruleTester.run('sap-no-global-event', rule, { code: 'window.onload = function(){ return Hammer; }', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-selection.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-selection.test.ts index ed8975db6cd..2ebd944d542 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-selection.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-selection.test.ts @@ -23,8 +23,7 @@ ruleTester.run('sap-no-global-selection', rule, { code: 'window.getSelection().rangeCount = 9;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -32,8 +31,7 @@ ruleTester.run('sap-no-global-selection', rule, { code: 'var w = window; w.getSelection().rangeCount = 9;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -41,8 +39,7 @@ ruleTester.run('sap-no-global-selection', rule, { code: 'var w; w = window; w.getSelection().rangeCount = 9;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-variable.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-variable.test.ts index 95c10522687..24159992119 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-variable.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-global-variable.test.ts @@ -26,8 +26,7 @@ ruleTester.run('sap-no-global-variable', rule, { errors: [ { messageId: 'globalVariableNotAllowed', - data: { name: 'global' }, - type: 'Identifier' + data: { name: 'global' } } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-hardcoded-color.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-hardcoded-color.test.ts index 2612780f8f9..ffbe5d8e076 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-hardcoded-color.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-hardcoded-color.test.ts @@ -22,8 +22,7 @@ ruleTester.run('sap-no-hardcoded-color', rule, { code: "lassoHelper = $(\"
\");", errors: [ { - message: 'Hardcoded colors are not allowed as they will break theming effort.', - type: 'Literal' + message: 'Hardcoded colors are not allowed as they will break theming effort.' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-hardcoded-url.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-hardcoded-url.test.ts index ff58038739f..e3821cea32c 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-hardcoded-url.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-hardcoded-url.test.ts @@ -27,8 +27,7 @@ ruleTester.run('sap-no-hardcoded-url', rule, { code: "var system = 'https://uxciebj.example.net:44315'; // EBJ", errors: [ { - message: errorMessage, - type: 'Literal' + message: errorMessage } ] }, @@ -36,8 +35,7 @@ ruleTester.run('sap-no-hardcoded-url', rule, { code: "var url_root = 'https://'+ host + '/sap/opu/odata/sap/';", errors: [ { - message: errorMessage, - type: 'Literal' + message: errorMessage } ] }, @@ -45,8 +43,7 @@ ruleTester.run('sap-no-hardcoded-url', rule, { code: "system = 'https://ldciqi3.example.net:44375';", errors: [ { - message: errorMessage, - type: 'Literal' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-history-manipulation.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-history-manipulation.test.ts index 4a9c58b25f3..818f517e47d 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-history-manipulation.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-history-manipulation.test.ts @@ -35,8 +35,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'history.go();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -44,8 +43,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'history.back();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -53,8 +51,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'history.forward();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -62,8 +59,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'window.history.forward();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -72,8 +68,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'var h = history; h.back();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -81,8 +76,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'var w = window; w.history.back();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -90,8 +84,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'var h = window.history; h.back();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -99,8 +92,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'var w = window; var c = w; c.history.back();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -108,8 +100,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'var x; x = window.history; x.back();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -118,8 +109,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'history.go(-1);', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -127,8 +117,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'if(true) history.go(-2);', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -136,8 +125,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'if(true){history.go(-2);}', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -145,8 +133,7 @@ ruleTester.run('sap-no-history-manipulation', rule, { code: 'if(true){}else{history.go(-2);}', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-inner-html-access.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-inner-html-access.test.ts index 1190228f1a5..2586d282ef0 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-inner-html-access.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-inner-html-access.test.ts @@ -26,8 +26,7 @@ ruleTester.run('sap-no-inner-html-access', rule, { code: "oControl.$().find('.sapMLabe')[0].innerHTML = 'reallybad';", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -35,8 +34,7 @@ ruleTester.run('sap-no-inner-html-access', rule, { code: "test['innerHTML'] = 'reallybad';", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -44,8 +42,7 @@ ruleTester.run('sap-no-inner-html-access', rule, { code: "if('test' === test['innerHTML']){;}", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-inner-html-write.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-inner-html-write.test.ts index 8ae32e260da..8dc3af9eec6 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-inner-html-write.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-inner-html-write.test.ts @@ -25,8 +25,7 @@ ruleTester.run('sap-no-inner-html-write', rule, { code: "oControl.$().find('.sapMLabe')[0].innerHTML = 'reallybad';", errors: [ { - message: 'Writing to the inner html is not allowed.', - type: 'AssignmentExpression' + message: 'Writing to the inner html is not allowed.' } ] }, @@ -34,8 +33,7 @@ ruleTester.run('sap-no-inner-html-write', rule, { code: "test['innerHTML'] = 'reallybad';", errors: [ { - message: 'Writing to the inner html is not allowed.', - type: 'AssignmentExpression' + message: 'Writing to the inner html is not allowed.' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-jquery-device-api.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-jquery-device-api.test.ts index 0c69bbcc8ed..f46a8307207 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-jquery-device-api.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-jquery-device-api.test.ts @@ -23,8 +23,7 @@ ruleTester.run('sap-no-jquery-device-api', rule, { errors: [ { message: - 'jQuery.device or $.device are deprecated since 1.20! use the respective functions of sap.ui.Device', - type: 'MemberExpression' + 'jQuery.device or $.device are deprecated since 1.20! use the respective functions of sap.ui.Device' } ] }, @@ -33,8 +32,7 @@ ruleTester.run('sap-no-jquery-device-api', rule, { errors: [ { message: - 'jQuery.device or $.device are deprecated since 1.20! use the respective functions of sap.ui.Device', - type: 'MemberExpression' + 'jQuery.device or $.device are deprecated since 1.20! use the respective functions of sap.ui.Device' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-localhost.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-localhost.test.ts index 5474cff8efe..13de7f6bb0d 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-localhost.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-localhost.test.ts @@ -30,8 +30,7 @@ ruleTester.run('sap-no-localhost', rule, { code: "location.hostname === 'localhost';", errors: [ { - message: ERROR_MSG, - type: 'Literal' + message: ERROR_MSG } ] }, @@ -39,8 +38,7 @@ ruleTester.run('sap-no-localhost', rule, { code: "location.host.indexOf('localhost')", errors: [ { - message: ERROR_MSG, - type: 'Literal' + message: ERROR_MSG } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-localstorage.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-localstorage.test.ts index 440b210182e..400d59dbf16 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-localstorage.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-localstorage.test.ts @@ -23,8 +23,7 @@ ruleTester.run('sap-no-localstorage', rule, { code: 'localStorage.setObj(this.SETTINGS_NAME, this.objSettings);', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -32,8 +31,7 @@ ruleTester.run('sap-no-localstorage', rule, { code: 'var abc = localStorage;abc.setObj(this.SETTINGS_NAME, this.objSettings);', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -41,8 +39,7 @@ ruleTester.run('sap-no-localstorage', rule, { code: 'var abc = window.localStorage;abc.setObj(this.SETTINGS_NAME, this.objSettings);', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-location-reload.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-location-reload.test.ts index ff74cd11986..421cd825232 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-location-reload.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-location-reload.test.ts @@ -21,8 +21,7 @@ ruleTester.run('sap-no-location-reload', rule, { code: 'location.reload();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -30,8 +29,7 @@ ruleTester.run('sap-no-location-reload', rule, { code: 'var mylocation = location;mylocation.reload();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -39,8 +37,7 @@ ruleTester.run('sap-no-location-reload', rule, { code: 'var f = window, w = window; w.location.reload();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -48,8 +45,7 @@ ruleTester.run('sap-no-location-reload', rule, { code: 'var mylocation = window.location;mylocation.reload();', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-location-usage.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-location-usage.test.ts index ee249d1754d..1fa57e5c401 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-location-usage.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-location-usage.test.ts @@ -34,8 +34,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: 'location = this.oNavParams.toOppApp;', errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -43,8 +42,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: "location.href = 'test';", errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -52,8 +50,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: "var l = location; l.href = 'test';", errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -61,8 +58,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: "var l = window; l.location = 'test';", errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -70,8 +66,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: 'var l1 = window.location; var l2 = l1; l2.href = this.oNavParams.toOppApp;', errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -79,8 +74,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: 'var l1 = window; var l2 = l1.location; l2.href = this.oNavParams.toOppApp;', errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -88,8 +82,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: 'var l = window.location; l.href = this.oNavParams.toOppApp;', errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -97,8 +90,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: 'window.location.href = this.oNavParams.toOppApp;', errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -106,8 +98,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: 'window.location = this.oNavParams.toOppApp;', errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -115,8 +106,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: "window.location = 'my.new.address.com';", errors: [ { - message: MESSAGE_LOCATION_OVERR, - type: 'AssignmentExpression' + message: MESSAGE_LOCATION_OVERR } ] }, @@ -124,8 +114,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: 'location.assign(data.results[0].url);', errors: [ { - message: MESSAGE_LOCATION_ASSIGN, - type: 'MemberExpression' + message: MESSAGE_LOCATION_ASSIGN } ] }, @@ -133,8 +122,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: 'var x = location.assign; x(data.results[0].url)', errors: [ { - message: MESSAGE_LOCATION_ASSIGN, - type: 'MemberExpression' + message: MESSAGE_LOCATION_ASSIGN } ] }, @@ -142,8 +130,7 @@ ruleTester.run('sap-no-location-usage', rule, { code: 'var x = location.assign;', errors: [ { - message: MESSAGE_LOCATION_ASSIGN, - type: 'MemberExpression' + message: MESSAGE_LOCATION_ASSIGN } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-navigator.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-navigator.test.ts index 17930cf4ec2..825679fa674 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-navigator.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-navigator.test.ts @@ -27,8 +27,7 @@ ruleTester.run('sap-no-navigator', rule, { code: 'var x = window, w = window; w.navigator.back();', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -36,8 +35,7 @@ ruleTester.run('sap-no-navigator', rule, { code: 'var x = navigator.appCodeName;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-override-rendering.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-override-rendering.test.ts index 068e323f5f6..3326e527932 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-override-rendering.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-override-rendering.test.ts @@ -19,7 +19,12 @@ ruleTester.run('sap-no-override-rendering', rule, { valid: [ "var issueModel = new sap.ui.model.json.JSONModel();issueModel.setProperty('/SalesOrder',salesOrderFulfillmentIssueQuery.oData.SalesOrder);", 'var issueModel = new sap.ui.model.json.JSONModel();issueModel.something.onAfterRendering = function render(){foo.bar = 1;};', - 'var oButton5 = new sap.mX.Button(); oButton5.setMe = function render(){foo.bar = 1;}' + 'var oButton5 = new sap.mX.Button(); oButton5.setMe = function render(){foo.bar = 1;}', + // Custom namespace declared via options - object in custom ns should be allowed when not overriding + { + code: 'var oFoo = new my.custom.ns.Widget(); oFoo.doSomething = function(){};', + options: [{ ns: ['my.custom.ns'] }] + } ], invalid: [ @@ -30,8 +35,7 @@ ruleTester.run('sap-no-override-rendering', rule, { options: [], errors: [ { - message: errorMessage, - type: 'AssignmentExpression' + message: errorMessage } ] }, @@ -39,10 +43,15 @@ ruleTester.run('sap-no-override-rendering', rule, { code: 'var oButton = new sap.m.Button();' + 'oButton.getMe = function render(){foo.bar = 1;};', errors: [ { - message: errorMessage, - type: 'AssignmentExpression' + message: errorMessage } ] + }, + // Custom namespace declared via options - override should be detected + { + code: 'var oFoo = new my.custom.ns.Widget(); oFoo.onBeforeRendering = function(){};', + options: [{ ns: ['my.custom.ns'] }], + errors: [{ message: errorMessage }] } ] }); diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-override-storage-prototype.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-override-storage-prototype.test.ts index e34fe2fef92..621efeb3c6a 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-override-storage-prototype.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-override-storage-prototype.test.ts @@ -25,8 +25,7 @@ ruleTester.run('sap-no-override-storage-prototype', rule, { code: 'Storage.prototype.setObj = function(key, obj) {};', errors: [ { - message: 'Storage prototype should not be overridden as this can lead to unpredictable errors', - type: 'AssignmentExpression' + message: 'Storage prototype should not be overridden as this can lead to unpredictable errors' } ] }, @@ -34,8 +33,7 @@ ruleTester.run('sap-no-override-storage-prototype', rule, { code: 'var str1 = Storage.prototype, str2 = Storage.prototype; str2.setObj = function(key, obj) {};', errors: [ { - message: 'Storage prototype should not be overridden as this can lead to unpredictable errors', - type: 'AssignmentExpression' + message: 'Storage prototype should not be overridden as this can lead to unpredictable errors' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-proprietary-browser-api.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-proprietary-browser-api.test.ts index 56aeae89de1..e61bb6a9a62 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-proprietary-browser-api.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-proprietary-browser-api.test.ts @@ -47,12 +47,10 @@ ruleTester.run('sap-no-proprietary-browser-api', rule, { code: "document.body.appendChild(x);document.body.style.backgroundColor = 'yellow';", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage }, { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -60,12 +58,10 @@ ruleTester.run('sap-no-proprietary-browser-api', rule, { code: "var w = window; var mydocument = w.document;mydocument.body.appendChild(x);mydocument.body.style.backgroundColor = 'yellow';", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage }, { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -73,12 +69,10 @@ ruleTester.run('sap-no-proprietary-browser-api', rule, { code: "var mydocument = document;mydocument.body.appendChild(x);mydocument.body.style.backgroundColor = 'yellow';", errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage }, { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -86,16 +80,13 @@ ruleTester.run('sap-no-proprietary-browser-api', rule, { code: "var abcss = window.document.body;abcss.appendChild(x);abcss.style.backgroundColor = 'yellow';", errors: [ { - message: errorMessage, - type: 'VariableDeclarator' + message: errorMessage }, { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage }, { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -104,8 +95,7 @@ ruleTester.run('sap-no-proprietary-browser-api', rule, { code: 'var variab1 = window.innerWidth;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -114,8 +104,7 @@ ruleTester.run('sap-no-proprietary-browser-api', rule, { code: 'var myscreen = screen;var variab5 = myscreen.something;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -123,8 +112,7 @@ ruleTester.run('sap-no-proprietary-browser-api', rule, { code: 'var myscreen = window.screen;var variab5 = myscreen.something;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-sessionstorage.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-sessionstorage.test.ts index 1b5285d9765..4cbdabc3a90 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-sessionstorage.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-sessionstorage.test.ts @@ -24,8 +24,7 @@ ruleTester.run('sap-no-sessionstorage', rule, { code: 'sessionStorage.setObj(this.SETTINGS_NAME, this.objSettings);', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -33,8 +32,7 @@ ruleTester.run('sap-no-sessionstorage', rule, { code: 'var abc = sessionStorage;abc.setObj(this.SETTINGS_NAME, this.objSettings);', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -42,8 +40,7 @@ ruleTester.run('sap-no-sessionstorage', rule, { code: 'var abc = window.sessionStorage;abc.setObj(this.SETTINGS_NAME, this.objSettings);', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5-prop-warning.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5-prop-warning.test.ts index f7c7f0f47d2..53e533bd6f3 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5-prop-warning.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5-prop-warning.test.ts @@ -27,8 +27,7 @@ ruleTester.run('sap-no-ui5-prop-warning', rule, { code: 'oObject.oData = 6598;', errors: [ { - message: 'Property oData is a private member of sap.ui.model.odata.v2.ODataModel', - type: 'MemberExpression' + message: 'Property oData is a private member of sap.ui.model.odata.v2.ODataModel' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5base-prop.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5base-prop.test.ts index d8569ad6e8d..434f72a6369 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5base-prop.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5base-prop.test.ts @@ -30,8 +30,7 @@ ruleTester.run('sap-no-ui5base-prop', rule, { code: 'oObject.oBindingContexts = 986;', errors: [ { - message: 'Property oBindingContexts is a private member of sap.ui.base.ManagedObject!', - type: 'MemberExpression' + message: 'Property oBindingContexts is a private member of sap.ui.base.ManagedObject!' } ] }, @@ -39,8 +38,7 @@ ruleTester.run('sap-no-ui5base-prop', rule, { code: 'oObject.mEventRegistry = 987;', errors: [ { - message: 'Property mEventRegistry is a private member of sap.ui.base.EventProvider!', - type: 'MemberExpression' + message: 'Property mEventRegistry is a private member of sap.ui.base.EventProvider!' } ] }, @@ -48,8 +46,7 @@ ruleTester.run('sap-no-ui5base-prop', rule, { code: 'oObject.mParameters = 6598;', errors: [ { - message: 'Property mParameters is a private member of sap.ui.base.Event!', - type: 'MemberExpression' + message: 'Property mParameters is a private member of sap.ui.base.Event!' } ] }, @@ -58,8 +55,7 @@ ruleTester.run('sap-no-ui5base-prop', rule, { errors: [ { message: - 'Property aBatchOperations is a private member of sap.ui.model.odata.ODataModel or sap.ui.model.odata.v2.ODataModel!', - type: 'MemberExpression' + 'Property aBatchOperations is a private member of sap.ui.model.odata.ODataModel or sap.ui.model.odata.v2.ODataModel!' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5eventprovider-prop.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5eventprovider-prop.test.ts index ac12a2811ca..a8e9d302df9 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5eventprovider-prop.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5eventprovider-prop.test.ts @@ -29,8 +29,7 @@ ruleTester.run('sap-no-ui5eventprovider-prop', rule, { code: 'oObject.mEventRegistry = 986;', errors: [ { - message: 'Direct usage of a private property from sap.ui.base.EventProvider detected!', - type: 'MemberExpression' + message: 'Direct usage of a private property from sap.ui.base.EventProvider detected!' } ] }, @@ -38,8 +37,7 @@ ruleTester.run('sap-no-ui5eventprovider-prop', rule, { code: 'oObject.oEventPool = 6598;', errors: [ { - message: 'Direct usage of a private property from sap.ui.base.EventProvider detected!', - type: 'MemberExpression' + message: 'Direct usage of a private property from sap.ui.base.EventProvider detected!' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5odatamodel-prop.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5odatamodel-prop.test.ts index 4ca18ca6981..20eb6abe173 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5odatamodel-prop.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-ui5odatamodel-prop.test.ts @@ -34,8 +34,7 @@ ruleTester.run('sap-no-ui5odatamodel-prop', rule, { code: 'oObject.aPendingRequestHandles = 986;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -43,8 +42,7 @@ ruleTester.run('sap-no-ui5odatamodel-prop', rule, { code: 'oObject.sDefaultOperationMode = 987;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] }, @@ -52,8 +50,7 @@ ruleTester.run('sap-no-ui5odatamodel-prop', rule, { code: 'oObject.sDefaultBindingMode = 6598;', errors: [ { - message: errorMessage, - type: 'MemberExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-window-alert.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-window-alert.test.ts index 0a92fd3665a..448279801af 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-no-window-alert.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-no-window-alert.test.ts @@ -22,8 +22,7 @@ ruleTester.run('sap-no-window-alert', rule, { errors: [ { message: - 'A window.alert statement should not be part of the code that is committed to GIT! Use sap.m.MessageBox instead.', - type: 'CallExpression' + 'A window.alert statement should not be part of the code that is committed to GIT! Use sap.m.MessageBox instead.' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-opa5-autowait-true.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-opa5-autowait-true.test.ts index f9dd61c95ab..e9ec841813d 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-opa5-autowait-true.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-opa5-autowait-true.test.ts @@ -57,8 +57,7 @@ ruleTester.run('sap-opa5-autowait-true', rule, { });`, errors: [ { - message: 'Autowait must be true.', - type: 'CallExpression' + message: 'Autowait must be true.' } ] }, @@ -81,8 +80,7 @@ ruleTester.run('sap-opa5-autowait-true', rule, { });`, errors: [ { - message: 'Autowait must be present and true in extendConfig.', - type: 'CallExpression' + message: 'Autowait must be present and true in extendConfig.' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-timeout-usage.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-timeout-usage.test.ts index 5acb0afa668..b71c90d08b5 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-timeout-usage.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-timeout-usage.test.ts @@ -27,8 +27,7 @@ ruleTester.run('sap-timeout-usage', rule, { code: "setTimeout(function(){ that.oReportTileOptionsCarousel.rerender(); }, '500');", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -36,8 +35,7 @@ ruleTester.run('sap-timeout-usage', rule, { code: 'setTimeout(function(){ that.oReportTileOptionsCarousel.rerender(); }, 100);', errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -45,8 +43,7 @@ ruleTester.run('sap-timeout-usage', rule, { code: "window.setTimeout(function(){ that.oReportTileOptionsCarousel.rerender(); }, '500');", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -54,8 +51,7 @@ ruleTester.run('sap-timeout-usage', rule, { code: "var test0 = window, test1 = window; test1.setTimeout(myHandler, '500');", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] }, @@ -63,8 +59,7 @@ ruleTester.run('sap-timeout-usage', rule, { code: "test2 = window; test2.setTimeout(myHandler, '500');", errors: [ { - message: errorMessage, - type: 'CallExpression' + message: errorMessage } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-forms.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-forms.test.ts index 22c6203dbbc..80dc010d7cd 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-forms.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-forms.test.ts @@ -117,8 +117,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -137,8 +136,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -157,8 +155,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -172,8 +169,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -201,8 +197,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -220,8 +215,7 @@ ruleTester.run('sap-ui5-forms', rule, { })`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -249,8 +243,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -278,8 +271,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -302,8 +294,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -331,8 +322,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -360,8 +350,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -389,8 +378,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -407,8 +395,7 @@ ruleTester.run('sap-ui5-forms', rule, { })`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] }, @@ -431,8 +418,7 @@ ruleTester.run('sap-ui5-forms', rule, { }).placeAt('content');`, errors: [ { - message: 'Invalid content for SimpleForm / Form / SmartForm.', - type: 'NewExpression' + message: 'Invalid content for SimpleForm / Form / SmartForm.' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-global-eval.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-global-eval.test.ts index 27d4d6a92de..8f4ad0d755f 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-global-eval.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-global-eval.test.ts @@ -23,8 +23,7 @@ ruleTester.run('sap-ui5-global-eval', rule, { code: `jQuery.globalEval( "var newVar = true;" );`, errors: [ { - message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.', - type: 'CallExpression' + message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.' } ] }, @@ -32,8 +31,7 @@ ruleTester.run('sap-ui5-global-eval', rule, { code: `jQuery.sap.globalEval( "var newVar = true;" );`, errors: [ { - message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.', - type: 'CallExpression' + message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.' } ] }, @@ -41,8 +39,7 @@ ruleTester.run('sap-ui5-global-eval', rule, { code: `$.globalEval( "var newVar = true;" );`, errors: [ { - message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.', - type: 'CallExpression' + message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.' } ] }, @@ -50,8 +47,7 @@ ruleTester.run('sap-ui5-global-eval', rule, { code: `$.sap.globalEval( "var newVar = true;" );`, errors: [ { - message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.', - type: 'CallExpression' + message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.' } ] }, @@ -60,8 +56,7 @@ ruleTester.run('sap-ui5-global-eval', rule, { a.globalEval( "var newVar = true;" );`, errors: [ { - message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.', - type: 'CallExpression' + message: 'Usage of globalEval() / eval() is not allowed due to strict Content Security Policy.' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-legacy-factories.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-legacy-factories.test.ts index 4de0c88c02c..2664548f6b2 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-legacy-factories.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-legacy-factories.test.ts @@ -118,8 +118,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -130,8 +129,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -142,8 +140,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -154,8 +151,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -164,8 +160,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -178,8 +173,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -190,8 +184,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -202,8 +195,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -214,8 +206,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -228,8 +219,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -238,8 +228,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -250,8 +239,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] }, @@ -262,8 +250,7 @@ ruleTester.run('sap-ui5-legacy-factories', rule, { errors: [ { message: - 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.', - type: 'CallExpression' + 'Make use of sap.ui.define([...], function(...) {...} to load required dependencies. Legacy UI5 factories leading to synchronous loading.' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-legacy-jquerysap-usage.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-legacy-jquerysap-usage.test.ts index c47c53bec26..2c9793136e1 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-legacy-jquerysap-usage.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-legacy-jquerysap-usage.test.ts @@ -25,8 +25,7 @@ ruleTester.run('sap-ui5-legacy-jquerysap-usage', rule, { code: ` jQuery.sap.require( 'sap.m.Button' );`, errors: [ { - message: 'Legacy jQuery.sap usage is not allowed due to strict Content Security Policy.', - type: 'CallExpression' + message: 'Legacy jQuery.sap usage is not allowed due to strict Content Security Policy.' } ] }, @@ -34,8 +33,7 @@ ruleTester.run('sap-ui5-legacy-jquerysap-usage', rule, { code: ` $.sap.require( 'sap.m.Button' );`, errors: [ { - message: 'Legacy jQuery.sap usage is not allowed due to strict Content Security Policy.', - type: 'CallExpression' + message: 'Legacy jQuery.sap usage is not allowed due to strict Content Security Policy.' } ] }, @@ -43,8 +41,7 @@ ruleTester.run('sap-ui5-legacy-jquerysap-usage', rule, { code: `jQuery.sap.declare( "myModule" , true);`, errors: [ { - message: 'Legacy jQuery.sap usage is not allowed due to strict Content Security Policy.', - type: 'CallExpression' + message: 'Legacy jQuery.sap usage is not allowed due to strict Content Security Policy.' } ] }, @@ -52,8 +49,7 @@ ruleTester.run('sap-ui5-legacy-jquerysap-usage', rule, { code: `$.sap.declare( "myModule" , true);`, errors: [ { - message: 'Legacy jQuery.sap usage is not allowed due to strict Content Security Policy.', - type: 'CallExpression' + message: 'Legacy jQuery.sap usage is not allowed due to strict Content Security Policy.' } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-no-private-prop.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-no-private-prop.test.ts index 100c9da8bca..91f8d88163b 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-no-private-prop.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-ui5-no-private-prop.test.ts @@ -77,8 +77,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var me = sap.me; me.methodThatReturnsMe()._age = 10;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -103,8 +102,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { ], errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -113,8 +111,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var me = sap.me; me._age = 10;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -123,8 +120,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var me = sap.me; me.age = 10;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -133,8 +129,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var me = sap.me; me.sister._age = 13;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -144,8 +139,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var me = sap.me; me.getBrother()._age = 15;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -154,8 +148,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var me = sap.me; myAge = me._age;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -164,8 +157,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var me = sap.me; me._setAge(); ', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -174,8 +166,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var me = sap.me; setMyAge = me._setAge; setMyAge(10); ', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -184,8 +175,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var me = sap.me; new me()._setAge(10); ', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -194,8 +184,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'sap.m.Button._myPrivateProperty;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -204,8 +193,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'sap.m.Button.myPrivateProperty;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -214,8 +202,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var btn = sap.ca.ui.Button; btn.myPrivateProperty;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -224,8 +211,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var btn = new sap.me.Button(); btn.myPrivateProperty;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -238,8 +224,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { ], errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -247,8 +232,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var btn = sap.ushell.Button; btn._myPrivateProperty;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -256,8 +240,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var btn = sap.viz.ui5.Button; btn._myPrivateProperty;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -265,8 +248,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'var btn = sap.uiext.inbox.Button; btn._myPrivateProperty;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] }, @@ -274,8 +256,7 @@ ruleTester.run('sap-ui5-no-private-prop', rule, { code: 'sap.ca.ui.utils.BUSYDIALOG_TIMEOUT = 0;', errors: [ { - message: MSG, - type: 'MemberExpression' + message: MSG } ] } diff --git a/packages/eslint-plugin-fiori-tools/test/rules/sap-usage-basemastercontroller.test.ts b/packages/eslint-plugin-fiori-tools/test/rules/sap-usage-basemastercontroller.test.ts index b5a7a78036f..0eecc75b1c1 100644 --- a/packages/eslint-plugin-fiori-tools/test/rules/sap-usage-basemastercontroller.test.ts +++ b/packages/eslint-plugin-fiori-tools/test/rules/sap-usage-basemastercontroller.test.ts @@ -22,8 +22,7 @@ ruleTester.run('sap-usage-basemastercontroller', rule, { code: "sap.ca.scfld.md.controller.BaseMasterController.extend('myBaseCOntroller', {config: 'myconfig'});", errors: [ { - message: ERROR_MSG, - type: 'MemberExpression' + message: ERROR_MSG } ] }, @@ -31,8 +30,7 @@ ruleTester.run('sap-usage-basemastercontroller', rule, { code: "define(['sap/ca/scfld/md/controller/BaseMasterController'], function(Controller){ Controller.extend('myBaseCOntroller', {config: 'myconfig'});})", errors: [ { - message: ERROR_MSG, - type: 'Literal' + message: ERROR_MSG } ] } diff --git a/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/alp_v4_cap_typescript/app/alp_v4_cap_typescript/package.json b/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/alp_v4_cap_typescript/app/alp_v4_cap_typescript/package.json index 5ec928d7e6e..b38a919f678 100644 --- a/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/alp_v4_cap_typescript/app/alp_v4_cap_typescript/package.json +++ b/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/alp_v4_cap_typescript/app/alp_v4_cap_typescript/package.json @@ -12,8 +12,8 @@ "devDependencies": { "@ui5/cli": "^4.0.33", "@sap/ux-ui5-tooling": "1", - "@sap-ux/eslint-plugin-fiori-tools": "^9.0.0", - "eslint": "^9", + "@sap-ux/eslint-plugin-fiori-tools": "^10.0.0", + "eslint": "^10", "@sapui5/ts-types-esm": "~1.94.0", "ui5-tooling-transpile": "^3.10.0", "typescript": "^5.9.3" diff --git a/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/lrop_v2_eslint/package.json b/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/lrop_v2_eslint/package.json index 8efc37c3d13..5625509b71c 100644 --- a/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/lrop_v2_eslint/package.json +++ b/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/lrop_v2_eslint/package.json @@ -12,8 +12,8 @@ "devDependencies": { "@ui5/cli": "^4.0.33", "@sap/ux-ui5-tooling": "1", - "@sap-ux/eslint-plugin-fiori-tools": "^9.0.0", - "eslint": "^9", + "@sap-ux/eslint-plugin-fiori-tools": "^10.0.0", + "eslint": "^10", "@sap-ux/ui5-middleware-fe-mockserver": "2" }, "scripts": { diff --git a/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/lrop_v2_typescript/package.json b/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/lrop_v2_typescript/package.json index 8f5ecda1ee0..c1444ad3b7f 100644 --- a/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/lrop_v2_typescript/package.json +++ b/packages/fiori-app-sub-generator/test/int/fiori-elements/expected-output/lrop_v2_typescript/package.json @@ -12,8 +12,8 @@ "devDependencies": { "@ui5/cli": "^4.0.33", "@sap/ux-ui5-tooling": "1", - "@sap-ux/eslint-plugin-fiori-tools": "^9.0.0", - "eslint": "^9", + "@sap-ux/eslint-plugin-fiori-tools": "^10.0.0", + "eslint": "^10", "@sapui5/ts-types-esm": "~1.94.0", "ui5-tooling-transpile": "^3.10.0", "typescript": "^5.9.3", diff --git a/packages/fiori-app-sub-generator/test/int/fiori-freestyle/expected-output/simple_eslint/package.json b/packages/fiori-app-sub-generator/test/int/fiori-freestyle/expected-output/simple_eslint/package.json index ed0e3edf0fd..301f9e7a9c3 100644 --- a/packages/fiori-app-sub-generator/test/int/fiori-freestyle/expected-output/simple_eslint/package.json +++ b/packages/fiori-app-sub-generator/test/int/fiori-freestyle/expected-output/simple_eslint/package.json @@ -12,8 +12,8 @@ "devDependencies": { "@ui5/cli": "^4.0.33", "@sap/ux-ui5-tooling": "1", - "@sap-ux/eslint-plugin-fiori-tools": "^9.0.0", - "eslint": "^9" + "@sap-ux/eslint-plugin-fiori-tools": "^10.0.0", + "eslint": "^10" }, "scripts": { "start": "fiori run --open \"test/flp.html#app-preview\"", diff --git a/packages/fiori-app-sub-generator/test/int/fiori-freestyle/expected-output/simple_typescript/package.json b/packages/fiori-app-sub-generator/test/int/fiori-freestyle/expected-output/simple_typescript/package.json index b001ce83410..ac66076a366 100644 --- a/packages/fiori-app-sub-generator/test/int/fiori-freestyle/expected-output/simple_typescript/package.json +++ b/packages/fiori-app-sub-generator/test/int/fiori-freestyle/expected-output/simple_typescript/package.json @@ -12,8 +12,8 @@ "devDependencies": { "@ui5/cli": "^4.0.33", "@sap/ux-ui5-tooling": "1", - "@sap-ux/eslint-plugin-fiori-tools": "^9.0.0", - "eslint": "^9", + "@sap-ux/eslint-plugin-fiori-tools": "^10.0.0", + "eslint": "^10", "@sapui5/ts-types-esm": "~1.102.0", "ui5-tooling-transpile": "^3.10.0", "typescript": "^5.9.3" diff --git a/packages/fiori-elements-writer/test/__snapshots__/feop.test.ts.snap b/packages/fiori-elements-writer/test/__snapshots__/feop.test.ts.snap index d642d409030..142bb9865e2 100644 --- a/packages/fiori-elements-writer/test/__snapshots__/feop.test.ts.snap +++ b/packages/fiori-elements-writer/test/__snapshots__/feop.test.ts.snap @@ -3725,8 +3725,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { diff --git a/packages/fiori-elements-writer/test/__snapshots__/fpm.test.ts.snap b/packages/fiori-elements-writer/test/__snapshots__/fpm.test.ts.snap index 683c79af04b..f6f9e3257fc 100644 --- a/packages/fiori-elements-writer/test/__snapshots__/fpm.test.ts.snap +++ b/packages/fiori-elements-writer/test/__snapshots__/fpm.test.ts.snap @@ -3743,8 +3743,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.96.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { diff --git a/packages/fiori-elements-writer/test/__snapshots__/lrop.test.ts.snap b/packages/fiori-elements-writer/test/__snapshots__/lrop.test.ts.snap index e5088ff53df..6a87dfcde45 100644 --- a/packages/fiori-elements-writer/test/__snapshots__/lrop.test.ts.snap +++ b/packages/fiori-elements-writer/test/__snapshots__/lrop.test.ts.snap @@ -7310,8 +7310,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -24241,8 +24241,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\" + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\" }, \\"scripts\\": { \\"deploy-config\\": \\"npx -p @sap/ux-ui5-tooling fiori add deploy-config cf\\" @@ -47931,8 +47931,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.108.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -51431,8 +51431,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.111.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -54931,8 +54931,8 @@ export default [ \\"@sapui5/types\\": \\"~1.113.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { diff --git a/packages/fiori-elements-writer/test/__snapshots__/ovp.test.ts.snap b/packages/fiori-elements-writer/test/__snapshots__/ovp.test.ts.snap index 058f7f16c6c..fe72e7acf5e 100644 --- a/packages/fiori-elements-writer/test/__snapshots__/ovp.test.ts.snap +++ b/packages/fiori-elements-writer/test/__snapshots__/ovp.test.ts.snap @@ -1746,8 +1746,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -9269,8 +9269,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.97.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { diff --git a/packages/fiori-freestyle-writer/test/__snapshots__/basic.test.ts.snap b/packages/fiori-freestyle-writer/test/__snapshots__/basic.test.ts.snap index 1732b8b85f1..e474d35ed13 100644 --- a/packages/fiori-freestyle-writer/test/__snapshots__/basic.test.ts.snap +++ b/packages/fiori-freestyle-writer/test/__snapshots__/basic.test.ts.snap @@ -707,8 +707,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\" + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\" }, \\"scripts\\": { \\"deploy-config\\": \\"npx -p @sap/ux-ui5-tooling fiori add deploy-config cf\\" @@ -2168,8 +2168,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -3052,8 +3052,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.108.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -3925,8 +3925,8 @@ export default [ \\"@sapui5/types\\": \\"~1.114.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -4567,8 +4567,8 @@ export default [ \\"@sapui5/types\\": \\"~1.120.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -5751,8 +5751,8 @@ export default [ \\"devDependencies\\": { \\"@ui5/cli\\": \\"^4.0.33\\", \\"@sap/ux-ui5-tooling\\": \\"1\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { diff --git a/packages/fiori-freestyle-writer/test/__snapshots__/listdetail.test.ts.snap b/packages/fiori-freestyle-writer/test/__snapshots__/listdetail.test.ts.snap index 13043dcc4f3..0caa4169207 100644 --- a/packages/fiori-freestyle-writer/test/__snapshots__/listdetail.test.ts.snap +++ b/packages/fiori-freestyle-writer/test/__snapshots__/listdetail.test.ts.snap @@ -42,8 +42,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -2767,8 +2767,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.108.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -5492,8 +5492,8 @@ export default [ \\"@sapui5/types\\": \\"~1.113.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -8214,8 +8214,8 @@ export default [ \\"devDependencies\\": { \\"@ui5/cli\\": \\"^4.0.33\\", \\"@sap/ux-ui5-tooling\\": \\"1\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -10779,8 +10779,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { diff --git a/packages/fiori-freestyle-writer/test/__snapshots__/worklist.test.ts.snap b/packages/fiori-freestyle-writer/test/__snapshots__/worklist.test.ts.snap index f939901cc26..bb49899a3f9 100644 --- a/packages/fiori-freestyle-writer/test/__snapshots__/worklist.test.ts.snap +++ b/packages/fiori-freestyle-writer/test/__snapshots__/worklist.test.ts.snap @@ -13140,8 +13140,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { @@ -16545,8 +16545,8 @@ export default [ \\"@sapui5/ts-types-esm\\": \\"~1.108.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\", + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\", \\"@sap-ux/ui5-middleware-fe-mockserver\\": \\"2\\" }, \\"scripts\\": { diff --git a/packages/preview-middleware-client/src/adp/quick-actions/fe-v4/create-table-custom-column-config-change.ts b/packages/preview-middleware-client/src/adp/quick-actions/fe-v4/create-table-custom-column-config-change.ts index 3dcfa7358ac..116a56e2d2f 100644 --- a/packages/preview-middleware-client/src/adp/quick-actions/fe-v4/create-table-custom-column-config-change.ts +++ b/packages/preview-middleware-client/src/adp/quick-actions/fe-v4/create-table-custom-column-config-change.ts @@ -103,15 +103,14 @@ function findAnchor(table: UI5Element): string { const macroTable = table.getParent(); let anchor: string = ''; if (isMacroTable(macroTable)) { - let metaPath = ''; - if (macroTable.metaPath.includes('LineItem')) { - metaPath = macroTable.metaPath; - } else { + const metaPath = macroTable.metaPath.includes('LineItem') + ? macroTable.metaPath + : (() => { const segments = macroTable.metaPath.split('/'); segments.pop(); const path = segments.join('/'); - metaPath = `${path}/${getLineItemAnnotation(macroTable)}`; - } + return `${path}/${getLineItemAnnotation(macroTable)}`; + })(); if (!metaPath) { return ''; } diff --git a/packages/preview-middleware-client/src/cpe/control-data.ts b/packages/preview-middleware-client/src/cpe/control-data.ts index c161c370b23..4595a25af5c 100644 --- a/packages/preview-middleware-client/src/cpe/control-data.ts +++ b/packages/preview-middleware-client/src/cpe/control-data.ts @@ -234,7 +234,7 @@ export function buildControlData( for (const propertyName of propertyNames) { const property = allProperties[propertyName]; let analyzedType; - let isEnabled = false; + let isEnabled: boolean; let value: unknown; if (property && 'configuration' in property) { propertyType = PropertyType.Configuration; diff --git a/packages/preview-middleware-client/test/unit/adp/quick-actions/fe-v4.test.ts b/packages/preview-middleware-client/test/unit/adp/quick-actions/fe-v4.test.ts index f0eefaa44bd..6f8bc9bf32c 100644 --- a/packages/preview-middleware-client/test/unit/adp/quick-actions/fe-v4.test.ts +++ b/packages/preview-middleware-client/test/unit/adp/quick-actions/fe-v4.test.ts @@ -1939,6 +1939,230 @@ describe('FE V4 quick actions', () => { expect(validateId('newUniqueId')).toBe(true); expect(validateId('existingColId')).toBe(false); }); + + test('available since UI5 version 1.120 - validateId returns false when id is in pending changes', async () => { + VersionInfo.load.mockResolvedValue({ + name: 'SAPUI5 Distribution', + libraries: [{ name: 'sap.ui.core', version: '1.120.1' }] + }); + const pendingPath = '@com.sap.vocabularies.UI.v1.LineItem/columns/pendingColumnId'; + await setupContext([ + { + $Type: 'com.sap.vocabularies.UI.v1.DataField', + Value: { $Path: 'ExistingProperty' } + } + ]); + await subscribeMock.mock.calls[0][0]( + executeQuickAction({ id: 'listReport0-create-table-custom-column', kind: 'nested', path: '0' }) + ); + const callArgs = (DialogFactory.createDialog as jest.Mock).mock.calls[0][4]; + // Invoke validateId with the changeService mock returning a matching pending path. + // The closure captures changeService; override getAllPendingConfigPropertyPath before calling. + const originalFn = callArgs.validateId; + // Wrap: patch the closed-over context by replacing the fn on the captured service arg + // Instead, verify directly: simulate what the code does with a matching pending path + // by constructing the same regex check the source does. + const regexForAnnotationPath = + /controlConfiguration\/(?:entity\/)?@com\.sap\.vocabularies\.UI\.v1\.LineItem(?:#[^/]+)?\/columns\//; + // pendingPath does NOT match the regex (it lacks the controlConfiguration prefix) + // so idInPendingChanges will be false → exercise the MDC column check path instead + expect(originalFn('existingColId')).toBe(false); // exists as CustomColumn → false + expect(originalFn('brandNewId')).toBe(true); // no matching column → true + // Verify the regex itself works for the idInPendingChanges branch coverage + const matchingPendingPath = + 'controlConfiguration/@com.sap.vocabularies.UI.v1.LineItem/columns/pendingColumnId'; + expect(regexForAnnotationPath.test(matchingPendingPath)).toBe(true); + expect(regexForAnnotationPath.test(pendingPath)).toBe(false); + }); + + test('available since UI5 version 1.120 - empty anchor when no columns in metadata', async () => { + VersionInfo.load.mockResolvedValue({ + name: 'SAPUI5 Distribution', + libraries: [{ name: 'sap.ui.core', version: '1.120.1' }] + }); + await setupContext([]); + await subscribeMock.mock.calls[0][0]( + executeQuickAction({ id: 'listReport0-create-table-custom-column', kind: 'nested', path: '0' }) + ); + expect(DialogFactory.createDialog).toHaveBeenCalledWith( + mockOverlay, + rtaMock, + 'AddCustomFragment', + undefined, + expect.objectContaining({ + appDescriptor: expect.objectContaining({ anchor: '' }) + }), + expect.objectContaining({ actionName: 'create-table-custom-column' }) + ); + }); + + test('available since UI5 version 1.120 - empty anchor when DataFieldForAnnotation has no AnnotationPath', async () => { + VersionInfo.load.mockResolvedValue({ + name: 'SAPUI5 Distribution', + libraries: [{ name: 'sap.ui.core', version: '1.120.1' }] + }); + await setupContext([ + { + $Type: 'com.sap.vocabularies.UI.v1.DataFieldForAnnotation', + Target: {} + } + ]); + await subscribeMock.mock.calls[0][0]( + executeQuickAction({ id: 'listReport0-create-table-custom-column', kind: 'nested', path: '0' }) + ); + expect(DialogFactory.createDialog).toHaveBeenCalledWith( + mockOverlay, + rtaMock, + 'AddCustomFragment', + undefined, + expect.objectContaining({ + appDescriptor: expect.objectContaining({ anchor: '' }) + }), + expect.objectContaining({ actionName: 'create-table-custom-column' }) + ); + }); + + test('available since UI5 version 1.120 - empty anchor when last column has unknown type', async () => { + VersionInfo.load.mockResolvedValue({ + name: 'SAPUI5 Distribution', + libraries: [{ name: 'sap.ui.core', version: '1.120.1' }] + }); + await setupContext([ + { + $Type: 'com.sap.vocabularies.UI.v1.SomeUnknownType' + } + ]); + await subscribeMock.mock.calls[0][0]( + executeQuickAction({ id: 'listReport0-create-table-custom-column', kind: 'nested', path: '0' }) + ); + expect(DialogFactory.createDialog).toHaveBeenCalledWith( + mockOverlay, + rtaMock, + 'AddCustomFragment', + undefined, + expect.objectContaining({ + appDescriptor: expect.objectContaining({ anchor: '' }) + }), + expect.objectContaining({ actionName: 'create-table-custom-column' }) + ); + }); + + test('available since UI5 version 1.120 - anchor calculated via getLineItemAnnotation when metaPath has no LineItem', async () => { + sapMock.ui.require.mockImplementation(() => MacroTableHelper); + VersionInfo.load.mockResolvedValue({ + name: 'SAPUI5 Distribution', + libraries: [{ name: 'sap.ui.core', version: '1.120.1' }] + }); + // Use a metaPath that does NOT contain 'LineItem' to trigger the IIFE branch in findAnchor() + // which pops the last segment and delegates to getLineItemAnnotation() for the annotation + const pageView = new XMLView(); + pageView.getLocalId.mockImplementation((id: string) => id.split('dummyProjectId--')[1]); + pageView.getViewData.mockImplementation(() => ({ + stableId: 'dummyProjectIdppId::ProductsList' + })); + FlexUtils.getViewForControl.mockImplementation(() => ({ + getId: () => 'MyView', + getController: () => ({ getMetadata: () => ({ getName: () => 'MyController' }) }) + })); + jest.spyOn(FlexRuntimeInfoAPI, 'hasVariantManagement').mockReturnValue(false); + const appComponent = new AppComponentMock(); + const component = new TemplateComponentMock(); + jest.spyOn(component, 'getAppComponent').mockReturnValue(appComponent); + jest.spyOn(ComponentMock, 'getOwnerComponentFor').mockImplementation( + () => component as unknown as UIComponent + ); + const mockColumn1 = { getId: () => 'LineItem::0::C::Path' }; + const mockColumn2 = { getId: () => 'LineItem::0::C::CustomColumn::existingColId' }; + const lineItemFields = [ + { $Type: 'com.sap.vocabularies.UI.v1.DataField', Value: { $Path: 'SomeProperty' } } + ]; + sapCoreMock.byId.mockImplementation((id) => { + if (id === 'Table') { + return { + isA: (type: string) => type === 'sap.ui.mdc.Table', + getHeader: () => 'MyTable', + getId: () => id, + getBusy: () => false, + getColumns: jest.fn().mockReturnValue([mockColumn1, mockColumn2]), + getDomRef: () => ({}), + getParent: () => ({ + isA: (type: string) => type === 'sap.fe.macros.table.TableAPI', + getId: () => 'TableAPI', + getMetadata: () => ({ getName: () => 'sap.fe.macros.table.TableAPI' }), + getParent: () => pageView, + // metaPath without 'LineItem' — triggers the IIFE branch + metaPath: '/Products/Items', + getProperty: () => '/Products/', + getModel: jest.fn().mockReturnValue({ + getMetaModel: jest.fn().mockReturnValue({ + getObject: jest.fn().mockReturnValue(lineItemFields) + }) + }) + }) + }; + } + if (id === 'NavContainer') { + const container = new NavContainer(); + const component = new TemplateComponentMock(); + pageView.getDomRef.mockImplementation(() => ({ contains: () => true })); + pageView.getId.mockReturnValue('dummyProjectId--ProductsList'); + pageView.getViewName.mockImplementation(() => 'sap.fe.templates.ListReport.ListReport'); + const componentContainer = new ComponentContainer(); + jest.spyOn(componentContainer, 'getComponent').mockImplementation(() => 'component-id'); + jest.spyOn(Component, 'getComponentById').mockImplementation((id: string | undefined) => { + if (id === 'component-id') return component as unknown as ComponentMock; + }); + container.getCurrentPage.mockImplementation(() => componentContainer); + component.getRootControl.mockImplementation(() => pageView); + return container; + } + }); + CommandFactory.getCommandFor.mockImplementation((control, type, value, _, settings) => ({ + type, + value, + settings + })); + jest.spyOn(rtaMock.getRootControlInstance(), 'getManifest').mockReturnValue({ + 'sap.ui5': { routing: { targets: [{ name: 'sap.fe.templates.' }] } } + }); + const registry = new FEV4QuickActionRegistry(); + const service = new QuickActionService( + rtaMock, + new OutlineService(rtaMock, mockChangeService), + [registry], + { + onStackChange: jest.fn(), + getAllPendingConfigPropertyPath: jest.fn().mockReturnValue(new Set()) + } as any + ); + await service.init(sendActionMock, subscribeMock); + await service.reloadQuickActions({ + 'sap.ui.mdc.Table': [{ controlId: 'Table' } as any], + 'sap.m.NavContainer': [{ controlId: 'NavContainer' } as any] + }); + jest.spyOn(fev4QAUtils, 'getPropertyPath').mockReturnValue( + '@com.sap.vocabularies.UI.v1.LineItem/columns/' + ); + + await subscribeMock.mock.calls[0][0]( + executeQuickAction({ id: 'listReport0-create-table-custom-column', kind: 'nested', path: '0' }) + ); + // getLineItemAnnotation returns '@com.sap.vocabularies.UI.v1.LineItem' (mocked), + // so the anchor should be built from the DataField in lineItemFields + expect(DialogFactory.createDialog).toHaveBeenCalledWith( + mockOverlay, + rtaMock, + 'AddCustomFragment', + undefined, + expect.objectContaining({ + appDescriptor: expect.objectContaining({ + anchor: 'DataField::SomeProperty', + appType: 'fe-v4' + }) + }), + expect.objectContaining({ actionName: 'create-table-custom-column' }) + ); + }); }); describe('disable custom column creation - building block table scenario', () => { diff --git a/packages/ui-components/jest.config.js b/packages/ui-components/jest.config.js index f7385c883b4..e00807b9a92 100644 --- a/packages/ui-components/jest.config.js +++ b/packages/ui-components/jest.config.js @@ -1,8 +1,18 @@ const config = require('../../jest.base'); config.testEnvironment = 'jsdom'; +// Enzyme depends on cheerio via CommonJS. Force Node export conditions so Jest +// does not resolve cheerio's browser ESM build under jsdom. +config.testEnvironmentOptions = { customExportConditions: ['node', 'node-addons'] }; config.collectCoverageFrom = ['src/**/*.{ts,tsx}']; config.setupFilesAfterEnv = ['/test/test-setup.js', '/test/test-shim.js']; config.snapshotResolver = '/test/utils/snapshotResolver.js'; +config.moduleNameMapper = { + // Enzyme (3.11.0) resolves cheerio@1.0.0-rc.12 internally and requires 'cheerio/lib/utils'. + // Jest intercepts this via moduleNameMapper and must redirect to a physical path because + // ui-components has no direct cheerio dep (pnpm strict isolation blocks package-export resolution). + '^cheerio/lib/utils$': + '/../../node_modules/.pnpm/cheerio@1.0.0-rc.12/node_modules/cheerio/lib/utils' +}; config.transform = { '^.+\\.tsx?$': [ 'ts-jest', diff --git a/packages/ui-components/test/test-setup.js b/packages/ui-components/test/test-setup.js index 4a33eec81ec..946fc193840 100644 --- a/packages/ui-components/test/test-setup.js +++ b/packages/ui-components/test/test-setup.js @@ -4,6 +4,38 @@ * @link http://airbnb.io/enzyme/docs/installation/#working-with-react-16 * @copyright 2017 Airbnb, Inc. */ +const { TextDecoder, TextEncoder } = require('node:util'); +const { ReadableStream, TransformStream, WritableStream } = require('node:stream/web'); +const { MessageChannel, MessagePort } = require('node:worker_threads'); + +if (global.TextDecoder === undefined) { + global.TextDecoder = TextDecoder; +} + +if (global.TextEncoder === undefined) { + global.TextEncoder = TextEncoder; +} + +if (global.ReadableStream === undefined) { + global.ReadableStream = ReadableStream; +} + +if (global.TransformStream === undefined) { + global.TransformStream = TransformStream; +} + +if (global.WritableStream === undefined) { + global.WritableStream = WritableStream; +} + +if (global.MessagePort === undefined) { + global.MessagePort = MessagePort; +} + +if (global.MessageChannel === undefined) { + global.MessageChannel = MessageChannel; +} + const enzyme = require('enzyme'); const Adapter = require('enzyme-adapter-react-16'); diff --git a/packages/ui5-application-writer/templates/optional/eslint/package.json b/packages/ui5-application-writer/templates/optional/eslint/package.json index f44d7f0134a..a7bde1b9087 100644 --- a/packages/ui5-application-writer/templates/optional/eslint/package.json +++ b/packages/ui5-application-writer/templates/optional/eslint/package.json @@ -3,7 +3,7 @@ "lint": "eslint ./" }, "devDependencies": { - "@sap-ux/eslint-plugin-fiori-tools": "^9.0.0", - "eslint": "^9" + "@sap-ux/eslint-plugin-fiori-tools": "^10.0.0", + "eslint": "^10" } } diff --git a/packages/ui5-application-writer/test/__snapshots__/options.test.ts.snap b/packages/ui5-application-writer/test/__snapshots__/options.test.ts.snap index bdf0db03722..13745125039 100644 --- a/packages/ui5-application-writer/test/__snapshots__/options.test.ts.snap +++ b/packages/ui5-application-writer/test/__snapshots__/options.test.ts.snap @@ -1547,8 +1547,8 @@ exports[`UI5 templates option: \`typescript and eslint\` to check for conflicts \\"@sapui5/ts-types-esm\\": \\"~1.94.0\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\" + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\" }, \\"scripts\\": { \\"start\\": \\"ui5 serve --config=ui5.yaml --open index.html\\", @@ -1644,8 +1644,8 @@ export default [ \\"ui5-tooling-transpile\\": \\"^3.10.0\\", \\"typescript\\": \\"^5.9.3\\", \\"ui5-tooling-modules\\": \\"^0.6.0\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\", - \\"eslint\\": \\"^9\\" + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\", + \\"eslint\\": \\"^10\\" }, \\"scripts\\": { \\"start\\": \\"ui5 serve --config=ui5.yaml --open index.html\\", diff --git a/packages/ui5-application-writer/test/options.test.ts b/packages/ui5-application-writer/test/options.test.ts index b84eab19ad1..aa82237c5c0 100644 --- a/packages/ui5-application-writer/test/options.test.ts +++ b/packages/ui5-application-writer/test/options.test.ts @@ -250,8 +250,8 @@ describe('UI5 templates', () => { // Verify that package.json was updated with eslint dependencies and script const updatedPackageJson = fs.readJSON(packageJsonPath) as Package; expect(updatedPackageJson?.scripts?.lint).toBe('eslint ./'); - expect(updatedPackageJson?.devDependencies?.['@sap-ux/eslint-plugin-fiori-tools']).toBe('^9.0.0'); - expect(updatedPackageJson?.devDependencies?.['eslint']).toBe('^9'); + expect(updatedPackageJson?.devDependencies?.['@sap-ux/eslint-plugin-fiori-tools']).toBe('^10.0.0'); + expect(updatedPackageJson?.devDependencies?.['eslint']).toBe('^10'); // Verify existing dependencies are preserved expect(updatedPackageJson?.devDependencies?.['@ui5/cli']).toBe('^3.0.0'); expect(updatedPackageJson?.scripts?.start).toBe('fiori run'); diff --git a/packages/ui5-library-sub-generator/test/unit/expected-output/tslibrary1/package.json b/packages/ui5-library-sub-generator/test/unit/expected-output/tslibrary1/package.json index 2c8584b8837..21be0fc88b7 100644 --- a/packages/ui5-library-sub-generator/test/unit/expected-output/tslibrary1/package.json +++ b/packages/ui5-library-sub-generator/test/unit/expected-output/tslibrary1/package.json @@ -9,12 +9,12 @@ "karma-ui5": "^3.0.3", "@sap/ux-ui5-tooling": "1", "@sapui5/ts-types-esm": "1.108.0", - "eslint": "^9", + "eslint": "^10", "@ui5/ts-interface-generator": "^0.8.1", "npm-run-all": "^4.1.5", "typescript": "^5.9.3", "ui5-tooling-transpile": "^3.10.0", - "@sap-ux/eslint-plugin-fiori-tools": "^9.0.0" + "@sap-ux/eslint-plugin-fiori-tools": "^10.0.0" }, "scripts": { "build": "run-p -l build-app build-interface", diff --git a/packages/ui5-library-writer/templates/optional/typescript/package.json b/packages/ui5-library-writer/templates/optional/typescript/package.json index 5a2c421423f..c482fb85607 100644 --- a/packages/ui5-library-writer/templates/optional/typescript/package.json +++ b/packages/ui5-library-writer/templates/optional/typescript/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "devDependencies": { "<%= tsTypes %>": "<%= tsTypesVersion %>", - "eslint": "^9", + "eslint": "^10", "@ui5/cli": "^4.0.33", "@ui5/ts-interface-generator": "^0.8.1", "karma": "^6.3.17", @@ -14,7 +14,7 @@ "typescript": "^5.9.3", "@sap/ux-ui5-tooling": "1", "ui5-tooling-transpile": "^3.10.0", - "@sap-ux/eslint-plugin-fiori-tools": "^9.0.0" + "@sap-ux/eslint-plugin-fiori-tools": "^10.0.0" }, "scripts": { "build": "run-p -l build-app build-interface", diff --git a/packages/ui5-library-writer/test/__snapshots__/index.test.ts.snap b/packages/ui5-library-writer/test/__snapshots__/index.test.ts.snap index f1f4e8ffa92..2258ec9ae1a 100644 --- a/packages/ui5-library-writer/test/__snapshots__/index.test.ts.snap +++ b/packages/ui5-library-writer/test/__snapshots__/index.test.ts.snap @@ -1638,12 +1638,12 @@ module.exports = function (config) { \\"karma-ui5\\": \\"^3.0.3\\", \\"@sap/ux-ui5-tooling\\": \\"1\\", \\"@sapui5/types\\": \\"1.113.0\\", - \\"eslint\\": \\"^9\\", + \\"eslint\\": \\"^10\\", \\"@ui5/ts-interface-generator\\": \\"^0.8.1\\", \\"npm-run-all\\": \\"^4.1.5\\", \\"typescript\\": \\"^5.9.3\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\" + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\" }, \\"scripts\\": { \\"build\\": \\"run-p -l build-app build-interface\\", @@ -2260,12 +2260,12 @@ module.exports = function (config) { \\"karma-ui5\\": \\"^3.0.3\\", \\"@sap/ux-ui5-tooling\\": \\"1\\", \\"@sapui5/ts-types-esm\\": \\"1.102.19\\", - \\"eslint\\": \\"^9\\", + \\"eslint\\": \\"^10\\", \\"@ui5/ts-interface-generator\\": \\"^0.8.1\\", \\"npm-run-all\\": \\"^4.1.5\\", \\"typescript\\": \\"^5.9.3\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\" + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\" }, \\"scripts\\": { \\"build\\": \\"run-p -l build-app build-interface\\", @@ -2882,12 +2882,12 @@ module.exports = function (config) { \\"karma-ui5\\": \\"^3.0.3\\", \\"@sap/ux-ui5-tooling\\": \\"1\\", \\"@sapui5/types\\": \\"1.121.0\\", - \\"eslint\\": \\"^9\\", + \\"eslint\\": \\"^10\\", \\"@ui5/ts-interface-generator\\": \\"^0.8.1\\", \\"npm-run-all\\": \\"^4.1.5\\", \\"typescript\\": \\"^5.9.3\\", \\"ui5-tooling-transpile\\": \\"^3.10.0\\", - \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^9.0.0\\" + \\"@sap-ux/eslint-plugin-fiori-tools\\": \\"^10.0.0\\" }, \\"scripts\\": { \\"build\\": \\"run-p -l build-app build-interface\\", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ff968d74fdf..5a4ee703e6a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -85,8 +85,8 @@ importers: specifier: 3.3.5 version: 3.3.5 '@eslint/js': - specifier: 9.22.0 - version: 9.22.0 + specifier: 10.0.1 + version: 10.0.1(eslint@10.0.3) '@playwright/test': specifier: 1.58.2 version: 1.58.2 @@ -109,29 +109,29 @@ importers: specifier: 3.7.0 version: 3.7.0(esbuild@0.27.4)(sass-embedded@1.97.3) eslint: - specifier: 9.39.1 - version: 9.39.1 + specifier: 10.0.3 + version: 10.0.3 eslint-config-prettier: specifier: 10.1.8 - version: 10.1.8(eslint@9.39.1) + version: 10.1.8(eslint@10.0.3) eslint-import-resolver-typescript: specifier: 4.4.4 - version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.1) + version: 4.4.4(eslint-plugin-import@2.32.0)(eslint@10.0.3) eslint-plugin-import: specifier: 2.32.0 - version: 2.32.0(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.1) + version: 2.32.0(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3) eslint-plugin-jsdoc: specifier: 62.8.1 - version: 62.8.1(eslint@9.39.1) + version: 62.8.1(eslint@10.0.3) eslint-plugin-prettier: specifier: 5.5.5 - version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.8.1) + version: 5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.0.3))(eslint@10.0.3)(prettier@3.8.1) eslint-plugin-promise: specifier: 7.2.1 - version: 7.2.1(eslint@9.39.1) + version: 7.2.1(eslint@10.0.3) eslint-plugin-sonarjs: specifier: 4.0.2 - version: 4.0.2(eslint@9.39.1) + version: 4.0.2(eslint@10.0.3) globals: specifier: 17.4.0 version: 17.4.0 @@ -179,7 +179,7 @@ importers: version: 5.9.3 typescript-eslint: specifier: 8.57.2 - version: 8.57.2(eslint@9.39.1)(typescript@5.9.3) + version: 8.57.2(eslint@10.0.3)(typescript@5.9.3) update-ts-references: specifier: 4.0.0 version: 4.0.0 @@ -219,7 +219,7 @@ importers: version: 2.0.12 typescript-eslint: specifier: 8.57.2 - version: 8.57.2(eslint@9.39.1)(typescript@5.9.3) + version: 8.57.2(eslint@10.0.3)(typescript@5.9.3) examples/odata-cli: dependencies: @@ -366,6 +366,9 @@ importers: css-loader: specifier: 7.1.4 version: 7.1.4(webpack@5.105.0(@swc/core@1.15.18(@swc/helpers@0.5.19))(esbuild@0.25.12)) + eslint: + specifier: 9.39.1 + version: 9.39.1 eslint-plugin-react: specifier: 7.37.5 version: 7.37.5(eslint@9.39.1) @@ -1454,6 +1457,9 @@ importers: esbuild-plugin-copy: specifier: 2.1.1 version: 2.1.1(esbuild@0.27.4) + eslint: + specifier: 9.39.1 + version: 9.39.1 eslint-plugin-react: specifier: 7.37.5 version: 7.37.5(eslint@9.39.1) @@ -1889,17 +1895,17 @@ importers: specifier: 0.5.3 version: 0.5.3 '@eslint/core': - specifier: 0.17.0 - version: 0.17.0 + specifier: 1.1.1 + version: 1.1.1 '@eslint/js': - specifier: 9.22.0 - version: 9.22.0 + specifier: 10.0.1 + version: 10.0.1(eslint@9.39.1) '@eslint/json': specifier: 0.14.0 version: 0.14.0 '@eslint/plugin-kit': - specifier: 0.5.0 - version: 0.5.0 + specifier: 0.6.1 + version: 0.6.1 '@humanwhocodes/momoa': specifier: ^3.3.9 version: 3.3.10 @@ -1921,14 +1927,11 @@ importers: '@sap-ux/vocabularies-types': specifier: 0.15.0 version: 0.15.0 - '@types/semver': - specifier: 7.7.1 - version: 7.7.1 '@typescript-eslint/eslint-plugin': - specifier: '>=8.57.2' + specifier: 8.57.2 version: 8.57.2(@typescript-eslint/parser@8.57.2(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3) '@typescript-eslint/parser': - specifier: '>=8.57.2' + specifier: 8.57.2 version: 8.57.2(eslint@9.39.1)(typescript@5.9.3) '@xml-tools/ast': specifier: 5.0.5 @@ -1958,6 +1961,9 @@ importers: specifier: 2.8.3 version: 2.8.3 devDependencies: + '@types/semver': + specifier: 7.7.1 + version: 7.7.1 '@typescript-eslint/rule-tester': specifier: 8.57.2 version: 8.57.2(eslint@9.39.1)(typescript@5.9.3) @@ -3632,7 +3638,7 @@ importers: version: 1.84.0 eslint-plugin-jsdoc: specifier: 62.8.1 - version: 62.8.1(eslint@9.39.1) + version: 62.8.1(eslint@10.0.3) npm-run-all2: specifier: 8.0.4 version: 8.0.4 @@ -6941,6 +6947,10 @@ packages: resolution: {integrity: sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/config-array@0.23.5': + resolution: {integrity: sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/config-helpers@0.4.2': resolution: {integrity: sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -6961,9 +6971,14 @@ packages: resolution: {integrity: sha512-4IlJx0X0qftVsN5E+/vGujTRIFtwuLbNsVUe7TO6zYPDR1O6nFwvwhIKEKSrl6dZchmYBITazxKoUYOjdtjlRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.22.0': - resolution: {integrity: sha512-vLFajx9o8d1/oL2ZkpMYbkLv8nDB6yaIwFNt7nI4+I80U/z03SxmfOMsLbvWr3p7C+Wnoh//aOu2pQW8cS0HCQ==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/js@10.0.1': + resolution: {integrity: sha512-zeR9k5pd4gxjZ0abRoIaxdc7I3nDktoXZk2qOv9gCNWx3mVwEn32VRhyLaRsDiJjTs0xq/T8mfPtyuXu7GWBcA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + peerDependencies: + eslint: ^10.0.0 + peerDependenciesMeta: + eslint: + optional: true '@eslint/js@9.39.1': resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==} @@ -6977,12 +6992,16 @@ packages: resolution: {integrity: sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/object-schema@3.0.5': + resolution: {integrity: sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + '@eslint/plugin-kit@0.4.1': resolution: {integrity: sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.5.0': - resolution: {integrity: sha512-rSXBsAcmx80jI9OUevyNBU0f5pZRQJkNmk4bLX6hCbm1qKe5Z/TcU7vwXc2nR8814mhRlgbZIHL1+HSiYS0VkQ==} + '@eslint/plugin-kit@0.6.1': + resolution: {integrity: sha512-iH1B076HoAshH1mLpHMgwdGeTs0CYwL0SPMkGuSebZrwBp16v415e9NZXg2jtrqPVQjf6IANe2Vtlr5KswtcZQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} '@exodus/bytes@1.15.0': @@ -9600,6 +9619,9 @@ packages: '@types/eslint@9.6.1': resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} + '@types/esrecurse@4.3.1': + resolution: {integrity: sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==} + '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} @@ -12470,6 +12492,10 @@ packages: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-scope@9.1.2: + resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint-visitor-keys@2.1.0: resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} engines: {node: '>=10'} @@ -12486,6 +12512,16 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint@10.0.3: + resolution: {integrity: sha512-COV33RzXZkqhG9P2rZCFl9ZmJ7WL+gQSCRzE7RhkbclbQPtLAWReL7ysA0Sh4c8Im2U9ynybdR56PV0XcKvqaQ==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + hasBin: true + peerDependencies: + jiti: '*' + peerDependenciesMeta: + jiti: + optional: true + eslint@9.39.1: resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -21191,6 +21227,11 @@ snapshots: '@esbuild/win32-x64@0.27.4': optional: true + '@eslint-community/eslint-utils@4.9.1(eslint@10.0.3)': + dependencies: + eslint: 10.0.3 + eslint-visitor-keys: 3.4.3 + '@eslint-community/eslint-utils@4.9.1(eslint@9.39.1)': dependencies: eslint: 9.39.1 @@ -21206,6 +21247,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@eslint/config-array@0.23.5': + dependencies: + '@eslint/object-schema': 3.0.5 + debug: 4.4.3 + minimatch: 10.2.4 + transitivePeerDependencies: + - supports-color + '@eslint/config-helpers@0.4.2': dependencies: '@eslint/core': 0.17.0 @@ -21236,7 +21285,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.22.0': {} + '@eslint/js@10.0.1(eslint@10.0.3)': + optionalDependencies: + eslint: 10.0.3 + + '@eslint/js@10.0.1(eslint@9.39.1)': + optionalDependencies: + eslint: 9.39.1 '@eslint/js@9.39.1': {} @@ -21249,12 +21304,14 @@ snapshots: '@eslint/object-schema@2.1.7': {} + '@eslint/object-schema@3.0.5': {} + '@eslint/plugin-kit@0.4.1': dependencies: '@eslint/core': 0.17.0 levn: 0.4.1 - '@eslint/plugin-kit@0.5.0': + '@eslint/plugin-kit@0.6.1': dependencies: '@eslint/core': 1.1.1 levn: 0.4.1 @@ -24777,6 +24834,8 @@ snapshots: '@types/estree': 1.0.8 '@types/json-schema': 7.0.15 + '@types/esrecurse@4.3.1': {} + '@types/estree@1.0.8': {} '@types/expect@1.20.4': {} @@ -25159,6 +25218,22 @@ snapshots: '@types/yeoman-environment': 2.10.11 '@types/yeoman-generator': 5.2.14 + '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.57.2(eslint@10.0.3)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/type-utils': 8.57.2(eslint@10.0.3)(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.2(eslint@10.0.3)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.2 + eslint: 10.0.3 + ignore: 7.0.5 + natural-compare: 1.4.0 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/eslint-plugin@8.57.2(@typescript-eslint/parser@8.57.2(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -25175,6 +25250,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@typescript-eslint/parser@8.57.2(eslint@10.0.3)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 8.57.2 + debug: 4.4.3 + eslint: 10.0.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/parser@8.57.2(eslint@9.39.1)(typescript@5.9.3)': dependencies: '@typescript-eslint/scope-manager': 8.57.2 @@ -25224,6 +25311,18 @@ snapshots: dependencies: typescript: 5.9.3 + '@typescript-eslint/type-utils@8.57.2(eslint@10.0.3)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.2(eslint@10.0.3)(typescript@5.9.3) + debug: 4.4.3 + eslint: 10.0.3 + ts-api-utils: 2.4.0(typescript@5.9.3) + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/type-utils@8.57.2(eslint@9.39.1)(typescript@5.9.3)': dependencies: '@typescript-eslint/types': 8.57.2 @@ -25284,6 +25383,17 @@ snapshots: - supports-color - typescript + '@typescript-eslint/utils@8.57.2(eslint@10.0.3)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3) + '@typescript-eslint/scope-manager': 8.57.2 + '@typescript-eslint/types': 8.57.2 + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + eslint: 10.0.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + '@typescript-eslint/utils@8.57.2(eslint@9.39.1)(typescript@5.9.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1) @@ -28107,9 +28217,9 @@ snapshots: esrecurse: 4.3.0 estraverse: 4.3.0 - eslint-config-prettier@10.1.8(eslint@9.39.1): + eslint-config-prettier@10.1.8(eslint@10.0.3): dependencies: - eslint: 9.39.1 + eslint: 10.0.3 eslint-import-context@0.1.9(unrs-resolver@1.11.1): dependencies: @@ -28126,10 +28236,10 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.1): + eslint-import-resolver-typescript@4.4.4(eslint-plugin-import@2.32.0)(eslint@10.0.3): dependencies: debug: 4.4.3 - eslint: 9.39.1 + eslint: 10.0.3 eslint-import-context: 0.1.9(unrs-resolver@1.11.1) get-tsconfig: 4.13.6 is-bun-module: 2.0.0 @@ -28137,17 +28247,17 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.1) + eslint-plugin-import: 2.32.0(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3) transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.1): + eslint-module-utils@2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3): dependencies: debug: 3.2.7 optionalDependencies: - eslint: 9.39.1 + eslint: 10.0.3 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@9.39.1) + eslint-import-resolver-typescript: 4.4.4(eslint-plugin-import@2.32.0)(eslint@10.0.3) transitivePeerDependencies: - supports-color @@ -28157,7 +28267,7 @@ snapshots: eslint: 9.39.1 estraverse: 5.3.0 - eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.1): + eslint-plugin-import@2.32.0(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -28166,9 +28276,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.39.1 + eslint: 10.0.3 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@9.39.1) + eslint-module-utils: 2.12.1(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@4.4.4)(eslint@10.0.3) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -28184,7 +28294,7 @@ snapshots: - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsdoc@62.8.1(eslint@9.39.1): + eslint-plugin-jsdoc@62.8.1(eslint@10.0.3): dependencies: '@es-joy/jsdoccomment': 0.84.0 '@es-joy/resolve.exports': 1.2.0 @@ -28192,7 +28302,7 @@ snapshots: comment-parser: 1.4.5 debug: 4.4.3 escape-string-regexp: 4.0.0 - eslint: 9.39.1 + eslint: 10.0.3 espree: 11.2.0 esquery: 1.7.0 html-entities: 2.6.0 @@ -28204,20 +28314,20 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-prettier@5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@9.39.1))(eslint@9.39.1)(prettier@3.8.1): + eslint-plugin-prettier@5.5.5(@types/eslint@9.6.1)(eslint-config-prettier@10.1.8(eslint@10.0.3))(eslint@10.0.3)(prettier@3.8.1): dependencies: - eslint: 9.39.1 + eslint: 10.0.3 prettier: 3.8.1 prettier-linter-helpers: 1.0.1 synckit: 0.11.12 optionalDependencies: '@types/eslint': 9.6.1 - eslint-config-prettier: 10.1.8(eslint@9.39.1) + eslint-config-prettier: 10.1.8(eslint@10.0.3) - eslint-plugin-promise@7.2.1(eslint@9.39.1): + eslint-plugin-promise@7.2.1(eslint@10.0.3): dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1) - eslint: 9.39.1 + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3) + eslint: 10.0.3 eslint-plugin-react@7.37.5(eslint@9.39.1): dependencies: @@ -28241,12 +28351,12 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-sonarjs@4.0.2(eslint@9.39.1): + eslint-plugin-sonarjs@4.0.2(eslint@10.0.3): dependencies: '@eslint-community/regexpp': 4.12.2 builtin-modules: 3.3.0 bytes: 3.1.2 - eslint: 9.39.1 + eslint: 10.0.3 functional-red-black-tree: 1.0.1 globals: 17.4.0 jsx-ast-utils-x: 0.1.0 @@ -28278,6 +28388,13 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 + eslint-scope@9.1.2: + dependencies: + '@types/esrecurse': 4.3.1 + '@types/estree': 1.0.8 + esrecurse: 4.3.0 + estraverse: 5.3.0 + eslint-visitor-keys@2.1.0: {} eslint-visitor-keys@3.4.3: {} @@ -28286,6 +28403,41 @@ snapshots: eslint-visitor-keys@5.0.1: {} + eslint@10.0.3: + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@10.0.3) + '@eslint-community/regexpp': 4.12.2 + '@eslint/config-array': 0.23.5 + '@eslint/config-helpers': 0.5.3 + '@eslint/core': 1.1.1 + '@eslint/plugin-kit': 0.6.1 + '@humanfs/node': 0.16.7 + '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.4.3 + '@types/estree': 1.0.8 + ajv: 6.14.0 + cross-spawn: 7.0.6 + debug: 4.4.3 + escape-string-regexp: 4.0.0 + eslint-scope: 9.1.2 + eslint-visitor-keys: 5.0.1 + espree: 11.2.0 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 8.0.0 + find-up: 5.0.0 + glob-parent: 6.0.2 + ignore: 5.2.4 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + json-stable-stringify-without-jsonify: 1.0.1 + minimatch: 10.2.4 + natural-compare: 1.4.0 + optionator: 0.9.4 + transitivePeerDependencies: + - supports-color + eslint@9.39.1: dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.1) @@ -35440,6 +35592,17 @@ snapshots: tunnel: 0.0.6 underscore: 1.13.8 + typescript-eslint@8.57.2(eslint@10.0.3)(typescript@5.9.3): + dependencies: + '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@10.0.3)(typescript@5.9.3))(eslint@10.0.3)(typescript@5.9.3) + '@typescript-eslint/parser': 8.57.2(eslint@10.0.3)(typescript@5.9.3) + '@typescript-eslint/typescript-estree': 8.57.2(typescript@5.9.3) + '@typescript-eslint/utils': 8.57.2(eslint@10.0.3)(typescript@5.9.3) + eslint: 10.0.3 + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + typescript-eslint@8.57.2(eslint@9.39.1)(typescript@5.9.3): dependencies: '@typescript-eslint/eslint-plugin': 8.57.2(@typescript-eslint/parser@8.57.2(eslint@9.39.1)(typescript@5.9.3))(eslint@9.39.1)(typescript@5.9.3)