feat: ✨ 🦄 unicorn rules
This commit is contained in:
@@ -47,6 +47,7 @@
|
||||
"eslint-plugin-i": "2.28.0-2",
|
||||
"eslint-plugin-jsdoc": "^46.5.0",
|
||||
"eslint-plugin-perfectionist": "^1.5.1",
|
||||
"eslint-plugin-unicorn": "^48.0.1",
|
||||
"globals": "^13.21.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
|
||||
@@ -12,15 +12,15 @@ import type { ESLint, Linter } from 'eslint';
|
||||
declare module '@typescript-eslint/eslint-plugin' {
|
||||
interface typescriptEslintPlugin extends ESLint.Plugin {
|
||||
configs: {
|
||||
'eslint-recommended': {
|
||||
rules: Linter.RulesRecord
|
||||
}
|
||||
recommended: {
|
||||
rules: Linter.RulesRecord
|
||||
}
|
||||
'recommended-requiring-type-checking': {
|
||||
rules: Linter.RulesRecord
|
||||
}
|
||||
'eslint-recommended': {
|
||||
rules: Linter.RulesRecord
|
||||
}
|
||||
strict: {
|
||||
rules: Linter.RulesRecord
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import tsESLint from '@typescript-eslint/eslint-plugin';
|
||||
import { jsFiles, tsFiles } from '../constants.js';
|
||||
import unicornPlugin from 'eslint-plugin-unicorn';
|
||||
import tsParser from '@typescript-eslint/parser';
|
||||
import jsdocPlugin from 'eslint-plugin-jsdoc';
|
||||
import importPlugin from 'eslint-plugin-i';
|
||||
@@ -29,6 +30,8 @@ const config = {
|
||||
'import': importPlugin,
|
||||
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
||||
'jsdoc': jsdocPlugin,
|
||||
// @ts-expect-error because eslint-plugin-unicorn doesn't export correct types
|
||||
'unicorn': unicornPlugin,
|
||||
},
|
||||
settings: {
|
||||
'import/extensions': [...tsFiles, ...jsFiles],
|
||||
|
||||
29
packages/config/src/configs/environments/browser.js
Normal file
29
packages/config/src/configs/environments/browser.js
Normal file
@@ -0,0 +1,29 @@
|
||||
/* eslint-disable unicorn/no-useless-spread */
|
||||
import { jsFiles, tsFiles } from '../../constants.js';
|
||||
|
||||
/** @type {import('eslint').Linter.FlatConfig} */
|
||||
const recommended = {
|
||||
files: [...tsFiles, ...jsFiles],
|
||||
rules: {
|
||||
...{}, // Plugin: eslint-plugin-unicorn
|
||||
'unicorn/prefer-add-event-listener': 'error',
|
||||
'unicorn/prefer-dom-node-append': 'error',
|
||||
'unicorn/prefer-dom-node-dataset': 'error',
|
||||
'unicorn/prefer-dom-node-remove': 'error',
|
||||
'unicorn/prefer-dom-node-text-content': 'error',
|
||||
'unicorn/prefer-keyboard-event-key': 'error',
|
||||
'unicorn/prefer-modern-dom-apis': 'error',
|
||||
'unicorn/prefer-query-selector': 'error',
|
||||
},
|
||||
};
|
||||
|
||||
/** @type {import('eslint').Linter.FlatConfig} */
|
||||
const strict = {
|
||||
...recommended,
|
||||
rules: {
|
||||
...recommended.rules,
|
||||
},
|
||||
};
|
||||
|
||||
const node = { recommended, strict };
|
||||
export default node;
|
||||
5
packages/config/src/configs/environments/index.js
Normal file
5
packages/config/src/configs/environments/index.js
Normal file
@@ -0,0 +1,5 @@
|
||||
import browser from './browser.js';
|
||||
import node from './node.js';
|
||||
|
||||
const environments = { browser, node };
|
||||
export default environments;
|
||||
30
packages/config/src/configs/environments/node.js
Normal file
30
packages/config/src/configs/environments/node.js
Normal file
@@ -0,0 +1,30 @@
|
||||
/* eslint-disable unicorn/no-useless-spread */
|
||||
import { jsFiles, tsFiles } from '../../constants.js';
|
||||
|
||||
/** @type {import('eslint').Linter.FlatConfig} */
|
||||
const commonjs = {
|
||||
files: ['**/*.cts', '**/*.cjs'],
|
||||
rules: {
|
||||
'unicorn/prefer-module': 'off',
|
||||
},
|
||||
};
|
||||
|
||||
/** @type {import('eslint').Linter.FlatConfig} */
|
||||
const recommended = {
|
||||
files: [...tsFiles, ...jsFiles],
|
||||
rules: {
|
||||
...{}, // Plugin: eslint-plugin-unicorn
|
||||
'unicorn/prefer-node-protocol': 'error',
|
||||
},
|
||||
};
|
||||
|
||||
/** @type {import('eslint').Linter.FlatConfig} */
|
||||
const strict = {
|
||||
...recommended,
|
||||
rules: {
|
||||
...recommended.rules,
|
||||
},
|
||||
};
|
||||
|
||||
const node = { commonjs, recommended, strict };
|
||||
export default node;
|
||||
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable unicorn/no-useless-spread */
|
||||
import perfectionistPlugin from 'eslint-plugin-perfectionist';
|
||||
import { jsFiles, tsFiles } from '../constants.js';
|
||||
|
||||
|
||||
@@ -1,9 +1,20 @@
|
||||
|
||||
import environments from './environments/index.js';
|
||||
import suggestions from './suggestions.js';
|
||||
import javascript from './javascript.js';
|
||||
import typescript from './typescript.js';
|
||||
import formatting from './formatting.js';
|
||||
import javascript from './javascript.js';
|
||||
import overrides from './overrides.js';
|
||||
import naming from './naming.js';
|
||||
import core from './core.js';
|
||||
|
||||
const configs = { core, formatting, javascript, suggestions, typescript };
|
||||
const configs = { core,
|
||||
environments,
|
||||
formatting,
|
||||
javascript,
|
||||
naming,
|
||||
overrides,
|
||||
suggestions,
|
||||
typescript,
|
||||
};
|
||||
export default configs;
|
||||
|
||||
30
packages/config/src/configs/naming.js
Normal file
30
packages/config/src/configs/naming.js
Normal file
@@ -0,0 +1,30 @@
|
||||
import { jsFiles, tsFiles } from '../constants.js';
|
||||
|
||||
/**
|
||||
* This config suggest alternate ways of doing things in JavaScript and TypeScript
|
||||
* Recommended alternative, better for projects in prototyping phases.
|
||||
* @type {import('eslint').Linter.FlatConfig}
|
||||
*/
|
||||
const recommended = {
|
||||
files: [...tsFiles, ...jsFiles],
|
||||
rules: {
|
||||
'unicorn/filename-case': ['error', { case: 'kebabCase' }],
|
||||
'unicorn/prevent-abbreviations': 'error',
|
||||
},
|
||||
};
|
||||
|
||||
/**
|
||||
* This config suggest alternate ways of doing things in JavaScript and TypeScript
|
||||
* Strict alternative, better for projects in refactoring and/or production phases.
|
||||
* @type {import('eslint').Linter.FlatConfig}
|
||||
*/
|
||||
const strict = {
|
||||
...recommended,
|
||||
rules: {
|
||||
...recommended.rules,
|
||||
'unicorn/no-keyword-prefix': 'error',
|
||||
},
|
||||
};
|
||||
|
||||
const suggestions = { recommended, strict };
|
||||
export default suggestions;
|
||||
@@ -1,4 +1,5 @@
|
||||
import { jsFiles, tsFiles } from '../constants';
|
||||
/* eslint-disable unicorn/no-useless-spread */
|
||||
import { jsFiles, tsFiles } from '../constants.js';
|
||||
|
||||
/**
|
||||
* This config relates to possible logic and syntax errors JavaScript and TypeScript
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/* eslint-disable unicorn/no-useless-spread */
|
||||
import { jsFiles, tsFiles } from '../constants.js';
|
||||
|
||||
/**
|
||||
@@ -15,6 +16,7 @@ const recommended = {
|
||||
'no-constant-condition': 'error',
|
||||
'no-delete-var': 'error',
|
||||
'no-empty': 'error',
|
||||
'no-lonely-if': 'error',
|
||||
'no-useless-catch': 'error',
|
||||
'no-useless-escape': 'error',
|
||||
'no-var': 'error',
|
||||
@@ -29,6 +31,98 @@ const recommended = {
|
||||
'prefer-template': 'error',
|
||||
'quote-props': ['error', 'consistent-as-needed'],
|
||||
'require-yield': 'error',
|
||||
|
||||
...{}, // Plugin: eslint-plugin-unicorn
|
||||
'unicorn/better-regex': 'error',
|
||||
'unicorn/catch-error-name': 'error',
|
||||
'unicorn/consistent-destructuring': 'error',
|
||||
'unicorn/consistent-function-scoping': 'error',
|
||||
'unicorn/empty-brace-spaces': 'error',
|
||||
'unicorn/error-message': 'error',
|
||||
'unicorn/escape-case': 'error',
|
||||
'unicorn/expiring-todo-comments': ['error', { allowWarningComments: false }],
|
||||
'unicorn/explicit-length-check': 'error',
|
||||
'unicorn/new-for-builtins': 'error',
|
||||
'unicorn/no-abusive-eslint-disable': 'error',
|
||||
'unicorn/no-array-callback-reference': 'error',
|
||||
'unicorn/no-array-for-each': 'error',
|
||||
'unicorn/no-array-method-this-argument': 'error',
|
||||
'unicorn/no-array-push-push': 'error',
|
||||
'unicorn/no-array-reduce': 'error',
|
||||
'unicorn/no-await-expression-member': 'error',
|
||||
'unicorn/no-console-spaces': 'error',
|
||||
'unicorn/no-document-cookie': 'error',
|
||||
'unicorn/no-empty-file': 'error',
|
||||
'unicorn/no-for-loop': 'error',
|
||||
'unicorn/no-hex-escape': 'error',
|
||||
'unicorn/no-instanceof-array': 'error',
|
||||
'unicorn/no-invalid-remove-event-listener': 'error',
|
||||
'unicorn/no-lonely-if': 'error',
|
||||
'unicorn/no-new-array': 'error',
|
||||
'unicorn/no-new-buffer': 'error',
|
||||
'unicorn/no-object-as-default-parameter': 'error',
|
||||
'unicorn/no-process-exit': 'error',
|
||||
'unicorn/no-static-only-class': 'error',
|
||||
'unicorn/no-thenable': 'error',
|
||||
'unicorn/no-this-assignment': 'error',
|
||||
'unicorn/no-typeof-undefined': 'error',
|
||||
'unicorn/no-unnecessary-await': 'error',
|
||||
'unicorn/no-unreadable-array-destructuring': 'error',
|
||||
'unicorn/no-unreadable-iife': 'error',
|
||||
'unicorn/no-useless-fallback-in-spread': 'error',
|
||||
'unicorn/no-useless-length-check': 'error',
|
||||
'unicorn/no-useless-promise-resolve-reject': 'error',
|
||||
'unicorn/no-useless-spread': 'error',
|
||||
'unicorn/no-useless-switch-case': 'error',
|
||||
/*
|
||||
* TODO (@guz013) [>=1.0.0]: 'unicorn/no-useless-undefined' rule
|
||||
* It could be better to use a invert to this rule instead, as
|
||||
* explicity code could be better then implicitly.
|
||||
*/
|
||||
'unicorn/no-zero-fractions': 'error',
|
||||
'unicorn/number-literal-case': 'error',
|
||||
'unicorn/numeric-separators-style': 'error',
|
||||
'unicorn/prefer-array-find': ['error', { checkFromLast: true }],
|
||||
'unicorn/prefer-array-flat': 'error',
|
||||
'unicorn/prefer-array-flat-map': 'error',
|
||||
'unicorn/prefer-array-index-of': 'error',
|
||||
'unicorn/prefer-array-some': 'error',
|
||||
'unicorn/prefer-at': 'error',
|
||||
'unicorn/prefer-blob-reading-methods': 'error',
|
||||
'unicorn/prefer-code-point': 'error',
|
||||
'unicorn/prefer-date-now': 'error',
|
||||
'unicorn/prefer-default-parameters': 'error',
|
||||
'unicorn/prefer-event-target': 'error',
|
||||
'unicorn/prefer-export-from': 'error',
|
||||
'unicorn/prefer-includes': 'error',
|
||||
'unicorn/prefer-logical-operator-over-ternary': 'error',
|
||||
'unicorn/prefer-math-trunc': 'error',
|
||||
'unicorn/prefer-modern-math-apis': 'error',
|
||||
'unicorn/prefer-module': 'error',
|
||||
'unicorn/prefer-native-coercion-functions': 'error',
|
||||
'unicorn/prefer-negative-index': 'error',
|
||||
'unicorn/prefer-number-properties': 'error',
|
||||
'unicorn/prefer-optional-catch-binding': 'error',
|
||||
'unicorn/prefer-prototype-methods': 'error',
|
||||
'unicorn/prefer-reflect-apply': 'error',
|
||||
'unicorn/prefer-regexp-test': 'error',
|
||||
'unicorn/prefer-set-has': 'error',
|
||||
'unicorn/prefer-set-size': 'error', // TODO [>=1.0.0]: Should this be on a "performance" preset?
|
||||
'unicorn/prefer-spread': 'error', // TODO [>=1.0.0]: Should this be disabled on a "performance" preset?
|
||||
'unicorn/prefer-string-replace-all': 'error',
|
||||
'unicorn/prefer-string-slice': 'error',
|
||||
'unicorn/prefer-string-starts-ends-with': 'error',
|
||||
'unicorn/prefer-string-trim-start-end': 'error',
|
||||
'unicorn/prefer-switch': ['error', { emptyDefaultCase: 'do-nothing-comment' }],
|
||||
'unicorn/prefer-ternary': 'error',
|
||||
'unicorn/prefer-top-level-await': 'error',
|
||||
'unicorn/prefer-type-error': 'error',
|
||||
'unicorn/relative-url-style': 'error',
|
||||
'unicorn/require-array-join-separator': 'error',
|
||||
'unicorn/require-number-to-fixed-digits-argument': 'error',
|
||||
'unicorn/switch-case-braces': 'error',
|
||||
'unicorn/text-encoding-identifier-case': 'error',
|
||||
'unicorn/throw-new-error': 'error',
|
||||
},
|
||||
};
|
||||
|
||||
@@ -87,7 +181,6 @@ const strict = {
|
||||
'no-multi-assign': 'error',
|
||||
'no-multi-str': 'error',
|
||||
'no-negated-condition': 'error',
|
||||
'no-nested-ternary': 'error',
|
||||
'no-new': 'error',
|
||||
'no-new-func': 'error',
|
||||
'no-new-object': 'error',
|
||||
@@ -145,6 +238,20 @@ const strict = {
|
||||
'require-await': 'off',
|
||||
// 'no-magic-numbers': 'off',
|
||||
|
||||
...{}, // Plugin: eslint-plugin-unicorn
|
||||
'no-nested-ternary': 'off',
|
||||
'unicorn/custom-error-definition': 'error',
|
||||
'unicorn/no-negated-condition': 'error',
|
||||
'unicorn/no-nested-ternary': 'error',
|
||||
/*
|
||||
* TODO (@guz013) [>=1.0.0]: 'unicorn/no-null' rule
|
||||
* It could be better to use a invert to this rule instead,
|
||||
* because the null type could be a better representation to
|
||||
* "no value" then undefined.
|
||||
*/
|
||||
'unicorn/no-unsafe-regex': 'error',
|
||||
'unicorn/no-unused-properties': 'error',
|
||||
|
||||
},
|
||||
};
|
||||
|
||||
|
||||
@@ -7,5 +7,6 @@ const recommended = [
|
||||
configs.typescript.recommended,
|
||||
configs.suggestions.recommended,
|
||||
configs.formatting.recommended,
|
||||
configs.naming.recommended,
|
||||
];
|
||||
export default recommended;
|
||||
|
||||
@@ -7,5 +7,6 @@ const strict = [
|
||||
configs.typescript.strict,
|
||||
configs.suggestions.strict,
|
||||
configs.formatting.strict,
|
||||
configs.naming.strict,
|
||||
];
|
||||
export default strict;
|
||||
|
||||
101
pnpm-lock.yaml
generated
101
pnpm-lock.yaml
generated
@@ -163,6 +163,9 @@ importers:
|
||||
eslint-plugin-perfectionist:
|
||||
specifier: ^1.5.1
|
||||
version: 1.5.1(eslint@8.47.0)(typescript@5.1.6)
|
||||
eslint-plugin-unicorn:
|
||||
specifier: ^48.0.1
|
||||
version: 48.0.1(eslint@8.47.0)
|
||||
globals:
|
||||
specifier: ^13.21.0
|
||||
version: 13.21.0
|
||||
@@ -220,12 +223,10 @@ packages:
|
||||
dependencies:
|
||||
'@babel/highlight': 7.22.10
|
||||
chalk: 2.4.2
|
||||
dev: true
|
||||
|
||||
/@babel/helper-validator-identifier@7.22.5:
|
||||
resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dev: true
|
||||
|
||||
/@babel/highlight@7.22.10:
|
||||
resolution: {integrity: sha512-78aUtVcT7MUscr0K5mIEnkwxPE0MaxkR5RxRwuHaQ+JuU5AmTPhY+do2mdzVTnIJJpyBglql2pehuBIWHug+WQ==}
|
||||
@@ -234,7 +235,6 @@ packages:
|
||||
'@babel/helper-validator-identifier': 7.22.5
|
||||
chalk: 2.4.2
|
||||
js-tokens: 4.0.0
|
||||
dev: true
|
||||
|
||||
/@babel/runtime@7.22.10:
|
||||
resolution: {integrity: sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==}
|
||||
@@ -941,7 +941,6 @@ packages:
|
||||
|
||||
/@types/normalize-package-data@2.4.1:
|
||||
resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==}
|
||||
dev: true
|
||||
|
||||
/@types/prompts@2.4.4:
|
||||
resolution: {integrity: sha512-p5N9uoTH76lLvSAaYSZtBCdEXzpOOufsRjnhjVSrZGXikVGHX9+cc9ERtHRV4hvBKHyZb1bg4K+56Bd2TqUn4A==}
|
||||
@@ -1313,7 +1312,6 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
color-convert: 1.9.3
|
||||
dev: true
|
||||
|
||||
/ansi-styles@4.3.0:
|
||||
resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
|
||||
@@ -1544,7 +1542,6 @@ packages:
|
||||
ansi-styles: 3.2.1
|
||||
escape-string-regexp: 1.0.5
|
||||
supports-color: 5.5.0
|
||||
dev: true
|
||||
|
||||
/chalk@4.1.2:
|
||||
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
|
||||
@@ -1575,7 +1572,13 @@ packages:
|
||||
/ci-info@3.8.0:
|
||||
resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/clean-regexp@1.0.0:
|
||||
resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
escape-string-regexp: 1.0.5
|
||||
dev: false
|
||||
|
||||
/cliui@6.0.0:
|
||||
resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
|
||||
@@ -1613,7 +1616,6 @@ packages:
|
||||
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
|
||||
dependencies:
|
||||
color-name: 1.1.3
|
||||
dev: true
|
||||
|
||||
/color-convert@2.0.1:
|
||||
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
|
||||
@@ -1623,7 +1625,6 @@ packages:
|
||||
|
||||
/color-name@1.1.3:
|
||||
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
|
||||
dev: true
|
||||
|
||||
/color-name@1.1.4:
|
||||
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
|
||||
@@ -1835,7 +1836,6 @@ packages:
|
||||
resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==}
|
||||
dependencies:
|
||||
is-arrayish: 0.2.1
|
||||
dev: true
|
||||
|
||||
/es-abstract@1.22.1:
|
||||
resolution: {integrity: sha512-ioRRcXMO6OFyRpyzV3kE1IIBd4WG5/kltnzdxSCqoP8CMGs/Li+M1uF5o7lOkZVFjDs+NLesthnF66Pg/0q0Lw==}
|
||||
@@ -1948,7 +1948,6 @@ packages:
|
||||
/escape-string-regexp@1.0.5:
|
||||
resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
|
||||
engines: {node: '>=0.8.0'}
|
||||
dev: true
|
||||
|
||||
/escape-string-regexp@4.0.0:
|
||||
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
|
||||
@@ -2138,6 +2137,30 @@ packages:
|
||||
- ts-node
|
||||
dev: true
|
||||
|
||||
/eslint-plugin-unicorn@48.0.1(eslint@8.47.0):
|
||||
resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==}
|
||||
engines: {node: '>=16'}
|
||||
peerDependencies:
|
||||
eslint: '>=8.44.0'
|
||||
dependencies:
|
||||
'@babel/helper-validator-identifier': 7.22.5
|
||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.47.0)
|
||||
ci-info: 3.8.0
|
||||
clean-regexp: 1.0.0
|
||||
eslint: 8.47.0
|
||||
esquery: 1.5.0
|
||||
indent-string: 4.0.0
|
||||
is-builtin-module: 3.2.1
|
||||
jsesc: 3.0.2
|
||||
lodash: 4.17.21
|
||||
pluralize: 8.0.0
|
||||
read-pkg-up: 7.0.1
|
||||
regexp-tree: 0.1.27
|
||||
regjsparser: 0.10.0
|
||||
semver: 7.5.4
|
||||
strip-indent: 3.0.0
|
||||
dev: false
|
||||
|
||||
/eslint-scope@5.1.1:
|
||||
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
@@ -2398,7 +2421,6 @@ packages:
|
||||
dependencies:
|
||||
locate-path: 5.0.0
|
||||
path-exists: 4.0.0
|
||||
dev: true
|
||||
|
||||
/find-up@5.0.0:
|
||||
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
|
||||
@@ -2570,7 +2592,6 @@ packages:
|
||||
/has-flag@3.0.0:
|
||||
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/has-flag@4.0.0:
|
||||
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
|
||||
@@ -2603,7 +2624,6 @@ packages:
|
||||
|
||||
/hosted-git-info@2.8.9:
|
||||
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
|
||||
dev: true
|
||||
|
||||
/human-id@1.0.2:
|
||||
resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
|
||||
@@ -2644,7 +2664,6 @@ packages:
|
||||
/indent-string@4.0.0:
|
||||
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
|
||||
@@ -2680,7 +2699,6 @@ packages:
|
||||
|
||||
/is-arrayish@0.2.1:
|
||||
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
|
||||
dev: true
|
||||
|
||||
/is-bigint@1.0.4:
|
||||
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
|
||||
@@ -2849,7 +2867,6 @@ packages:
|
||||
|
||||
/js-tokens@4.0.0:
|
||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||
dev: true
|
||||
|
||||
/js-yaml@3.14.1:
|
||||
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
|
||||
@@ -2870,9 +2887,19 @@ packages:
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/jsesc@0.5.0:
|
||||
resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/jsesc@3.0.2:
|
||||
resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
|
||||
engines: {node: '>=6'}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/json-parse-even-better-errors@2.3.1:
|
||||
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
|
||||
dev: true
|
||||
|
||||
/json-schema-traverse@0.4.1:
|
||||
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
||||
@@ -2931,7 +2958,6 @@ packages:
|
||||
|
||||
/lines-and-columns@1.2.4:
|
||||
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
|
||||
dev: true
|
||||
|
||||
/load-yaml-file@0.2.0:
|
||||
resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
|
||||
@@ -2952,7 +2978,6 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
p-locate: 4.1.0
|
||||
dev: true
|
||||
|
||||
/locate-path@6.0.0:
|
||||
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
|
||||
@@ -2967,6 +2992,10 @@ packages:
|
||||
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
|
||||
dev: true
|
||||
|
||||
/lodash@4.17.21:
|
||||
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
|
||||
dev: false
|
||||
|
||||
/lru-cache@4.1.5:
|
||||
resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
|
||||
dependencies:
|
||||
@@ -3045,7 +3074,6 @@ packages:
|
||||
/min-indent@1.0.1:
|
||||
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
|
||||
engines: {node: '>=4'}
|
||||
dev: true
|
||||
|
||||
/minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
@@ -3133,7 +3161,6 @@ packages:
|
||||
resolve: 1.22.4
|
||||
semver: 5.7.2
|
||||
validate-npm-package-license: 3.0.4
|
||||
dev: true
|
||||
|
||||
/normalize-path@3.0.0:
|
||||
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
||||
@@ -3228,7 +3255,6 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dependencies:
|
||||
p-try: 2.2.0
|
||||
dev: true
|
||||
|
||||
/p-limit@3.1.0:
|
||||
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
|
||||
@@ -3241,7 +3267,6 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
p-limit: 2.3.0
|
||||
dev: true
|
||||
|
||||
/p-locate@5.0.0:
|
||||
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
|
||||
@@ -3257,7 +3282,6 @@ packages:
|
||||
/p-try@2.2.0:
|
||||
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
|
||||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/parent-module@1.0.1:
|
||||
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
|
||||
@@ -3273,7 +3297,6 @@ packages:
|
||||
error-ex: 1.3.2
|
||||
json-parse-even-better-errors: 2.3.1
|
||||
lines-and-columns: 1.2.4
|
||||
dev: true
|
||||
|
||||
/path-exists@4.0.0:
|
||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||
@@ -3321,6 +3344,11 @@ packages:
|
||||
find-up: 4.1.0
|
||||
dev: true
|
||||
|
||||
/pluralize@8.0.0:
|
||||
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/postcss-load-config@3.1.4(postcss@8.4.25):
|
||||
resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
|
||||
engines: {node: '>= 10'}
|
||||
@@ -3407,7 +3435,6 @@ packages:
|
||||
find-up: 4.1.0
|
||||
read-pkg: 5.2.0
|
||||
type-fest: 0.8.1
|
||||
dev: true
|
||||
|
||||
/read-pkg@5.2.0:
|
||||
resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
|
||||
@@ -3417,7 +3444,6 @@ packages:
|
||||
normalize-package-data: 2.5.0
|
||||
parse-json: 5.2.0
|
||||
type-fest: 0.6.0
|
||||
dev: true
|
||||
|
||||
/read-yaml-file@1.1.0:
|
||||
resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
|
||||
@@ -3465,6 +3491,11 @@ packages:
|
||||
resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
|
||||
dev: true
|
||||
|
||||
/regexp-tree@0.1.27:
|
||||
resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/regexp.prototype.flags@1.5.0:
|
||||
resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@@ -3478,6 +3509,13 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/regjsparser@0.10.0:
|
||||
resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
jsesc: 0.5.0
|
||||
dev: false
|
||||
|
||||
/require-directory@2.1.1:
|
||||
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -3577,7 +3615,6 @@ packages:
|
||||
/semver@5.7.2:
|
||||
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/semver@6.3.1:
|
||||
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
|
||||
@@ -3694,7 +3731,6 @@ packages:
|
||||
dependencies:
|
||||
spdx-expression-parse: 3.0.1
|
||||
spdx-license-ids: 3.0.13
|
||||
dev: true
|
||||
|
||||
/spdx-exceptions@2.3.0:
|
||||
resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
|
||||
@@ -3769,7 +3805,6 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
min-indent: 1.0.1
|
||||
dev: true
|
||||
|
||||
/strip-json-comments@3.1.1:
|
||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||
@@ -3780,7 +3815,6 @@ packages:
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
has-flag: 3.0.0
|
||||
dev: true
|
||||
|
||||
/supports-color@7.2.0:
|
||||
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
|
||||
@@ -4092,12 +4126,10 @@ packages:
|
||||
/type-fest@0.6.0:
|
||||
resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/type-fest@0.8.1:
|
||||
resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
|
||||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/typed-array-buffer@1.0.0:
|
||||
resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
|
||||
@@ -4184,7 +4216,6 @@ packages:
|
||||
dependencies:
|
||||
spdx-correct: 3.2.0
|
||||
spdx-expression-parse: 3.0.1
|
||||
dev: true
|
||||
|
||||
/vite@4.4.2:
|
||||
resolution: {integrity: sha512-zUcsJN+UvdSyHhYa277UHhiJ3iq4hUBwHavOpsNUGsTgjBeoBlK8eDt+iT09pBq0h9/knhG/SPrZiM7cGmg7NA==}
|
||||
|
||||
Reference in New Issue
Block a user