diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index b7ef713b0fe..00000000000
--- a/.eslintignore
+++ /dev/null
@@ -1,28 +0,0 @@
-# build results for base package
-packages/base/dist
-packages/base/types
-
-# build results for charts package
-packages/charts/dist
-
-# build results for cli package
-packages/cli/dist
-
-# build results for compat package
-packages/compat/dist
-
-# build results for main package
-packages/main/dist
-packages/main/wrappers
-
-# i18n defaults
-packages/main/src/i18n/i18n-defaults.ts
-
-# build result for cypress-commands package
-packages/cypress-commands/dist
-
-scripts
-shared
-examples
-templates
-
diff --git a/.eslintrc.yml b/.eslintrc.yml
deleted file mode 100644
index dca77eab197..00000000000
--- a/.eslintrc.yml
+++ /dev/null
@@ -1,142 +0,0 @@
----
-root: true
-parser: '@typescript-eslint/parser'
-parserOptions:
- sourceType: module
- ecmaFeatures:
- jsx: true
-env:
- browser: true
- es2022: true
-extends:
- - plugin:react/recommended
- - plugin:react/jsx-runtime
- - plugin:react-hooks/recommended
- - plugin:import/recommended
- - plugin:prettier/recommended
-plugins:
- - prefer-arrow
-settings:
- react:
- version: detect
-rules:
- camelcase:
- - 'error'
- - allow:
- - sap_fiori_3
- - sap_fiori_3_dark
- - sap_fiori_3_hcb
- - sap_fiori_3_hcw
- - sap_belize
- - sap_belize_hcb
- - sap_belize_hcw
- - sap_horizon
- - sap_horizon_dark
- - sap_horizon_hcb
- - sap_horizon_hcw
- import/order:
- - 'error'
- - newlines-between: never
- alphabetize:
- order: asc
- caseInsensitive: true
- import/no-duplicates: 'error'
- import/no-unresolved: 'off'
-overrides:
- # add config for all TypeScript files
- - files:
- - '*.ts'
- - '*.tsx'
- parserOptions:
- projectService:
- # TODO https://github.com/typescript-eslint/typescript-eslint/issues/9450
- maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING: 1000
- plugins:
- - '@typescript-eslint'
- extends:
- - 'plugin:@typescript-eslint/recommended'
- - 'plugin:@typescript-eslint/recommended-requiring-type-checking'
- - 'plugin:import/typescript'
- settings:
- import/resolver:
- typescript: true
- rules:
- # disabled some rules from the recommended preset
- '@typescript-eslint/no-empty-function': 'off'
- '@typescript-eslint/no-unsafe-member-access': 'off'
- '@typescript-eslint/no-unsafe-argument': 'off'
- '@typescript-eslint/no-unsafe-return': 'off'
- '@typescript-eslint/no-unsafe-assignment': 'off'
- '@typescript-eslint/no-unsafe-call': 'off'
- '@typescript-eslint/restrict-plus-operands': 'off'
- '@typescript-eslint/restrict-template-expressions': 'off'
-
- '@typescript-eslint/no-explicit-any': 'warn'
-
- # consistent type exports/imports
- '@typescript-eslint/consistent-type-exports':
- - 'error'
- - fixMixedExportsWithInlineTypeSpecifier: false
- '@typescript-eslint/consistent-type-imports':
- - 'error'
- - prefer: 'type-imports'
- fixStyle: 'separate-type-imports'
-
- # lots of UI5 Web Components API are promised based but 'fire and forget' is sufficient for us
- '@typescript-eslint/no-floating-promises': 'warn'
-
- '@typescript-eslint/no-unused-vars':
- - 'error'
- - varsIgnorePattern: '^_'
- argsIgnorePattern: '^_'
- caughtErrorsIgnorePattern: '^_'
-
- # Performance Improvements: https://typescript-eslint.io/linting/troubleshooting/performance-troubleshooting#eslint-plugin-import
- 'import/named': 'off'
- 'import/namespace': 'off'
- 'import/default': 'off'
- 'import/no-named-as-default-member': 'off'
-
- # Generated Web Component Wrappers might contain empty interfaces
- - files:
- - 'packages/main/src/webComponents/*/index.tsx'
- - 'packages/compat/src/components/TableCell/index.tsx'
- - 'packages/compat/src/components/TableGroupRow/index.tsx'
- rules:
- '@typescript-eslint/no-empty-object-type': 'off'
-
- # disable prop types check for Analytical Table Defaults (TODO might change for react-table v8)
- - files:
- - 'packages/main/src/components/AnalyticalTable/defaults/**/*.tsx'
- - 'packages/main/src/components/AnalyticalTable/hooks/*.ts'
- - 'packages/main/src/components/AnalyticalTable/hooks/*.tsx'
- - 'packages/main/src/components/AnalyticalTable/TableBody/VirtualTableBodyContainer.tsx'
- rules:
- 'react/prop-types': 'off'
-
- - files:
- - 'cypress/**/*'
- rules:
- '@typescript-eslint/no-namespace': 'off'
-
- - files:
- - '*.cy.ts'
- - '*.cy.tsx'
- plugins:
- - no-only-tests
- rules:
- '@typescript-eslint/no-empty-function': 'off'
- 'import/order': 'warn'
- 'react/no-unescaped-entities': 'off'
- '@typescript-eslint/unbound-method': 'warn'
- 'react/display-name': 'off'
- no-only-tests/no-only-tests: 'error'
-
- - files:
- - '*.stories.tsx'
- extends:
- - 'plugin:storybook/recommended'
- rules:
- 'react/prop-types': 'off' # inline custom components within stories don't need prop types
- '@typescript-eslint/no-unused-vars': 'warn' # some samples can include unused vars to show the API / signature
- 'react/no-unescaped-entities': 'off'
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 00000000000..1596f129e1b
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,231 @@
+// @ts-check
+
+import eslint from '@eslint/js';
+import importPlugin from 'eslint-plugin-import';
+import noOnlyTests from 'eslint-plugin-no-only-tests';
+import prettierPlugin from 'eslint-plugin-prettier/recommended';
+import reactPlugin from 'eslint-plugin-react';
+import reactHooksPlugin from 'eslint-plugin-react-hooks';
+import storybookPlugin from 'eslint-plugin-storybook';
+import globals from 'globals';
+import tseslint from 'typescript-eslint';
+
+const ignorePatterns = {
+ ignores: [
+ 'packages/base/dist',
+ 'packages/base/types',
+ 'packages/charts/dist',
+ 'packages/cli/dist',
+ 'packages/compat/dist',
+ 'packages/main/dist',
+ 'packages/main/wrappers',
+ 'packages/main/src/i18n/i18n-defaults.ts',
+ 'packages/main/src/generated',
+ 'packages/cypress-commands/dist',
+ '**/scripts',
+ '**/shared',
+ '**/examples',
+ '**/templates'
+ ]
+};
+const config = tseslint.config(
+ ignorePatterns,
+ eslint.configs.recommended,
+ // typescript-eslint shared configs
+ ...tseslint.configs.recommended,
+ ...tseslint.configs.recommendedTypeChecked,
+ // import plugin
+ importPlugin.flatConfigs.recommended,
+ importPlugin.flatConfigs.typescript,
+ // eslint-plugin-react
+ reactPlugin.configs.flat.recommended, // This is not a plugin object, but a shareable config object
+ reactPlugin.configs.flat['jsx-runtime'], // Add this if you are using React 17+
+ // eslint-plugin-react-hooks
+ {
+ plugins: {
+ 'react-hooks': reactHooksPlugin
+ },
+ rules: reactHooksPlugin.configs.recommended.rules
+ },
+ {
+ languageOptions: {
+ globals: {
+ ...globals.browser
+ },
+
+ ecmaVersion: 'latest',
+ sourceType: 'module',
+
+ parserOptions: {
+ projectService: {
+ allowDefaultProject: ['packages/*/postcss.config.mjs'],
+ // eslint-disable-next-line camelcase
+ maximumDefaultProjectFileMatchCount_THIS_WILL_SLOW_DOWN_LINTING: 1000
+ }
+ }
+ },
+
+ settings: {
+ react: {
+ version: 'detect'
+ }
+ },
+
+ rules: {
+ camelcase: [
+ 'error',
+ {
+ allow: [
+ 'sap_fiori_3',
+ 'sap_fiori_3_dark',
+ 'sap_fiori_3_hcb',
+ 'sap_fiori_3_hcw',
+ 'sap_belize',
+ 'sap_belize_hcb',
+ 'sap_belize_hcw',
+ 'sap_horizon',
+ 'sap_horizon_dark',
+ 'sap_horizon_hcb',
+ 'sap_horizon_hcw'
+ ]
+ }
+ ],
+
+ 'import/order': [
+ 'error',
+ {
+ 'newlines-between': 'never',
+
+ alphabetize: {
+ order: 'asc',
+ caseInsensitive: true
+ }
+ }
+ ],
+
+ 'import/no-duplicates': 'error',
+ 'import/no-unresolved': 'off',
+
+ // recommended eslint rules
+ 'no-extra-boolean-cast': 'warn'
+ }
+ },
+ {
+ files: ['**/*.ts', '**/*.tsx'],
+
+ settings: {
+ 'import/resolver': {
+ typescript: true
+ }
+ },
+
+ rules: {
+ '@typescript-eslint/no-empty-function': 'off',
+ '@typescript-eslint/no-unsafe-member-access': 'off',
+ '@typescript-eslint/no-unsafe-argument': 'off',
+ '@typescript-eslint/no-unsafe-return': 'off',
+ '@typescript-eslint/no-unsafe-assignment': 'off',
+ '@typescript-eslint/no-unsafe-call': 'off',
+ '@typescript-eslint/restrict-plus-operands': 'off',
+ '@typescript-eslint/restrict-template-expressions': 'off',
+ '@typescript-eslint/no-explicit-any': 'warn',
+
+ '@typescript-eslint/consistent-type-exports': [
+ 'error',
+ {
+ fixMixedExportsWithInlineTypeSpecifier: false
+ }
+ ],
+
+ '@typescript-eslint/consistent-type-imports': [
+ 'error',
+ {
+ prefer: 'type-imports',
+ fixStyle: 'separate-type-imports'
+ }
+ ],
+
+ '@typescript-eslint/no-floating-promises': 'warn',
+
+ '@typescript-eslint/no-unused-vars': [
+ 'error',
+ {
+ varsIgnorePattern: '^_',
+ argsIgnorePattern: '^_',
+ caughtErrorsIgnorePattern: '^_'
+ }
+ ],
+
+ 'import/named': 'off',
+ 'import/namespace': 'off',
+ 'import/default': 'off',
+ 'import/no-named-as-default-member': 'off'
+ }
+ },
+ {
+ files: ['**/*.mjs'],
+ ...tseslint.configs.disableTypeChecked
+ },
+ {
+ files: [
+ 'packages/main/src/webComponents/*/index.tsx',
+ 'packages/compat/src/components/TableCell/index.tsx',
+ 'packages/compat/src/components/TableGroupRow/index.tsx'
+ ],
+
+ rules: {
+ '@typescript-eslint/no-empty-object-type': 'off'
+ }
+ },
+ {
+ files: [
+ 'packages/main/src/components/AnalyticalTable/defaults/**/*.tsx',
+ 'packages/main/src/components/AnalyticalTable/hooks/*.ts',
+ 'packages/main/src/components/AnalyticalTable/hooks/*.tsx',
+ 'packages/main/src/components/AnalyticalTable/TableBody/VirtualTableBodyContainer.tsx'
+ ],
+
+ rules: {
+ 'react/prop-types': 'off'
+ }
+ },
+ {
+ files: ['cypress/**/*'],
+
+ rules: {
+ '@typescript-eslint/no-namespace': 'off'
+ }
+ },
+ {
+ files: ['**/*.cy.ts', '**/*.cy.tsx'],
+
+ plugins: {
+ 'no-only-tests': noOnlyTests
+ },
+
+ rules: {
+ '@typescript-eslint/no-empty-function': 'off',
+ 'import/order': 'warn',
+ 'react/no-unescaped-entities': 'off',
+ '@typescript-eslint/unbound-method': 'warn',
+ 'react/display-name': 'off',
+ 'no-only-tests/no-only-tests': 'error'
+ }
+ },
+
+ // Storybook
+ ...storybookPlugin.configs['flat/recommended'],
+ {
+ files: ['**/*.stories.tsx'],
+ rules: {
+ 'react/prop-types': 'off',
+ '@typescript-eslint/no-unused-vars': 'warn',
+ 'react/no-unescaped-entities': 'off'
+ }
+ },
+
+ // prettier plugin must be the last entry in the config!
+ prettierPlugin
+);
+
+export default config;
diff --git a/package.json b/package.json
index 9df43776814..14a3f2e8b51 100644
--- a/package.json
+++ b/package.json
@@ -19,7 +19,7 @@
"clean": "tsc --build --clean && tsc --build tsconfig.build.json --clean && rimraf temp .out && lerna run clean",
"clean:remove-modules": "yarn clean && rimraf node_modules",
"prettier:all": "prettier --write --config ./prettier.config.cjs \"packages/**/*.{js,jsx,ts,tsx,mdx,json,md}\"",
- "lint": "eslint packages --ext .ts,.tsx",
+ "lint": "eslint packages",
"lerna:version-dryrun": "lerna version --conventional-graduate --no-git-tag-version --no-push",
"wrappers:main": "WITH_WEB_COMPONENT_IMPORT_PATH='../../internal/withWebComponent.js' INTERFACES_IMPORT_PATH='../../types/index.js' node packages/cli/dist/bin/index.js create-wrappers --packageName @ui5/webcomponents --out ./packages/main/src/webComponents --additionalComponentNote 'This is a UI5 Web Component! [Repository](https://github.com/SAP/ui5-webcomponents) | [Documentation](https://sap.github.io/ui5-webcomponents/)'",
"wrappers:fiori": "WITH_WEB_COMPONENT_IMPORT_PATH='../../internal/withWebComponent.js' INTERFACES_IMPORT_PATH='../../types/index.js' node packages/cli/dist/bin/index.js create-wrappers --packageName @ui5/webcomponents-fiori --out ./packages/main/src/webComponents --additionalComponentNote 'This is a UI5 Web Component! [Repository](https://github.com/SAP/ui5-webcomponents) | [Documentation](https://sap.github.io/ui5-webcomponents/)'",
@@ -55,15 +55,15 @@
"@babel/preset-react": "7.24.7",
"@babel/preset-typescript": "7.24.7",
"@cypress/code-coverage": "^3.10.0",
+ "@eslint/js": "^9.11.1",
"@semantic-release/github": "^11.0.0",
"@testing-library/cypress": "^10.0.0",
+ "@types/eslint__js": "^8.42.3",
"@types/jscodeshift": "^0.11.11",
"@types/node": "^20.0.0",
"@types/react": "^18.3.4",
"@types/react-dom": "^18.3.0",
"@types/use-sync-external-store": "^0.0.6",
- "@typescript-eslint/eslint-plugin": "8",
- "@typescript-eslint/parser": "8",
"@ui5/webcomponents-tools": "2.3.0",
"@vitejs/plugin-react": "^4.2.0",
"chromatic": "^11.0.0",
@@ -71,17 +71,17 @@
"cypress": "13.15.0",
"cypress-real-events": "^1.8.1",
"dedent": "^1.0.0",
- "eslint": "^8.35.0",
- "eslint-config-prettier": "^9.0.0",
- "eslint-import-resolver-typescript": "^3.5.3",
- "eslint-plugin-import": "^2.27.5",
- "eslint-plugin-no-only-tests": "^3.1.0",
- "eslint-plugin-prefer-arrow": "^1.2.3",
- "eslint-plugin-prettier": "^5.0.0",
- "eslint-plugin-react": "^7.32.2",
- "eslint-plugin-react-hooks": "^4.6.0",
- "eslint-plugin-storybook": "^0.9.0",
+ "eslint": "^9.11.1",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-import-resolver-typescript": "^3.6.3",
+ "eslint-plugin-import": "^2.31.0",
+ "eslint-plugin-no-only-tests": "^3.3.0",
+ "eslint-plugin-prettier": "^5.2.1",
+ "eslint-plugin-react": "^7.37.1",
+ "eslint-plugin-react-hooks": "beta",
+ "eslint-plugin-storybook": "0.10.0--canary.156.408aed4.0",
"glob": "^11.0.0",
+ "globals": "^15.10.0",
"husky": "^9.0.6",
"lerna": "^8.0.0",
"lint-staged": "^15.0.0",
@@ -96,6 +96,7 @@
"storybook": "8.3.4",
"typedoc": "^0.26.0",
"typescript": "5.6.2",
+ "typescript-eslint": "^8.8.0",
"vite": "^5.0.0",
"vite-plugin-istanbul": "^6.0.0",
"vite-tsconfig-paths": "^5.0.0"
diff --git a/packages/base/bin/codemod.js b/packages/base/bin/codemod.js
deleted file mode 100755
index fbeea0fbba8..00000000000
--- a/packages/base/bin/codemod.js
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env node
-
-const childProcess = require('child_process');
-const path = require('path');
-
-const SUPPORTED_TRANSFORMERS = ['transformLibToDist', 'renamePropsV18'];
-
-const transformerDir = path.resolve(__dirname, '..', 'codemods');
-
-const [transform, input = 'src', ...args] = process.argv.slice(2);
-
-if (!SUPPORTED_TRANSFORMERS.includes(transform)) {
- // eslint-disable-next-line no-console
- console.error('Invalid transform choice, pick one of:');
- // eslint-disable-next-line no-console
- console.error(SUPPORTED_TRANSFORMERS.map((x) => '- ' + x).join('\n'));
- process.exit(1);
-}
-
-const jscodeshiftOptions = [];
-
-const transformerPath = path.join(transformerDir, `${transform}.js`);
-jscodeshiftOptions.push(`--transform`, transformerPath);
-
-if (args.includes('--typescript')) {
- jscodeshiftOptions.push('--extensions=tsx,ts,jsx,js');
- jscodeshiftOptions.push('--parser', 'tsx');
-} else {
- jscodeshiftOptions.push('--extensions=jsx,js');
-}
-
-jscodeshiftOptions.push('--ignore-pattern=**/node_modules/**');
-
-// eslint-disable-next-line no-console
-console.log(`Executing 'npx jscodeshift ${jscodeshiftOptions.join(' ')} ${input}'`);
-childProcess.spawnSync('npx', ['jscodeshift', ...jscodeshiftOptions, input], {
- stdio: 'inherit'
-});
diff --git a/packages/base/codemods/renamePropsV18.js b/packages/base/codemods/renamePropsV18.js
deleted file mode 100644
index d9d67241b84..00000000000
--- a/packages/base/codemods/renamePropsV18.js
+++ /dev/null
@@ -1,413 +0,0 @@
-const renamingMap = {
- // UI5 Web Components
- Avatar: {
- backgroundColor: 'colorScheme',
- image: 'children',
- imageFitType: null
- },
- AvatarGroup: {
- avatarSize: null
- },
- Bar: {
- middleContent: 'children'
- },
- Button: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': null,
- iconSize: null
- },
- Card: {
- 'aria-label': null,
- 'aria-labelledby': null
- },
- Carousel: {
- hideNavigation: 'hideNavigationArrows',
- selectedIndex: null,
- infiniteScrollOffset: null
- },
- CheckBox: {
- 'aria-label': null,
- 'aria-labelledby': null,
- wrap: 'wrappingType'
- },
- ComboBox: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': 'accessibleNameRef',
- filterValue: 'value'
- },
- ColorPalette: {
- onChange: 'onItemClick',
- showMoreColors: null,
- showRecentColors: null,
- value: null
- },
- ColorPaletteItem: {
- stableDomRef: null
- },
- DatePicker: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': 'accessibleNameRef'
- },
- DateRangePicker: {
- firstDateValue: 'startDateValue',
- lastDateValue: 'endDateValue'
- },
- Dialog: {
- 'aria-label': 'accessibleName'
- },
- FlexibleColumnLayout: {
- noArrows: 'hideArrows'
- },
- Input: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': 'accessibleNameRef',
- highlight: null
- },
- Label: {
- wrap: 'wrappingType'
- },
- Link: {
- 'aria-label': null,
- wrap: 'wrappingType'
- },
- List: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': 'accessibleNameRef',
- inset: 'indent'
- },
- MessageStrip: {
- noIcon: 'hideIcon',
- noCloseButton: 'hideCloseButton',
- type: 'design'
- },
- NotificationListItem: {
- heading: 'titleText',
- wrap: 'wrappingType'
- },
- NotificationListGroupItem: {
- heading: 'titleText'
- },
- Panel: {
- 'aria-label': 'accessibleName'
- },
- Popover: {
- 'aria-label': 'accessibleName',
- noArrow: 'hideArrow'
- },
- Popup: {
- 'aria-label': 'accessibleName'
- },
- ProductSwitchItem: {
- heading: 'titleText',
- subheading: 'subtitleText'
- },
- RadioButton: {
- wrap: 'wrappingType',
- selected: 'checked',
- onSelect: 'onChange'
- },
- RatingIndicator: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': 'accessibleNameRef',
- maxValue: 'max'
- },
- Select: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': 'accessibleNameRef'
- },
- StepInput: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': 'accessibleNameRef'
- },
- ShellBar: {
- notificationCount: 'notificationsCount'
- },
- StandardListItem: {
- info: 'additionalText',
- infoState: 'additionalTextState'
- },
- SuggestionItem: {
- info: 'additionalText',
- infoState: 'additionalTextState',
- group: null // use SuggestionItemGroup instead
- },
- Switch: {
- graphical: 'design'
- },
- Tab: {
- semanticColor: 'design'
- },
- TabContainer: {
- tabsPlacement: null
- },
- Table: {
- showNoData: 'hideNoData',
- moreText: 'growingButtonText',
- moreSubtext: 'growingButtonSubtext'
- },
- TimelineItem: {
- itemName: 'name',
- itemNameClickable: 'nameClickable',
- onItemNameClick: 'onNameClick'
- },
- Title: {
- wrap: 'wrappingType'
- },
- ToggleButton: {
- 'aria-label': 'accessibleName',
- iconSize: null
- },
- TreeListItem: {
- info: 'additionalText',
- infoState: 'additionalTextState'
- },
- TreeItem: {
- info: 'additionalText',
- infoState: 'additionalTextState'
- },
- TextArea: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': 'accessibleNameRef'
- },
- UploadCollection: {
- onFileDeleted: 'onItemDelete',
- noDnd: 'hideDragOverlay'
- },
- UploadCollectionItem: {
- noDelete: 'disableDeleteButton',
- noRetry: 'hideRetryButton',
- noTerminate: 'hideTerminateButton'
- },
- Wizard: {
- 'aria-label': 'accessibleName',
- 'aria-labelledby': 'accessibleNameRef',
- onSelectionChange: 'onStepChange'
- },
- WizardStep: {
- 'aria-label': 'accessibleName',
- heading: 'titleText',
- subheading: 'subtitleText'
- },
-
- // UI5 Web Components React
- AnalyticalCardHeader: {
- title: 'titleText',
- subTitle: 'subtitleText',
- onHeaderClick: 'onClick'
- },
- AnalyticalTable: {
- title: 'header'
- },
- DynamicPageTitle: {
- heading: 'header',
- subheading: 'subHeader',
- showSubheadingRight: 'showSubHeaderRight'
- },
- Form: {
- title: 'titleText'
- },
- FormGroup: {
- title: 'titleText'
- },
- MessageBox: {
- title: 'titleText'
- },
- ObjectPageSection: {
- heading: 'titleText',
- headingUppercase: 'titleTextUppercase'
- },
- ObjectPageSubSection: {
- heading: 'titleText'
- },
- VariantManagement: {
- popupTitle: 'titleText'
- }
-};
-
-const enumRenamingMap = {
- AvatarBackgroundColor: 'AvatarColorScheme',
- PlacementType: 'PopoverPlacementType',
- PanelAccessibleRoles: 'PanelAccessibleRole',
- ListItemTypes: 'ListItemType',
- MessageStripType: 'MessageStripDesign',
- AvatarFitType: null,
- TabContainerTabsPlacement: null,
- SearchFunctions: null,
- TabContainerHeaderMode: null,
- TabDesignMode: null
-};
-
-process.env.NODE_ENV = 'development';
-
-const componentIsImportedFromWebComponentsReact = (j, root, componentName) => {
- const imports = root.find(j.ImportDeclaration);
- const importStatement = imports.find(j.ImportSpecifier, { local: { name: componentName } });
-
- if (importStatement.length === 0) return false;
-
- const importedFrom = importStatement.get().parentPath.parentPath.value.source.value;
-
- return importedFrom.startsWith('@ui5/webcomponents-react');
-};
-
-const addWebComponentsReactImport = (j, root, importName) => {
- const imports = root.find(j.ImportDeclaration);
- const n = imports.length;
-
- const isAlreadyImported = componentIsImportedFromWebComponentsReact(j, root, importName);
-
- if (isAlreadyImported) {
- return;
- }
-
- const importStatement = j.importDeclaration(
- [j.importSpecifier(j.identifier(importName), j.identifier(importName))],
- j.literal('@ui5/webcomponents-react')
- );
-
- if (n) {
- j(imports.at(n - 1).get()).insertAfter(importStatement);
- } else {
- root.get().node.program.body.unshift(importStatement);
- }
-};
-
-const renameEnums = (j, root) => {
- for (const oldEnumName in enumRenamingMap) {
- if (!componentIsImportedFromWebComponentsReact(j, root, oldEnumName)) {
- continue;
- }
-
- const newEnumName = enumRenamingMap[oldEnumName];
-
- // import statement
- const importStatement = root.find(j.ImportSpecifier, { local: { name: oldEnumName } });
- const importedFrom = importStatement.get().parentPath.parentPath.value.source.value;
-
- if (importedFrom === '@ui5/webcomponents-react') {
- if (newEnumName === null) {
- importStatement.remove();
- } else {
- importStatement.replaceWith(j.importSpecifier(j.identifier(newEnumName), j.identifier(newEnumName)));
- }
- } else if (importedFrom.startsWith(`@ui5/webcomponents-react/dist/${oldEnumName}`)) {
- if (newEnumName === null) {
- root.find(j.ImportDeclaration, { source: { value: importedFrom } }).remove();
- } else {
- importStatement.replaceWith(j.importSpecifier(j.identifier(newEnumName), j.identifier(newEnumName)));
- importStatement.get().parentPath.parentPath.value.source = j.literal('@ui5/webcomponents-react');
- }
- }
-
- // usages
- const expression = root.find(j.MemberExpression, { object: { name: oldEnumName } });
- expression.replaceWith((nodePath) => {
- return j.memberExpression(j.identifier(newEnumName), nodePath.value.property);
- });
- }
-};
-
-module.exports = (file, api, options) => {
- const j = api.jscodeshift;
- const printOptions = options.printOptions || {};
-
- const root = j(file.source);
-
- // eslint-disable-next-line guard-for-in
- for (const componentName in renamingMap) {
- const jsxElements = root.findJSXElements(componentName);
-
- if (jsxElements.length === 0) {
- continue;
- }
-
- const validMatch = componentIsImportedFromWebComponentsReact(j, root, componentName);
-
- if (!validMatch) {
- continue;
- }
-
- Object.entries(renamingMap[componentName]).forEach(([oldName, newName]) => {
- const jsxAttributes = jsxElements.find(j.JSXAttribute, { name: { name: oldName } });
- if (!jsxAttributes.length) {
- return;
- }
- if (newName === null) {
- jsxAttributes.remove();
- } else {
- jsxAttributes.find(j.JSXIdentifier, { name: oldName }).replaceWith(j.jsxIdentifier(newName));
- }
-
- if (componentName === 'Avatar' && newName === 'children') {
- jsxAttributes
- .filter((nodePath) => {
- return nodePath.value.name.name === 'children';
- })
- .replaceWith((nodePath) => {
- const imageSrc =
- nodePath.value.value.type === 'StringLiteral'
- ? nodePath.value.value.value
- : nodePath.value.value.expression.value;
- const imageTag = j.jsxElement(
- j.jsxOpeningElement(
- j.jsxIdentifier('img'),
- [j.jsxAttribute(j.jsxIdentifier('src'), j.stringLiteral(imageSrc))],
- true
- ),
- null,
- []
- );
- return j.jsxAttribute(nodePath.value.name, j.jsxExpressionContainer(imageTag));
- });
- }
-
- if (newName === 'wrappingType') {
- addWebComponentsReactImport(j, root, 'WrappingType');
- jsxAttributes.replaceWith((nodePath) => {
- return j.jsxAttribute(
- nodePath.value.name,
- j.jsxExpressionContainer(
- j.memberExpression(
- j.identifier('WrappingType'),
- nodePath.value.value?.expression?.value === false ? j.identifier('None') : j.identifier('Normal')
- )
- )
- );
- });
- }
-
- if (componentName === 'Table' && newName === 'hideNoData') {
- // remove all values that used to be like `
` or ``
- jsxAttributes
- .filter((nodePath) => {
- return (
- nodePath.value.name.name === 'hideNoData' &&
- (nodePath.value.value === null || nodePath.value.value?.expression?.value === true)
- );
- })
- .remove();
- // invert the boolean
- jsxAttributes.find(j.BooleanLiteral, { value: false }).replaceWith(j.booleanLiteral(true));
- }
-
- if (componentName === 'Switch' && newName === 'design') {
- addWebComponentsReactImport(j, root, 'SwitchDesign');
- jsxAttributes.replaceWith((nodePath) => {
- return j.jsxAttribute(
- nodePath.value.name,
- j.jsxExpressionContainer(
- j.memberExpression(
- j.identifier('SwitchDesign'),
- nodePath.value.value?.expression?.value === false ? j.identifier('Textual') : j.identifier('Graphical')
- )
- )
- );
- });
- }
- });
- }
-
- renameEnums(j, root);
-
- return root.toSource(printOptions);
-};
diff --git a/packages/base/codemods/transformLibToDist.js b/packages/base/codemods/transformLibToDist.js
deleted file mode 100644
index a0fe302cb41..00000000000
--- a/packages/base/codemods/transformLibToDist.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const libReplaceRegex = /^@ui5\/webcomponents-react(-(base|charts))?\/lib/;
-
-module.exports = function ({ path, source }, api, options) {
- const j = api.jscodeshift;
- const printOptions = options.printOptions || {};
-
- const root = j(source)
- .find(j.ImportDeclaration)
- .forEach((nodePath) => {
- if (libReplaceRegex.test(nodePath.value.source.value)) {
- j(nodePath).replaceWith(
- j.importDeclaration(
- nodePath.value.specifiers,
- j.literal(nodePath.value.source.value.replace('/lib/', '/dist/'))
- )
- );
- }
-
- return nodePath;
- });
-
- return root.toSource(printOptions);
-};
diff --git a/packages/base/package.json b/packages/base/package.json
index 21370e7809e..019197d7a61 100644
--- a/packages/base/package.json
+++ b/packages/base/package.json
@@ -45,12 +45,7 @@
"publishConfig": {
"access": "public"
},
- "bin": {
- "ui5wcr-codemod": "./bin/codemod.js"
- },
"files": [
- "bin",
- "codemods",
"dist",
"CHANGELOG.md",
"LICENSE",
diff --git a/packages/base/src/stores/I18nStore.ts b/packages/base/src/stores/I18nStore.ts
index 8253a447054..d959f67b600 100644
--- a/packages/base/src/stores/I18nStore.ts
+++ b/packages/base/src/stores/I18nStore.ts
@@ -40,7 +40,7 @@ export const I18nStore = {
},
loadBundle: (bundleName: string) => {
const bundles = getSnapshot();
- if (!bundles.hasOwnProperty(bundleName)) {
+ if (!Object.prototype.hasOwnProperty.call(bundles, bundleName)) {
void getI18nBundle(bundleName).then((bundle) => {
STORE_LOCATION[STORE_SYMBOL] = {
...STORE_LOCATION[STORE_SYMBOL],
diff --git a/packages/charts/src/postcss.config.mjs b/packages/charts/postcss.config.mjs
similarity index 66%
rename from packages/charts/src/postcss.config.mjs
rename to packages/charts/postcss.config.mjs
index 7e0068d1a4f..1f94acdf7c2 100644
--- a/packages/charts/src/postcss.config.mjs
+++ b/packages/charts/postcss.config.mjs
@@ -1,5 +1,5 @@
import fs from 'node:fs';
-import { postcssConfigFactory } from '../../../config/postcss-config-factory.js';
+import { postcssConfigFactory } from '../../config/postcss-config-factory.js';
const packageName = JSON.parse(fs.readFileSync('./package.json').toString()).name;
diff --git a/packages/charts/src/components/TimelineChart/chartbody/TimelineChartBody.tsx b/packages/charts/src/components/TimelineChart/chartbody/TimelineChartBody.tsx
index 047925d4ae3..875189ec87a 100644
--- a/packages/charts/src/components/TimelineChart/chartbody/TimelineChartBody.tsx
+++ b/packages/charts/src/components/TimelineChart/chartbody/TimelineChartBody.tsx
@@ -197,14 +197,16 @@ const TimelineChartTooltip = forwardRef {
- const { x, y, width, height } = divRef.current?.getBoundingClientRect();
- // Adjust the x and y position of the tooltip popover in order to try
- // to prevent it from being cut off by the bounds of the parent div.
- const offSetX = mouseX - x;
- const offSetY = mouseY - y;
- const xPos = offSetX < width - 80 ? offSetX : offSetX - 120;
- const yPos = offSetY < height - 70 ? offSetY : offSetY - 70;
- setState({ x: xPos, y: yPos, label, visible: true, startTime, duration, color, isMilestone });
+ if (divRef.current) {
+ const { x, y, width, height } = divRef.current.getBoundingClientRect();
+ // Adjust the x and y position of the tooltip popover in order to try
+ // to prevent it from being cut off by the bounds of the parent div.
+ const offSetX = mouseX - x;
+ const offSetY = mouseY - y;
+ const xPos = offSetX < width - 80 ? offSetX : offSetX - 120;
+ const yPos = offSetY < height - 70 ? offSetY : offSetY - 70;
+ setState({ x: xPos, y: yPos, label, visible: true, startTime, duration, color, isMilestone });
+ }
};
const onLeaveItem = () => {
diff --git a/packages/main/babel-plugin-ssr.mjs b/packages/main/babel-plugin-ssr.mjs
index 35e7f3e1006..46989bdd37a 100644
--- a/packages/main/babel-plugin-ssr.mjs
+++ b/packages/main/babel-plugin-ssr.mjs
@@ -4,8 +4,9 @@ const Modes = {
SSR: 'ssr'
};
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
export default function (babel) {
- const { types: t } = babel;
+ // const { types } = babel;
return {
name: 'ui5-webcomponents-ssr-plugin',
diff --git a/packages/main/src/components/AnalyticalTable/ColumnHeader/ColumnHeaderModal.tsx b/packages/main/src/components/AnalyticalTable/ColumnHeader/ColumnHeaderModal.tsx
index bab126b13aa..1d36e592137 100644
--- a/packages/main/src/components/AnalyticalTable/ColumnHeader/ColumnHeaderModal.tsx
+++ b/packages/main/src/components/AnalyticalTable/ColumnHeader/ColumnHeaderModal.tsx
@@ -102,7 +102,7 @@ export const ColumnHeaderModal = (props: ColumnHeaderModalProperties) => {
);
}
break;
- case 'group':
+ case 'group': {
const willGroup = !column.isGrouped;
column.toggleGroupBy(willGroup);
if (typeof onGroupBy === 'function') {
@@ -114,6 +114,7 @@ export const ColumnHeaderModal = (props: ColumnHeaderModalProperties) => {
);
}
break;
+ }
}
setPopoverOpen(false);
};
diff --git a/packages/main/src/components/AnalyticalTable/hooks/useKeyboardNavigation.ts b/packages/main/src/components/AnalyticalTable/hooks/useKeyboardNavigation.ts
index e6025774abc..995af9ef182 100644
--- a/packages/main/src/components/AnalyticalTable/hooks/useKeyboardNavigation.ts
+++ b/packages/main/src/components/AnalyticalTable/hooks/useKeyboardNavigation.ts
@@ -103,7 +103,7 @@ const useGetTableProps = (
const { dataset } = e.target;
if (
dataset.emptyRowCell === 'true' ||
- dataset.hasOwnProperty('subcomponentActiveElement') ||
+ Object.prototype.hasOwnProperty.call(dataset, 'subcomponentActiveElement') ||
// todo: with the new popover API of ui5wc this might not be necessary anymore
dataset.componentName === 'ATHeaderPopoverList' ||
dataset.componentName === 'ATHeaderPopover'
@@ -157,7 +157,10 @@ const useGetTableProps = (
const onKeyboardNavigation = useCallback(
(e) => {
const { isRtl } = state;
- const isActiveItemInSubComponent = e.target.dataset.hasOwnProperty('subcomponentActiveElement');
+ const isActiveItemInSubComponent = Object.prototype.hasOwnProperty.call(
+ e.target.dataset,
+ 'subcomponentActiveElement'
+ );
// check if target is cell and if so proceed from there
if (
!currentlyFocusedCell.current &&
diff --git a/packages/main/src/components/AnalyticalTable/hooks/usePopIn.ts b/packages/main/src/components/AnalyticalTable/hooks/usePopIn.ts
index 85ea39b83c0..9f776c03b69 100644
--- a/packages/main/src/components/AnalyticalTable/hooks/usePopIn.ts
+++ b/packages/main/src/components/AnalyticalTable/hooks/usePopIn.ts
@@ -21,7 +21,7 @@ const popInVisibleColumns = (cols, { instance }: { instance: TableInstance }) =>
return cols.filter(
(col) =>
!popInColumns.some((item) => item.id === (col.id ?? col.accessor)) &&
- (col.hasOwnProperty('responsiveMinWidth')
+ (Object.prototype.hasOwnProperty.call(col, 'responsiveMinWidth')
? !tableClientWidth || tableClientWidth >= col.responsiveMinWidth
: true)
);
diff --git a/packages/main/src/components/MessageView/index.tsx b/packages/main/src/components/MessageView/index.tsx
index 300b8080921..5ccf657ed57 100644
--- a/packages/main/src/components/MessageView/index.tsx
+++ b/packages/main/src/components/MessageView/index.tsx
@@ -66,7 +66,7 @@ export const resolveMessageTypes = (children: ReactElement
.reduce(
(acc, type) => {
const finalType = type === ValueState.None ? ValueState.Information : type;
- if (acc.hasOwnProperty(finalType)) {
+ if (Object.prototype.hasOwnProperty.call(acc, finalType)) {
acc[finalType]++;
}
return acc;
@@ -83,7 +83,7 @@ export const resolveMessageTypes = (children: ReactElement
export const resolveMessageGroups = (children: ReactElement[]) => {
const groups = (children ?? []).reduce((acc, val) => {
const groupName = val?.props?.groupName ?? '';
- if (acc.hasOwnProperty(groupName)) {
+ if (Object.prototype.hasOwnProperty.call(acc, groupName)) {
acc[groupName].push(val);
} else {
acc[groupName] = [val];
diff --git a/packages/main/src/components/ObjectPage/index.tsx b/packages/main/src/components/ObjectPage/index.tsx
index c9c5e5f5a6d..96cf11a4a5d 100644
--- a/packages/main/src/components/ObjectPage/index.tsx
+++ b/packages/main/src/components/ObjectPage/index.tsx
@@ -676,7 +676,9 @@ const ObjectPage = forwardRef((props, ref
const selectedTabDataset = event.detail.tab.dataset;
const sectionIndex = parseInt(selectedTabDataset.index, 10);
const sectionId = selectedTabDataset.parentId ?? selectedTabDataset.sectionId;
- const subSectionId = selectedTabDataset.hasOwnProperty('isSubTab') ? selectedTabDataset.sectionId : undefined;
+ const subSectionId = Object.prototype.hasOwnProperty.call(selectedTabDataset, 'isSubTab')
+ ? selectedTabDataset.sectionId
+ : undefined;
onBeforeNavigate(
enrichEventWithDetails(event, {
sectionIndex,
diff --git a/packages/main/src/components/SplitterLayout/useConcatSplitterElements.tsx b/packages/main/src/components/SplitterLayout/useConcatSplitterElements.tsx
index c818d92c7e0..29628b69e69 100644
--- a/packages/main/src/components/SplitterLayout/useConcatSplitterElements.tsx
+++ b/packages/main/src/components/SplitterLayout/useConcatSplitterElements.tsx
@@ -25,7 +25,7 @@ export const useConcatSplitterElements = (concatSplitterElements: ConcatSplitter
childrenArray.forEach((child, index) => {
const splitterElementChild = childrenArray[index + splitterCount];
- const splitterElementChildMinSize = splitterElementChild.props.hasOwnProperty('minSize')
+ const splitterElementChildMinSize = Object.prototype.hasOwnProperty.call(splitterElementChild.props, 'minSize')
? splitterElementChild.props.minSize
: 0;
if (
diff --git a/packages/main/src/components/VariantManagement/ManageViewsDialog.tsx b/packages/main/src/components/VariantManagement/ManageViewsDialog.tsx
index 02393fa091b..f6dd74af522 100644
--- a/packages/main/src/components/VariantManagement/ManageViewsDialog.tsx
+++ b/packages/main/src/components/VariantManagement/ManageViewsDialog.tsx
@@ -161,7 +161,7 @@ export const ManageViewsDialog = (props: ManageViewsDialogPropTypes) => {
prev
.filter((item) => item.children !== e.target.dataset.children)
.map((item) => {
- if (changedTableRows.current.hasOwnProperty(item.children)) {
+ if (Object.prototype.hasOwnProperty.call(changedTableRows.current, item.children)) {
return { ...item, ...changedTableRows.current[item.children] };
}
return item;
diff --git a/packages/main/src/components/VariantManagement/ManageViewsTableRows.tsx b/packages/main/src/components/VariantManagement/ManageViewsTableRows.tsx
index 5f263295a1f..f048c6ac352 100644
--- a/packages/main/src/components/VariantManagement/ManageViewsTableRows.tsx
+++ b/packages/main/src/components/VariantManagement/ManageViewsTableRows.tsx
@@ -113,7 +113,7 @@ export const ManageViewsTableRows = (props: ManageViewsTableRowsProps) => {
setVariantNameInvalid(false);
setInvalidVariants((prev) => {
const invalidRows = { ...prev };
- if (prev.hasOwnProperty(children)) {
+ if (Object.prototype.hasOwnProperty.call(prev, children)) {
delete invalidRows[children];
}
return invalidRows;
diff --git a/packages/main/src/components/VariantManagement/index.tsx b/packages/main/src/components/VariantManagement/index.tsx
index dce2579343b..250b1356b89 100644
--- a/packages/main/src/components/VariantManagement/index.tsx
+++ b/packages/main/src/components/VariantManagement/index.tsx
@@ -318,7 +318,7 @@ const VariantManagement = forwardRef
}, [safeChildrenWithFavorites]);
// todo: this applies if `readOnly` is set to `false` as well since the value is read via data-attribute and is therefore a string not a boolean
- const showSaveBtn = dirtyState && !selectedVariant?.hasOwnProperty('readOnly');
+ const showSaveBtn = dirtyState && !Object.prototype.hasOwnProperty.call(selectedVariant, 'readOnly');
return (
diff --git a/packages/main/src/internal/withWebComponent.cy.tsx b/packages/main/src/internal/withWebComponent.cy.tsx
index e392bf01b4a..4a7f0fbcf80 100644
--- a/packages/main/src/internal/withWebComponent.cy.tsx
+++ b/packages/main/src/internal/withWebComponent.cy.tsx
@@ -90,12 +90,15 @@ describe('withWebComponent', () => {
<>
{true}
not mounted
+ {/* eslint-disable-next-line no-constant-binary-expression */}
{false &&
not mounted}
mounted
<>
+ {/* eslint-disable-next-line no-constant-binary-expression */}
{false &&
not mounted}
mounted
<>
+ {/* eslint-disable-next-line no-constant-binary-expression */}
{false &&
not mounted}
mounted
<>
@@ -106,6 +109,7 @@ describe('withWebComponent', () => {
<>
mounted
>
+ {/* eslint-disable-next-line no-constant-binary-expression */}
<>{false &&
not mounted}>
<>
mounted
diff --git a/packages/main/src/internal/withWebComponent.tsx b/packages/main/src/internal/withWebComponent.tsx
index cafaf767fac..f622b53128b 100644
--- a/packages/main/src/internal/withWebComponent.tsx
+++ b/packages/main/src/internal/withWebComponent.tsx
@@ -48,7 +48,7 @@ export const withWebComponent =
, RefType = Ui
// regular props (no booleans, no slots and no events)
const regularProps = regularProperties.reduce((acc, name) => {
- if (rest.hasOwnProperty(name) && isPrimitiveAttribute(rest[name])) {
+ if (Object.prototype.hasOwnProperty.call(rest, name) && isPrimitiveAttribute(rest[name])) {
return { ...acc, [camelToKebabCase(name)]: rest[name] };
}
return acc;
diff --git a/yarn.lock b/yarn.lock
index e5a88cdd30e..e2d9abe0a96 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3162,13 +3162,38 @@ __metadata:
languageName: node
linkType: hard
-"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1":
+"@eslint-community/regexpp@npm:^4.11.0":
+ version: 4.11.1
+ resolution: "@eslint-community/regexpp@npm:4.11.1"
+ checksum: 10c0/fbcc1cb65ef5ed5b92faa8dc542e035269065e7ebcc0b39c81a4fe98ad35cfff20b3c8df048641de15a7757e07d69f85e2579c1a5055f993413ba18c055654f8
+ languageName: node
+ linkType: hard
+
+"@eslint-community/regexpp@npm:^4.5.1":
version: 4.6.2
resolution: "@eslint-community/regexpp@npm:4.6.2"
checksum: 10c0/da800788298f8419f4c4e04eaa4e3c97e7f57537e822e7b150de662e420e3d437816b863e490807bd0b00e715b0989f9d8864bf54357cbcfa84e4255b910789d
languageName: node
linkType: hard
+"@eslint/config-array@npm:^0.18.0":
+ version: 0.18.0
+ resolution: "@eslint/config-array@npm:0.18.0"
+ dependencies:
+ "@eslint/object-schema": "npm:^2.1.4"
+ debug: "npm:^4.3.1"
+ minimatch: "npm:^3.1.2"
+ checksum: 10c0/0234aeb3e6b052ad2402a647d0b4f8a6aa71524bafe1adad0b8db1dfe94d7f5f26d67c80f79bb37ac61361a1d4b14bb8fb475efe501de37263cf55eabb79868f
+ languageName: node
+ linkType: hard
+
+"@eslint/core@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "@eslint/core@npm:0.6.0"
+ checksum: 10c0/fffdb3046ad6420f8cb9204b6466fdd8632a9baeebdaf2a97d458a4eac0e16653ba50d82d61835d7d771f6ced0ec942ec482b2fbccc300e45f2cbf784537f240
+ languageName: node
+ linkType: hard
+
"@eslint/eslintrc@npm:^0.4.3":
version: 0.4.3
resolution: "@eslint/eslintrc@npm:0.4.3"
@@ -3186,27 +3211,43 @@ __metadata:
languageName: node
linkType: hard
-"@eslint/eslintrc@npm:^2.1.4":
- version: 2.1.4
- resolution: "@eslint/eslintrc@npm:2.1.4"
+"@eslint/eslintrc@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "@eslint/eslintrc@npm:3.1.0"
dependencies:
ajv: "npm:^6.12.4"
debug: "npm:^4.3.2"
- espree: "npm:^9.6.0"
- globals: "npm:^13.19.0"
+ espree: "npm:^10.0.1"
+ globals: "npm:^14.0.0"
ignore: "npm:^5.2.0"
import-fresh: "npm:^3.2.1"
js-yaml: "npm:^4.1.0"
minimatch: "npm:^3.1.2"
strip-json-comments: "npm:^3.1.1"
- checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573
+ checksum: 10c0/5b7332ed781edcfc98caa8dedbbb843abfb9bda2e86538529c843473f580e40c69eb894410eddc6702f487e9ee8f8cfa8df83213d43a8fdb549f23ce06699167
languageName: node
linkType: hard
-"@eslint/js@npm:8.57.1":
- version: 8.57.1
- resolution: "@eslint/js@npm:8.57.1"
- checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223
+"@eslint/js@npm:9.11.1, @eslint/js@npm:^9.11.1":
+ version: 9.11.1
+ resolution: "@eslint/js@npm:9.11.1"
+ checksum: 10c0/22916ef7b09c6f60c62635d897c66e1e3e38d90b5a5cf5e62769033472ecbcfb6ec7c886090a4b32fe65d6ce371da54384e46c26a899e38184dfc152c6152f7b
+ languageName: node
+ linkType: hard
+
+"@eslint/object-schema@npm:^2.1.4":
+ version: 2.1.4
+ resolution: "@eslint/object-schema@npm:2.1.4"
+ checksum: 10c0/e9885532ea70e483fb007bf1275968b05bb15ebaa506d98560c41a41220d33d342e19023d5f2939fed6eb59676c1bda5c847c284b4b55fce521d282004da4dda
+ languageName: node
+ linkType: hard
+
+"@eslint/plugin-kit@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "@eslint/plugin-kit@npm:0.2.0"
+ dependencies:
+ levn: "npm:^0.4.1"
+ checksum: 10c0/00b92bc52ad09b0e2bbbb30591c02a895f0bec3376759562590e8a57a13d096b22f8c8773b6bf791a7cf2ea614123b3d592fd006c51ac5fd0edbb90ea6d8760c
languageName: node
linkType: hard
@@ -3224,17 +3265,6 @@ __metadata:
languageName: node
linkType: hard
-"@humanwhocodes/config-array@npm:^0.13.0":
- version: 0.13.0
- resolution: "@humanwhocodes/config-array@npm:0.13.0"
- dependencies:
- "@humanwhocodes/object-schema": "npm:^2.0.3"
- debug: "npm:^4.3.1"
- minimatch: "npm:^3.0.5"
- checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e
- languageName: node
- linkType: hard
-
"@humanwhocodes/config-array@npm:^0.5.0":
version: 0.5.0
resolution: "@humanwhocodes/config-array@npm:0.5.0"
@@ -3260,10 +3290,10 @@ __metadata:
languageName: node
linkType: hard
-"@humanwhocodes/object-schema@npm:^2.0.3":
- version: 2.0.3
- resolution: "@humanwhocodes/object-schema@npm:2.0.3"
- checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c
+"@humanwhocodes/retry@npm:^0.3.0":
+ version: 0.3.0
+ resolution: "@humanwhocodes/retry@npm:0.3.0"
+ checksum: 10c0/7111ec4e098b1a428459b4e3be5a5d2a13b02905f805a2468f4fa628d072f0de2da26a27d04f65ea2846f73ba51f4204661709f05bfccff645e3cedef8781bb6
languageName: node
linkType: hard
@@ -5253,6 +5283,32 @@ __metadata:
languageName: node
linkType: hard
+"@types/eslint@npm:*":
+ version: 9.6.1
+ resolution: "@types/eslint@npm:9.6.1"
+ dependencies:
+ "@types/estree": "npm:*"
+ "@types/json-schema": "npm:*"
+ checksum: 10c0/69ba24fee600d1e4c5abe0df086c1a4d798abf13792d8cfab912d76817fe1a894359a1518557d21237fbaf6eda93c5ab9309143dee4c59ef54336d1b3570420e
+ languageName: node
+ linkType: hard
+
+"@types/eslint__js@npm:^8.42.3":
+ version: 8.42.3
+ resolution: "@types/eslint__js@npm:8.42.3"
+ dependencies:
+ "@types/eslint": "npm:*"
+ checksum: 10c0/ccc5180b92155929a089ffb03ed62625216dcd5e46dd3197c6f82370ce8b52c7cb9df66c06b0a3017995409e023bc9eafe5a3f009e391960eacefaa1b62d9a56
+ languageName: node
+ linkType: hard
+
+"@types/estree@npm:*, @types/estree@npm:^1.0.6":
+ version: 1.0.6
+ resolution: "@types/estree@npm:1.0.6"
+ checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a
+ languageName: node
+ linkType: hard
+
"@types/estree@npm:1.0.5":
version: 1.0.5
resolution: "@types/estree@npm:1.0.5"
@@ -5405,6 +5461,13 @@ __metadata:
languageName: node
linkType: hard
+"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.15":
+ version: 7.0.15
+ resolution: "@types/json-schema@npm:7.0.15"
+ checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db
+ languageName: node
+ linkType: hard
+
"@types/json-schema@npm:^7.0.12":
version: 7.0.12
resolution: "@types/json-schema@npm:7.0.12"
@@ -5412,13 +5475,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/json-schema@npm:^7.0.9":
- version: 7.0.11
- resolution: "@types/json-schema@npm:7.0.11"
- checksum: 10c0/bd1f9a7b898ff15c4bb494eb19124f2d688b804c39f07cbf135ac73f35324970e9e8329b72aae1fb543d925ea295a1568b23056c26658cecec4741fa28c3b81a
- languageName: node
- linkType: hard
-
"@types/json5@npm:^0.0.29":
version: 0.0.29
resolution: "@types/json5@npm:0.0.29"
@@ -5659,13 +5715,6 @@ __metadata:
languageName: node
linkType: hard
-"@types/semver@npm:^7.3.12":
- version: 7.3.13
- resolution: "@types/semver@npm:7.3.13"
- checksum: 10c0/73295bb1fee46f8c76c7a759feeae5a3022f5bedfdc17d16982092e4b33af17560234fb94861560c20992a702a1e1b9a173bb623a96f95f80892105f5e7d25e3
- languageName: node
- linkType: hard
-
"@types/semver@npm:^7.5.0":
version: 7.5.0
resolution: "@types/semver@npm:7.5.0"
@@ -5803,7 +5852,7 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/eslint-plugin@npm:8":
+"@typescript-eslint/eslint-plugin@npm:8.8.0":
version: 8.8.0
resolution: "@typescript-eslint/eslint-plugin@npm:8.8.0"
dependencies:
@@ -5851,7 +5900,7 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/parser@npm:8":
+"@typescript-eslint/parser@npm:8.8.0":
version: 8.8.0
resolution: "@typescript-eslint/parser@npm:8.8.0"
dependencies:
@@ -5887,16 +5936,6 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/scope-manager@npm:5.62.0":
- version: 5.62.0
- resolution: "@typescript-eslint/scope-manager@npm:5.62.0"
- dependencies:
- "@typescript-eslint/types": "npm:5.62.0"
- "@typescript-eslint/visitor-keys": "npm:5.62.0"
- checksum: 10c0/861253235576c1c5c1772d23cdce1418c2da2618a479a7de4f6114a12a7ca853011a1e530525d0931c355a8fd237b9cd828fac560f85f9623e24054fd024726f
- languageName: node
- linkType: hard
-
"@typescript-eslint/scope-manager@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/scope-manager@npm:6.21.0"
@@ -5907,6 +5946,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/scope-manager@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/scope-manager@npm:7.18.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:7.18.0"
+ "@typescript-eslint/visitor-keys": "npm:7.18.0"
+ checksum: 10c0/038cd58c2271de146b3a594afe2c99290034033326d57ff1f902976022c8b0138ffd3cb893ae439ae41003b5e4bcc00cabf6b244ce40e8668f9412cc96d97b8e
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/scope-manager@npm:8.8.0":
version: 8.8.0
resolution: "@typescript-eslint/scope-manager@npm:8.8.0"
@@ -5949,13 +5998,6 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/types@npm:5.62.0":
- version: 5.62.0
- resolution: "@typescript-eslint/types@npm:5.62.0"
- checksum: 10c0/7febd3a7f0701c0b927e094f02e82d8ee2cada2b186fcb938bc2b94ff6fbad88237afc304cbaf33e82797078bbbb1baf91475f6400912f8b64c89be79bfa4ddf
- languageName: node
- linkType: hard
-
"@typescript-eslint/types@npm:6.21.0":
version: 6.21.0
resolution: "@typescript-eslint/types@npm:6.21.0"
@@ -5963,6 +6005,13 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/types@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/types@npm:7.18.0"
+ checksum: 10c0/eb7371ac55ca77db8e59ba0310b41a74523f17e06f485a0ef819491bc3dd8909bb930120ff7d30aaf54e888167e0005aa1337011f3663dc90fb19203ce478054
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/types@npm:8.8.0":
version: 8.8.0
resolution: "@typescript-eslint/types@npm:8.8.0"
@@ -5970,40 +6019,41 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/typescript-estree@npm:5.62.0":
- version: 5.62.0
- resolution: "@typescript-eslint/typescript-estree@npm:5.62.0"
+"@typescript-eslint/typescript-estree@npm:6.21.0":
+ version: 6.21.0
+ resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
dependencies:
- "@typescript-eslint/types": "npm:5.62.0"
- "@typescript-eslint/visitor-keys": "npm:5.62.0"
+ "@typescript-eslint/types": "npm:6.21.0"
+ "@typescript-eslint/visitor-keys": "npm:6.21.0"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
- semver: "npm:^7.3.7"
- tsutils: "npm:^3.21.0"
+ minimatch: "npm:9.0.3"
+ semver: "npm:^7.5.4"
+ ts-api-utils: "npm:^1.0.1"
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/d7984a3e9d56897b2481940ec803cb8e7ead03df8d9cfd9797350be82ff765dfcf3cfec04e7355e1779e948da8f02bc5e11719d07a596eb1cb995c48a95e38cf
+ checksum: 10c0/af1438c60f080045ebb330155a8c9bb90db345d5069cdd5d01b67de502abb7449d6c75500519df829f913a6b3f490ade3e8215279b6bdc63d0fb0ae61034df5f
languageName: node
linkType: hard
-"@typescript-eslint/typescript-estree@npm:6.21.0":
- version: 6.21.0
- resolution: "@typescript-eslint/typescript-estree@npm:6.21.0"
+"@typescript-eslint/typescript-estree@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/typescript-estree@npm:7.18.0"
dependencies:
- "@typescript-eslint/types": "npm:6.21.0"
- "@typescript-eslint/visitor-keys": "npm:6.21.0"
+ "@typescript-eslint/types": "npm:7.18.0"
+ "@typescript-eslint/visitor-keys": "npm:7.18.0"
debug: "npm:^4.3.4"
globby: "npm:^11.1.0"
is-glob: "npm:^4.0.3"
- minimatch: "npm:9.0.3"
- semver: "npm:^7.5.4"
- ts-api-utils: "npm:^1.0.1"
+ minimatch: "npm:^9.0.4"
+ semver: "npm:^7.6.0"
+ ts-api-utils: "npm:^1.3.0"
peerDependenciesMeta:
typescript:
optional: true
- checksum: 10c0/af1438c60f080045ebb330155a8c9bb90db345d5069cdd5d01b67de502abb7449d6c75500519df829f913a6b3f490ade3e8215279b6bdc63d0fb0ae61034df5f
+ checksum: 10c0/0c7f109a2e460ec8a1524339479cf78ff17814d23c83aa5112c77fb345e87b3642616291908dcddea1e671da63686403dfb712e4a4435104f92abdfddf9aba81
languageName: node
linkType: hard
@@ -6057,31 +6107,17 @@ __metadata:
languageName: node
linkType: hard
-"@typescript-eslint/utils@npm:^5.62.0":
- version: 5.62.0
- resolution: "@typescript-eslint/utils@npm:5.62.0"
+"@typescript-eslint/utils@npm:^7.15.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/utils@npm:7.18.0"
dependencies:
- "@eslint-community/eslint-utils": "npm:^4.2.0"
- "@types/json-schema": "npm:^7.0.9"
- "@types/semver": "npm:^7.3.12"
- "@typescript-eslint/scope-manager": "npm:5.62.0"
- "@typescript-eslint/types": "npm:5.62.0"
- "@typescript-eslint/typescript-estree": "npm:5.62.0"
- eslint-scope: "npm:^5.1.1"
- semver: "npm:^7.3.7"
+ "@eslint-community/eslint-utils": "npm:^4.4.0"
+ "@typescript-eslint/scope-manager": "npm:7.18.0"
+ "@typescript-eslint/types": "npm:7.18.0"
+ "@typescript-eslint/typescript-estree": "npm:7.18.0"
peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
- checksum: 10c0/f09b7d9952e4a205eb1ced31d7684dd55cee40bf8c2d78e923aa8a255318d97279825733902742c09d8690f37a50243f4c4d383ab16bd7aefaf9c4b438f785e1
- languageName: node
- linkType: hard
-
-"@typescript-eslint/visitor-keys@npm:5.62.0":
- version: 5.62.0
- resolution: "@typescript-eslint/visitor-keys@npm:5.62.0"
- dependencies:
- "@typescript-eslint/types": "npm:5.62.0"
- eslint-visitor-keys: "npm:^3.3.0"
- checksum: 10c0/7c3b8e4148e9b94d9b7162a596a1260d7a3efc4e65199693b8025c71c4652b8042501c0bc9f57654c1e2943c26da98c0f77884a746c6ae81389fcb0b513d995d
+ eslint: ^8.56.0
+ checksum: 10c0/a25a6d50eb45c514469a01ff01f215115a4725fb18401055a847ddf20d1b681409c4027f349033a95c4ff7138d28c3b0a70253dfe8262eb732df4b87c547bd1e
languageName: node
linkType: hard
@@ -6095,6 +6131,16 @@ __metadata:
languageName: node
linkType: hard
+"@typescript-eslint/visitor-keys@npm:7.18.0":
+ version: 7.18.0
+ resolution: "@typescript-eslint/visitor-keys@npm:7.18.0"
+ dependencies:
+ "@typescript-eslint/types": "npm:7.18.0"
+ eslint-visitor-keys: "npm:^3.4.3"
+ checksum: 10c0/538b645f8ff1d9debf264865c69a317074eaff0255e63d7407046176b0f6a6beba34a6c51d511f12444bae12a98c69891eb6f403c9f54c6c2e2849d1c1cb73c0
+ languageName: node
+ linkType: hard
+
"@typescript-eslint/visitor-keys@npm:8.8.0":
version: 8.8.0
resolution: "@typescript-eslint/visitor-keys@npm:8.8.0"
@@ -6199,8 +6245,6 @@ __metadata:
optional: true
"@ui5/webcomponents-base":
optional: true
- bin:
- ui5wcr-codemod: ./bin/codemod.js
languageName: unknown
linkType: soft
@@ -6371,7 +6415,7 @@ __metadata:
languageName: node
linkType: hard
-"@ungap/structured-clone@npm:^1.0.0, @ungap/structured-clone@npm:^1.2.0":
+"@ungap/structured-clone@npm:^1.0.0":
version: 1.2.0
resolution: "@ungap/structured-clone@npm:1.2.0"
checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d
@@ -6736,6 +6780,15 @@ __metadata:
languageName: node
linkType: hard
+"acorn@npm:^8.12.0":
+ version: 8.12.1
+ resolution: "acorn@npm:8.12.1"
+ bin:
+ acorn: bin/acorn
+ checksum: 10c0/51fb26cd678f914e13287e886da2d7021f8c2bc0ccc95e03d3e0447ee278dd3b40b9c57dc222acd5881adcf26f3edc40901a4953403232129e3876793cd17386
+ languageName: node
+ linkType: hard
+
"acorn@npm:^8.9.0":
version: 8.9.0
resolution: "acorn@npm:8.9.0"
@@ -10697,7 +10750,7 @@ __metadata:
languageName: node
linkType: hard
-"eslint-config-prettier@npm:^9.0.0":
+"eslint-config-prettier@npm:^9.1.0":
version: 9.1.0
resolution: "eslint-config-prettier@npm:9.1.0"
peerDependencies:
@@ -10719,7 +10772,7 @@ __metadata:
languageName: node
linkType: hard
-"eslint-import-resolver-typescript@npm:^3.5.3":
+"eslint-import-resolver-typescript@npm:^3.6.3":
version: 3.6.3
resolution: "eslint-import-resolver-typescript@npm:3.6.3"
dependencies:
@@ -10744,6 +10797,18 @@ __metadata:
languageName: node
linkType: hard
+"eslint-module-utils@npm:^2.12.0":
+ version: 2.12.0
+ resolution: "eslint-module-utils@npm:2.12.0"
+ dependencies:
+ debug: "npm:^3.2.7"
+ peerDependenciesMeta:
+ eslint:
+ optional: true
+ checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558
+ languageName: node
+ linkType: hard
+
"eslint-module-utils@npm:^2.8.1":
version: 2.8.2
resolution: "eslint-module-utils@npm:2.8.2"
@@ -10779,7 +10844,7 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-import@npm:^2.22.1, eslint-plugin-import@npm:^2.27.5":
+"eslint-plugin-import@npm:^2.22.1":
version: 2.30.0
resolution: "eslint-plugin-import@npm:2.30.0"
dependencies:
@@ -10807,23 +10872,43 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-no-only-tests@npm:^3.1.0":
- version: 3.3.0
- resolution: "eslint-plugin-no-only-tests@npm:3.3.0"
- checksum: 10c0/a04425d9d3bcd745267168782eb12a3a712b8357264ddd4e204204318975c2c21e2c1efe68113181de908548a85762205b61d8f92ec9dc5e0a5ae54c0240a24d
+"eslint-plugin-import@npm:^2.31.0":
+ version: 2.31.0
+ resolution: "eslint-plugin-import@npm:2.31.0"
+ dependencies:
+ "@rtsao/scc": "npm:^1.1.0"
+ array-includes: "npm:^3.1.8"
+ array.prototype.findlastindex: "npm:^1.2.5"
+ array.prototype.flat: "npm:^1.3.2"
+ array.prototype.flatmap: "npm:^1.3.2"
+ debug: "npm:^3.2.7"
+ doctrine: "npm:^2.1.0"
+ eslint-import-resolver-node: "npm:^0.3.9"
+ eslint-module-utils: "npm:^2.12.0"
+ hasown: "npm:^2.0.2"
+ is-core-module: "npm:^2.15.1"
+ is-glob: "npm:^4.0.3"
+ minimatch: "npm:^3.1.2"
+ object.fromentries: "npm:^2.0.8"
+ object.groupby: "npm:^1.0.3"
+ object.values: "npm:^1.2.0"
+ semver: "npm:^6.3.1"
+ string.prototype.trimend: "npm:^1.0.8"
+ tsconfig-paths: "npm:^3.15.0"
+ peerDependencies:
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9
+ checksum: 10c0/e21d116ddd1900e091ad120b3eb68c5dd5437fe2c930f1211781cd38b246f090a6b74d5f3800b8255a0ed29782591521ad44eb21c5534960a8f1fb4040fd913a
languageName: node
linkType: hard
-"eslint-plugin-prefer-arrow@npm:^1.2.3":
- version: 1.2.3
- resolution: "eslint-plugin-prefer-arrow@npm:1.2.3"
- peerDependencies:
- eslint: ">=2.0.0"
- checksum: 10c0/9fd463ae0a8b80f216bee947783813b565d1859583e82b7f72f8853931be7cf6297209610f8e4bdc0b7e5459328b6f0030eab695964d3662ef1939eaada2e86e
+"eslint-plugin-no-only-tests@npm:^3.3.0":
+ version: 3.3.0
+ resolution: "eslint-plugin-no-only-tests@npm:3.3.0"
+ checksum: 10c0/a04425d9d3bcd745267168782eb12a3a712b8357264ddd4e204204318975c2c21e2c1efe68113181de908548a85762205b61d8f92ec9dc5e0a5ae54c0240a24d
languageName: node
linkType: hard
-"eslint-plugin-prettier@npm:^5.0.0":
+"eslint-plugin-prettier@npm:^5.2.1":
version: 5.2.1
resolution: "eslint-plugin-prettier@npm:5.2.1"
dependencies:
@@ -10843,18 +10928,18 @@ __metadata:
languageName: node
linkType: hard
-"eslint-plugin-react-hooks@npm:^4.6.0":
- version: 4.6.2
- resolution: "eslint-plugin-react-hooks@npm:4.6.2"
+"eslint-plugin-react-hooks@npm:beta":
+ version: 5.1.0-beta-26f2496093-20240514
+ resolution: "eslint-plugin-react-hooks@npm:5.1.0-beta-26f2496093-20240514"
peerDependencies:
- eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
- checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc
+ eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0
+ checksum: 10c0/99d399fc985a80126378feca1c84427ae4a63a120a2097761f13b94bea3919a15ee312ee51525b7906d0aef654987e938e1f3ca0c7e2cda72ef739f9671d947d
languageName: node
linkType: hard
-"eslint-plugin-react@npm:^7.32.2":
- version: 7.37.0
- resolution: "eslint-plugin-react@npm:7.37.0"
+"eslint-plugin-react@npm:^7.37.1":
+ version: 7.37.1
+ resolution: "eslint-plugin-react@npm:7.37.1"
dependencies:
array-includes: "npm:^3.1.8"
array.prototype.findlast: "npm:^1.2.5"
@@ -10876,21 +10961,20 @@ __metadata:
string.prototype.repeat: "npm:^1.0.0"
peerDependencies:
eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- checksum: 10c0/c9b02cd425c2a7c36b07fe223e405ae235500ac98f04898529cd8842c78fdd5b54f7c29189db5d6eab390ac5ac531af6e7b94a1f3fe9ad1e6564f7d78fd0eb6b
+ checksum: 10c0/13cf55666f16d2ca45b14aad1b0e14741d1817679c86d20aff0bc1e802439a8541f40a42c4c8e3486ffb710f1bcc2f3e56697f2b5f724306a7fca174e1ad6433
languageName: node
linkType: hard
-"eslint-plugin-storybook@npm:^0.9.0":
- version: 0.9.0
- resolution: "eslint-plugin-storybook@npm:0.9.0"
+"eslint-plugin-storybook@npm:0.10.0--canary.156.408aed4.0":
+ version: 0.10.0--canary.156.408aed4.0
+ resolution: "eslint-plugin-storybook@npm:0.10.0--canary.156.408aed4.0"
dependencies:
"@storybook/csf": "npm:^0.0.1"
- "@typescript-eslint/utils": "npm:^5.62.0"
- requireindex: "npm:^1.2.0"
+ "@typescript-eslint/utils": "npm:^7.15.0"
ts-dedent: "npm:^2.2.0"
peerDependencies:
eslint: ">=6"
- checksum: 10c0/e7e0682092ef4c3035a1e679b89adb0427db386996698791de18e95ba71ba2fed4d254d6ef70c2e0375970e057fd0fa06206c81f3a0acc4455051ed74a87e816
+ checksum: 10c0/48a49965083b9ef9baddacb3cc9c2c6dd0df4e40a5c5eb3b2b113656e51023c6e38729d0998f00bee6ca63fb9fd2d9da80afc7aa21629992156070c7dd000c9a
languageName: node
linkType: hard
@@ -10904,13 +10988,13 @@ __metadata:
languageName: node
linkType: hard
-"eslint-scope@npm:^7.2.2":
- version: 7.2.2
- resolution: "eslint-scope@npm:7.2.2"
+"eslint-scope@npm:^8.0.2":
+ version: 8.1.0
+ resolution: "eslint-scope@npm:8.1.0"
dependencies:
esrecurse: "npm:^4.3.0"
estraverse: "npm:^5.2.0"
- checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116
+ checksum: 10c0/ae1df7accae9ea90465c2ded70f7064d6d1f2962ef4cc87398855c4f0b3a5ab01063e0258d954bb94b184f6759febe04c3118195cab5c51978a7229948ba2875
languageName: node
linkType: hard
@@ -10958,6 +11042,13 @@ __metadata:
languageName: node
linkType: hard
+"eslint-visitor-keys@npm:^4.1.0":
+ version: 4.1.0
+ resolution: "eslint-visitor-keys@npm:4.1.0"
+ checksum: 10c0/5483ef114c93a136aa234140d7aa3bd259488dae866d35cb0d0b52e6a158f614760a57256ac8d549acc590a87042cb40f6951815caa821e55dc4fd6ef4c722eb
+ languageName: node
+ linkType: hard
+
"eslint@npm:^7.22.0":
version: 7.32.0
resolution: "eslint@npm:7.32.0"
@@ -11008,51 +11099,55 @@ __metadata:
languageName: node
linkType: hard
-"eslint@npm:^8.35.0":
- version: 8.57.1
- resolution: "eslint@npm:8.57.1"
+"eslint@npm:^9.11.1":
+ version: 9.11.1
+ resolution: "eslint@npm:9.11.1"
dependencies:
"@eslint-community/eslint-utils": "npm:^4.2.0"
- "@eslint-community/regexpp": "npm:^4.6.1"
- "@eslint/eslintrc": "npm:^2.1.4"
- "@eslint/js": "npm:8.57.1"
- "@humanwhocodes/config-array": "npm:^0.13.0"
+ "@eslint-community/regexpp": "npm:^4.11.0"
+ "@eslint/config-array": "npm:^0.18.0"
+ "@eslint/core": "npm:^0.6.0"
+ "@eslint/eslintrc": "npm:^3.1.0"
+ "@eslint/js": "npm:9.11.1"
+ "@eslint/plugin-kit": "npm:^0.2.0"
"@humanwhocodes/module-importer": "npm:^1.0.1"
+ "@humanwhocodes/retry": "npm:^0.3.0"
"@nodelib/fs.walk": "npm:^1.2.8"
- "@ungap/structured-clone": "npm:^1.2.0"
+ "@types/estree": "npm:^1.0.6"
+ "@types/json-schema": "npm:^7.0.15"
ajv: "npm:^6.12.4"
chalk: "npm:^4.0.0"
cross-spawn: "npm:^7.0.2"
debug: "npm:^4.3.2"
- doctrine: "npm:^3.0.0"
escape-string-regexp: "npm:^4.0.0"
- eslint-scope: "npm:^7.2.2"
- eslint-visitor-keys: "npm:^3.4.3"
- espree: "npm:^9.6.1"
- esquery: "npm:^1.4.2"
+ eslint-scope: "npm:^8.0.2"
+ eslint-visitor-keys: "npm:^4.0.0"
+ espree: "npm:^10.1.0"
+ esquery: "npm:^1.5.0"
esutils: "npm:^2.0.2"
fast-deep-equal: "npm:^3.1.3"
- file-entry-cache: "npm:^6.0.1"
+ file-entry-cache: "npm:^8.0.0"
find-up: "npm:^5.0.0"
glob-parent: "npm:^6.0.2"
- globals: "npm:^13.19.0"
- graphemer: "npm:^1.4.0"
ignore: "npm:^5.2.0"
imurmurhash: "npm:^0.1.4"
is-glob: "npm:^4.0.0"
is-path-inside: "npm:^3.0.3"
- js-yaml: "npm:^4.1.0"
json-stable-stringify-without-jsonify: "npm:^1.0.1"
- levn: "npm:^0.4.1"
lodash.merge: "npm:^4.6.2"
minimatch: "npm:^3.1.2"
natural-compare: "npm:^1.4.0"
optionator: "npm:^0.9.3"
strip-ansi: "npm:^6.0.1"
text-table: "npm:^0.2.0"
+ peerDependencies:
+ jiti: "*"
+ peerDependenciesMeta:
+ jiti:
+ optional: true
bin:
eslint: bin/eslint.js
- checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1
+ checksum: 10c0/fc9afc31155fef8c27fc4fd00669aeafa4b89ce5abfbf6f60e05482c03d7ff1d5e7546e416aa47bf0f28c9a56597a94663fd0264c2c42a1890f53cac49189f24
languageName: node
linkType: hard
@@ -11067,6 +11162,17 @@ __metadata:
languageName: node
linkType: hard
+"espree@npm:^10.1.0":
+ version: 10.2.0
+ resolution: "espree@npm:10.2.0"
+ dependencies:
+ acorn: "npm:^8.12.0"
+ acorn-jsx: "npm:^5.3.2"
+ eslint-visitor-keys: "npm:^4.1.0"
+ checksum: 10c0/2b6bfb683e7e5ab2e9513949879140898d80a2d9867ea1db6ff5b0256df81722633b60a7523a7c614f05a39aeea159dd09ad2a0e90c0e218732fc016f9086215
+ languageName: node
+ linkType: hard
+
"espree@npm:^7.3.0, espree@npm:^7.3.1":
version: 7.3.1
resolution: "espree@npm:7.3.1"
@@ -11078,28 +11184,6 @@ __metadata:
languageName: node
linkType: hard
-"espree@npm:^9.6.0":
- version: 9.6.0
- resolution: "espree@npm:9.6.0"
- dependencies:
- acorn: "npm:^8.9.0"
- acorn-jsx: "npm:^5.3.2"
- eslint-visitor-keys: "npm:^3.4.1"
- checksum: 10c0/f064a43bcf7f435d34e600c056320dde1c15b3eeb5da24e7585ed6cf83adcbbeafb4fa4d062ff14281b0d246b0a9645dd9d3796a638099f19595004eee4ac8be
- languageName: node
- linkType: hard
-
-"espree@npm:^9.6.1":
- version: 9.6.1
- resolution: "espree@npm:9.6.1"
- dependencies:
- acorn: "npm:^8.9.0"
- acorn-jsx: "npm:^5.3.2"
- eslint-visitor-keys: "npm:^3.4.1"
- checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460
- languageName: node
- linkType: hard
-
"esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0":
version: 4.0.1
resolution: "esprima@npm:4.0.1"
@@ -11110,7 +11194,7 @@ __metadata:
languageName: node
linkType: hard
-"esquery@npm:^1.4.0, esquery@npm:^1.4.2":
+"esquery@npm:^1.4.0":
version: 1.4.2
resolution: "esquery@npm:1.4.2"
dependencies:
@@ -11119,6 +11203,15 @@ __metadata:
languageName: node
linkType: hard
+"esquery@npm:^1.5.0":
+ version: 1.6.0
+ resolution: "esquery@npm:1.6.0"
+ dependencies:
+ estraverse: "npm:^5.1.0"
+ checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2
+ languageName: node
+ linkType: hard
+
"esrecurse@npm:^4.3.0":
version: 4.3.0
resolution: "esrecurse@npm:4.3.0"
@@ -11481,6 +11574,15 @@ __metadata:
languageName: node
linkType: hard
+"file-entry-cache@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "file-entry-cache@npm:8.0.0"
+ dependencies:
+ flat-cache: "npm:^4.0.0"
+ checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638
+ languageName: node
+ linkType: hard
+
"filelist@npm:^1.0.1":
version: 1.0.4
resolution: "filelist@npm:1.0.4"
@@ -11601,6 +11703,16 @@ __metadata:
languageName: node
linkType: hard
+"flat-cache@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "flat-cache@npm:4.0.1"
+ dependencies:
+ flatted: "npm:^3.2.9"
+ keyv: "npm:^4.5.4"
+ checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc
+ languageName: node
+ linkType: hard
+
"flat@npm:^5.0.2":
version: 5.0.2
resolution: "flat@npm:5.0.2"
@@ -11617,6 +11729,13 @@ __metadata:
languageName: node
linkType: hard
+"flatted@npm:^3.2.9":
+ version: 3.3.1
+ resolution: "flatted@npm:3.3.1"
+ checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf
+ languageName: node
+ linkType: hard
+
"follow-redirects@npm:^1.15.6":
version: 1.15.6
resolution: "follow-redirects@npm:1.15.6"
@@ -12331,7 +12450,16 @@ __metadata:
languageName: node
linkType: hard
-"globals@npm:^13.19.0, globals@npm:^13.6.0, globals@npm:^13.9.0":
+"globals@npm:^13.20.0":
+ version: 13.24.0
+ resolution: "globals@npm:13.24.0"
+ dependencies:
+ type-fest: "npm:^0.20.2"
+ checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd
+ languageName: node
+ linkType: hard
+
+"globals@npm:^13.6.0, globals@npm:^13.9.0":
version: 13.20.0
resolution: "globals@npm:13.20.0"
dependencies:
@@ -12340,12 +12468,17 @@ __metadata:
languageName: node
linkType: hard
-"globals@npm:^13.20.0":
- version: 13.24.0
- resolution: "globals@npm:13.24.0"
- dependencies:
- type-fest: "npm:^0.20.2"
- checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd
+"globals@npm:^14.0.0":
+ version: 14.0.0
+ resolution: "globals@npm:14.0.0"
+ checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d
+ languageName: node
+ linkType: hard
+
+"globals@npm:^15.10.0":
+ version: 15.10.0
+ resolution: "globals@npm:15.10.0"
+ checksum: 10c0/fef8f320e88f01f1492fef1b04b056908e1f6726eeaffe3bca03247237300c2d86e71585ee641b62ba71460a6eaff0d6ca7fca284e61bd1b3f833c7ad68b160a
languageName: node
linkType: hard
@@ -14249,6 +14382,15 @@ __metadata:
languageName: node
linkType: hard
+"keyv@npm:^4.5.4":
+ version: 4.5.4
+ resolution: "keyv@npm:4.5.4"
+ dependencies:
+ json-buffer: "npm:3.0.1"
+ checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e
+ languageName: node
+ linkType: hard
+
"kind-of@npm:^6.0.2, kind-of@npm:^6.0.3":
version: 6.0.3
resolution: "kind-of@npm:6.0.3"
@@ -19182,13 +19324,6 @@ __metadata:
languageName: node
linkType: hard
-"requireindex@npm:^1.2.0":
- version: 1.2.0
- resolution: "requireindex@npm:1.2.0"
- checksum: 10c0/7fb42aed73bf8de9acc4d6716cf07acc7fbe180e58729433bafcf702e76e7bb10e54f8266c06bfec62d752e0ac14d50e8758833de539e6f4e2cd642077866153
- languageName: node
- linkType: hard
-
"requires-port@npm:^1.0.0":
version: 1.0.0
resolution: "requires-port@npm:1.0.0"
@@ -21021,7 +21156,7 @@ __metadata:
languageName: node
linkType: hard
-"tslib@npm:^1.8.1, tslib@npm:^1.9.0":
+"tslib@npm:^1.9.0":
version: 1.14.1
resolution: "tslib@npm:1.14.1"
checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2
@@ -21042,17 +21177,6 @@ __metadata:
languageName: node
linkType: hard
-"tsutils@npm:^3.21.0":
- version: 3.21.0
- resolution: "tsutils@npm:3.21.0"
- dependencies:
- tslib: "npm:^1.8.1"
- peerDependencies:
- typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
- checksum: 10c0/02f19e458ec78ead8fffbf711f834ad8ecd2cc6ade4ec0320790713dccc0a412b99e7fd907c4cda2a1dc602c75db6f12e0108e87a5afad4b2f9e90a24cabd5a2
- languageName: node
- linkType: hard
-
"tuf-js@npm:^2.2.1":
version: 2.2.1
resolution: "tuf-js@npm:2.2.1"
@@ -21310,6 +21434,20 @@ __metadata:
languageName: node
linkType: hard
+"typescript-eslint@npm:^8.8.0":
+ version: 8.8.0
+ resolution: "typescript-eslint@npm:8.8.0"
+ dependencies:
+ "@typescript-eslint/eslint-plugin": "npm:8.8.0"
+ "@typescript-eslint/parser": "npm:8.8.0"
+ "@typescript-eslint/utils": "npm:8.8.0"
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ checksum: 10c0/545f0ce051282921aff56288baf288cffe6f7bafee5149f1b87af2c67f81f8c2088924a2e0fc0f0dcd12692b6a97eca10149a619c8c85d4aaef2fe763938da8d
+ languageName: node
+ linkType: hard
+
"typescript@npm:5.6.2":
version: 5.6.2
resolution: "typescript@npm:5.6.2"
@@ -21410,6 +21548,7 @@ __metadata:
"@babel/preset-react": "npm:7.24.7"
"@babel/preset-typescript": "npm:7.24.7"
"@cypress/code-coverage": "npm:^3.10.0"
+ "@eslint/js": "npm:^9.11.1"
"@semantic-release/github": "npm:^11.0.0"
"@storybook/addon-a11y": "npm:8.3.4"
"@storybook/addon-essentials": "npm:8.3.4"
@@ -21420,13 +21559,12 @@ __metadata:
"@storybook/react-vite": "npm:8.3.4"
"@storybook/theming": "npm:8.3.4"
"@testing-library/cypress": "npm:^10.0.0"
+ "@types/eslint__js": "npm:^8.42.3"
"@types/jscodeshift": "npm:^0.11.11"
"@types/node": "npm:^20.0.0"
"@types/react": "npm:^18.3.4"
"@types/react-dom": "npm:^18.3.0"
"@types/use-sync-external-store": "npm:^0.0.6"
- "@typescript-eslint/eslint-plugin": "npm:8"
- "@typescript-eslint/parser": "npm:8"
"@ui5/webcomponents": "npm:2.3.0"
"@ui5/webcomponents-compat": "npm:2.3.0"
"@ui5/webcomponents-fiori": "npm:2.3.0"
@@ -21438,17 +21576,17 @@ __metadata:
cypress: "npm:13.15.0"
cypress-real-events: "npm:^1.8.1"
dedent: "npm:^1.0.0"
- eslint: "npm:^8.35.0"
- eslint-config-prettier: "npm:^9.0.0"
- eslint-import-resolver-typescript: "npm:^3.5.3"
- eslint-plugin-import: "npm:^2.27.5"
- eslint-plugin-no-only-tests: "npm:^3.1.0"
- eslint-plugin-prefer-arrow: "npm:^1.2.3"
- eslint-plugin-prettier: "npm:^5.0.0"
- eslint-plugin-react: "npm:^7.32.2"
- eslint-plugin-react-hooks: "npm:^4.6.0"
- eslint-plugin-storybook: "npm:^0.9.0"
+ eslint: "npm:^9.11.1"
+ eslint-config-prettier: "npm:^9.1.0"
+ eslint-import-resolver-typescript: "npm:^3.6.3"
+ eslint-plugin-import: "npm:^2.31.0"
+ eslint-plugin-no-only-tests: "npm:^3.3.0"
+ eslint-plugin-prettier: "npm:^5.2.1"
+ eslint-plugin-react: "npm:^7.37.1"
+ eslint-plugin-react-hooks: "npm:beta"
+ eslint-plugin-storybook: "npm:0.10.0--canary.156.408aed4.0"
glob: "npm:^11.0.0"
+ globals: "npm:^15.10.0"
husky: "npm:^9.0.6"
lerna: "npm:^8.0.0"
lint-staged: "npm:^15.0.0"
@@ -21467,6 +21605,7 @@ __metadata:
tocbot: "npm:4.30.0"
typedoc: "npm:^0.26.0"
typescript: "npm:5.6.2"
+ typescript-eslint: "npm:^8.8.0"
vite: "npm:^5.0.0"
vite-plugin-istanbul: "npm:^6.0.0"
vite-tsconfig-paths: "npm:^5.0.0"