From a176dc443e89bfd801d5111b3b2efc57079731b5 Mon Sep 17 00:00:00 2001 From: Soybean Date: Thu, 14 Dec 2023 20:59:07 +0800 Subject: [PATCH] chore(projects): use eslint flat config & update config --- .editorconfig | 11 + .eslintrc | 6 - .npmrc | 1 + .vscode/settings.json | 65 +- eslint.config.js | 15 + package.json | 4 +- packages/eslint-config/configs/base.js | 6 - packages/eslint-config/configs/js.js | 44 - packages/eslint-config/configs/prettier.js | 11 - packages/eslint-config/configs/ts.js | 61 - packages/eslint-config/configs/vue.js | 30 - packages/eslint-config/index.js | 6 - packages/eslint-config/package.json | 23 - packages/eslint-config/rules/all.js | 1681 -------------------- packages/eslint-config/rules/prettier.js | 26 - pnpm-lock.yaml | 856 +++++++++- 16 files changed, 890 insertions(+), 1956 deletions(-) create mode 100644 .editorconfig delete mode 100644 .eslintrc create mode 100644 eslint.config.js delete mode 100644 packages/eslint-config/configs/base.js delete mode 100644 packages/eslint-config/configs/js.js delete mode 100644 packages/eslint-config/configs/prettier.js delete mode 100644 packages/eslint-config/configs/ts.js delete mode 100644 packages/eslint-config/configs/vue.js delete mode 100644 packages/eslint-config/index.js delete mode 100644 packages/eslint-config/package.json delete mode 100644 packages/eslint-config/rules/all.js delete mode 100644 packages/eslint-config/rules/prettier.js diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..0552777e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +# Editor configuration, see http://editorconfig.org + +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index c75f79aa..00000000 --- a/.eslintrc +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "sa/vue", - "settings": { - "import/core-modules": ["uno.css", "~icons/*", "virtual:svg-icons-register"] - } -} diff --git a/.npmrc b/.npmrc index 43e6b35e..e3ff517c 100644 --- a/.npmrc +++ b/.npmrc @@ -1,2 +1,3 @@ registry=https://registry.npmmirror.com/ shamefully-hoist=true +ignore-workspace-root-check=true diff --git a/.vscode/settings.json b/.vscode/settings.json index a7a8d86b..e586c306 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,70 +1,17 @@ { - "cSpell.words": [ - "apifox", - "clickoutside", - "clsx", - "colord", - "consola", - "Destructurable", - "EDITMSG", - "espree", - "execa", - "gitee", - "gridicons", - "heroicons", - "HEXA", - "hexcode", - "iconify", - "INDEXEDDB", - "jiti", - "kolorist", - "Laba", - "localforage", - "LOCALSTORAGE", - "majesticons", - "MEDZ", - "nocheck", - "nprogress", - "ofetch", - "pickr", - "preflights", - "sider", - "simonwep", - "simplebar", - "tada", - "tauri", - "Uncapitalize", - "unocss", - "unplugin", - "VITE", - "vitepress", - "vueuse", - "WEBSQL", - "wechat" - ], "editor.codeActionsOnSave": { - "source.fixAll.eslint": true + "source.fixAll.eslint": "explicit", + "source.organizeImports": "never" }, - "editor.fontLigatures": true, + "eslint.experimental.useFlatConfig": true, "editor.formatOnSave": false, - "editor.quickSuggestions": { - "strings": true - }, - "editor.tabSize": 2, - "files.associations": { - "*.env.*": "dotenv", - "*.svg": "html" - }, - "files.eol": "\n", + "eslint.validate": ["html", "css", "scss", "json", "jsonc"], "i18n-ally.displayLanguage": "zh-cn", "i18n-ally.enabledParsers": ["ts"], "i18n-ally.enabledFrameworks": ["vue"], "i18n-ally.editor.preferEditor": true, "i18n-ally.keystyle": "nested", "i18n-ally.localesPaths": ["src/locales/lang"], - "unocss.root": ["./"], - "[html][css][less][scss][sass][markdown][yaml][yml][json][jsonc]": { - "editor.defaultFormatter": "esbenp.prettier-vscode", - "editor.formatOnSave": true - } + "prettier.enable": false, + "unocss.root": ["./"] } diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..c2329f66 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,15 @@ +import { defineConfig } from '@soybeanjs/eslint-config'; + +export default defineConfig( + { vue: true }, + { + rules: { + 'vue/multi-word-component-names': [ + 'warn', + { + ignores: ['index', 'App', '[id]'] + } + ] + } + } +); diff --git a/package.json b/package.json index f4ec2bfe..46fc458b 100644 --- a/package.json +++ b/package.json @@ -46,6 +46,7 @@ "@iconify/json": "2.2.143", "@sa/scripts": "workspace:*", "@sa/uno-preset": "workspace:*", + "@soybeanjs/eslint-config": "^1.1.2", "@types/lodash-es": "4.17.11", "@types/node": "20.9.1", "@types/nprogress": "0.2.3", @@ -57,7 +58,6 @@ "@vitejs/plugin-vue": "4.5.0", "@vitejs/plugin-vue-jsx": "3.1.0", "cross-env": "7.0.3", - "eslint-config-sa": "workspace:*", "npm-run-all": "4.1.5", "sass": "1.69.5", "simple-git-hooks": "2.9.0", @@ -72,6 +72,6 @@ }, "simple-git-hooks": { "commit-msg": "pnpm sa git-commit-verify", - "pre-commit": "pnpm typecheck && pnpm sa lint-staged" + "pre-commit": "pnpm typecheck" } } diff --git a/packages/eslint-config/configs/base.js b/packages/eslint-config/configs/base.js deleted file mode 100644 index d3af3b60..00000000 --- a/packages/eslint-config/configs/base.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * @type {import('eslint').ESLint.ConfigData} - */ -module.exports = { - extends: [require.resolve('./ts.js'), require.resolve('./prettier.js')] -}; diff --git a/packages/eslint-config/configs/js.js b/packages/eslint-config/configs/js.js deleted file mode 100644 index 0065e630..00000000 --- a/packages/eslint-config/configs/js.js +++ /dev/null @@ -1,44 +0,0 @@ -/** - * @type {import('eslint').ESLint.ConfigData} - */ -module.exports = { - root: true, - env: { - browser: true, - node: true, - commonjs: true, - es2024: true - }, - parserOptions: { - ecmaVersion: 2024, - ecmaFeatures: { - jsx: true - }, - sourceType: 'module' - }, - ignorePatterns: [ - 'node_modules', - '*.min.*', - 'CHANGELOG.md', - 'dist', - 'LICENSE*', - 'output', - 'coverage', - 'public', - 'temp', - 'package-lock.json', - 'pnpm-lock.yaml', - 'yarn.lock', - '__snapshots__', - '!.github', - '!.vitepress', - '!.vscode' - ], - plugins: ['n', 'promise'], - extends: [require.resolve('../rules/all.js'), 'plugin:import/recommended'], - rules: { - // import - 'import/no-mutable-exports': 'error', - 'import/no-named-as-default': 'off' - } -}; diff --git a/packages/eslint-config/configs/prettier.js b/packages/eslint-config/configs/prettier.js deleted file mode 100644 index fe58ce92..00000000 --- a/packages/eslint-config/configs/prettier.js +++ /dev/null @@ -1,11 +0,0 @@ -const prettierRules = require('../rules/prettier'); - -/** - * @type {import('eslint').ESLint.ConfigData} - */ -module.exports = { - extends: ['plugin:prettier/recommended'], - rules: { - 'prettier/prettier': ['error', prettierRules] - } -}; diff --git a/packages/eslint-config/configs/ts.js b/packages/eslint-config/configs/ts.js deleted file mode 100644 index e700bf45..00000000 --- a/packages/eslint-config/configs/ts.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * @type {import('eslint').ESLint.ConfigData} - */ -module.exports = { - plugins: ['@typescript-eslint'], - extends: [require.resolve('./js.js'), 'plugin:import/typescript', 'plugin:@typescript-eslint/recommended'], - settings: { - 'import/resolver': { - typescript: { - project: ['tsconfig.json', 'packages/*/tsconfig.json', 'examples/*/tsconfig.json', 'docs/*/tsconfig.json'] - } - } - }, - overrides: [ - { - files: ['*.ts', '*.tsx', '*.mts', '*.cts'], - parser: '@typescript-eslint/parser' - }, - { - files: ['*.js', '*.mjs', '*.cjs', '*.cts'], - rules: { - '@typescript-eslint/no-var-requires': 'off' - } - } - ], - rules: { - // TS - '@typescript-eslint/consistent-type-imports': ['error', { prefer: 'type-imports', disallowTypeAnnotations: false }], - '@typescript-eslint/no-empty-interface': [ - 'error', - { - allowSingleExtends: true - } - ], - - // Override JS - 'no-redeclare': 'off', - '@typescript-eslint/no-redeclare': 'error', - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - 'error', - { - vars: 'all', - args: 'all', - ignoreRestSiblings: false, - varsIgnorePattern: '^_', - argsIgnorePattern: '^_' - } - ], - 'no-use-before-define': 'off', - '@typescript-eslint/no-use-before-define': ['error', { functions: false, classes: false, variables: true }], - 'no-shadow': 'off', - '@typescript-eslint/no-shadow': 'error', - - // off - '@typescript-eslint/consistent-type-definitions': 'off', - '@typescript-eslint/no-empty-function': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-non-null-assertion': 'off' - } -}; diff --git a/packages/eslint-config/configs/vue.js b/packages/eslint-config/configs/vue.js deleted file mode 100644 index 493f5a71..00000000 --- a/packages/eslint-config/configs/vue.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * @type {import('eslint').ESLint.ConfigData} - */ -module.exports = { - extends: ['plugin:vue/vue3-recommended', require.resolve('./base.js')], - overrides: [ - { - files: ['*.vue'], - parser: 'vue-eslint-parser', - parserOptions: { - parser: { - js: 'espree', - jsx: 'espree', - ts: '@typescript-eslint/parser', - tsx: '@typescript-eslint/parser' - }, - extraFileExtensions: ['.vue'], - ecmaFeatures: { - jsx: true - } - }, - rules: { - 'no-undef': 'off' // TS will check un declared variables, if the script code is is in a .vue file, this rule should not disabled - } - } - ], - rules: { - 'vue/multi-word-component-names': 'off' - } -}; diff --git a/packages/eslint-config/index.js b/packages/eslint-config/index.js deleted file mode 100644 index bae7d0c5..00000000 --- a/packages/eslint-config/index.js +++ /dev/null @@ -1,6 +0,0 @@ -const baseConfig = require('./configs/base'); - -/** - * @type {import('eslint').ESLint.ConfigData} - */ -module.exports = baseConfig; diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json deleted file mode 100644 index 53f351a8..00000000 --- a/packages/eslint-config/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "eslint-config-sa", - "version": "1.0.0", - "description": "SoybeanAdmin's eslint config resets", - "exports": { - ".": "./index.js", - "./vue": "./configs/vue.js" - }, - "devDependencies": { - "@types/eslint": "8.44.7", - "@typescript-eslint/eslint-plugin": "6.11.0", - "@typescript-eslint/parser": "6.11.0", - "eslint": "8.53.0", - "eslint-config-prettier": "9.0.0", - "eslint-import-resolver-typescript": "3.6.1", - "eslint-plugin-import": "2.29.0", - "eslint-plugin-n": "16.3.1", - "eslint-plugin-prettier": "5.0.1", - "eslint-plugin-promise": "6.1.1", - "eslint-plugin-vue": "9.18.1", - "prettier": "3.1.0" - } -} diff --git a/packages/eslint-config/rules/all.js b/packages/eslint-config/rules/all.js deleted file mode 100644 index 967c3f45..00000000 --- a/packages/eslint-config/rules/all.js +++ /dev/null @@ -1,1681 +0,0 @@ -/** - * @type {import('eslint').Linter.RulesRecord} - */ -module.exports = { - rules: { - /* - * Possible Problems - * These rules relate to possible logic errors in code - */ - - /** - * @description Enforce return statements in callbacks of array methods - * @link https://eslint.org/docs/latest/rules/array-callback-return - */ - 'array-callback-return': 'error', - - /** - * @description Require `super()` calls in constructors - * @link https://eslint.org/docs/latest/rules/constructor-super - */ - 'constructor-super': 'error', - - /** - * @description Enforce \"for\" loop update clause moving the counter in the right direction. - * @link https://eslint.org/docs/latest/rules/for-direction - */ - 'for-direction': 'error', - - /** - * @description Enforce `return` statements in getters - * @link https://eslint.org/docs/latest/rules/getter-return - */ - 'getter-return': 'error', - - /** - * @description Disallow using an async function as a Promise executor - * @link https://eslint.org/docs/latest/rules/no-async-promise-executor - */ - 'no-async-promise-executor': 'error', - - /** - * @description Disallow `await` inside of loops - * @link https://eslint.org/docs/latest/rules/no-await-in-loop - */ - 'no-await-in-loop': 'error', - - /** - * @description Disallow reassigning class members - * @link https://eslint.org/docs/latest/rules/no-class-assign - */ - 'no-class-assign': 'error', - - /** - * @description Disallow comparing against -0 - * @link https://eslint.org/docs/latest/rules/no-compare-neg-zero - */ - 'no-compare-neg-zero': 'error', - - /** - * @description Disallow assignment operators in conditional expressions - * @link https://eslint.org/docs/latest/rules/no-cond-assign - */ - 'no-cond-assign': 'error', - - /** - * @description Disallow reassigning `const` variables - * @link https://eslint.org/docs/latest/rules/no-const-assign - */ - 'no-const-assign': 'error', - - /** - * @description Disallow expressions where the operation doesn't affect the value - * @link https://eslint.org/docs/latest/rules/no-constant-binary-expression - */ - 'no-constant-binary-expression': 'error', - - /** - * @description Disallow constant expressions in conditions - * @link https://eslint.org/docs/latest/rules/no-constant-condition - */ - 'no-constant-condition': 'error', - - /** - * @description Disallow returning value from constructor - * @link https://eslint.org/docs/latest/rules/no-constructor-return - */ - 'no-constructor-return': 'error', - - /** - * @description Disallow control characters in regular expressions - * @link https://eslint.org/docs/latest/rules/no-control-regex - */ - 'no-control-regex': 'error', - - /** - * @description Disallow the use of `debugger` - * @link https://eslint.org/docs/latest/rules/no-debugger - */ - 'no-debugger': 'error', - - /** - * @description Disallow duplicate arguments in `function` definitions - * @link https://eslint.org/docs/latest/rules/no-dupe-args - */ - 'no-dupe-args': 'error', - - /** - * @description Disallow duplicate class members - * @link https://eslint.org/docs/latest/rules/no-dupe-class-members - */ - 'no-dupe-class-members': 'error', - - /** - * @description Disallow duplicate conditions in if-else-if chains - * @link https://eslint.org/docs/latest/rules/no-dupe-else-if - */ - 'no-dupe-else-if': 'error', - - /** - * @description Disallow duplicate keys in object literals - * @link https://eslint.org/docs/latest/rules/no-dupe-keys - */ - 'no-dupe-keys': 'error', - - /** - * @description Disallow duplicate case labels - * @link https://eslint.org/docs/latest/rules/no-duplicate-case - */ - 'no-duplicate-case': 'error', - - /** - * @description Disallow duplicate module imports - * @link https://eslint.org/docs/latest/rules/no-duplicate-imports - */ - 'no-duplicate-imports': 'off', - - /** - * @description Disallow empty character classes in regular expressions - * @link https://eslint.org/docs/latest/rules/no-empty-character-class - */ - 'no-empty-character-class': 'error', - - /** - * @description Disallow empty destructuring patterns - * @link https://eslint.org/docs/latest/rules/no-empty-pattern - */ - 'no-empty-pattern': 'error', - - /** - * @description Disallow reassigning exceptions in `catch` clauses - * @link https://eslint.org/docs/latest/rules/no-ex-assign - */ - 'no-ex-assign': 'error', - - /** - * @description Disallow fallthrough of `case` statements - * @link https://eslint.org/docs/latest/rules/no-fallthrough - */ - 'no-fallthrough': 'error', - - /** - * @description Disallow reassigning `function` declarations - * @link https://eslint.org/docs/latest/rules/no-func-assign - */ - 'no-func-assign': 'error', - - /** - * @description Disallow assigning to imported bindings - * @link https://eslint.org/docs/latest/rules/no-import-assign - */ - 'no-import-assign': 'error', - - /** - * @description Disallow variable or `function` declarations in nested blocks - * @link https://eslint.org/docs/latest/rules/no-inner-declarations - */ - 'no-inner-declarations': 'error', - - /** - * @description Disallow invalid regular expression strings in `RegExp` constructors - * @link https://eslint.org/docs/latest/rules/no-invalid-regexp - */ - 'no-invalid-regexp': 'error', - - /** - * @description Disallow irregular whitespace - * @link https://eslint.org/docs/latest/rules/no-irregular-whitespace - */ - 'no-irregular-whitespace': 'error', - - /** - * @description Disallow literal numbers that lose precision - * @link https://eslint.org/docs/latest/rules/no-loss-of-precision - */ - 'no-loss-of-precision': 'error', - - /** - * @description Disallow characters which are made with multiple code points in character class syntax - * @link https://eslint.org/docs/latest/rules/no-misleading-character-class - */ - 'no-misleading-character-class': 'error', - - /** - * @description Disallow `new` operators with the `Symbol` object - * @link https://eslint.org/docs/latest/rules/no-new-symbol - */ - 'no-new-symbol': 'error', - - /** - * @description Disallow calling global object properties as functions - * @link https://eslint.org/docs/latest/rules/no-obj-calls - */ - 'no-obj-calls': 'error', - - /** - * @description Disallow returning values from Promise executor functions - * @link https://eslint.org/docs/latest/rules/no-promise-executor-return - */ - 'no-promise-executor-return': 'error', - - /** - * @description Disallow calling some `Object.prototype` methods directly on objects - * @link https://eslint.org/docs/latest/rules/no-prototype-builtins - */ - 'no-prototype-builtins': 'error', - - /** - * @description Disallow assignments where both sides are exactly the same - * @link https://eslint.org/docs/latest/rules/no-self-assign - */ - 'no-self-assign': 'error', - - /** - * @description Disallow comparisons where both sides are exactly the same - * @link https://eslint.org/docs/latest/rules/no-self-compare - */ - 'no-self-compare': 'error', - - /** - * @description Disallow returning values from setters - * @link https://eslint.org/docs/latest/rules/no-setter-return - */ - 'no-setter-return': 'error', - - /** - * @description Disallow sparse arrays - * @link https://eslint.org/docs/latest/rules/no-sparse-arrays - */ - 'no-sparse-arrays': 'error', - - /** - * @description Disallow template literal placeholder syntax in regular strings - * @link https://eslint.org/docs/latest/rules/no-template-curly-in-string - */ - 'no-template-curly-in-string': 'error', - - /** - * @description Disallow `this`/`super` before calling `super()` in constructors - * @link https://eslint.org/docs/latest/rules/no-this-before-super - */ - 'no-this-before-super': 'error', - - /** - * @description Disallow the use of undeclared variables unless mentioned in *global* comments - * @link https://eslint.org/docs/latest/rules/no-undef - */ - 'no-undef': 'error', - - /** - * @description Disallow confusing multiline expressions - * @link https://eslint.org/docs/latest/rules/no-unexpected-multiline - */ - 'no-unexpected-multiline': 'error', - - /** - * @description Disallow unmodified loop conditions - * @link https://eslint.org/docs/latest/rules/no-unmodified-loop-condition - */ - 'no-unmodified-loop-condition': 'error', - - /** - * @description Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements - * @link https://eslint.org/docs/latest/rules/no-unreachable - */ - 'no-unreachable': 'error', - - /** - * @description Disallow loops with a body that allows only one iteration - * @link https://eslint.org/docs/latest/rules/no-unreachable-loop - */ - 'no-unreachable-loop': 'error', - - /** - * @description Disallow control flow statements in `finally` blocks - * @link https://eslint.org/docs/latest/rules/no-unsafe-finally - */ - 'no-unsafe-finally': 'error', - - /** - * @description Disallow negating the left operand of relational operators - * @link https://eslint.org/docs/latest/rules/no-unsafe-negation - */ - 'no-unsafe-negation': 'error', - - /** - * @description Disallow use of optional chaining in contexts where the `undefined` value is not allowed - * @link https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining - */ - 'no-unsafe-optional-chaining': 'error', - - /** - * @description Disallow unused private class members - * @link https://eslint.org/docs/latest/rules/no-unused-private-class-members - */ - 'no-unused-private-class-members': 'error', - - /** - * @description Disallow unused variables - * @link https://eslint.org/docs/latest/rules/no-unused-vars - */ - 'no-unused-vars': 'error', - - /** - * @description Disallow the use of variables before they are defined - * @link https://eslint.org/docs/latest/rules/no-use-before-define - */ - 'no-use-before-define': ['error', { functions: false, classes: false, variables: true }], - - /** - * @description Disallow useless backreferences in regular expressions - * @link https://eslint.org/docs/latest/rules/no-useless-backreference - */ - 'no-useless-backreference': 'error', - - /** - * @description Disallow assignments that can lead to race conditions due to usage of `await` or `yield` - * @link https://eslint.org/docs/latest/rules/require-atomic-updates - */ - 'require-atomic-updates': 'error', - - /** - * @description Require calls to `isNaN()` when checking for `NaN` - * @link https://eslint.org/docs/latest/rules/use-isnan - */ - 'use-isnan': 'error', - - /** - * @description Enforce comparing `typeof` expressions against valid strings - * @link https://eslint.org/docs/latest/rules/valid-typeof - */ - 'valid-typeof': 'error', - - // End - - /* - * Suggestions - * These rules suggest alternate ways of doing things: - */ - - /** - * @description Enforce getter and setter pairs in objects and classes - * @link https://eslint.org/docs/latest/rules/accessor-pairs - */ - 'accessor-pairs': ['error', { setWithoutGet: true, enforceForClassMembers: true }], - - /** - * @description Require braces around arrow function bodies - * @link https://eslint.org/docs/latest/rules/arrow-body-style - */ - 'arrow-body-style': 'error', - - /** - * @description Enforce the use of variables within the scope they are defined - * @link https://eslint.org/docs/latest/rules/block-scoped-var - */ - 'block-scoped-var': 'error', - - /** - * @description Enforce camelcase naming convention - * @link https://eslint.org/docs/latest/rules/camelcase - */ - camelcase: 'off', - - /** - * @description Enforce or disallow capitalization of the first letter of a comment - * @link https://eslint.org/docs/latest/rules/capitalized-comments - */ - 'capitalized-comments': 'off', - - /** - * @description Enforce that class methods utilize `this` - * @link https://eslint.org/docs/latest/rules/class-methods-use-this - */ - 'class-methods-use-this': 'error', - - /** - * @description Enforce a maximum cyclomatic complexity allowed in a program - * @link https://eslint.org/docs/latest/rules/complexity - */ - complexity: 'error', - - /** - * @description Require `return` statements to either always or never specify values - * @link https://eslint.org/docs/latest/rules/consistent-return - */ - 'consistent-return': 'error', - - /** - * @description Enforce consistent naming when capturing the current execution context - * @link https://eslint.org/docs/latest/rules/consistent-this - */ - 'consistent-this': 'error', - - /** - * @description Enforce consistent brace style for all control statements - * @link https://eslint.org/docs/latest/rules/curly - */ - curly: 'error', - - /** - * @description Require `default` cases in `switch` statements - * @link https://eslint.org/docs/latest/rules/default-case - */ - 'default-case': 'error', - - /** - * @description Enforce default clauses in switch statements to be last - * @link https://eslint.org/docs/latest/rules/default-case-last - */ - 'default-case-last': 'error', - - /** - * @description Enforce default parameters to be last - * @link https://eslint.org/docs/latest/rules/default-param-last - */ - 'default-param-last': 'error', - - /** - * @description Enforce dot notation whenever possible - * @link https://eslint.org/docs/latest/rules/dot-notation - */ - 'dot-notation': 'error', - - /** - * @description Require the use of `===` and `!==` - * @link https://eslint.org/docs/latest/rules/eqeqeq - */ - eqeqeq: 'error', - - /** - * @description Require function names to match the name of the variable or property to which they are assigned - * @link https://eslint.org/docs/latest/rules/func-name-matching - */ - 'func-name-matching': 'error', - - /** - * @description Require or disallow named `function` expressions - * @link https://eslint.org/docs/latest/rules/func-names - */ - 'func-names': 'error', - - /** - * @description Enforce the consistent use of either `function` declarations or expressions - * @link https://eslint.org/docs/latest/rules/func-style - */ - 'func-style': 'off', - - /** - * @description Require grouped accessor pairs in object literals and classes - * @link https://eslint.org/docs/latest/rules/grouped-accessor-pairs - */ - 'grouped-accessor-pairs': 'error', - - /** - * @description Require `for-in` loops to include an `if` statement - * @link https://eslint.org/docs/latest/rules/guard-for-in - */ - 'guard-for-in': 'error', - - /** - * @description Disallow specified identifiers - * @link https://eslint.org/docs/latest/rules/id-denylist - */ - 'id-denylist': 'error', - - /** - * @description Enforce minimum and maximum identifier lengths - * @link https://eslint.org/docs/latest/rules/id-length - */ - 'id-length': 'off', - - /** - * @description Require identifiers to match a specified regular expression - * @link https://eslint.org/docs/latest/rules/id-match - */ - 'id-match': 'error', - - /** - * @description Require or disallow initialization in variable declarations - * @link https://eslint.org/docs/latest/rules/init-declarations - */ - 'init-declarations': 'off', - - /** - * @description Enforce a maximum number of classes per file - * @link https://eslint.org/docs/latest/rules/max-classes-per-file - */ - 'max-classes-per-file': 'off', - - /** - * @description Enforce a maximum depth that blocks can be nested - * @link https://eslint.org/docs/latest/rules/max-depth - */ - 'max-depth': 'error', - - /** - * @description Enforce a maximum number of lines per file - * @link https://eslint.org/docs/latest/rules/max-lines - */ - 'max-lines': 'off', - - /** - * @description Enforce a maximum number of lines of code in a function - * @link https://eslint.org/docs/latest/rules/max-lines-per-function - */ - 'max-lines-per-function': 'off', - - /** - * @description Enforce a maximum depth that callbacks can be nested - * @link https://eslint.org/docs/latest/rules/max-nested-callbacks - */ - 'max-nested-callbacks': 'error', - - /** - * @description Enforce a maximum number of parameters in function definitions - * @link https://eslint.org/docs/latest/rules/max-params - */ - 'max-params': 'error', - - /** - * @description Enforce a maximum number of statements allowed in function blocks - * @link https://eslint.org/docs/latest/rules/max-statements - */ - 'max-statements': 'off', - - /** - * @description Enforce a particular style for multiline comments - * @link https://eslint.org/docs/latest/rules/multiline-comment-style - */ - 'multiline-comment-style': 'off', - - /** - * @description Require constructor names to begin with a capital letter - * @link https://eslint.org/docs/latest/rules/new-cap - */ - 'new-cap': ['error', { newIsCap: true, capIsNew: false, properties: true }], - - /** - * @description Disallow the use of `alert`, `confirm`, and `prompt` - * @link https://eslint.org/docs/latest/rules/no-alert - */ - 'no-alert': 'error', - - /** - * @description Disallow `Array` constructors - * @link https://eslint.org/docs/latest/rules/no-array-constructor - */ - 'no-array-constructor': 'error', - - /** - * @description Disallow bitwise operators - * @link https://eslint.org/docs/latest/rules/no-bitwise - */ - 'no-bitwise': 'error', - - /** - * @description Disallow the use of `arguments.caller` or `arguments.callee` - * @link https://eslint.org/docs/latest/rules/no-caller - */ - 'no-caller': 'error', - - /** - * @description Disallow lexical declarations in case clauses - * @link https://eslint.org/docs/latest/rules/no-case-declarations - */ - 'no-case-declarations': 'error', - - /** - * @description Disallow arrow functions where they could be confused with comparisons - * @link https://eslint.org/docs/latest/rules/no-confusing-arrow - */ - 'no-confusing-arrow': 'error', - - /** - * @description Disallow the use of `console` - * @link https://eslint.org/docs/latest/rules/no-console - */ - 'no-console': 'warn', - - /** - * @description Disallow `continue` statements - * @link https://eslint.org/docs/latest/rules/no-continue - */ - 'no-continue': 'error', - - /** - * @description Disallow deleting variables - * @link https://eslint.org/docs/latest/rules/no-delete-var - */ - 'no-delete-var': 'error', - - /** - * @description Disallow division operators explicitly at the beginning of regular expressions - * @link https://eslint.org/docs/latest/rules/no-div-regex - */ - 'no-div-regex': 'error', - - /** - * @description Disallow `else` blocks after `return` statements in `if` statements - * @link https://eslint.org/docs/latest/rules/no-else-return - */ - 'no-else-return': 'error', - - /** - * @description Disallow empty block statements - * @link https://eslint.org/docs/latest/rules/no-empty - */ - 'no-empty': [ - 'error', - { - allowEmptyCatch: true - } - ], - - /** - * @description Disallow empty functions - * @link https://eslint.org/docs/latest/rules/no-empty-function - */ - 'no-empty-function': 'error', - - /** - * @description Disallow `null` comparisons without type-checking operators - * @link https://eslint.org/docs/latest/rules/no-eq-null - */ - 'no-eq-null': 'error', - - /** - * @description Disallow the use of `eval()` - * @link https://eslint.org/docs/latest/rules/no-eval - */ - 'no-eval': 'error', - - /** - * @description Disallow extending native types - * @link https://eslint.org/docs/latest/rules/no-extend-native - */ - 'no-extend-native': 'error', - - /** - * @description Disallow unnecessary calls to `.bind()` - * @link https://eslint.org/docs/latest/rules/no-extra-bind - */ - 'no-extra-bind': 'error', - - /** - * @description Disallow unnecessary boolean casts - * @link https://eslint.org/docs/latest/rules/no-extra-boolean-cast - */ - 'no-extra-boolean-cast': 'error', - - /** - * @description Disallow unnecessary labels - * @link https://eslint.org/docs/latest/rules/no-extra-label - */ - 'no-extra-label': 'error', - - /** - * @description Disallow unnecessary semicolons - * @link https://eslint.org/docs/latest/rules/no-extra-semi - */ - 'no-extra-semi': 'error', - - /** - * @description Disallow leading or trailing decimal points in numeric literals - * @link https://eslint.org/docs/latest/rules/no-floating-decimal - */ - 'no-floating-decimal': 'error', - - /** - * @description Disallow assignments to native objects or read-only global variables - * @link https://eslint.org/docs/latest/rules/no-global-assign - */ - 'no-global-assign': 'error', - - /** - * @description Disallow shorthand type conversions - * @link https://eslint.org/docs/latest/rules/no-implicit-coercion - */ - 'no-implicit-coercion': 'error', - - /** - * @description Disallow declarations in the global scope - * @link https://eslint.org/docs/latest/rules/no-implicit-globals - */ - 'no-implicit-globals': 'error', - - /** - * @description Disallow the use of `eval()`-like methods - * @link https://eslint.org/docs/latest/rules/no-implied-eval - */ - 'no-implied-eval': 'error', - - /** - * @description Disallow inline comments after code - * @link https://eslint.org/docs/latest/rules/no-inline-comments - */ - 'no-inline-comments': 'off', - - /** - * @description Disallow use of `this` in contexts where the value of `this` is `undefined` - * @link https://eslint.org/docs/latest/rules/no-invalid-this - */ - 'no-invalid-this': 'error', - - /** - * @description Disallow the use of the `__iterator__` property - * @link https://eslint.org/docs/latest/rules/no-iterator - */ - 'no-iterator': 'error', - - /** - * @description Disallow labels that share a name with a variable - * @link https://eslint.org/docs/latest/rules/no-label-var - */ - 'no-label-var': 'error', - - /** - * @description Disallow labeled statements - * @link https://eslint.org/docs/latest/rules/no-labels - */ - 'no-labels': 'error', - - /** - * @description Disallow unnecessary nested blocks - * @link https://eslint.org/docs/latest/rules/no-lone-blocks - */ - 'no-lone-blocks': 'error', - - /** - * @description Disallow `if` statements as the only statement in `else` blocks - * @link https://eslint.org/docs/latest/rules/no-lonely-if - */ - 'no-lonely-if': 'error', - - /** - * @description Disallow function declarations that contain unsafe references inside loop statements - * @link https://eslint.org/docs/latest/rules/no-loop-func - */ - 'no-loop-func': 'error', - - /** - * @description Disallow magic numbers - * @link https://eslint.org/docs/latest/rules/no-magic-numbers - */ - 'no-magic-numbers': 'off', - - /** - * @description Disallow mixed binary operators - * @link https://eslint.org/docs/latest/rules/no-mixed-operators - */ - 'no-mixed-operators': [ - 'error', - { - groups: [ - ['+', '-', '*', '/', '%', '**'], - ['&', '|', '^', '~', '<<', '>>', '>>>'], - ['==', '!=', '===', '!==', '>', '>=', '<', '<='], - ['&&', '||'], - ['in', 'instanceof'] - ], - allowSamePrecedence: true - } - ], - - /** - * @description Disallow use of chained assignment expressions - * @link https://eslint.org/docs/latest/rules/no-multi-assign - */ - 'no-multi-assign': 'error', - - /** - * @description Disallow multiline strings - * @link https://eslint.org/docs/latest/rules/no-multi-str - */ - 'no-multi-str': 'error', - - /** - * @description Disallow negated conditions - * @link https://eslint.org/docs/latest/rules/no-negated-condition - */ - 'no-negated-condition': 'off', - - /** - * @description Disallow nested ternary expressions - * @link https://eslint.org/docs/latest/rules/no-nested-ternary - */ - 'no-nested-ternary': 'error', - - /** - * @description Disallow `new` operators outside of assignments or comparisons - * @link https://eslint.org/docs/latest/rules/no-new - */ - 'no-new': 'error', - - /** - * @description Disallow `new` operators with the `Function` object - * @link https://eslint.org/docs/latest/rules/no-new-func - */ - 'no-new-func': 'error', - - /** - * @description Disallow `Object` constructors - * @link https://eslint.org/docs/latest/rules/no-new-object - */ - 'no-new-object': 'error', - - /** - * @description Disallow `new` operators with the `String`, `Number`, and `Boolean` objects - * @link https://eslint.org/docs/latest/rules/no-new-wrappers - */ - 'no-new-wrappers': 'error', - - /** - * @description Disallow `\\8` and `\\9` escape sequences in string literals - * @link https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape - */ - 'no-nonoctal-decimal-escape': 'error', - - /** - * @description Disallow octal literals - * @link https://eslint.org/docs/latest/rules/no-octal - */ - 'no-octal': 'error', - - /** - * @description Disallow octal escape sequences in string literals - * @link https://eslint.org/docs/latest/rules/no-octal-escape - */ - 'no-octal-escape': 'error', - - /** - * @description Disallow reassigning `function` parameters - * @link https://eslint.org/docs/latest/rules/no-param-reassign - */ - 'no-param-reassign': 'error', - - /** - * @description Disallow the unary operators `++` and `--` - * @link https://eslint.org/docs/latest/rules/no-plusplus - */ - 'no-plusplus': 'error', - - /** - * @description Disallow the use of the `__proto__` property - * @link https://eslint.org/docs/latest/rules/no-proto - */ - 'no-proto': 'error', - - /** - * @description Disallow variable redeclaration - * @link https://eslint.org/docs/latest/rules/no-redeclare - */ - 'no-redeclare': 'error', - - /** - * @description Disallow multiple spaces in regular expressions - * @link https://eslint.org/docs/latest/rules/no-regex-spaces - */ - 'no-regex-spaces': 'error', - - /** - * @description Disallow specified names in exports - * @link https://eslint.org/docs/latest/rules/no-restricted-exports - */ - 'no-restricted-exports': 'error', - - /** - * @description Disallow specified global variables - * @link https://eslint.org/docs/latest/rules/no-restricted-globals - */ - 'no-restricted-globals': 'error', - - /** - * @description Disallow specified modules when loaded by `import` - * @link https://eslint.org/docs/latest/rules/no-restricted-imports - */ - 'no-restricted-imports': 'error', - - /** - * @description Disallow certain properties on certain objects - * @link https://eslint.org/docs/latest/rules/no-restricted-properties - */ - 'no-restricted-properties': 'error', - - /** - * @description Disallow specified syntax - * @link https://eslint.org/docs/latest/rules/no-restricted-syntax - */ - 'no-restricted-syntax': ['error', 'DebuggerStatement', 'LabeledStatement', 'WithStatement'], - - /** - * @description Disallow assignment operators in `return` statements - * @link https://eslint.org/docs/latest/rules/no-return-assign - */ - 'no-return-assign': 'error', - - /** - * @description Disallow unnecessary `return await` - * @link https://eslint.org/docs/latest/rules/no-return-await - */ - 'no-return-await': 'error', - - /** - * @description Disallow `javascript:` urls - * @link https://eslint.org/docs/latest/rules/no-script-url - */ - 'no-script-url': 'error', - - /** - * @description Disallow comma operators - * @link https://eslint.org/docs/latest/rules/no-sequences - */ - 'no-sequences': 'error', - - /** - * @description Disallow variable declarations from shadowing variables declared in the outer scope - * @link https://eslint.org/docs/latest/rules/no-shadow - */ - 'no-shadow': 'error', - - /** - * @description Disallow identifiers from shadowing restricted names - * @link https://eslint.org/docs/latest/rules/no-shadow-restricted-names - */ - 'no-shadow-restricted-names': 'error', - - /** - * @description Disallow ternary operators - * @link https://eslint.org/docs/latest/rules/no-ternary - */ - 'no-ternary': 'off', - - /** - * @description Disallow throwing literals as exceptions - * @link https://eslint.org/docs/latest/rules/no-throw-literal - */ - 'no-throw-literal': 'error', - - /** - * @description Disallow initializing variables to `undefined` - * @link https://eslint.org/docs/latest/rules/no-undef-init - */ - 'no-undef-init': 'error', - - /** - * @description Disallow the use of `undefined` as an identifier - * @link https://eslint.org/docs/latest/rules/no-undefined - */ - 'no-undefined': 'off', - - /** - * @description Disallow dangling underscores in identifiers - * @link https://eslint.org/docs/latest/rules/no-underscore-dangle - */ - 'no-underscore-dangle': 'error', - - /** - * @description Disallow ternary operators when simpler alternatives exist - * @link https://eslint.org/docs/latest/rules/no-unneeded-ternary - */ - 'no-unneeded-ternary': 'error', - - /** - * @description Disallow unused expressions - * @link https://eslint.org/docs/latest/rules/no-unused-expressions - */ - 'no-unused-expressions': 'error', - - /** - * @description Disallow unused labels - * @link https://eslint.org/docs/latest/rules/no-unused-labels - */ - 'no-unused-labels': 'error', - - /** - * @description Disallow unnecessary calls to `.call()` and `.apply()` - * @link https://eslint.org/docs/latest/rules/no-useless-call - */ - 'no-useless-call': 'error', - - /** - * @description Disallow unnecessary `catch` clauses - * @link https://eslint.org/docs/latest/rules/no-useless-catch - */ - 'no-useless-catch': 'error', - - /** - * @description Disallow unnecessary computed property keys in objects and classes - * @link https://eslint.org/docs/latest/rules/no-useless-computed-key - */ - 'no-useless-computed-key': 'error', - - /** - * @description Disallow unnecessary concatenation of literals or template literals - * @link https://eslint.org/docs/latest/rules/no-useless-concat - */ - 'no-useless-concat': 'error', - - /** - * @description Disallow unnecessary constructors - * @link https://eslint.org/docs/latest/rules/no-useless-constructor - */ - 'no-useless-constructor': 'error', - - /** - * @description Disallow unnecessary escape characters - * @link https://eslint.org/docs/latest/rules/no-useless-escape - */ - 'no-useless-escape': 'error', - - /** - * @description Disallow renaming import, export, and destructured assignments to the same name - * @link https://eslint.org/docs/latest/rules/no-useless-rename - */ - 'no-useless-rename': 'error', - - /** - * @description Disallow redundant return statements - * @link https://eslint.org/docs/latest/rules/no-useless-return - */ - 'no-useless-return': 'error', - - /** - * @description Require `let` or `const` instead of `var` - * @link https://eslint.org/docs/latest/rules/no-var - */ - 'no-var': 'error', - - /** - * @description Disallow `void` operators - * @link https://eslint.org/docs/latest/rules/no-void - */ - 'no-void': 'error', - - /** - * @description Disallow specified warning terms in comments - * @link https://eslint.org/docs/latest/rules/no-warning-comments - */ - 'no-warning-comments': 'error', - - /** - * @description Disallow `with` statements - * @link https://eslint.org/docs/latest/rules/no-with - */ - 'no-with': 'error', - - /** - * @description Require or disallow method and property shorthand syntax for object literals - * @link https://eslint.org/docs/latest/rules/object-shorthand - */ - 'object-shorthand': [ - 'error', - 'always', - { - ignoreConstructors: false, - avoidQuotes: true - } - ], - - /** - * @description Enforce variables to be declared either together or separately in functions - * @link https://eslint.org/docs/latest/rules/one-var - */ - 'one-var': ['error', 'never'], - - /** - * @description Require or disallow newlines around variable declarations - * @link https://eslint.org/docs/latest/rules/one-var-declaration-per-line - */ - 'one-var-declaration-per-line': 'error', - - /** - * @description Require or disallow assignment operator shorthand where possible - * @link https://eslint.org/docs/latest/rules/operator-assignment - */ - 'operator-assignment': 'error', - - /** - * @description Require using arrow functions for callbacks - * @link https://eslint.org/docs/latest/rules/prefer-arrow-callback - */ - 'prefer-arrow-callback': 'error', - - /** - * @description Require `const` declarations for variables that are never reassigned after declared - * @link https://eslint.org/docs/latest/rules/prefer-const - */ - 'prefer-const': 'error', - - /** - * @description Require destructuring from arrays and/or objects - * @link https://eslint.org/docs/latest/rules/prefer-destructuring - */ - 'prefer-destructuring': 'off', - - /** - * @description Disallow the use of `Math.pow` in favor of the `**` operator - * @link https://eslint.org/docs/latest/rules/prefer-exponentiation-operator - */ - 'prefer-exponentiation-operator': 'error', - - /** - * @description Enforce using named capture group in regular expression - * @link https://eslint.org/docs/latest/rules/prefer-named-capture-group - */ - 'prefer-named-capture-group': 'off', - - /** - * @description Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals - * @link https://eslint.org/docs/latest/rules/prefer-numeric-literals - */ - 'prefer-numeric-literals': 'error', - - /** - * @description Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()` - * @link https://eslint.org/docs/latest/rules/prefer-object-has-own - */ - 'prefer-object-has-own': 'error', - - /** - * @description Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead. - * @link https://eslint.org/docs/latest/rules/prefer-object-spread - */ - 'prefer-object-spread': 'error', - - /** - * @description Require using Error objects as Promise rejection reasons - * @link https://eslint.org/docs/latest/rules/prefer-promise-reject-errors - */ - 'prefer-promise-reject-errors': 'error', - - /** - * @description Disallow use of the `RegExp` constructor in favor of regular expression literals - * @link https://eslint.org/docs/latest/rules/prefer-regex-literals - */ - 'prefer-regex-literals': 'error', - - /** - * @description Require rest parameters instead of `arguments` - * @link https://eslint.org/docs/latest/rules/prefer-rest-params - */ - 'prefer-rest-params': 'error', - - /** - * @description Require spread operators instead of `.apply()` - * @link https://eslint.org/docs/latest/rules/prefer-spread - */ - 'prefer-spread': 'error', - - /** - * @description Require template literals instead of string concatenation - * @link https://eslint.org/docs/latest/rules/prefer-template - */ - 'prefer-template': 'error', - - /** - * @description Require quotes around object literal property names - * @link https://eslint.org/docs/latest/rules/quote-props - */ - 'quote-props': 'error', - - /** - * @description Enforce the consistent use of the radix argument when using `parseInt()` - * @link https://eslint.org/docs/latest/rules/radix - */ - radix: 'error', - - /** - * @description Disallow async functions which have no `await` expression - * @link https://eslint.org/docs/latest/rules/require-await - */ - 'require-await': 'off', - - /** - * @description Enforce the use of `u` flag on RegExp - * @link https://eslint.org/docs/latest/rules/require-unicode-regexp - */ - 'require-unicode-regexp': 'off', - - /** - * @description Require generator functions to contain `yield` - * @link https://eslint.org/docs/latest/rules/require-yield - */ - 'require-yield': 'error', - - /** - * @description Enforce sorted import declarations within modules - * @link https://eslint.org/docs/latest/rules/sort-imports - */ - 'sort-imports': 'off', - - /** - * @description Require object keys to be sorted - * @link https://eslint.org/docs/latest/rules/sort-keys - */ - 'sort-keys': 'off', - - /** - * @description Require variables within the same declaration block to be sorted - * @link https://eslint.org/docs/latest/rules/sort-vars - */ - 'sort-vars': 'error', - - /** - * @description Enforce consistent spacing after the `//` or `/*` in a comment - * @link https://eslint.org/docs/latest/rules/spaced-comment - */ - 'spaced-comment': [ - 'error', - 'always', - { - line: { markers: ['*package', '!', '/', ',', '='] }, - block: { - balanced: true, - markers: ['*package', '!', ',', ':', '::', 'flow-include'], - exceptions: ['*'] - } - } - ], - - /** - * @description Require or disallow strict mode directives - * @link https://eslint.org/docs/latest/rules/strict - */ - strict: 'error', - - /** - * @description Require symbol descriptions - * @link https://eslint.org/docs/latest/rules/symbol-description - */ - 'symbol-description': 'error', - - /** - * @description Require `var` declarations be placed at the top of their containing scope - * @link https://eslint.org/docs/latest/rules/vars-on-top - */ - 'vars-on-top': 'error', - - /** - * @description Require or disallow \"Yoda\" conditions - * @link https://eslint.org/docs/latest/rules/yoda - */ - yoda: 'error', - - // End - - /* - * Layout & Formatting - * These rules care about how the code looks rather than how it executes: - */ - - /** - * @description Enforce linebreaks after opening and before closing array brackets - * @link https://eslint.org/docs/latest/rules/array-bracket-newline - */ - 'array-bracket-newline': 'error', - - /** - * @description Enforce consistent spacing inside array brackets - * @link https://eslint.org/docs/latest/rules/array-bracket-spacing - */ - 'array-bracket-spacing': 'error', - - /** - * @description Enforce line breaks after each array element - * @link https://eslint.org/docs/latest/rules/array-element-newline - */ - 'array-element-newline': 'error', - - /** - * @description Require parentheses around arrow function arguments - * @link https://eslint.org/docs/latest/rules/arrow-parens - */ - 'arrow-parens': ['error', 'as-needed'], - - /** - * @description Enforce consistent spacing before and after the arrow in arrow functions - * @link https://eslint.org/docs/latest/rules/arrow-spacing - */ - 'arrow-spacing': 'error', - - /** - * @description Disallow or enforce spaces inside of blocks after opening block and before closing block - * @link https://eslint.org/docs/latest/rules/block-spacing - */ - 'block-spacing': 'error', - - /** - * @description Enforce consistent brace style for blocks - * @link https://eslint.org/docs/latest/rules/brace-style - */ - 'brace-style': 'error', - - /** - * @description Require or disallow trailing commas - * @link https://eslint.org/docs/latest/rules/comma-dangle - */ - 'comma-dangle': 'error', - - /** - * @description Enforce consistent spacing before and after commas - * @link https://eslint.org/docs/latest/rules/comma-spacing - */ - 'comma-spacing': 'error', - - /** - * @description Enforce consistent comma style - * @link https://eslint.org/docs/latest/rules/comma-style - */ - 'comma-style': 'error', - - /** - * @description Enforce consistent spacing inside computed property brackets - * @link https://eslint.org/docs/latest/rules/computed-property-spacing - */ - 'computed-property-spacing': 'error', - - /** - * @description Enforce consistent newlines before and after dots - * @link https://eslint.org/docs/latest/rules/dot-location - */ - 'dot-location': ['error', 'property'], - - /** - * @description Require or disallow newline at the end of files - * @link https://eslint.org/docs/latest/rules/eol-last - */ - 'eol-last': 'error', - - /** - * @description Require or disallow spacing between function identifiers and their invocations - * @link https://eslint.org/docs/latest/rules/func-call-spacing - */ - 'func-call-spacing': 'error', - - /** - * @description Enforce line breaks between arguments of a function call - * @link https://eslint.org/docs/latest/rules/function-call-argument-newline - */ - 'function-call-argument-newline': 'error', - - /** - * @description Enforce consistent line breaks inside function parentheses - * @link https://eslint.org/docs/latest/rules/function-paren-newline - */ - 'function-paren-newline': 'error', - - /** - * @description Enforce consistent spacing around `*` operators in generator functions - * @link https://eslint.org/docs/latest/rules/generator-star-spacing - */ - 'generator-star-spacing': 'error', - - /** - * @description Enforce the location of arrow function bodies - * @link https://eslint.org/docs/latest/rules/implicit-arrow-linebreak - */ - 'implicit-arrow-linebreak': 'error', - - /** - * @description Enforce consistent indentation - * @link https://eslint.org/docs/latest/rules/indent - */ - indent: [ - 'error', - 2, - { - SwitchCase: 1, - VariableDeclarator: 1, - outerIIFEBody: 1, - MemberExpression: 1, - FunctionDeclaration: { parameters: 1, body: 1 }, - FunctionExpression: { parameters: 1, body: 1 }, - CallExpression: { arguments: 1 }, - ArrayExpression: 1, - ObjectExpression: 1, - ImportDeclaration: 1, - flatTernaryExpressions: false, - ignoreComments: false, - ignoredNodes: [ - 'TemplateLiteral *', - 'JSXElement', - 'JSXElement > *', - 'JSXAttribute', - 'JSXIdentifier', - 'JSXNamespacedName', - 'JSXMemberExpression', - 'JSXSpreadAttribute', - 'JSXExpressionContainer', - 'JSXOpeningElement', - 'JSXClosingElement', - 'JSXFragment', - 'JSXOpeningFragment', - 'JSXClosingFragment', - 'JSXText', - 'JSXEmptyExpression', - 'JSXSpreadChild' - ], - offsetTernaryExpressions: true - } - ], - - /** - * @description Enforce the consistent use of either double or single quotes in JSX attributes - * @link https://eslint.org/docs/latest/rules/jsx-quotes - */ - 'jsx-quotes': 'error', - - /** - * @description Enforce consistent spacing between keys and values in object literal properties - * @link https://eslint.org/docs/latest/rules/key-spacing - */ - 'key-spacing': 'error', - - /** - * @description Enforce consistent spacing before and after keywords - * @link https://eslint.org/docs/latest/rules/keyword-spacing - */ - 'keyword-spacing': 'error', - - /** - * @description Enforce position of line comments - * @link https://eslint.org/docs/latest/rules/line-comment-position - */ - 'line-comment-position': 'off', - - /** - * @description Enforce consistent linebreak style - * @link https://eslint.org/docs/latest/rules/linebreak-style - */ - 'linebreak-style': 'error', - - /** - * @description Require empty lines around comments - * @link https://eslint.org/docs/latest/rules/lines-around-comment - */ - 'lines-around-comment': 'error', - - /** - * @description Require or disallow an empty line between class members - * @link https://eslint.org/docs/latest/rules/lines-between-class-members - */ - 'lines-between-class-members': 'error', - - /** - * @description Enforce a maximum line length - * @link https://eslint.org/docs/latest/rules/max-len - */ - 'max-len': 'error', - - /** - * @description Enforce a maximum number of statements allowed per line - * @link https://eslint.org/docs/latest/rules/max-statements-per-line - */ - 'max-statements-per-line': 'off', - - /** - * @description Enforce newlines between operands of ternary expressions - * @link https://eslint.org/docs/latest/rules/multiline-ternary - */ - 'multiline-ternary': ['error', 'always-multiline'], - - /** - * @description Enforce or disallow parentheses when invoking a constructor with no arguments - * @link https://eslint.org/docs/latest/rules/new-parens - */ - 'new-parens': 'error', - - /** - * @description Require a newline after each call in a method chain - * @link https://eslint.org/docs/latest/rules/newline-per-chained-call - */ - 'newline-per-chained-call': 'error', - - /** - * @description Disallow unnecessary parentheses - * @link https://eslint.org/docs/latest/rules/no-extra-parens - */ - 'no-extra-parens': 'error', - - /** - * @description Disallow mixed spaces and tabs for indentation - * @link https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs - */ - 'no-mixed-spaces-and-tabs': 'error', - - /** - * @description Disallow multiple spaces - * @link https://eslint.org/docs/latest/rules/no-multi-spaces - */ - 'no-multi-spaces': 'error', - - /** - * @description Disallow multiple empty lines - * @link https://eslint.org/docs/latest/rules/no-multiple-empty-lines - */ - 'no-multiple-empty-lines': ['error', { max: 1, maxEOF: 0 }], - - /** - * @description Disallow all tabs - * @link https://eslint.org/docs/latest/rules/no-tabs - */ - 'no-tabs': 'error', - - /** - * @description Disallow trailing whitespace at the end of lines - * @link https://eslint.org/docs/latest/rules/no-trailing-spaces - */ - 'no-trailing-spaces': 'error', - - /** - * @description Disallow whitespace before properties - * @link https://eslint.org/docs/latest/rules/no-whitespace-before-property - */ - 'no-whitespace-before-property': 'error', - - /** - * @description Enforce the location of single-line statements - * @link https://eslint.org/docs/latest/rules/nonblock-statement-body-position - */ - 'nonblock-statement-body-position': 'error', - - /** - * @description Enforce consistent line breaks after opening and before closing braces - * @link https://eslint.org/docs/latest/rules/object-curly-newline - */ - 'object-curly-newline': 'error', - - /** - * @description Enforce consistent spacing inside braces - * @link https://eslint.org/docs/latest/rules/object-curly-spacing - */ - 'object-curly-spacing': 'error', - - /** - * @description Enforce placing object properties on separate lines - * @link https://eslint.org/docs/latest/rules/object-property-newline - */ - 'object-property-newline': 'error', - - /** - * @description Enforce consistent linebreak style for operators - * @link https://eslint.org/docs/latest/rules/operator-linebreak - */ - 'operator-linebreak': 'error', - - /** - * @description Require or disallow padding within blocks - * @link https://eslint.org/docs/latest/rules/padded-blocks - */ - 'padded-blocks': 'error', - - /** - * @description Require or disallow padding lines between statements - * @link https://eslint.org/docs/latest/rules/padding-line-between-statements - */ - 'padding-line-between-statements': 'error', - - /** - * @description Enforce the consistent use of either backticks, double, or single quotes - * @link https://eslint.org/docs/latest/rules/quotes - */ - quotes: 'error', - - /** - * @description Enforce spacing between rest and spread operators and their expressions - * @link https://eslint.org/docs/latest/rules/rest-spread-spacing - */ - 'rest-spread-spacing': 'error', - - /** - * @description Require or disallow semicolons instead of ASI - * @link https://eslint.org/docs/latest/rules/semi - */ - semi: 'error', - - /** - * @description Enforce consistent spacing before and after semicolons - * @link https://eslint.org/docs/latest/rules/semi-spacing - */ - 'semi-spacing': 'error', - - /** - * @description Enforce location of semicolons - * @link https://eslint.org/docs/latest/rules/semi-style - */ - 'semi-style': 'error', - - /** - * @description Enforce consistent spacing before blocks - * @link https://eslint.org/docs/latest/rules/space-before-blocks - */ - 'space-before-blocks': 'error', - - /** - * @description Enforce consistent spacing before `function` definition opening parenthesis - * @link https://eslint.org/docs/latest/rules/space-before-function-paren - */ - 'space-before-function-paren': 'error', - - /** - * @description Enforce consistent spacing inside parentheses - * @link https://eslint.org/docs/latest/rules/space-in-parens - */ - 'space-in-parens': 'error', - - /** - * @description Require spacing around infix operators - * @link https://eslint.org/docs/latest/rules/space-infix-ops - */ - 'space-infix-ops': 'error', - - /** - * @description Enforce consistent spacing before or after unary operators - * @link https://eslint.org/docs/latest/rules/space-unary-ops - */ - 'space-unary-ops': 'error', - - /** - * @description Enforce spacing around colons of switch statements - * @link https://eslint.org/docs/latest/rules/switch-colon-spacing - */ - 'switch-colon-spacing': 'error', - - /** - * @description Require or disallow spacing around embedded expressions of template strings - * @link https://eslint.org/docs/latest/rules/template-curly-spacing - */ - 'template-curly-spacing': 'error', - - /** - * @description Require or disallow spacing between template tags and their literals - * @link https://eslint.org/docs/latest/rules/template-tag-spacing - */ - 'template-tag-spacing': 'error', - - /** - * @description Require or disallow Unicode byte order mark (BOM) - * @link https://eslint.org/docs/latest/rules/unicode-bom - */ - 'unicode-bom': 'error', - - /** - * @description Require parentheses around immediate `function` invocations - * @link https://eslint.org/docs/latest/rules/wrap-iife - */ - 'wrap-iife': 'error', - - /** - * @description Require parenthesis around regex literals - * @link https://eslint.org/docs/latest/rules/wrap-regex - */ - 'wrap-regex': 'error', - - /** - * @description Require or disallow spacing around the `*` in `yield*` expressions - * @link https://eslint.org/docs/latest/rules/yield-star-spacing - */ - 'yield-star-spacing': 'error' - } -}; diff --git a/packages/eslint-config/rules/prettier.js b/packages/eslint-config/rules/prettier.js deleted file mode 100644 index 41f00d6a..00000000 --- a/packages/eslint-config/rules/prettier.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @type {import('prettier').Options} - */ -module.exports = { - printWidth: 120, - tabWidth: 2, - useTabs: false, - semi: true, - singleQuote: true, - quoteProps: 'as-needed', - jsxSingleQuote: false, - trailingComma: 'none', - bracketSpacing: true, - bracketSameLine: false, - arrowParens: 'avoid', - rangeStart: 0, - rangeEnd: Number.POSITIVE_INFINITY, - requirePragma: false, - insertPragma: false, - proseWrap: 'preserve', - htmlWhitespaceSensitivity: 'ignore', - vueIndentScriptAndStyle: false, - endOfLine: 'lf', - embeddedLanguageFormatting: 'auto', - singleAttributePerLine: false -}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1efa6748..126e580d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -72,6 +72,9 @@ importers: '@sa/uno-preset': specifier: workspace:* version: link:packages/uno-preset + '@soybeanjs/eslint-config': + specifier: ^1.1.2 + version: 1.1.2(eslint@8.53.0)(typescript@5.2.2) '@types/lodash-es': specifier: 4.17.11 version: 4.17.11 @@ -417,6 +420,11 @@ packages: '@jridgewell/trace-mapping': 0.3.20 dev: true + /@antfu/eslint-define-config@1.23.0-2: + resolution: {integrity: sha512-LvxY21+ZhpuBf/aHeBUtGQhSEfad4PkNKXKvDOSvukaM3XVTfBhwmHX2EKwAsdq5DlfjbT3qqYyMiueBIO5iDQ==} + engines: {node: '>=18.0.0', npm: '>=9.0.0', pnpm: '>= 8.6.0'} + dev: true + /@antfu/install-pkg@0.1.1: resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==} dependencies: @@ -424,6 +432,12 @@ packages: find-up: 5.0.0 dev: true + /@antfu/install-pkg@0.3.1: + resolution: {integrity: sha512-A3zWY9VeTPnxlMiZtsGHw2lSd3ghwvL8s9RiGOtqvDxhhFfZ781ynsGBa/iUnDJ5zBrmTFQrJDud3TGgRISaxw==} + dependencies: + execa: 8.0.1 + dev: true + /@antfu/utils@0.7.6: resolution: {integrity: sha512-pvFiLP2BeOKA/ZOS6jxx4XhKzdVLHDhGlFEaZ2flWWYf2xOqVniqpk38I04DFRyz+L0ASggl7SkItTc+ZLju4w==} dev: true @@ -1094,11 +1108,33 @@ packages: - supports-color dev: true + /@eslint/eslintrc@2.1.4: + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.0 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /@eslint/js@8.53.0: resolution: {integrity: sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@eslint/js@8.55.0: + resolution: {integrity: sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + /@gar/promisify@1.1.3: resolution: {integrity: sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==} dev: true @@ -1520,6 +1556,79 @@ packages: engines: {node: '>=14.16'} dev: true + /@soybeanjs/eslint-config@1.1.2(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-2P5WZHAi1ty7DS/KW7ahJcBSFupDh+WX4MOfSd3DNRJ1Lne5ZjyY/YuDGqyHitjjWEeG6fUPFH/Y5b15SVDIKQ==} + peerDependencies: + '@toml-tools/parser': '*' + eslint: '>=8.40.0' + eslint-plugin-astro: '>=0.30.0' + eslint-plugin-react: '>=7.0.0' + eslint-plugin-react-hooks: '>=4.0.0' + eslint-plugin-react-native: '>=4.0.0' + eslint-plugin-react-refresh: '>=0.4.0' + eslint-plugin-solid: '>=0.10.0' + eslint-plugin-svelte: '>=2.0.0' + eslint-plugin-vue: '>=9.19.0' + prettier-plugin-astro: '>=0.12.0' + prettier-plugin-svelte: '>=3.0.0' + prettier-plugin-toml: '>=2.0.0' + typescript: '>=5.0.0' + vue-eslint-parser: '>=9.3.2' + peerDependenciesMeta: + '@toml-tools/parser': + optional: true + eslint-plugin-astro: + optional: true + eslint-plugin-react: + optional: true + eslint-plugin-react-hooks: + optional: true + eslint-plugin-react-native: + optional: true + eslint-plugin-react-refresh: + optional: true + eslint-plugin-solid: + optional: true + eslint-plugin-svelte: + optional: true + eslint-plugin-vue: + optional: true + prettier-plugin-astro: + optional: true + prettier-plugin-svelte: + optional: true + prettier-plugin-toml: + optional: true + vue-eslint-parser: + optional: true + dependencies: + '@antfu/eslint-define-config': 1.23.0-2 + '@antfu/install-pkg': 0.3.1 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.55.0 + '@typescript-eslint/eslint-plugin': 6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/parser': 6.14.0(eslint@8.53.0)(typescript@5.2.2) + eslint: 8.53.0 + eslint-config-prettier: 9.1.0(eslint@8.53.0) + eslint-parser-plain: 0.1.0 + eslint-plugin-i: 2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.53.0) + eslint-plugin-n: 16.4.0(eslint@8.53.0) + eslint-plugin-prettier: 5.0.1(eslint-config-prettier@9.1.0)(eslint@8.53.0)(prettier@3.1.1) + eslint-plugin-unicorn: 49.0.0(eslint@8.53.0) + globals: 13.24.0 + local-pkg: 0.5.0 + prettier: 3.1.1 + prettier-plugin-jsdoc: 1.1.1(prettier@3.1.1) + prettier-plugin-json-sort: 0.0.2(prettier@3.1.1) + prompts: 2.4.2 + typescript: 5.2.2 + transitivePeerDependencies: + - '@types/eslint' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + /@szmarczak/http-timer@5.0.1: resolution: {integrity: sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==} engines: {node: '>=14.16'} @@ -1554,6 +1663,12 @@ packages: resolution: {integrity: sha512-FSPGd9+OcSok3RsM0UZ/9fcvMOXJ1ENE/ZbLfOPlBWj7BgXtEAM8VYfTtT760GiLbQIMoVozwVuisjvsVwqYWw==} dev: true + /@types/debug@4.1.12: + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + dependencies: + '@types/ms': 0.7.34 + dev: true + /@types/eslint@8.44.7: resolution: {integrity: sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==} dependencies: @@ -1600,10 +1715,20 @@ packages: '@types/mdurl': 1.0.5 dev: true + /@types/mdast@4.0.3: + resolution: {integrity: sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==} + dependencies: + '@types/unist': 3.0.2 + dev: true + /@types/mdurl@1.0.5: resolution: {integrity: sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==} dev: true + /@types/ms@0.7.34: + resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} + dev: true + /@types/node@10.17.60: resolution: {integrity: sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==} dev: true @@ -1614,6 +1739,10 @@ packages: undici-types: 5.26.5 dev: true + /@types/normalize-package-data@2.4.4: + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + dev: true + /@types/nprogress@0.2.3: resolution: {integrity: sha512-k7kRA033QNtC+gLc4VPlfnue58CM1iQLgn1IMAU8VPHGOj7oIHPp9UlhedEnD/Gl8evoCjwkZjlBORtZ3JByUA==} dev: true @@ -1628,6 +1757,10 @@ packages: '@types/node': 20.9.1 dev: true + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + dev: true + /@types/web-bluetooth@0.0.20: resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} @@ -1660,6 +1793,35 @@ packages: - supports-color dev: true + /@typescript-eslint/eslint-plugin@6.14.0(@typescript-eslint/parser@6.14.0)(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@eslint-community/regexpp': 4.10.0 + '@typescript-eslint/parser': 6.14.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/scope-manager': 6.14.0 + '@typescript-eslint/type-utils': 6.14.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/utils': 6.14.0(eslint@8.53.0)(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.14.0 + debug: 4.3.4 + eslint: 8.53.0 + graphemer: 1.4.0 + ignore: 5.3.0 + natural-compare: 1.4.0 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/parser@6.11.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1681,6 +1843,27 @@ packages: - supports-color dev: true + /@typescript-eslint/parser@6.14.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 6.14.0 + '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.2.2) + '@typescript-eslint/visitor-keys': 6.14.0 + debug: 4.3.4 + eslint: 8.53.0 + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/scope-manager@6.11.0: resolution: {integrity: sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1689,6 +1872,14 @@ packages: '@typescript-eslint/visitor-keys': 6.11.0 dev: true + /@typescript-eslint/scope-manager@6.14.0: + resolution: {integrity: sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/visitor-keys': 6.14.0 + dev: true + /@typescript-eslint/type-utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1709,11 +1900,36 @@ packages: - supports-color dev: true + /@typescript-eslint/type-utils@6.14.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.2.2) + '@typescript-eslint/utils': 6.14.0(eslint@8.53.0)(typescript@5.2.2) + debug: 4.3.4 + eslint: 8.53.0 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/types@6.11.0: resolution: {integrity: sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==} engines: {node: ^16.0.0 || >=18.0.0} dev: true + /@typescript-eslint/types@6.14.0: + resolution: {integrity: sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==} + engines: {node: ^16.0.0 || >=18.0.0} + dev: true + /@typescript-eslint/typescript-estree@6.11.0(typescript@5.2.2): resolution: {integrity: sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1735,6 +1951,27 @@ packages: - supports-color dev: true + /@typescript-eslint/typescript-estree@6.14.0(typescript@5.2.2): + resolution: {integrity: sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/visitor-keys': 6.14.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.5.4 + ts-api-utils: 1.0.3(typescript@5.2.2) + typescript: 5.2.2 + transitivePeerDependencies: + - supports-color + dev: true + /@typescript-eslint/utils@6.11.0(eslint@8.53.0)(typescript@5.2.2): resolution: {integrity: sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1754,6 +1991,25 @@ packages: - typescript dev: true + /@typescript-eslint/utils@6.14.0(eslint@8.53.0)(typescript@5.2.2): + resolution: {integrity: sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@types/json-schema': 7.0.15 + '@types/semver': 7.5.5 + '@typescript-eslint/scope-manager': 6.14.0 + '@typescript-eslint/types': 6.14.0 + '@typescript-eslint/typescript-estree': 6.14.0(typescript@5.2.2) + eslint: 8.53.0 + semver: 7.5.4 + transitivePeerDependencies: + - supports-color + - typescript + dev: true + /@typescript-eslint/visitor-keys@6.11.0: resolution: {integrity: sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -1762,6 +2018,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true + /@typescript-eslint/visitor-keys@6.14.0: + resolution: {integrity: sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==} + engines: {node: ^16.0.0 || >=18.0.0} + dependencies: + '@typescript-eslint/types': 6.14.0 + eslint-visitor-keys: 3.4.3 + dev: true + /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -2493,6 +2757,10 @@ packages: engines: {node: '>=8'} dev: true + /binary-searching@2.0.5: + resolution: {integrity: sha512-v4N2l3RxL+m4zDxyxz3Ne2aTmiPn8ZUpKFpdPtO+ItW1NcTCXA7JeHG5GMBSvoKSkQZ9ycS+EouDVxYB9ufKWA==} + dev: true + /birpc@0.2.14: resolution: {integrity: sha512-37FHE8rqsYM5JEKCnXFyHpBCzvgHEExwVVTq+nUmloInU7l8ezD1TpOhKpS8oe1DTYFqEK27rFZVKG43oTqXRA==} dev: true @@ -2761,6 +3029,10 @@ packages: engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} dev: true + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: true + /character-parser@2.2.0: resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==} dependencies: @@ -2802,6 +3074,13 @@ packages: static-extend: 0.1.2 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: true + /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -2922,6 +3201,11 @@ packages: engines: {node: '>= 10'} dev: true + /comment-parser@1.4.1: + resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} + engines: {node: '>= 12.0.0'} + dev: true + /component-emitter@1.3.1: resolution: {integrity: sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==} dev: true @@ -3144,6 +3428,12 @@ packages: ms: 2.1.2 dev: true + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: true + /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -3250,9 +3540,20 @@ packages: resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} dev: true + /dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} + dev: true + /destr@2.0.2: resolution: {integrity: sha512-65AlobnZMiCET00KaFFjUefxDX0khFA/E4myqZ7a6Sq1yZtR8+FVIvilVX66vF2uobSumxooYZChiRPCKNqhmg==} + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: true + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -3536,6 +3837,15 @@ packages: engines: {node: '>=10'} dev: true + /eslint-compat-utils@0.1.2(eslint@8.53.0): + resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==} + engines: {node: '>=12'} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.53.0 + dev: true + /eslint-config-prettier@9.0.0(eslint@8.53.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true @@ -3545,6 +3855,15 @@ packages: eslint: 8.53.0 dev: true + /eslint-config-prettier@9.1.0(eslint@8.53.0): + resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} + hasBin: true + peerDependencies: + eslint: '>=7.0.0' + dependencies: + eslint: 8.53.0 + dev: true + /eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} dependencies: @@ -3565,7 +3884,7 @@ packages: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.53.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 @@ -3608,6 +3927,68 @@ packages: - supports-color dev: true + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.11.0(eslint@8.53.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.53.0 + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.11.0)(eslint-plugin-import@2.29.0)(eslint@8.53.0) + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true + dependencies: + '@typescript-eslint/parser': 6.14.0(eslint@8.53.0)(typescript@5.2.2) + debug: 3.2.7 + eslint: 8.53.0 + eslint-import-resolver-node: 0.3.9 + transitivePeerDependencies: + - supports-color + dev: true + + /eslint-parser-plain@0.1.0: + resolution: {integrity: sha512-oOeA6FWU0UJT/Rxc3XF5Cq0nbIZbylm7j8+plqq0CZoE6m4u32OXJrR+9iy4srGMmF6v6pmgvP1zPxSRIGh3sg==} + dev: true + /eslint-plugin-es-x@7.3.0(eslint@8.53.0): resolution: {integrity: sha512-W9zIs+k00I/I13+Bdkl/zG1MEO07G97XjUSQuH117w620SJ6bHtLUmoMvkGA2oYnI/gNdr+G7BONLyYnFaLLEQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3619,6 +4000,41 @@ packages: eslint: 8.53.0 dev: true + /eslint-plugin-es-x@7.5.0(eslint@8.53.0): + resolution: {integrity: sha512-ODswlDSO0HJDzXU0XvgZ3lF3lS3XAZEossh15Q2UHjwrJggWeBoKqqEsLTZLXl+dh5eOAozG0zRcYtuE35oTuQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '>=8' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + '@eslint-community/regexpp': 4.10.0 + eslint: 8.53.0 + eslint-compat-utils: 0.1.2(eslint@8.53.0) + dev: true + + /eslint-plugin-i@2.29.0(@typescript-eslint/parser@6.14.0)(eslint@8.53.0): + resolution: {integrity: sha512-slGeTS3GQzx9267wLJnNYNO8X9EHGsc75AKIAFvnvMYEcTJKotPKL1Ru5PIGVHIVet+2DsugePWp8Oxpx8G22w==} + engines: {node: '>=12'} + peerDependencies: + eslint: ^7.2.0 || ^8 + dependencies: + debug: 3.2.7 + doctrine: 2.1.0 + eslint: 8.53.0 + eslint-import-resolver-node: 0.3.9 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.14.0)(eslint-import-resolver-node@0.3.9)(eslint@8.53.0) + get-tsconfig: 4.7.2 + is-glob: 4.0.3 + minimatch: 3.1.2 + resolve: 1.22.8 + semver: 7.5.4 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.11.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.53.0): resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==} engines: {node: '>=4'} @@ -3673,6 +4089,25 @@ packages: semver: 7.5.4 dev: true + /eslint-plugin-n@16.4.0(eslint@8.53.0): + resolution: {integrity: sha512-IkqJjGoWYGskVaJA7WQuN8PINIxc0N/Pk/jLeYT4ees6Fo5lAhpwGsYek6gS9tCUxgDC4zJ+OwY2bY/6/9OMKQ==} + engines: {node: '>=16.0.0'} + peerDependencies: + eslint: '>=7.0.0' + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + builtins: 5.0.1 + eslint: 8.53.0 + eslint-plugin-es-x: 7.5.0(eslint@8.53.0) + get-tsconfig: 4.7.2 + ignore: 5.3.0 + is-builtin-module: 3.2.1 + is-core-module: 2.13.1 + minimatch: 3.1.2 + resolve: 1.22.8 + semver: 7.5.4 + dev: true + /eslint-plugin-prettier@5.0.1(@types/eslint@8.44.7)(eslint-config-prettier@9.0.0)(eslint@8.53.0)(prettier@3.1.0): resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3695,6 +4130,27 @@ packages: synckit: 0.8.5 dev: true + /eslint-plugin-prettier@5.0.1(eslint-config-prettier@9.1.0)(eslint@8.53.0)(prettier@3.1.1): + resolution: {integrity: sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + '@types/eslint': '>=8.0.0' + eslint: '>=8.0.0' + eslint-config-prettier: '*' + prettier: '>=3.0.0' + peerDependenciesMeta: + '@types/eslint': + optional: true + eslint-config-prettier: + optional: true + dependencies: + eslint: 8.53.0 + eslint-config-prettier: 9.1.0(eslint@8.53.0) + prettier: 3.1.1 + prettier-linter-helpers: 1.0.0 + synckit: 0.8.5 + dev: true + /eslint-plugin-promise@6.1.1(eslint@8.53.0): resolution: {integrity: sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3704,6 +4160,29 @@ packages: eslint: 8.53.0 dev: true + /eslint-plugin-unicorn@49.0.0(eslint@8.53.0): + resolution: {integrity: sha512-0fHEa/8Pih5cmzFW5L7xMEfUTvI9WKeQtjmKpTUmY+BiFCDxkxrTdnURJOHKykhtwIeyYsxnecbGvDCml++z4Q==} + engines: {node: '>=16'} + peerDependencies: + eslint: '>=8.52.0' + dependencies: + '@babel/helper-validator-identifier': 7.22.20 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.53.0) + ci-info: 3.9.0 + clean-regexp: 1.0.0 + eslint: 8.53.0 + esquery: 1.5.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.1 + jsesc: 3.0.2 + 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: true + /eslint-plugin-vue@9.18.1(eslint@8.53.0): resolution: {integrity: sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg==} engines: {node: ^14.17.0 || >=16.0.0} @@ -3993,6 +4472,14 @@ packages: to-regex-range: 5.0.1 dev: true + /find-up@4.1.0: + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} + 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==} engines: {node: '>=10'} @@ -4291,6 +4778,13 @@ packages: type-fest: 0.20.2 dev: true + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + dev: true + /globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} @@ -5062,12 +5556,23 @@ packages: argparse: 2.0.1 dev: true + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: true + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true dev: true + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: true + /json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} dev: true @@ -5076,6 +5581,10 @@ packages: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: true + /json-parse-even-better-errors@3.0.0: resolution: {integrity: sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -5166,6 +5675,11 @@ packages: engines: {node: '>=0.10.0'} dev: true + /kleur@3.0.3: + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} + dev: true + /kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -5201,6 +5715,10 @@ packages: engines: {node: '>=10'} dev: true + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + /lint-staged@15.1.0: resolution: {integrity: sha512-ZPKXWHVlL7uwVpy8OZ7YQjYDAuO5X4kMh0XgZvPNxLcCCngd0PO5jKQyy3+s4TL2EnHoIXIzP1422f/l3nZKMw==} engines: {node: '>=18.12.0'} @@ -5270,6 +5788,13 @@ packages: lie: 3.1.1 dev: false + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: true + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -5407,6 +5932,31 @@ packages: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} dev: true + /mdast-util-from-markdown@2.0.0: + resolution: {integrity: sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==} + dependencies: + '@types/mdast': 4.0.3 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: true + + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.3 + dev: true + /mdn-data@2.0.14: resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} dev: true @@ -5436,6 +5986,181 @@ packages: engines: {node: '>= 8'} dev: true + /micromark-core-commonmark@2.0.0: + resolution: {integrity: sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==} + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.0.1 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + dependencies: + micromark-util-character: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + dependencies: + micromark-util-character: 2.0.1 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-character@2.0.1: + resolution: {integrity: sha512-3wgnrmEAJ4T+mGXAUfMvMAbxU9RDG43XmGce4j6CwPtVxB3vfwXSZ6KhFwDzZ3mZHhmPimMAXg71veiBGzeAZw==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + dependencies: + micromark-util-character: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.0.1 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: true + + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: true + + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + dependencies: + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: true + + /micromark-util-subtokenize@2.0.0: + resolution: {integrity: sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: true + + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: true + + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: true + + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.0.1 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: true + /micromatch@3.1.0: resolution: {integrity: sha512-3StSelAE+hnRvMs8IdVW7Uhk8CVed5tp+kLLGlBP6WiRAXS21GPGu/Nat4WNPXj2Eoc24B02SaeoyozPMfj0/g==} engines: {node: '>=0.10.0'} @@ -5497,6 +6222,11 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true + /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==} dependencies: @@ -6086,6 +6816,13 @@ packages: engines: {node: '>=12.20'} dev: true + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: true + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} @@ -6093,6 +6830,13 @@ packages: yocto-queue: 0.1.0 dev: true + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + 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==} engines: {node: '>=10'} @@ -6107,6 +6851,11 @@ packages: aggregate-error: 3.1.0 dev: true + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: true + /package-json@8.1.1: resolution: {integrity: sha512-cbH9IAIJHNj9uXi196JVsRlt7cHKak6u/e6AkL/bkRelZ7rlL3X1YKxsZwa36xipOEKAsdtmaG6aAJoM1fx2zA==} engines: {node: '>=14.16'} @@ -6166,6 +6915,16 @@ packages: json-parse-better-errors: 1.0.2 dev: true + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.22.13 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: true + /pascalcase@0.1.1: resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==} engines: {node: '>=0.10.0'} @@ -6287,6 +7046,11 @@ packages: pathe: 1.1.1 dev: true + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: true + /posix-character-classes@0.1.1: resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==} engines: {node: '>=0.10.0'} @@ -6422,12 +7186,40 @@ packages: fast-diff: 1.3.0 dev: true + /prettier-plugin-jsdoc@1.1.1(prettier@3.1.1): + resolution: {integrity: sha512-yA13k0StQ+g0RJBrmo2IldVSp3ANXlJdsNzQNhGtQ0LY7JFC+u01No/1Z9xp0ZhT4u98BXlPAc4SC0iambqy5A==} + engines: {node: '>=14.13.1 || >=16.0.0'} + peerDependencies: + prettier: ^3.0.0 + dependencies: + binary-searching: 2.0.5 + comment-parser: 1.4.1 + mdast-util-from-markdown: 2.0.0 + prettier: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + + /prettier-plugin-json-sort@0.0.2(prettier@3.1.1): + resolution: {integrity: sha512-xd5VVfneeUBdWhTm5uh0rAto3qnkkosbte6poO5WVTZEAiQdndMQMRPv1SROXx968zfyAlS+Z+C6rkr4jbVOgg==} + peerDependencies: + prettier: '>=2.0.0' + dependencies: + prettier: 3.1.1 + dev: true + /prettier@3.1.0: resolution: {integrity: sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==} engines: {node: '>=14'} hasBin: true dev: true + /prettier@3.1.1: + resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==} + engines: {node: '>=14'} + hasBin: true + dev: true + /proc-log@3.0.0: resolution: {integrity: sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -6469,6 +7261,14 @@ packages: sisteransi: 1.0.5 dev: true + /prompts@2.4.2: + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} + dependencies: + kleur: 3.0.3 + sisteransi: 1.0.5 + dev: true + /proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: true @@ -6650,6 +7450,15 @@ packages: npm-normalize-package-bin: 3.0.1 dev: true + /read-pkg-up@7.0.1: + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} + dependencies: + find-up: 4.1.0 + read-pkg: 5.2.0 + type-fest: 0.8.1 + dev: true + /read-pkg@3.0.0: resolution: {integrity: sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==} engines: {node: '>=4'} @@ -6659,6 +7468,16 @@ packages: path-type: 3.0.0 dev: true + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.4 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: true + /readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -6698,6 +7517,11 @@ packages: safe-regex: 1.1.0 dev: true + /regexp-tree@0.1.27: + resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} + hasBin: true + dev: true + /regexp.prototype.flags@1.5.1: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} @@ -6721,6 +7545,13 @@ packages: rc: 1.2.8 dev: true + /regjsparser@0.10.0: + resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: true + /remote-git-tags@3.0.0: resolution: {integrity: sha512-C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==} engines: {node: '>=8'} @@ -7354,6 +8185,13 @@ packages: engines: {node: '>=12'} dev: true + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: true + /strip-json-comments@2.0.1: resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} @@ -7578,6 +8416,16 @@ packages: engines: {node: '>=10'} dev: true + /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 + /type-fest@1.4.0: resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} engines: {node: '>=10'} @@ -7727,6 +8575,12 @@ packages: crypto-random-string: 4.0.0 dev: true + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.2 + dev: true + /universalify@2.0.1: resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} engines: {node: '>= 10.0.0'}