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"