diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index c1fbc27cd..000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,154 +0,0 @@ -{ - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "extends": [ - // TODO: consider extending the recommended by ts rules and overriding them where necessary - // 'eslint:recommended', - // 'plugin:@typescript-eslint/recommended' - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": "tsconfig.json", - "sourceType": "module" - }, - "plugins": [ - "eslint-plugin-import", - "eslint-plugin-unicorn", - "eslint-plugin-prefer-arrow" - // "@typescript-eslint" - install it if we extend the recommended ts rules - ], - "ignorePatterns": [ - "/node_modules/**/*", - "/coverage/**/*", - "/output/**/*", - "/packages/cli/templates/**/*", - "**/files/**/*" - ], - "rules": { - "complexity": "off", - "import/no-extraneous-dependencies": "warn", - "import/no-internal-modules": "warn", - "import/order": [ - "off", - { - "alphabetize": { - "caseInsensitive": true, - "order": "asc" - }, - "newlines-between": "ignore", - "groups": [ - [ - "builtin", - "external", - "internal", - "unknown", - "object", - "type" - ], - "parent", - [ - "sibling", - "index" - ] - ], - "distinctGroup": false, - "pathGroupsExcludedImportTypes": [], - "pathGroups": [ - { - "pattern": "./", - "patternOptions": { - "nocomment": true, - "dot": true - }, - "group": "sibling", - "position": "before" - }, - { - "pattern": ".", - "patternOptions": { - "nocomment": true, - "dot": true - }, - "group": "sibling", - "position": "before" - }, - { - "pattern": "..", - "patternOptions": { - "nocomment": true, - "dot": true - }, - "group": "parent", - "position": "before" - }, - { - "pattern": "../", - "patternOptions": { - "nocomment": true, - "dot": true - }, - "group": "parent", - "position": "before" - } - ] - } - ], - "no-constant-condition": "warn", - "no-case-declarations": "off", - "no-extra-boolean-cast": "warn", - "no-unused-vars": "off", - "no-unexpected-multiline": "off", - "no-useless-escape": "off", - "new-parens": "error", - "no-bitwise": "off", - "no-caller": "error", - "no-cond-assign": "error", - "no-console": "off", - "no-debugger": "error", - "no-duplicate-case": "error", - "no-duplicate-imports": "error", - "no-empty": "off", - "no-empty-function": "off", - "no-eval": "error", - "no-extra-bind": "error", - "no-fallthrough": "off", - "no-invalid-this": "off", - "no-new-func": "error", - "no-new-wrappers": "error", - "no-redeclare": "error", - "no-return-await": "error", - "no-sequences": "error", - "no-shadow": "off", - "no-sparse-arrays": "error", - "no-template-curly-in-string": "error", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-undef-init": "error", - "no-underscore-dangle": "off", - "no-unsafe-finally": "error", - "no-unused-expressions": "off", - "no-unused-labels": "error", - "no-use-before-define": "off", - "no-var": "error", - "object-shorthand": "warn", - "one-var": [ - "error", - "never" - ], - "prefer-arrow/prefer-arrow-functions": "off", - "prefer-const": "warn", - "prefer-object-spread": "off", - "radix": "error", - "space-in-parens": [ - "error", - "never" - ], - "unicorn/prefer-ternary": "off", - "use-isnan": "error", - "valid-typeof": "off" - } -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..554f54eec --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,144 @@ +import eslintPluginImport from 'eslint-plugin-import'; +import eslintPluginUnicorn from 'eslint-plugin-unicorn'; +import eslintPluginPreferArrow from 'eslint-plugin-prefer-arrow'; +import typescriptParser from '@typescript-eslint/parser'; + +export default [ + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + globals: { + browser: true, + es6: true, + node: true + }, + //"extends": [ + // TODO: consider extending the recommended by ts rules and overriding them where necessary + // 'eslint:recommended', + // 'plugin:@typescript-eslint/recommended' + //], + parser: typescriptParser, + parserOptions: { + project: '**/tsconfig.json', + sourceType: 'module', + }, + }, + plugins: { + 'eslint-plugin-import': eslintPluginImport, + 'eslint-plugin-unicorn': eslintPluginUnicorn, + 'eslint-plugin-prefer-arrow': eslintPluginPreferArrow, + //"@typescript-eslint" - install it if we extend the recommended ts rules + }, + rules: { + 'complexity': 'off', + 'eslint-plugin-import/no-extraneous-dependencies': 'warn', + 'eslint-plugin-import/no-internal-modules': 'warn', + 'eslint-plugin-import/order': [ + 'off', + { + alphabetize: { + caseInsensitive: true, + order: 'asc', + }, + 'newlines-between': 'ignore', + groups: [ + [ + 'builtin', + 'external', + 'internal', + 'unknown', + 'object', + 'type', + ], + 'parent', + ['sibling', 'index'], + ], + distinctGroup: false, + pathGroupsExcludedImportTypes: [], + pathGroups: [ + { + pattern: './', + patternOptions: { nocomment: true, dot: true }, + group: 'sibling', + position: 'before', + }, + { + pattern: '.', + patternOptions: { nocomment: true, dot: true }, + group: 'sibling', + position: 'before', + }, + { + pattern: '..', + patternOptions: { nocomment: true, dot: true }, + group: 'parent', + position: 'before', + }, + { + pattern: '../', + patternOptions: { nocomment: true, dot: true }, + group: 'parent', + position: 'before', + }, + ], + }, + ], + 'no-constant-condition': 'warn', + 'no-case-declarations': 'off', + 'no-extra-boolean-cast': 'warn', + 'no-unused-vars': 'off', + 'no-unexpected-multiline': 'off', + 'no-useless-escape': 'off', + 'new-parens': 'error', + 'no-bitwise': 'off', + 'no-caller': 'error', + 'no-cond-assign': 'error', + 'no-console': 'off', + 'no-debugger': 'error', + 'no-duplicate-case': 'error', + 'no-duplicate-imports': 'error', + 'no-empty': 'off', + 'no-empty-function': 'off', + 'no-eval': 'error', + 'no-extra-bind': 'error', + 'no-fallthrough': 'off', + 'no-invalid-this': 'off', + 'no-new-func': 'error', + 'no-new-wrappers': 'error', + 'no-redeclare': 'error', + 'no-return-await': 'error', + 'no-sequences': 'error', + 'no-shadow': 'off', + 'no-sparse-arrays': 'error', + 'no-template-curly-in-string': 'error', + 'no-throw-literal': 'error', + 'no-trailing-spaces': 'error', + 'no-undef-init': 'error', + 'no-underscore-dangle': 'off', + 'no-unsafe-finally': 'error', + 'no-unused-expressions': 'off', + 'no-unused-labels': 'error', + 'no-use-before-define': 'off', + 'no-var': 'error', + 'object-shorthand': 'warn', + 'one-var': ['error', 'never'], + 'prefer-arrow/prefer-arrow-functions': 'off', + 'prefer-const': 'warn', + 'prefer-object-spread': 'off', + 'radix': 'error', + 'space-in-parens': ['error', 'never'], + 'unicorn/prefer-ternary': 'off', + 'use-isnan': 'error', + 'valid-typeof': 'off', + }, + }, + { + ignores: [ + '/node_modules/**/*', + '/coverage/**/*', + '/output/**/*', + '/packages/cli/templates/**/*', + '**/files/**/*' + ] + }, +]; diff --git a/package.json b/package.json index 19a907cde..30f35c739 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "test": "nyc npm run jasmine", "jasmine": "node spec/jasmine-runner.js", "coverage": "nyc report --report-dir", - "lint": "eslint -c .eslintrc.json ./**/*.ts", + "lint": "eslint -c eslint.config.mjs ./**/*.ts", "config-schema": "typescript-json-schema packages/core/types/Config.ts Config -o packages/core/config/Config.schema.json" }, "nyc": { @@ -65,9 +65,9 @@ "@types/node": "^22.5.5", "@typescript-eslint/eslint-plugin": "^8.21.0", "@typescript-eslint/parser": "^8.21.0", - "coveralls-next": "^4.2.1", "browser-sync": "^3.0.3", - "eslint": "^8.57.0", + "coveralls-next": "^4.2.1", + "eslint": "^9.20.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-prefer-arrow": "^1.2.3", "eslint-plugin-unicorn": "^52.0.0", diff --git a/packages/cli/package.json b/packages/cli/package.json index 59325403e..9bfe1f1ea 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "igniteui-cli", - "version": "14.3.13", + "version": "14.3.14-beta.10", "description": "CLI tool for creating Ignite UI projects", "keywords": [ "CLI", @@ -76,8 +76,8 @@ "all": true }, "dependencies": { - "@igniteui/angular-templates": "~19.0.14313", - "@igniteui/cli-core": "~14.3.13", + "@igniteui/angular-templates": "~19.0.14314-beta.10", + "@igniteui/cli-core": "~14.3.14-beta.10", "@inquirer/prompts": "^5.4.0", "@types/yargs": "^17.0.33", "chalk": "^5.3.0", diff --git a/packages/cli/templates/angular/ig-ts/line-chart/default/files/src/app/assets/line-chart-data.ts b/packages/cli/templates/angular/ig-ts/line-chart/default/files/src/app/assets/line-chart-data.ts index ca4aad6b2..8e9ed1163 100644 --- a/packages/cli/templates/angular/ig-ts/line-chart/default/files/src/app/assets/line-chart-data.ts +++ b/packages/cli/templates/angular/ig-ts/line-chart/default/files/src/app/assets/line-chart-data.ts @@ -1,4 +1,4 @@ -const data = [ +const data: any = [ { "CountryName": "China", "Pop1995": 1216, "Pop2005": 1297, "Pop2015": 1361, "Pop2025": 1394 }, { "CountryName": "India", "Pop1995": 920, "Pop2005": 1090, "Pop2015": 1251, "Pop2025": 1396 }, { "CountryName": "United States", "Pop1995": 266, "Pop2005": 295, "Pop2015": 322, "Pop2025": 351 }, diff --git a/packages/cli/templates/react/igr-es6/doughnut-chart/default/files/src/views/__path__/index.js b/packages/cli/templates/react/igr-es6/doughnut-chart/default/files/src/views/__path__/index.js index 42e81759d..db7791099 100644 --- a/packages/cli/templates/react/igr-es6/doughnut-chart/default/files/src/views/__path__/index.js +++ b/packages/cli/templates/react/igr-es6/doughnut-chart/default/files/src/views/__path__/index.js @@ -14,7 +14,7 @@ IgrDoughnutChartModule.register(); IgrRingSeriesModule.register(); -const data = [ +const data: any = [ { MarketShare: 30, Company: "Google", }, { MarketShare: 15, Company: "Microsoft", }, { MarketShare: 30, Company: "Apple", }, @@ -82,4 +82,4 @@ export default class $(ClassName) extends Component { ) } -} \ No newline at end of file +} diff --git a/packages/cli/templates/react/igr-es6/financial-chart/default/files/src/views/__path__/index.js b/packages/cli/templates/react/igr-es6/financial-chart/default/files/src/views/__path__/index.js index 6865f390f..933efca38 100644 --- a/packages/cli/templates/react/igr-es6/financial-chart/default/files/src/views/__path__/index.js +++ b/packages/cli/templates/react/igr-es6/financial-chart/default/files/src/views/__path__/index.js @@ -5,7 +5,7 @@ import style from './style.css'; IgrFinancialChartModule.register(); -const data = [ +const data: any = [ { time: new Date(2013, 1, 1), open: 268.93, high: 268.93, low: 262.80, close: 265.00, volume: 6118146 }, { time: new Date(2013, 1, 4), open: 262.78, high: 264.68, low: 259.07, close: 259.98, volume: 3723793 }, { time: new Date(2013, 1, 5), open: 262.00, high: 268.03, low: 261.46, close: 266.89, volume: 4013780 }, @@ -52,4 +52,4 @@ export default class $(ClassName) extends Component { ) } -} \ No newline at end of file +} diff --git a/packages/cli/templates/react/igr-es6/pie-chart/default/files/src/views/__path__/index.js b/packages/cli/templates/react/igr-es6/pie-chart/default/files/src/views/__path__/index.js index 67ac8b663..5174ae999 100644 --- a/packages/cli/templates/react/igr-es6/pie-chart/default/files/src/views/__path__/index.js +++ b/packages/cli/templates/react/igr-es6/pie-chart/default/files/src/views/__path__/index.js @@ -9,7 +9,7 @@ import style from './style.css'; IgrPieChartModule.register(); IgrItemLegendModule.register(); -const data = [ +const data: any = [ { MarketShare: 30, Company: "Google", }, { MarketShare: 15, Company: "Microsoft", }, { MarketShare: 30, Company: "Apple", }, @@ -80,4 +80,4 @@ export default class $(ClassName) extends Component { ) } -} \ No newline at end of file +} diff --git a/packages/cli/templates/react/igr-ts/category-chart/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/category-chart/default/files/src/app/__path__/__filePrefix__.tsx index 2ef5f046d..73e73d1a0 100644 --- a/packages/cli/templates/react/igr-ts/category-chart/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/category-chart/default/files/src/app/__path__/__filePrefix__.tsx @@ -5,7 +5,7 @@ import style from './style.module.css'; IgrCategoryChartModule.register(); -const data = [ +const data: any = [ { 'CountryName': 'China', 'Pop1995': 1216, 'Pop2005': 1297, 'Pop2015': 1361, 'Pop2025': 1394 }, { 'CountryName': 'India', 'Pop1995': 920, 'Pop2005': 1090, 'Pop2015': 1251, 'Pop2025': 1396 }, { 'CountryName': 'United States', 'Pop1995': 266, 'Pop2005': 295, 'Pop2015': 322, 'Pop2025': 351 }, diff --git a/packages/cli/templates/react/igr-ts/doughnut-chart/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/doughnut-chart/default/files/src/app/__path__/__filePrefix__.tsx index df4903774..2bb05e8b0 100644 --- a/packages/cli/templates/react/igr-ts/doughnut-chart/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/doughnut-chart/default/files/src/app/__path__/__filePrefix__.tsx @@ -13,7 +13,7 @@ IgrDoughnutChartModule.register(); IgrRingSeriesModule.register(); -const data = [ +const data: any = [ { MarketShare: 30, Company: "Google", }, { MarketShare: 15, Company: "Microsoft", }, { MarketShare: 30, Company: "Apple", }, @@ -24,8 +24,8 @@ const data = [ export default function $(ClassName)() { const title = 'Doughnut Chart'; const [chartData, setChartData] = useState([]); - const legendRef = useRef(); - const chartRef = useRef(); + const legendRef: any = useRef(); + const chartRef: any = useRef(); useEffect(() => { setChartData(data); diff --git a/packages/cli/templates/react/igr-ts/financial-chart/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/financial-chart/default/files/src/app/__path__/__filePrefix__.tsx index 817c867d1..ca3c976e8 100644 --- a/packages/cli/templates/react/igr-ts/financial-chart/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/financial-chart/default/files/src/app/__path__/__filePrefix__.tsx @@ -5,7 +5,7 @@ import style from './style.module.css'; IgrFinancialChartModule.register(); -const data = [ +const data: any = [ { time: new Date(2013, 1, 1), open: 268.93, high: 268.93, low: 262.80, close: 265.00, volume: 6118146 }, { time: new Date(2013, 1, 4), open: 262.78, high: 264.68, low: 259.07, close: 259.98, volume: 3723793 }, { time: new Date(2013, 1, 5), open: 262.00, high: 268.03, low: 261.46, close: 266.89, volume: 4013780 }, diff --git a/packages/cli/templates/react/igr-ts/pie-chart/default/files/src/app/__path__/__filePrefix__.tsx b/packages/cli/templates/react/igr-ts/pie-chart/default/files/src/app/__path__/__filePrefix__.tsx index 721a90d87..00f6022ea 100644 --- a/packages/cli/templates/react/igr-ts/pie-chart/default/files/src/app/__path__/__filePrefix__.tsx +++ b/packages/cli/templates/react/igr-ts/pie-chart/default/files/src/app/__path__/__filePrefix__.tsx @@ -8,7 +8,7 @@ import style from './style.module.css'; IgrPieChartModule.register(); IgrItemLegendModule.register(); -const data = [ +const data: any = [ { MarketShare: 30, Company: "Google", }, { MarketShare: 15, Company: "Microsoft", }, { MarketShare: 30, Company: "Apple", }, @@ -19,8 +19,8 @@ const data = [ export default function $(ClassName)() { const title = 'Pie Chart'; const [chartData, setChartData] = useState([]); - const legendRef = useRef(); - const chartRef = useRef(); + const legendRef: any = useRef(); + const chartRef: any = useRef(); useEffect(() => { setChartData(data); diff --git a/packages/cli/templates/react/igr-ts/projects/_base/files/__dot__eslintrc.cjs b/packages/cli/templates/react/igr-ts/projects/_base/files/__dot__eslintrc.cjs deleted file mode 100644 index 0a978e0bb..000000000 --- a/packages/cli/templates/react/igr-ts/projects/_base/files/__dot__eslintrc.cjs +++ /dev/null @@ -1,31 +0,0 @@ -module.exports = { - root: true, - env: { browser: true, es2020: true }, - extends: [ - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:react-hooks/recommended', - ], - ignorePatterns: ['dist', '.eslintrc.cjs'], - parser: '@typescript-eslint/parser', - plugins: ['react-refresh'], - rules: { - '@typescript-eslint/no-unused-vars': [ - 'error', - { - args: 'all', - argsIgnorePattern: '^_', - caughtErrors: 'all', - caughtErrorsIgnorePattern: '^_', - destructuredArrayIgnorePattern: '^(_|set)', - varsIgnorePattern: '^_', - ignoreRestSiblings: true - } - ], - 'react-refresh/only-export-components': [ - 'warn', - { allowConstantExport: true }, - ], - '@typescript-eslint/no-explicit-any': 'off' - }, -} diff --git a/packages/cli/templates/react/igr-ts/projects/_base/files/eslint.config.mjs b/packages/cli/templates/react/igr-ts/projects/_base/files/eslint.config.mjs new file mode 100644 index 000000000..1b778c7fc --- /dev/null +++ b/packages/cli/templates/react/igr-ts/projects/_base/files/eslint.config.mjs @@ -0,0 +1,48 @@ +import js from '@eslint/js'; +import typescriptParser from '@typescript-eslint/parser'; +import reactRefresh from 'eslint-plugin-react-refresh'; +import { FlatCompat } from "@eslint/eslintrc"; + +const compat = new FlatCompat({ + recommendedConfig: js.configs.recommended +}); + +export default [ + ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:react-hooks/recommended'), + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + globals: { + browser: true, + es2020: true, + }, + parser: typescriptParser, + parserOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + }, + }, + plugins: { + reactRefresh + }, + rules: { + '@typescript-eslint/no-unused-vars': [ + 'error', + { + args: 'all', + argsIgnorePattern: '^_', + caughtErrors: 'all', + caughtErrorsIgnorePattern: '^_', + destructuredArrayIgnorePattern: '^(_|set)', + varsIgnorePattern: '^_', + ignoreRestSiblings: true, + }, + ], + 'reactRefresh/only-export-components': ['warn', { allowConstantExport: true }], + '@typescript-eslint/no-explicit-any': 'off', + }, + }, + { + ignores: ['dist'] + } +]; diff --git a/packages/cli/templates/react/igr-ts/projects/_base/files/package.json b/packages/cli/templates/react/igr-ts/projects/_base/files/package.json index 7de892c49..000f50896 100644 --- a/packages/cli/templates/react/igr-ts/projects/_base/files/package.json +++ b/packages/cli/templates/react/igr-ts/projects/_base/files/package.json @@ -21,8 +21,8 @@ "@typescript-eslint/eslint-plugin": "^8.21.0", "@typescript-eslint/parser": "^8.21.0", "@vitejs/plugin-react": "^4.0.3", - "eslint": "^8.57.0", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint": "^9.20.0", + "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-react-refresh": "^0.4.3", "jsdom": "^22.1.0", "typescript": "~5.5.4", @@ -34,7 +34,7 @@ "start": "vite", "build": "tsc && node --max-old-space-size=4096 node_modules/vite/bin/vite build", "preview": "vite preview", - "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", + "lint": "eslint . --report-unused-disable-directives --max-warnings 0", "test": "vitest" }, "browserslist": [ diff --git a/packages/cli/templates/react/igr-ts/projects/_base/files/vite.config.ts b/packages/cli/templates/react/igr-ts/projects/_base/files/vite.config.ts index 705b35a2e..93a672660 100644 --- a/packages/cli/templates/react/igr-ts/projects/_base/files/vite.config.ts +++ b/packages/cli/templates/react/igr-ts/projects/_base/files/vite.config.ts @@ -4,6 +4,9 @@ import react from '@vitejs/plugin-react' // https://vitejs.dev/config/ export default defineConfig({ + build: { + chunkSizeWarningLimit: 10 * 1024 * 1024, // 10 MB + }, plugins: [react()], test: { globals: true, diff --git a/packages/cli/templates/react/igr-ts/projects/top-nav/files/src/components/navigation-header/index.tsx b/packages/cli/templates/react/igr-ts/projects/top-nav/files/src/components/navigation-header/index.tsx index f673fa4ef..4151a4060 100644 --- a/packages/cli/templates/react/igr-ts/projects/top-nav/files/src/components/navigation-header/index.tsx +++ b/packages/cli/templates/react/igr-ts/projects/top-nav/files/src/components/navigation-header/index.tsx @@ -1,10 +1,10 @@ import { useState, useEffect } from 'react'; import { Link } from 'react-router-dom'; -export default function NavigationHeader({ routes }) { +export default function NavigationHeader({ routes }: any) { const [state, setState] = useState({ activeItem: null }); - function handleClick(index) { + function handleClick(index: any) { setState({ activeItem: index }); } @@ -13,7 +13,7 @@ export default function NavigationHeader({ routes }) { if (!currentRoute) { currentRoute = '/' } - const activeItem = routes.findIndex((route) => route.path === currentRoute); + const activeItem = routes.findIndex((route: any) => route.path === currentRoute); setState({ activeItem }); }, [routes]); @@ -21,7 +21,7 @@ export default function NavigationHeader({ routes }) { diff --git a/packages/cli/templates/webcomponents/igc-ts/grid/grid-editing/files/src/app/__path__/DataGridSharedData.ts b/packages/cli/templates/webcomponents/igc-ts/grid/grid-editing/files/src/app/__path__/DataGridSharedData.ts index 8c84a3600..542553b66 100644 --- a/packages/cli/templates/webcomponents/igc-ts/grid/grid-editing/files/src/app/__path__/DataGridSharedData.ts +++ b/packages/cli/templates/webcomponents/igc-ts/grid/grid-editing/files/src/app/__path__/DataGridSharedData.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-param-reassign */ export class DataGridSharedData { public static getEmployees(count?: number): any[] { if (count === undefined) { diff --git a/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/files/src/app/__path__/NwindData.ts b/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/files/src/app/__path__/NwindData.ts index 8aac90ed7..d2b8d5e19 100644 --- a/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/files/src/app/__path__/NwindData.ts +++ b/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/files/src/app/__path__/NwindData.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-param-reassign */ export class NwindDataItem { public constructor(init: Partial) { Object.assign(this, init); diff --git a/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/files/src/app/__path__/__filePrefix__.ts b/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/files/src/app/__path__/__filePrefix__.ts index 92ade6b1d..350c22ceb 100644 --- a/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/files/src/app/__path__/__filePrefix__.ts +++ b/packages/cli/templates/webcomponents/igc-ts/grid/grid-summaries/files/src/app/__path__/__filePrefix__.ts @@ -1,10 +1,7 @@ import { css, html, LitElement } from 'lit'; import { customElement } from 'lit/decorators.js'; import 'igniteui-webcomponents-grids/grids/combined'; -import { - IgcGridComponent, - IgcColumnComponent, -} from 'igniteui-webcomponents-grids/grids'; +import { IgcGridComponent } from 'igniteui-webcomponents-grids/grids'; import { ComponentRenderer, WebGridDescriptionModule, @@ -47,13 +44,6 @@ export default class $(ClassName) extends LitElement { const grid = this.shadowRoot?.getElementById('grid') as IgcGridComponent; const nwindData = NwindData; - const productID = this.shadowRoot?.getElementById('ProductID') as IgcColumnComponent; - const productName = this.shadowRoot?.getElementById('ProductName') as IgcColumnComponent; - const unitPrice = this.shadowRoot?.getElementById('UnitPrice') as IgcColumnComponent; - const unitsInStock = this.shadowRoot?.getElementById('UnitsInStock') as IgcColumnComponent; - const discontinued = this.shadowRoot?.getElementById('Discontinued') as IgcColumnComponent; - const orderDate = this.shadowRoot?.getElementById('OrderDate') as IgcColumnComponent; - grid.data = new nwindData(); const _componentRenderer = new ComponentRenderer(); diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/__dot__eslintrc.json b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/__dot__eslintrc.json deleted file mode 100644 index 333f97925..000000000 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/__dot__eslintrc.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "root": true, - "env": { - "browser": true, - "es2021": true, - "jasmine": true - }, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended" - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": 12, - "sourceType": "module" - }, - "plugins": [ - "@typescript-eslint" - ], - "rules": { - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/no-explicit-any": "off" - } -} diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs new file mode 100644 index 000000000..dc3703362 --- /dev/null +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.mjs @@ -0,0 +1,37 @@ +import js from '@eslint/js'; +import typescriptParser from '@typescript-eslint/parser'; +import tseslint from '@typescript-eslint/eslint-plugin'; +import { FlatCompat } from "@eslint/eslintrc"; + +const compat = new FlatCompat({ + recommendedConfig: js.configs.recommended +}); + +export default [ + ...compat.extends('eslint:recommended', 'plugin:@typescript-eslint/recommended'), + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + globals: { + browser: true, + es2021: true, + jasmine: true, + }, + parser: typescriptParser, + parserOptions: { + ecmaVersion: 12, + sourceType: 'module', + }, + }, + plugins: { + '@typescript-eslint': tseslint, + }, + rules: { + '@typescript-eslint/no-inferrable-types': 'off', + '@typescript-eslint/no-explicit-any': 'off', + }, + }, + { + ignores: ['dist'] + } +]; diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json index c91c287ed..34783daba 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/package.json @@ -16,7 +16,7 @@ "start": "tsc && concurrently -k -r \"tsc --watch\" \"wds\"", "build": "rimraf dist && tsc && node --max-old-space-size=4096 node_modules/vite/bin/vite.js build", "start:build": "web-dev-server --root-dir dist --app-index index.html --open", - "lint": "eslint \"**/*.{js,ts}\" --ignore-path .gitignore", + "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore", "test": "tsc --project tsconfig.test.json && wtr" }, "dependencies": { @@ -35,7 +35,7 @@ "babel-plugin-template-html-minifier": "^4.1.0", "concurrently": "^9.1.2", "deepmerge": "^4.2.2", - "eslint": "^8.57.0", + "eslint": "^9.20.0", "eslint-plugin-lit": "^1.8.2", "igniteui-cli": "^13.1.5", "rimraf": "^5.0.10", diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/src/app/app.test.ts b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/src/app/app.test.ts index fb079d5b2..5adf5a636 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/src/app/app.test.ts +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/src/app/app.test.ts @@ -1,5 +1,5 @@ import { expect } from '@open-wc/testing'; -import App from './app.js'; +import { App } from './app.js'; describe('App', () => { it(' is an instance of App', async () => { diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts index 67fe7515c..bea69f6d8 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts @@ -18,6 +18,7 @@ export default defineConfig({ target: 'es2021', minify: 'terser', emptyOutDir: false, + chunkSizeWarningLimit: 10 * 1024 * 1024 // 10 MB }, plugins: [ /** Copy static assets */ @@ -44,6 +45,9 @@ export default defineConfig({ ], maximumFileSizeToCacheInBytes: 10 * 1024 * 1024 // 10 MB }, + manifest: { + theme_color: "#ffffff" + } }), ], }); diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json b/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json index a2c55acc1..28f54ef33 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json +++ b/packages/cli/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json @@ -16,7 +16,7 @@ "start": "tsc && concurrently -k -r \"tsc --watch\" \"wds\"", "build": "rimraf dist && tsc && node --max-old-space-size=4096 node_modules/vite/bin/vite.js build", "start:build": "web-dev-server --root-dir dist --app-index index.html --open", - "lint": "eslint \"**/*.{js,ts}\" --ignore-path .gitignore", + "lint": "eslint \"**/*.{js,ts}\" --ignore-pattern .gitignore", "test": "tsc --project tsconfig.test.json && wtr" }, "dependencies": { @@ -43,7 +43,7 @@ "babel-plugin-template-html-minifier": "^4.1.0", "concurrently": "^9.1.2", "deepmerge": "^4.2.2", - "eslint": "^8.57.0", + "eslint": "^9.20.0", "eslint-plugin-lit": "^1.8.2", "igniteui-cli": "^14.0.0", "rimraf": "^5.0.10", diff --git a/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts b/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts index be73e92ad..c95254ba8 100644 --- a/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts +++ b/packages/cli/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts @@ -1,4 +1,3 @@ -/* eslint-disable no-return-assign */ import { html, css, LitElement } from 'lit'; import { customElement } from 'lit/decorators.js'; import { diff --git a/packages/core/package.json b/packages/core/package.json index 0e0a41d18..a412ddee5 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/cli-core", - "version": "14.3.13", + "version": "14.3.14-beta.10", "description": "Base types and functionality for Ignite UI CLI", "repository": { "type": "git", @@ -14,7 +14,7 @@ "dependencies": { "@inquirer/prompts": "~5.4.0", "chalk": "^2.3.2", - "glob": "^7.1.2", + "glob": "^11.0.0", "through2": "^2.0.3", "typescript": "~5.5.4" }, diff --git a/packages/core/util/FileSystem.ts b/packages/core/util/FileSystem.ts index 85929e799..5457b1b17 100644 --- a/packages/core/util/FileSystem.ts +++ b/packages/core/util/FileSystem.ts @@ -30,6 +30,7 @@ export class FsFileSystem implements IFileSystem { } public glob(dirPath: string, pattern: string): string[] { - return glob.sync(path.join(dirPath, pattern), { nodir: true }); + return glob.sync(path.join(dirPath, pattern), { nodir: true }) + .map(filePath => filePath.replace(/\\/g, "/")); } } diff --git a/packages/core/util/Util.ts b/packages/core/util/Util.ts index 6694340fb..66228f1f1 100644 --- a/packages/core/util/Util.ts +++ b/packages/core/util/Util.ts @@ -79,7 +79,8 @@ export class Util { } return new Promise((resolve, reject) => { - const filePaths: string[] = glob.sync(sourcePath + "/**/*", { nodir: true }); + const filePaths: string[] = glob.sync(sourcePath + "/**/*", { nodir: true }) + .map(filePath => filePath.replace(/\\/g, "/")); let fileCount = filePaths.length; // if no files should be created, resolve if (fileCount === 0) { @@ -608,9 +609,11 @@ export class Util { sourcePath = sourcePath.replace(/\\/g, "/"); destinationPath = destinationPath.replace(/\\/g, "/"); - let paths: string[] = glob.sync(sourcePath + "/**/*", { nodir: true }); + let paths: string[] = glob.sync(sourcePath + "/**/*", { nodir: true }) + .map(filePath => filePath.replace(/\\/g, "/")); // TODO: D.P Temporary ignoring asset files - const ignorePaths: string[] = glob.sync(sourcePath + "/**/+(assets|data)/**/*", { nodir: true }); + const ignorePaths: string[] = glob.sync(sourcePath + "/**/+(assets|data)/**/*", { nodir: true }) + .map(filePath => filePath.replace(/\\/g, "/")); paths = paths.filter(x => ignorePaths.indexOf(x) === -1); for (let filePath of paths) { diff --git a/packages/igx-templates/igx-ts-legacy/pivot-grid/default/files/src/app/__path__/data.ts b/packages/igx-templates/igx-ts-legacy/pivot-grid/default/files/src/app/__path__/data.ts index 3f031f475..8fa57cd86 100644 --- a/packages/igx-templates/igx-ts-legacy/pivot-grid/default/files/src/app/__path__/data.ts +++ b/packages/igx-templates/igx-ts-legacy/pivot-grid/default/files/src/app/__path__/data.ts @@ -1,4 +1,4 @@ -export const DATA = [ +export const DATA: any = [ { Product: { Name: 'Clothing', diff --git a/packages/igx-templates/igx-ts-legacy/projects/_base/files/__dot__eslintrc.json b/packages/igx-templates/igx-ts-legacy/projects/_base/files/__dot__eslintrc.json deleted file mode 100644 index 1ac8ebcb1..000000000 --- a/packages/igx-templates/igx-ts-legacy/projects/_base/files/__dot__eslintrc.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "root": true, - "ignorePatterns": [ - "projects/**/*" - ], - "overrides": [ - { - "files": [ - "*.ts" - ], - "parserOptions": { - "project": [ - "tsconfig.json" - ], - "createDefaultProgram": true - }, - "extends": [ - "plugin:@angular-eslint/recommended", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "rules": { - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": "app", - "style": "camelCase" - } - ], - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "app", - "style": "kebab-case" - } - ], - "@angular-eslint/prefer-standalone": "off" - } - }, - { - "files": [ - "*.html" - ], - "extends": [ - "plugin:@angular-eslint/template/recommended" - ], - "rules": {} - } - ] -} diff --git a/packages/igx-templates/igx-ts-legacy/projects/_base/files/angular.json b/packages/igx-templates/igx-ts-legacy/projects/_base/files/angular.json index 0ec4d1de6..14c2e036d 100644 --- a/packages/igx-templates/igx-ts-legacy/projects/_base/files/angular.json +++ b/packages/igx-templates/igx-ts-legacy/projects/_base/files/angular.json @@ -52,7 +52,7 @@ }, { "type": "anyComponentStyle", - "maximumWarning": "6kb", + "maximumWarning": "8kb", "maximumError": "2mb" } ], @@ -116,6 +116,7 @@ "lint": { "builder": "@angular-eslint/builder:lint", "options": { + "eslintConfig": "eslint.config.mjs", "lintFilePatterns": [ "src/**/*.ts", "src/**/*.html" diff --git a/packages/igx-templates/igx-ts-legacy/projects/_base/files/eslint.config.mjs b/packages/igx-templates/igx-ts-legacy/projects/_base/files/eslint.config.mjs new file mode 100644 index 000000000..3810c1dfe --- /dev/null +++ b/packages/igx-templates/igx-ts-legacy/projects/_base/files/eslint.config.mjs @@ -0,0 +1,35 @@ +import { FlatCompat } from '@eslint/eslintrc'; + +const compat = new FlatCompat(); + +export default [ + ...compat.extends('plugin:@angular-eslint/recommended', 'plugin:@angular-eslint/template/process-inline-templates'), + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + parserOptions: { + project: ['tsconfig.json'], + createDefaultProgram: true, + }, + }, + rules: { + '@angular-eslint/directive-selector': [ + 'error', + { type: 'attribute', prefix: 'app', style: 'camelCase' }, + ], + '@angular-eslint/component-selector': [ + 'error', + { type: 'element', prefix: 'app', style: 'kebab-case' }, + ], + '@angular-eslint/prefer-standalone': 'off' + }, + }, + ...compat.extends('plugin:@angular-eslint/template/recommended'), + { + files: ['**/*.html'], + rules: {}, + }, + { + ignores: ['projects/**/*'] + }, +]; diff --git a/packages/igx-templates/igx-ts-legacy/projects/_base/files/package.json b/packages/igx-templates/igx-ts-legacy/projects/_base/files/package.json index b15db010f..d4a45a046 100644 --- a/packages/igx-templates/igx-ts-legacy/projects/_base/files/package.json +++ b/packages/igx-templates/igx-ts-legacy/projects/_base/files/package.json @@ -44,7 +44,10 @@ "@types/jasmine": "~5.1.1", "@typescript-eslint/eslint-plugin": "8.21.0", "@typescript-eslint/parser": "8.21.0", - "eslint": "~8.57.0", + "eslint": "~9.20.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-prefer-arrow": "^1.2.3", + "eslint-plugin-unicorn": "^52.0.0", "igniteui-cli": "~<%=cliVersion%>", "jasmine-core": "~5.1.0", "karma": "~6.4.0", diff --git a/packages/igx-templates/igx-ts-legacy/projects/_base/files/tsconfig.json b/packages/igx-templates/igx-ts-legacy/projects/_base/files/tsconfig.json index b9dc42366..b154bbef8 100644 --- a/packages/igx-templates/igx-ts-legacy/projects/_base/files/tsconfig.json +++ b/packages/igx-templates/igx-ts-legacy/projects/_base/files/tsconfig.json @@ -25,6 +25,12 @@ "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true, - "strictTemplates": true + "strictTemplates": true, + // TODO: Remove this option when fixing https://infragistics.visualstudio.com/Indigo_Platform/_workitems/edit/30602 + "extendedDiagnostics": { + "checks": { + "optionalChainNotNullable": "suppress" + } + } } } diff --git a/packages/igx-templates/igx-ts-legacy/projects/side-nav-auth/files/package.json b/packages/igx-templates/igx-ts-legacy/projects/side-nav-auth/files/package.json index e9713efbd..0a3348f44 100644 --- a/packages/igx-templates/igx-ts-legacy/projects/side-nav-auth/files/package.json +++ b/packages/igx-templates/igx-ts-legacy/projects/side-nav-auth/files/package.json @@ -43,7 +43,7 @@ "@types/jasminewd2": "~2.0.3", "@typescript-eslint/eslint-plugin": "8.21.0", "@typescript-eslint/parser": "8.21.0", - "eslint": "~8.57.0", + "eslint": "~9.20.0", "igniteui-cli": "~<%=cliVersion%>", "jasmine-core": "~5.1.0", "karma": "~6.4.0", diff --git a/packages/igx-templates/igx-ts/pivot-grid/default/files/src/app/__path__/data.ts b/packages/igx-templates/igx-ts/pivot-grid/default/files/src/app/__path__/data.ts index 3f031f475..8fa57cd86 100644 --- a/packages/igx-templates/igx-ts/pivot-grid/default/files/src/app/__path__/data.ts +++ b/packages/igx-templates/igx-ts/pivot-grid/default/files/src/app/__path__/data.ts @@ -1,4 +1,4 @@ -export const DATA = [ +export const DATA: any = [ { Product: { Name: 'Clothing', diff --git a/packages/igx-templates/igx-ts/projects/_base/files/__dot__eslintrc.json b/packages/igx-templates/igx-ts/projects/_base/files/__dot__eslintrc.json deleted file mode 100644 index cafca8965..000000000 --- a/packages/igx-templates/igx-ts/projects/_base/files/__dot__eslintrc.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "root": true, - "ignorePatterns": [ - "projects/**/*" - ], - "overrides": [ - { - "files": [ - "*.ts" - ], - "parserOptions": { - "project": [ - "tsconfig.json" - ], - "createDefaultProgram": true - }, - "extends": [ - "plugin:@angular-eslint/recommended", - "plugin:@angular-eslint/template/process-inline-templates" - ], - "rules": { - "@angular-eslint/directive-selector": [ - "error", - { - "type": "attribute", - "prefix": "app", - "style": "camelCase" - } - ], - "@angular-eslint/component-selector": [ - "error", - { - "type": "element", - "prefix": "app", - "style": "kebab-case" - } - ] - } - }, - { - "files": [ - "*.html" - ], - "extends": [ - "plugin:@angular-eslint/template/recommended" - ], - "rules": {} - } - ] -} diff --git a/packages/igx-templates/igx-ts/projects/_base/files/angular.json b/packages/igx-templates/igx-ts/projects/_base/files/angular.json index 33062cc5e..ac0eb04f8 100644 --- a/packages/igx-templates/igx-ts/projects/_base/files/angular.json +++ b/packages/igx-templates/igx-ts/projects/_base/files/angular.json @@ -51,7 +51,7 @@ }, { "type": "anyComponentStyle", - "maximumWarning": "6kb", + "maximumWarning": "8kb", "maximumError": "2mb" } ], @@ -110,10 +110,11 @@ "lint": { "builder": "@angular-eslint/builder:lint", "options": { - "lintFilePatterns": [ - "src/**/*.ts", - "src/**/*.html" - ] + "eslintConfig": "eslint.config.mjs", + "lintFilePatterns": [ + "src/**/*.ts", + "src/**/*.html" + ] } } } diff --git a/packages/igx-templates/igx-ts/projects/_base/files/eslint.config.mjs b/packages/igx-templates/igx-ts/projects/_base/files/eslint.config.mjs new file mode 100644 index 000000000..dd20388f3 --- /dev/null +++ b/packages/igx-templates/igx-ts/projects/_base/files/eslint.config.mjs @@ -0,0 +1,34 @@ +import { FlatCompat } from '@eslint/eslintrc'; + +const compat = new FlatCompat(); + +export default [ + ...compat.extends('plugin:@angular-eslint/recommended', 'plugin:@angular-eslint/template/process-inline-templates'), + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + parserOptions: { + project: ['tsconfig.json'], + createDefaultProgram: true, + }, + }, + rules: { + '@angular-eslint/directive-selector': [ + 'error', + { type: 'attribute', prefix: 'app', style: 'camelCase' }, + ], + '@angular-eslint/component-selector': [ + 'error', + { type: 'element', prefix: 'app', style: 'kebab-case' }, + ] + }, + }, + ...compat.extends('plugin:@angular-eslint/template/recommended'), + { + files: ['**/*.html'], + rules: {}, + }, + { + ignores: ['projects/**/*'] + }, +]; diff --git a/packages/igx-templates/igx-ts/projects/_base/files/package.json b/packages/igx-templates/igx-ts/projects/_base/files/package.json index cfe0e3595..005045a42 100644 --- a/packages/igx-templates/igx-ts/projects/_base/files/package.json +++ b/packages/igx-templates/igx-ts/projects/_base/files/package.json @@ -44,7 +44,10 @@ "@types/jasmine": "~5.1.1", "@typescript-eslint/eslint-plugin": "~8.21.0", "@typescript-eslint/parser": "~8.21.0", - "eslint": "~8.57.0", + "eslint": "~9.20.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-prefer-arrow": "^1.2.3", + "eslint-plugin-unicorn": "^52.0.0", "igniteui-cli": "~<%=cliVersion%>", "jasmine-core": "~5.1.0", "karma": "~6.4.0", diff --git a/packages/igx-templates/igx-ts/projects/_base/files/tsconfig.json b/packages/igx-templates/igx-ts/projects/_base/files/tsconfig.json index 5c0abd9d6..56b390da9 100644 --- a/packages/igx-templates/igx-ts/projects/_base/files/tsconfig.json +++ b/packages/igx-templates/igx-ts/projects/_base/files/tsconfig.json @@ -27,6 +27,12 @@ "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true, - "strictTemplates": true + "strictTemplates": true, + // TODO: Remove this option when fixing https://infragistics.visualstudio.com/Indigo_Platform/_workitems/edit/30602 + "extendedDiagnostics": { + "checks": { + "optionalChainNotNullable": "suppress" + } + } } } diff --git a/packages/igx-templates/igx-ts/projects/side-nav-auth/files/package.json b/packages/igx-templates/igx-ts/projects/side-nav-auth/files/package.json index 3b6631634..caf7d478f 100644 --- a/packages/igx-templates/igx-ts/projects/side-nav-auth/files/package.json +++ b/packages/igx-templates/igx-ts/projects/side-nav-auth/files/package.json @@ -43,7 +43,7 @@ "@types/jasminewd2": "~2.0.3", "@typescript-eslint/eslint-plugin": "8.21.0", "@typescript-eslint/parser": "8.21.0", - "eslint": "~8.57.0", + "eslint": "~9.20.0", "igniteui-cli": "~<%=cliVersion%>", "jasmine-core": "~5.1.0", "karma": "~6.4.0", diff --git a/packages/igx-templates/package.json b/packages/igx-templates/package.json index bca47a61e..71db65f43 100644 --- a/packages/igx-templates/package.json +++ b/packages/igx-templates/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/angular-templates", - "version": "19.0.14313", + "version": "19.0.14314-beta.10", "description": "Templates for Ignite UI for Angular projects and components", "repository": { "type": "git", @@ -12,7 +12,7 @@ "author": "Infragistics", "license": "MIT", "dependencies": { - "@igniteui/cli-core": "~14.3.13", + "@igniteui/cli-core": "~14.3.14-beta.10", "typescript": "~5.5.4" } } diff --git a/packages/ng-schematics/package.json b/packages/ng-schematics/package.json index 9fc22c1da..a05b68a44 100644 --- a/packages/ng-schematics/package.json +++ b/packages/ng-schematics/package.json @@ -1,6 +1,6 @@ { "name": "@igniteui/angular-schematics", - "version": "19.0.14313", + "version": "19.0.14314-beta.10", "description": "Ignite UI for Angular Schematics for ng new and ng generate", "repository": { "type": "git", @@ -20,8 +20,8 @@ "dependencies": { "@angular-devkit/core": "^19.0.0", "@angular-devkit/schematics": "^19.0.0", - "@igniteui/angular-templates": "~19.0.14313", - "@igniteui/cli-core": "~14.3.13", + "@igniteui/angular-templates": "~19.0.14314-beta.10", + "@igniteui/cli-core": "~14.3.14-beta.10", "@schematics/angular": "~19.0.0", "minimatch": "^10.0.1", "rxjs": "^7.8.1" diff --git a/spec/acceptance/add-spec.ts b/spec/acceptance/add-spec.ts index fae0c1389..c1b827f5c 100644 --- a/spec/acceptance/add-spec.ts +++ b/spec/acceptance/add-spec.ts @@ -128,7 +128,7 @@ describe("Add command", () => { await cli.run(["add", "grid", "Test view"]); expect(console.error).toHaveBeenCalledWith( - jasmine.stringMatching(/test-view[\\\/]index.html already exists!*/) + jasmine.stringMatching(/test-view[\\\/]style.css already exists!*/) ); expect(fs.readFileSync("./test-view/index.html").toString()).toEqual("test", "Shouldn't overwrite file contents"); @@ -137,7 +137,7 @@ describe("Add command", () => { await cli.run(["add", "grid", "test-View"]); expect(console.error).toHaveBeenCalledWith( - jasmine.stringMatching(/test-view[\\\/]index.html already exists!*/) + jasmine.stringMatching(/test-view[\\\/]style.css already exists!*/) ); expect(fs.readFileSync("./test-view/index.html").toString()).toEqual("test", "Shouldn't overwrite file contents"); @@ -146,7 +146,7 @@ describe("Add command", () => { await cli.run(["add", "grid", " Test-view \t "]); expect(console.error).toHaveBeenCalledWith( - jasmine.stringMatching(/test-view[\\\/]index.html already exists!*/) + jasmine.stringMatching(/test-view[\\\/]style.css already exists!*/) ); expect(fs.readFileSync("./test-view/index.html").toString()).toEqual("test", "Shouldn't overwrite file contents"); diff --git a/spec/helpers/utils.ts b/spec/helpers/utils.ts index bcd6b08fc..301a9f2ed 100644 --- a/spec/helpers/utils.ts +++ b/spec/helpers/utils.ts @@ -6,9 +6,11 @@ import * as glob from "glob"; * @param folderPath Folder path */ export function deleteAll(folderPath: string) { - const files: string[] = glob.sync(folderPath + "/**/*", { dot: true, nodir: true }); + const files: string[] = glob.sync(folderPath + "/**/*", { dot: true, nodir: true }) + .map(filePath => filePath.replace(/\\/g, "/")); files.forEach(x => fs.unlinkSync(x)); - const folders: string[] = glob.sync(folderPath + "/**/*", { dot: true }); + const folders: string[] = glob.sync(folderPath + "/**/*", { dot: true }) + .map(filePath => filePath.replace(/\\/g, "/")); folders.reverse().forEach(x => fs.rmdirSync(x)); } @@ -25,8 +27,10 @@ export function filesDiff( transform1?: (val: string) => string, transform2?: (val: string) => string ): string[] { - let files1: string[] = glob.sync("**/*", {cwd: folderPath1, dot: true, nodir: true }); - let files2: string[] = glob.sync("**/*", {cwd: folderPath1, dot: true, nodir: true }); + let files1: string[] = glob.sync("**/*", {cwd: folderPath1, dot: true, nodir: true }) + .map(filePath => filePath.replace(/\\/g, "/")); + let files2: string[] = glob.sync("**/*", {cwd: folderPath1, dot: true, nodir: true }) + .map(filePath => filePath.replace(/\\/g, "/")); if (transform1) { files1 = files1.map(transform1); } diff --git a/yarn.lock b/yarn.lock index a095fd30f..442e3f291 100644 --- a/yarn.lock +++ b/yarn.lock @@ -226,11 +226,34 @@ dependencies: eslint-visitor-keys "^3.4.3" -"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1": +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": version "4.12.1" resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== +"@eslint/config-array@^0.19.0": + version "0.19.2" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.19.2.tgz#3060b809e111abfc97adb0bb1172778b90cb46aa" + integrity sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w== + dependencies: + "@eslint/object-schema" "^2.1.6" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/core@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.10.0.tgz#23727063c21b335f752dbb3a16450f6f9cbc9091" + integrity sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw== + dependencies: + "@types/json-schema" "^7.0.15" + +"@eslint/core@^0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.11.0.tgz#7a9226e850922e42cbd2ba71361eacbe74352a12" + integrity sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA== + dependencies: + "@types/json-schema" "^7.0.15" + "@eslint/eslintrc@^2.1.4": version "2.1.4" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" @@ -246,34 +269,71 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.1": - version "8.57.1" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.1.tgz#de633db3ec2ef6a3c89e2f19038063e8a122e2c2" - integrity sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q== +"@eslint/eslintrc@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.2.0.tgz#57470ac4e2e283a6bf76044d63281196e370542c" + integrity sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^10.0.1" + globals "^14.0.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@9.20.0": + version "9.20.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.20.0.tgz#7421bcbe74889fcd65d1be59f00130c289856eb4" + integrity sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ== + +"@eslint/object-schema@^2.1.6": + version "2.1.6" + resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f" + integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== + +"@eslint/plugin-kit@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz#ee07372035539e7847ef834e3f5e7b79f09e3a81" + integrity sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A== + dependencies: + "@eslint/core" "^0.10.0" + levn "^0.4.1" "@gar/promisify@^1.0.1": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== -"@humanwhocodes/config-array@^0.13.0": - version "0.13.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.13.0.tgz#fb907624df3256d04b9aa2df50d7aa97ec648748" - integrity sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw== +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== + +"@humanfs/node@^0.16.6": + version "0.16.6" + resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.6.tgz#ee2a10eaabd1131987bf0488fd9b820174cd765e" + integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== dependencies: - "@humanwhocodes/object-schema" "^2.0.3" - debug "^4.3.1" - minimatch "^3.0.5" + "@humanfs/core" "^0.19.1" + "@humanwhocodes/retry" "^0.3.0" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.3": - version "2.0.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" - integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== +"@humanwhocodes/retry@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.3.1.tgz#c72a5c76a9fbaf3488e231b13dc52c0da7bab42a" + integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== + +"@humanwhocodes/retry@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" + integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== "@hutson/parse-repository-url@^3.0.0": version "3.0.2" @@ -620,7 +680,7 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -1126,12 +1186,17 @@ dependencies: "@types/node" "*" +"@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + "@types/jasmine@^5.1.4": version "5.1.5" resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-5.1.5.tgz#bba343c504f48e596837415f0558e10b8a0e5f7d" integrity sha512-SaCZ3kM5NjOiJqMRYwHpLbTfUC2Dyk1KS3QanNFsUYPGTk70CWVK/J9ueun6zNhw/UkgV7xl8V4ZLQZNRbfnNw== -"@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.15", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -1280,11 +1345,6 @@ "@typescript-eslint/types" "8.21.0" eslint-visitor-keys "^4.2.0" -"@ungap/structured-clone@^1.2.0": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.1.tgz#28fa185f67daaf7b7a1a8c1d445132c5d979f8bd" - integrity sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA== - "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -1338,7 +1398,7 @@ acorn-walk@^8.1.1: dependencies: acorn "^8.11.0" -acorn@^8.11.0, acorn@^8.4.1, acorn@^8.9.0: +acorn@^8.11.0, acorn@^8.14.0, acorn@^8.4.1, acorn@^8.9.0: version "8.14.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== @@ -2310,7 +2370,7 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: +cross-spawn@^7.0.0, cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== @@ -2526,13 +2586,6 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== - dependencies: - esutils "^2.0.2" - dot-prop@^5.1.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -2890,10 +2943,10 @@ eslint-plugin-unicorn@^52.0.0: semver "^7.5.4" strip-indent "^3.0.0" -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.2.0.tgz#377aa6f1cb5dc7592cfd0b7f892fd0cf352ce442" + integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" @@ -2908,51 +2961,56 @@ eslint-visitor-keys@^4.2.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz#687bacb2af884fcdda8a6e7d65c606f46a14cd45" integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== -eslint@^8.57.0: - version "8.57.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.1.tgz#7df109654aba7e3bbe5c8eae533c5e461d3c6ca9" - integrity sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA== +eslint@^9.20.0: + version "9.20.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.20.0.tgz#6244c46c1640cd5e577a31ebc460fca87838c0b7" + integrity sha512-aL4F8167Hg4IvsW89ejnpTwx+B/UQRzJPGgbIOl+4XqffWsahVVsLEWoZvnrVuwpWmnRd7XeXmQI1zlKcFDteA== dependencies: "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.1" - "@humanwhocodes/config-array" "^0.13.0" + "@eslint-community/regexpp" "^4.12.1" + "@eslint/config-array" "^0.19.0" + "@eslint/core" "^0.11.0" + "@eslint/eslintrc" "^3.2.0" + "@eslint/js" "9.20.0" + "@eslint/plugin-kit" "^0.2.5" + "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" + "@humanwhocodes/retry" "^0.4.1" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" ajv "^6.12.4" chalk "^4.0.0" - cross-spawn "^7.0.2" + cross-spawn "^7.0.6" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^8.2.0" + eslint-visitor-keys "^4.2.0" + espree "^10.3.0" + esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: +espree@^10.0.1, espree@^10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/espree/-/espree-10.3.0.tgz#29267cf5b0cb98735b65e64ba07e0ed49d1eed8a" + integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== + dependencies: + acorn "^8.14.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^4.2.0" + +espree@^9.6.0: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -2966,7 +3024,7 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2, esquery@^1.5.0: +esquery@^1.5.0: version "1.6.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.6.0.tgz#91419234f804d852a82dceec3e16cdc22cf9dae7" integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== @@ -3089,12 +3147,12 @@ figures@3.2.0, figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" filelist@^1.0.4: version "1.0.4" @@ -3155,14 +3213,13 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" + keyv "^4.5.4" flat@^5.0.2: version "5.0.2" @@ -3464,7 +3521,7 @@ glob@^11.0.0: package-json-from-dist "^1.0.0" path-scurry "^2.0.0" -glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: +glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -3498,6 +3555,11 @@ globals@^13.19.0: dependencies: type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + globalthis@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" @@ -4046,11 +4108,6 @@ is-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== -is-path-inside@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" - integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== - is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -4472,7 +4529,7 @@ just-diff@^6.0.0: resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== -keyv@^4.5.3: +keyv@^4.5.4: version "4.5.4" resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -4918,7 +4975,7 @@ minimatch@^10.0.0, minimatch@^10.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -6714,7 +6771,16 @@ stream-throttle@^0.1.3: commander "^2.2.0" limiter "^1.0.5" -"string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -6778,7 +6844,14 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -6889,11 +6962,6 @@ text-extensions@^1.0.0: resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" @@ -7451,7 +7519,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -7469,6 +7537,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"