diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..f17546d --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,34 @@ +name: Publish + +on: + push: + branches: + - release + +jobs: + publish: + runs-on: ubuntu-latest + permissions: + contents: write + + steps: + - name: Checkout + uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0 + + - uses: pnpm/action-setup@c3b53f6a16e57305370b4ae5a540c2077a1d50dd # v2.2.4 + with: + version: 8 + + - uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 # v3.5.1 + with: + node-version: 18 + cache: "pnpm" + scope: "@oomol" + + - name: Install dependencies + run: pnpm i || pnpm i || pnpm i + + - name: Publish + run: pnpm -r publish --access public + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7615333 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.DS_Store +node_modules +.idea +.vscode diff --git a/README.md b/README.md new file mode 100644 index 0000000..656b92e --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +# code-style + +* [ESLint](./eslint/README.md) +* [TsConfig](./tsconfig/README.md) diff --git a/eslint/README.md b/eslint/README.md new file mode 100644 index 0000000..143d89c --- /dev/null +++ b/eslint/README.md @@ -0,0 +1,71 @@ +# EsLint code-style + +## JavaScript project + +### Install + +```bash +pnpm add eslint -D +pnpm add @electronjs-cn/eslint-config-basic -D +``` + +## Configuring + +### Create .eslintrc.js file + +```js +module.exports = { + extends: [ + "@electronjs-cn/eslint-config-basic", + ], +}; +``` + +## TypeScript Project + +### Install + +```bash +pnpm add eslint typescript -D +pnpm add @electronjs-cn/eslint-config-ts -D + +# If is node project, please execute the following command +pnpm add @types/node -D +``` + +### Create .eslintrc.js file + +```js +module.exports = { + parserOptions: { + project: "./tsconfig.json", + }, + + extends: [ + "@electronjs-cn/eslint-config-ts", + ], +}; +``` + +## React Project + +### Install + +```bash +pnpm add eslint typescript -D +pnpm add @electronjs-cn/eslint-config-react -D +``` + +### Create .eslintrc.js file + +```js +module.exports = { + parserOptions: { + project: "./tsconfig.json", + }, + + extends: [ + "@electronjs-cn/eslint-config-react", + ], +}; +``` diff --git a/eslint/basic/commons.js b/eslint/basic/commons.js new file mode 100644 index 0000000..94f52f7 --- /dev/null +++ b/eslint/basic/commons.js @@ -0,0 +1,682 @@ +module.exports = { + rules: { + /** + * https://eslint.org/docs/latest/rules/constructor-super + */ + "constructor-super": "error", + + /** + * https://eslint.org/docs/latest/rules/getter-return + */ + "getter-return": ["error", { + allowImplicit: true, + }], + + /** + * https://eslint.org/docs/latest/rules/no-async-promise-executor + */ + "no-async-promise-executor": "error", + + /** + * https://eslint.org/docs/latest/rules/no-class-assign + */ + "no-class-assign": "error", + + /** + * https://eslint.org/docs/latest/rules/no-compare-neg-zero + */ + "no-compare-neg-zero": "error", + + /** + * https://eslint.org/docs/latest/rules/no-cond-assign + */ + "no-cond-assign": "error", + + /** + * https://eslint.org/docs/latest/rules/no-const-assign + */ + "no-const-assign": "error", + + /** + * https://eslint.org/docs/latest/rules/no-constant-binary-expression + */ + "no-constant-binary-expression": "error", + + /** + * https://eslint.org/docs/latest/rules/no-constant-condition + */ + "no-constant-condition": "error", + + /** + * https://eslint.org/docs/latest/rules/no-constructor-return + */ + "no-constructor-return": "error", + + /** + * https://eslint.org/docs/latest/rules/no-debugger + */ + "no-debugger": "warn", + + /** + * https://eslint.org/docs/latest/rules/no-dupe-args + */ + "no-dupe-args": "error", + + /** + * https://eslint.org/docs/latest/rules/no-dupe-class-members + */ + "no-dupe-class-members": "error", + + /** + * https://eslint.org/docs/latest/rules/no-dupe-else-if + */ + "no-dupe-else-if": "error", + + /** + * https://eslint.org/docs/latest/rules/no-dupe-keys + */ + "no-dupe-keys": "error", + + /** + * https://eslint.org/docs/latest/rules/no-duplicate-case + */ + "no-duplicate-case": "error", + + /** + * https://eslint.org/docs/latest/rules/no-duplicate-imports + */ + "no-duplicate-imports": "off", + + /** + * https://eslint.org/docs/latest/rules/no-empty-character-class + */ + "no-empty-character-class": "error", + + /** + * https://eslint.org/docs/latest/rules/no-empty-pattern + */ + "no-empty-pattern": "error", + + /** + * https://eslint.org/docs/latest/rules/no-ex-assign + */ + "no-ex-assign": "error", + + /** + * https://eslint.org/docs/latest/rules/no-fallthrough + */ + "no-fallthrough": ["error", { + allowEmptyCase: true, + }], + + /** + * https://eslint.org/docs/latest/rules/no-func-assign + */ + "no-func-assign": "error", + + /** + * https://eslint.org/docs/latest/rules/no-import-assign + */ + "no-import-assign": "error", + + /** + * https://eslint.org/docs/latest/rules/no-inner-declarations + */ + "no-inner-declarations": "error", + + /** + * https://eslint.org/docs/latest/rules/no-invalid-regexp + */ + "no-invalid-regexp": "error", + + /** + * https://eslint.org/docs/latest/rules/no-irregular-whitespace + */ + "no-irregular-whitespace": "error", + + /** + * https://eslint.org/docs/latest/rules/no-loss-of-precision + */ + "no-loss-of-precision": "error", + + /** + * https://eslint.org/docs/latest/rules/no-new-symbol + */ + "no-new-symbol": "error", + + /** + * https://eslint.org/docs/latest/rules/no-obj-calls + */ + "no-obj-calls": "error", + + /** + * https://eslint.org/docs/latest/rules/no-prototype-builtins + */ + "no-prototype-builtins": "error", + + /** + * https://eslint.org/docs/latest/rules/no-self-assign + */ + "no-self-assign": "error", + + /** + * https://eslint.org/docs/latest/rules/no-self-compare + */ + "no-self-compare": "error", + + /** + * https://eslint.org/docs/latest/rules/no-setter-return + */ + "no-setter-return": "error", + + /** + * https://eslint.org/docs/latest/rules/no-sparse-arrays + */ + "no-sparse-arrays": "error", + + /** + * https://eslint.org/docs/latest/rules/no-this-before-super + */ + "no-this-before-super": "error", + + /** + * https://eslint.org/docs/latest/rules/no-undef + */ + "no-undef": "error", + + /** + * https://eslint.org/docs/latest/rules/no-unexpected-multiline + */ + "no-unexpected-multiline": "error", + + /** + * https://eslint.org/docs/latest/rules/no-unreachable + */ + "no-unreachable": "warn", + + /** + * https://eslint.org/docs/latest/rules/no-unsafe-finally + */ + "no-unsafe-finally": "error", + + /** + * https://eslint.org/docs/latest/rules/no-unsafe-negation + */ + "no-unsafe-negation": "error", + + /** + * https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining + */ + "no-unsafe-optional-chaining": "error", + + /** + * https://eslint.org/docs/latest/rules/no-unused-private-class-members + */ + "no-unused-private-class-members": "warn", + + /** + * https://eslint.org/docs/latest/rules/no-unused-vars + */ + "no-unused-vars": ["error", { + args: "after-used", + ignoreRestSiblings: true, + argsIgnorePattern: "^_", + destructuredArrayIgnorePattern: "^_", + caughtErrors: "all", + caughtErrorsIgnorePattern: "^_", + }], + + /** + * https://eslint.org/docs/latest/rules/use-isnan + */ + "use-isnan": "error", + + /** + * https://eslint.org/docs/latest/rules/valid-typeof + */ + "valid-typeof": "error", + + /** + * https://eslint.org/docs/latest/rules/capitalized-comments + */ + "capitalized-comments": ["off"], + + /** + * https://eslint.org/docs/latest/rules/curly + */ + "curly": ["error", "all"], + + /** + * https://eslint.org/docs/latest/rules/default-param-last + */ + "default-param-last": ["error"], + + /** + * https://eslint.org/docs/latest/rules/eqeqeq + */ + "eqeqeq": ["error", "always", { + null: "ignore", + }], + + /** + * https://eslint.org/docs/latest/rules/func-names + */ + "func-names": ["error", "always"], + + /** + * https://eslint.org/docs/latest/rules/grouped-accessor-pairs + */ + "grouped-accessor-pairs": ["error", "anyOrder"], + + /** + * https://eslint.org/docs/latest/rules/max-nested-callbacks + */ + "max-nested-callbacks": ["error", { + max: 10, + }], + + /** + * https://eslint.org/docs/latest/rules/no-alert + */ + "no-alert": "error", + + /** + * https://eslint.org/docs/latest/rules/no-caller + */ + "no-caller": "error", + + /** + * https://eslint.org/docs/latest/rules/no-console + */ + "no-console": "off", + + /** + * https://eslint.org/docs/latest/rules/no-empty + */ + "no-empty": "warn", + + /** + * https://eslint.org/docs/latest/rules/no-empty-function + */ + "no-empty-function": "warn", + + /** + * https://eslint.org/docs/latest/rules/no-eval + */ + "no-eval": "error", + + /** + * https://eslint.org/docs/latest/rules/no-extra-boolean-cast + */ + "no-extra-boolean-cast": ["error", { + enforceForLogicalOperands: true, + }], + + /** + * https://eslint.org/docs/latest/rules/no-extra-semi + */ + "no-extra-semi": "error", + + /** + * https://eslint.org/docs/latest/rules/no-global-assign + */ + "no-global-assign": "error", + + /** + * https://eslint.org/docs/latest/rules/no-implicit-coercion + */ + "no-implicit-coercion": ["error", { + allow: ["!!"], + }], + + /** + * https://eslint.org/docs/latest/rules/no-implied-eval + */ + "no-implied-eval": "error", + + /** + * https://eslint.org/docs/latest/rules/no-labels + */ + "no-labels": "error", + + /** + * https://eslint.org/docs/latest/rules/no-new + */ + "no-new": "error", + + /** + * https://eslint.org/docs/latest/rules/no-new-func + */ + "no-new-func": "error", + + /** + * https://eslint.org/docs/latest/rules/no-nonoctal-decimal-escape + */ + "no-nonoctal-decimal-escape": "error", + + /** + * https://eslint.org/docs/latest/rules/no-octal + */ + "no-octal": "error", + + /** + * https://eslint.org/docs/latest/rules/no-proto + */ + "no-proto": "error", + + /** + * https://eslint.org/docs/latest/rules/no-return-assign + */ + "no-return-assign": ["error", "always"], + + /** + * https://eslint.org/docs/latest/rules/no-shadow-restricted-names + */ + "no-shadow-restricted-names": "error", + + /** + * https://eslint.org/docs/latest/rules/no-useless-escape + */ + "no-useless-escape": "error", + + /** + * https://eslint.org/docs/latest/rules/no-var + */ + "no-var": "error", + + /** + * https://eslint.org/docs/latest/rules/no-with + */ + "no-with": "error", + + /** + * https://eslint.org/docs/latest/rules/prefer-const + */ + "prefer-const": "error", + + /** + * https://eslint.org/docs/latest/rules/prefer-object-has-own + */ + "prefer-object-has-own": "error", + + /** + * https://eslint.org/docs/latest/rules/prefer-promise-reject-errors + */ + "prefer-promise-reject-errors": "error", + + /** + * https://eslint.org/docs/latest/rules/prefer-rest-params + */ + "prefer-rest-params": "error", + + /** + * https://eslint.org/docs/latest/rules/prefer-template + */ + "prefer-template": "error", + + /** + * https://eslint.org/docs/latest/rules/require-await + */ + "require-await": "error", + + /** + * https://eslint.org/docs/latest/rules/require-yield + */ + "require-yield": "error", + + /** + * https://eslint.org/docs/latest/rules/no-multi-str + */ + "no-multi-str": "error", + + /** + * https://eslint.org/docs/latest/rules/spaced-comment + */ + "spaced-comment": ["error", "always", { + line: { + exceptions: ["-+"], + }, + block: { + exceptions: ["*"], + }, + }], + + /** + * https://eslint.org/docs/latest/rules/symbol-description + */ + "symbol-description": "error", + + /** + * https://eslint.org/docs/latest/rules/arrow-parens + */ + "arrow-parens": "error", + + /** + * https://eslint.org/docs/latest/rules/arrow-spacing + */ + "arrow-spacing": ["error", { + "before": true, + "after": true, + }], + + /** + * https://eslint.org/docs/latest/rules/brace-style + */ + "brace-style": "error", + + /** + * https://eslint.org/docs/latest/rules/comma-dangle + */ + "comma-dangle": ["error", "always-multiline"], + + /** + * https://eslint.org/docs/latest/rules/comma-spacing + */ + "comma-spacing": "error", + + /** + * https://eslint.org/docs/latest/rules/comma-style + */ + "comma-style": "error", + + /** + * https://eslint.org/docs/latest/rules/computed-property-spacing + */ + "computed-property-spacing": "error", + + /** + * https://eslint.org/docs/latest/rules/dot-location + */ + "dot-location": ["error", "property"], + + /** + * https://eslint.org/docs/latest/rules/eol-last + */ + "eol-last": "error", + + /** + * https://eslint.org/docs/latest/rules/func-call-spacing + */ + "func-call-spacing": "error", + + /** + * https://eslint.org/docs/latest/rules/function-call-argument-newline + */ + "function-call-argument-newline": ["error", "consistent"], + + /** + * https://eslint.org/docs/latest/rules/indent + */ + "indent": ["error", 4, { + SwitchCase: 1, + offsetTernaryExpressions: true, + }], + + /** + * https://eslint.org/docs/latest/rules/jsx-quotes + */ + "jsx-quotes": "error", + + /** + * https://eslint.org/docs/latest/rules/key-spacing + */ + "key-spacing": "error", + + /** + * https://eslint.org/docs/latest/rules/keyword-spacing + */ + "keyword-spacing": "error", + + /** + * https://eslint.org/docs/latest/rules/line-comment-position + */ + "line-comment-position": "error", + + /** + * https://eslint.org/docs/latest/rules/linebreak-style + */ + "linebreak-style": ["error", "unix"], + + /** + * https://eslint.org/docs/latest/rules/lines-around-comment + */ + "lines-around-comment": ["off"], + + /** + * https://eslint.org/docs/latest/rules/lines-between-class-members + */ + "lines-between-class-members": "off", + + /** + * https://eslint.org/docs/latest/rules/max-lines + */ + "max-len": ["error", 180], + + /** + * https://eslint.org/docs/latest/rules/max-statements-per-line + */ + "max-statements-per-line": ["error", { + max: 1, + }], + + /** + * https://eslint.org/docs/latest/rules/new-parens + */ + "new-parens": "error", + + /** + * https://eslint.org/docs/latest/rules/newline-per-chained-call + */ + "newline-per-chained-call": ["error", { + ignoreChainWithDepth: 3, + }], + + /** + * https://eslint.org/docs/latest/rules/no-mixed-spaces-and-tabs + */ + "no-mixed-spaces-and-tabs": "error", + + /** + * https://eslint.org/docs/latest/rules/no-multi-spaces + */ + "no-multi-spaces": "error", + + /** + * https://eslint.org/docs/latest/rules/no-multiple-empty-lines + */ + "no-multiple-empty-lines": ["error", { + max: 2, + }], + + /** + * https://eslint.org/docs/latest/rules/no-tabs + */ + "no-tabs": "error", + + /** + * https://eslint.org/docs/latest/rules/no-whitespace-before-property + */ + "no-whitespace-before-property": "error", + + /** + * https://eslint.org/docs/latest/rules/quotes + */ + "quotes": "error", + + /** + * https://eslint.org/docs/latest/rules/rest-spread-spacing + */ + "rest-spread-spacing": ["error", "never"], + + /** + * https://eslint.org/docs/latest/rules/semi + */ + "semi": "error", + + /** + * https://eslint.org/docs/latest/rules/semi-style + */ + "semi-style": ["error", "last"], + + /** + * https://eslint.org/docs/latest/rules/space-before-blocks + */ + "space-before-blocks": "error", + + /** + * https://eslint.org/docs/latest/rules/space-before-function-paren + */ + "space-before-function-paren": ["off"], + + /** + * https://eslint.org/docs/latest/rules/space-in-parens + */ + "space-in-parens": "error", + + /** + * https://eslint.org/docs/latest/rules/no-trailing-spaces + */ + "no-trailing-spaces": "error", + + /** + * https://eslint.org/docs/latest/rules/object-curly-newline + */ + "object-curly-newline": ["error", { + ObjectExpression: { + minProperties: 12, + multiline: true, + consistent: true, + }, + ObjectPattern: { + minProperties: 12, + multiline: true, + consistent: true, + }, + ImportDeclaration: { + minProperties: 100, + multiline: true, + consistent: true, + }, + ExportDeclaration: { + minProperties: 5, + multiline: true, + consistent: true, + }, + }], + + /** + * https://eslint.org/docs/latest/rules/object-property-newline + */ + "object-property-newline": ["off"], + + /** + * https://eslint.org/docs/latest/rules/object-curly-spacing + */ + "object-curly-spacing": ["error", "always"], + + /** + * https://eslint.org/docs/latest/rules/operator-linebreak + */ + "operator-linebreak": ["error", "before"], + }, +}; diff --git a/eslint/basic/eslint-comments.js b/eslint/basic/eslint-comments.js new file mode 100644 index 0000000..31e99ee --- /dev/null +++ b/eslint/basic/eslint-comments.js @@ -0,0 +1,11 @@ +module.exports = { + extends: [ + "plugin:eslint-comments/recommended", + ], + rules: { + /** + * https://mysticatea.github.io/eslint-plugin-eslint-comments/rules/no-unused-disable.html + */ + "eslint-comments/no-unused-disable": "error", + }, +}; diff --git a/eslint/basic/import.js b/eslint/basic/import.js new file mode 100644 index 0000000..060eab3 --- /dev/null +++ b/eslint/basic/import.js @@ -0,0 +1,13 @@ +module.exports = { + plugins: ["import-newlines"], + rules: { + "import-newlines/enforce": [ + "error", + { + "items": 4, + "max-len": 180, + "semi": true, + }, + ], + }, +}; diff --git a/eslint/basic/index.js b/eslint/basic/index.js new file mode 100644 index 0000000..aacd89e --- /dev/null +++ b/eslint/basic/index.js @@ -0,0 +1,43 @@ +const yaml = require("./yml"); +const unicorns = require("./unicorns"); +const json = require("./json"); +const eslintComments = require("./eslint-comments"); +const commons = require("./commons"); +const misc = require("./misc"); +const importConfig = require("./import"); + +module.exports = { + env: { + es6: true, + browser: true, + node: true, + }, + parserOptions: { + ecmaVersion: "latest", + }, + reportUnusedDisableDirectives: true, + extends: [ + ...yaml.extends, + ...json.extends, + ...eslintComments.extends, + ], + plugins: [ + ...unicorns.plugins, + ...importConfig.plugins, + ], + ignorePatterns: [ + ...misc.ignorePatterns, + ], + overrides: [ + ...yaml.overrides, + ...json.overrides, + ...misc.overrides, + ], + rules: { + ...yaml.rules, + ...unicorns.rules, + ...eslintComments.rules, + ...commons.rules, + ...importConfig.rules, + }, +}; diff --git a/eslint/basic/json.js b/eslint/basic/json.js new file mode 100644 index 0000000..dbec171 --- /dev/null +++ b/eslint/basic/json.js @@ -0,0 +1,30 @@ +module.exports = { + extends: [ + "plugin:jsonc/recommended-with-jsonc", + ], + overrides: [ + { + files: ["*.json", "*.json5"], + parser: "jsonc-eslint-parser", + rules: { + "semi": "off", + "jsonc/array-bracket-spacing": ["error", "never"], + "comma-dangle": "off", + "jsonc/comma-dangle": ["error", "never"], + "jsonc/comma-style": ["error", "last"], + "jsonc/indent": ["error", 2], + "indent": "off", + "jsonc/key-spacing": ["error", { + beforeColon: false, + afterColon: true, + }], + "jsonc/no-octal-escape": "error", + "jsonc/object-curly-newline": ["error", { + minProperties: 1, + }], + "jsonc/object-curly-spacing": ["error", "always"], + "jsonc/object-property-newline": "error", + }, + }, + ], +}; diff --git a/eslint/basic/misc.js b/eslint/basic/misc.js new file mode 100644 index 0000000..7421c86 --- /dev/null +++ b/eslint/basic/misc.js @@ -0,0 +1,52 @@ +module.exports = { + overrides: [ + { + files: ["*.js"], + rules: { + "@typescript-eslint/no-var-requires": "off", + }, + }, + { + files: ["scripts/**/*.*", "cli.*"], + rules: { + "no-console": "off", + }, + }, + { + files: ["*.test.ts", "*.test.js", "*.spec.ts", "*.spec.js"], + rules: { + "no-unused-expressions": "off", + }, + }, + { + files: ["*.ts", "*.tsx"], + rules: { + "no-undef": "off", + }, + }, + { + files: ["package.json"], + rules: { + "max-len": "off", + } + }, + ], + ignorePatterns: [ + "*.min.*", + "*.d.ts", + "CHANGELOG.md", + "dist", + "LICENSE*", + "output", + "coverage", + "public", + "temp", + "package-lock.json", + "pnpm-lock.yaml", + "yarn.lock", + "__snapshots__", + "!.github", + "!.vitepress", + "!.vscode", + ], +}; diff --git a/eslint/basic/package.json b/eslint/basic/package.json new file mode 100644 index 0000000..8ce958d --- /dev/null +++ b/eslint/basic/package.json @@ -0,0 +1,31 @@ +{ + "name": "@electronjs-cn/eslint-config-basic", + "version": "0.0.1", + "description": "", + "main": "index.js", + "repository": "https://github.com/electronjs-cn/code-style.git", + "keywords": [ + "eslint", + "eslint-config", + "code-style" + ], + "license": "MIT", + "files": [ + "*.js" + ], + "peerDependencies": { + "eslint": ">=7.4.0" + }, + "devDependencies": { + "eslint": "^8.28.0" + }, + "dependencies": { + "eslint-plugin-eslint-comments": "^3.2.0", + "eslint-plugin-import-newlines": "^1.3.1", + "eslint-plugin-jsonc": "^2.5.0", + "eslint-plugin-unicorn": "^45.0.0", + "eslint-plugin-yml": "^1.2.0", + "jsonc-eslint-parser": "^2.1.0", + "yaml-eslint-parser": "^1.1.0" + } +} diff --git a/eslint/basic/unicorns.js b/eslint/basic/unicorns.js new file mode 100644 index 0000000..c66dd69 --- /dev/null +++ b/eslint/basic/unicorns.js @@ -0,0 +1,282 @@ +module.exports = { + plugins: [ + "unicorn", + ], + "rules": { + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/better-regex.md + */ + "unicorn/better-regex": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/catch-error-name.md + */ + "unicorn/catch-error-name": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/consistent-destructuring.md + */ + "unicorn/consistent-destructuring": "off", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/custom-error-definition.md + */ + "unicorn/custom-error-definition": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/empty-brace-spaces.md + */ + "unicorn/empty-brace-spaces": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/error-message.md + */ + "unicorn/error-message": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/escape-case.md + */ + "unicorn/escape-case": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-abusive-eslint-disable.md + */ + "unicorn/no-abusive-eslint-disable": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-callback-reference.md + */ + "unicorn/no-array-callback-reference": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-for-each.md + */ + "unicorn/no-array-for-each": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-array-method-this-argument.md + */ + "unicorn/no-array-method-this-argument": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-await-expression-member.md + */ + "unicorn/no-await-expression-member": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-for-loop.md + */ + "unicorn/no-for-loop": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-instanceof-array.md + */ + "unicorn/no-instanceof-array": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-invalid-remove-event-listener.md + */ + "unicorn/no-invalid-remove-event-listener": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-new-array.md + */ + "unicorn/no-new-array": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-new-buffer.md + */ + "unicorn/no-new-buffer": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-typeof-undefined.md + */ + "unicorn/no-typeof-undefined": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-fallback-in-spread.md + */ + "unicorn/no-useless-fallback-in-spread": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-promise-resolve-reject.md + */ + "unicorn/no-useless-promise-resolve-reject": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-spread.md + */ + "unicorn/no-useless-spread": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-useless-switch-case.md + */ + "unicorn/no-useless-switch-case": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-zero-fractions.md + */ + "unicorn/no-zero-fractions": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/number-literal-case.md + */ + "unicorn/number-literal-case": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/numeric-separators-style.md + */ + "unicorn/numeric-separators-style": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-find.md + */ + "unicorn/prefer-array-find": ["error", { + checkFromLast: true, + }], + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-flat.md + */ + "unicorn/prefer-array-flat": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-flat-map.md + */ + "unicorn/prefer-array-flat-map": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-array-some.md + */ + "unicorn/prefer-array-some": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-at.md + */ + "unicorn/prefer-at": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-code-point.md + */ + "unicorn/prefer-code-point": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-date-now.md + */ + "unicorn/prefer-date-now": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-default-parameters.md + */ + "unicorn/prefer-default-parameters": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-append.md + */ + "unicorn/prefer-dom-node-append": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-dataset.md + */ + "unicorn/prefer-dom-node-dataset": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-remove.md + */ + "unicorn/prefer-dom-node-remove": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-dom-node-text-content.md + */ + "unicorn/prefer-dom-node-text-content": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-export-from.md + */ + "unicorn/prefer-export-from": ["error", { + ignoreUsedVariables: true, + }], + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-includes.md + */ + "unicorn/prefer-includes": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-keyboard-event-key.md + */ + "unicorn/prefer-keyboard-event-key": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-logical-operator-over-ternary.md + */ + "unicorn/prefer-logical-operator-over-ternary": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-math-trunc.md + */ + "unicorn/prefer-math-trunc": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-modern-dom-apis.md + */ + "unicorn/prefer-modern-dom-apis": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-modern-math-apis.md + */ + "unicorn/prefer-modern-math-apis": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-negative-index.md + */ + "unicorn/prefer-negative-index": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-node-protocol.md + */ + "unicorn/prefer-node-protocol": "off", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-number-properties.md + */ + "unicorn/prefer-number-properties": ["error", { + checkInfinity: false, + }], + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-spread.md + */ + "unicorn/prefer-spread": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-starts-ends-with.md + */ + "unicorn/prefer-string-starts-ends-with": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-string-trim-start-end.md + */ + "unicorn/prefer-string-trim-start-end": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-switch.md + */ + "unicorn/prefer-switch": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/switch-case-braces.md + */ + "unicorn/switch-case-braces": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/text-encoding-identifier-case.md + */ + "unicorn/text-encoding-identifier-case": "error", + + /** + * https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/throw-new-error.md + */ + "unicorn/throw-new-error": "error", + }, +}; diff --git a/eslint/basic/yml.js b/eslint/basic/yml.js new file mode 100644 index 0000000..d58dc94 --- /dev/null +++ b/eslint/basic/yml.js @@ -0,0 +1,33 @@ +module.exports = { + extends: [ + "plugin:yml/recommended", + ], + overrides: [ + { + files: ["*.yaml", "*.yml"], + parser: "yaml-eslint-parser", + rules: { + /** + * https://ota-meshi.github.io/eslint-plugin-yml/rules/spaced-comment.html + */ + "spaced-comment": "off", + "yml/spaced-comment": "error", + }, + }, + ], + rules: { + /** + * https://ota-meshi.github.io/eslint-plugin-yml/rules/quotes.html + */ + "yml/quotes": ["error", { + prefer: "double", + avoidEscape: false, + }], + + /** + * https://ota-meshi.github.io/eslint-plugin-yml/rules/indent.html + */ + "indent": "off", + "yml/indent": ["error", 2], + }, +}; diff --git a/eslint/react/index.js b/eslint/react/index.js new file mode 100644 index 0000000..cd0c6d0 --- /dev/null +++ b/eslint/react/index.js @@ -0,0 +1,28 @@ +module.exports = { + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + ecmaFeatures: { + jsx: true, + }, + }, + + settings: { + react: { + version: "detect", + }, + }, + + extends: [ + "plugin:react/recommended", + "plugin:react-hooks/recommended", + "@electronjs-cn/eslint-config-ts", + ], + + rules: { + /** + * https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/react-in-jsx-scope.md + */ + "react/react-in-jsx-scope": "off", + }, +}; diff --git a/eslint/react/package.json b/eslint/react/package.json new file mode 100644 index 0000000..dfaf4d1 --- /dev/null +++ b/eslint/react/package.json @@ -0,0 +1,27 @@ +{ + "name": "@electronjs-cn/eslint-config-react", + "version": "0.0.1", + "description": "", + "main": "index.js", + "repository": "https://github.com/electronjs-cn/code-style.git", + "keywords": [ + "eslint", + "eslint-config", + "code-style" + ], + "license": "MIT", + "peerDependencies": { + "eslint": ">=7.4.0", + "typescript": ">=3.9" + }, + "devDependencies": { + "eslint": "^8.28.0", + "react": "^18.2.0", + "typescript": "^4.9.3" + }, + "dependencies": { + "@electronjs-cn/eslint-config-ts": "workspace:^0.1.2", + "eslint-plugin-react": "^7.31.11", + "eslint-plugin-react-hooks": "^4.6.0" + } +} diff --git a/eslint/typescript/index.js b/eslint/typescript/index.js new file mode 100644 index 0000000..6d3c5b9 --- /dev/null +++ b/eslint/typescript/index.js @@ -0,0 +1,344 @@ +module.exports = { + parserOptions: { + ecmaVersion: "latest", + sourceType: "module", + extraFileExtensions: [".json"] + }, + + parser: "@typescript-eslint/parser", + + extends: [ + "@electronjs-cn/eslint-config-basic", + ], + + plugins: [ + "@typescript-eslint", + ], + + overrides: [ + { + files: ["*.test.ts", "*.test.js", "*.spec.ts", "*.spec.js"], + rules: { + "@typescript-eslint/no-unsafe-call": "off", + "@typescript-eslint/no-unsafe-member-access": "off", + "@typescript-eslint/no-this-alias": "off", + "@typescript-eslint/no-non-null-asserted-optional-chain": "off", + }, + }, + { + "files": ["*.ts", "*.mts", "*.cts", "*.tsx"], + "rules": { + "@typescript-eslint/explicit-member-accessibility": ["error", { + overrides: { + accessors: "explicit", + constructors: "explicit", + methods: "explicit", + properties: "explicit", + parameterProperties: "explicit", + }, + }], + "@typescript-eslint/explicit-module-boundary-types": "error", + }, + }, + { + "files": ["*.json", "*.json5"], + "rules": { + "@typescript-eslint/indent": "off", + } + } + ], + + rules: { + /** + * https://typescript-eslint.io/rules/adjacent-overload-signatures/ + */ + "@typescript-eslint/adjacent-overload-signatures": "error", + + /** + * https://typescript-eslint.io/rules/await-thenable/ + */ + "@typescript-eslint/await-thenable": "error", + + /** + * https://typescript-eslint.io/rules/ban-ts-comment/ + */ + "@typescript-eslint/ban-ts-comment": "off", + + /** + * https://typescript-eslint.io/rules/ban-types/ + * https://github.com/typescript-eslint/typescript-eslint/issues/2063#issuecomment-675156492 + */ + "@typescript-eslint/ban-types": ["error", { + extendDefaults: true, + types: { + "{}": false + } + }], + + /** + * https://typescript-eslint.io/rules/no-empty-interface/ + */ + "@typescript-eslint/no-empty-interface": "off", + + /** + * https://typescript-eslint.io/rules/no-explicit-any/ + */ + "@typescript-eslint/no-explicit-any": ["error", { + ignoreRestArgs: true, + }], + + /** + * https://typescript-eslint.io/rules/no-extra-non-null-assertion/ + */ + "@typescript-eslint/no-extra-non-null-assertion": "error", + + /** + * https://typescript-eslint.io/rules/no-floating-promises/ + */ + "@typescript-eslint/no-floating-promises": "error", + + /** + * https://typescript-eslint.io/rules/no-for-in-array/ + */ + "@typescript-eslint/no-for-in-array": "error", + + /** + * https://typescript-eslint.io/rules/no-inferrable-types/ + */ + "@typescript-eslint/no-inferrable-types": "error", + + /** + * https://typescript-eslint.io/rules/no-misused-new/ + */ + "@typescript-eslint/no-misused-new": "error", + + /** + * https://typescript-eslint.io/rules/no-misused-promises/ + */ + "@typescript-eslint/no-misused-promises": ["error", { + checksVoidReturn: { + arguments: false, + }, + }], + + /** + * https://typescript-eslint.io/rules/no-namespace/ + */ + "@typescript-eslint/no-namespace": "error", + + /** + * https://typescript-eslint.io/rules/no-non-null-asserted-optional-chain/ + */ + "@typescript-eslint/no-non-null-asserted-optional-chain": "error", + + /** + * https://typescript-eslint.io/rules/no-non-null-assertion/ + */ + "@typescript-eslint/no-non-null-assertion": "off", + + /** + * https://typescript-eslint.io/rules/no-unnecessary-type-assertion/ + */ + "@typescript-eslint/no-unnecessary-type-assertion": "error", + + /** + * https://typescript-eslint.io/rules/no-unnecessary-type-constraint/ + */ + "@typescript-eslint/no-unnecessary-type-constraint": "error", + + /** + * https://typescript-eslint.io/rules/no-unsafe-argument/ + */ + "@typescript-eslint/no-unsafe-argument": "off", + + /** + * https://typescript-eslint.io/rules/no-unsafe-assignment/ + */ + "@typescript-eslint/no-unsafe-assignment": "off", + + /** + * https://typescript-eslint.io/rules/no-unsafe-call/ + */ + "@typescript-eslint/no-unsafe-call": "off", + + /** + * https://typescript-eslint.io/rules/no-unsafe-member-access/ + */ + "@typescript-eslint/no-unsafe-member-access": "off", + + /** + * https://typescript-eslint.io/rules/no-unsafe-return/ + */ + "@typescript-eslint/no-unsafe-return": "off", + + /** + * https://typescript-eslint.io/rules/prefer-as-const/ + */ + "@typescript-eslint/prefer-as-const": "error", + + /** + * https://typescript-eslint.io/rules/restrict-plus-operands/ + */ + "@typescript-eslint/restrict-plus-operands": "error", + + /** + * https://typescript-eslint.io/rules/restrict-template-expressions/ + */ + "@typescript-eslint/restrict-template-expressions": ["error", { + allowNumber: true, + allowBoolean: true, + allowAny: true, + allowNullish: true, + allowRegExp: true, + }], + + /** + * https://typescript-eslint.io/rules/unbound-method/ + */ + "@typescript-eslint/unbound-method": "error", + + /** + * https://typescript-eslint.io/rules/consistent-type-exports/ + */ + "@typescript-eslint/consistent-type-exports": "error", + + /** + * https://typescript-eslint.io/rules/consistent-type-imports/ + */ + "@typescript-eslint/consistent-type-imports": "error", + + /** + * https://typescript-eslint.io/rules/explicit-function-return-type/ + */ + "@typescript-eslint/explicit-function-return-type": "off", + + /** + * https://typescript-eslint.io/rules/explicit-member-accessibility/ + */ + "@typescript-eslint/explicit-member-accessibility": "off", + + /** + * https://typescript-eslint.io/rules/explicit-module-boundary-types/ + */ + "@typescript-eslint/explicit-module-boundary-types": "off", + + /** + * https://typescript-eslint.io/rules/no-duplicate-enum-values/ + */ + "@typescript-eslint/no-duplicate-enum-values": "error", + + /** + * https://typescript-eslint.io/rules/no-array-constructor/ + */ + "no-array-constructor": "off", + "@typescript-eslint/no-array-constructor": "error", + + /** + * https://typescript-eslint.io/rules/no-empty-function/ + */ + "no-empty-function": "off", + "@typescript-eslint/no-empty-function": ["warn", { + "allow": [ + "private-constructors", + "protected-constructors", + "decoratedFunctions", + "overrideMethods", + ], + }], + + /** + * https://typescript-eslint.io/rules/no-extra-semi/ + */ + "no-extra-semi": "off", + "@typescript-eslint/no-extra-semi": "error", + + /** + * https://typescript-eslint.io/rules/no-implied-eval/ + */ + "no-implied-eval": "off", + "@typescript-eslint/no-implied-eval": "error", + + /** + * https://typescript-eslint.io/rules/no-loss-of-precision/ + */ + "no-loss-of-precision": "off", + "@typescript-eslint/no-loss-of-precision": "error", + + /** + * https://typescript-eslint.io/rules/no-unused-vars/ + */ + "no-unused-vars": "off", + "@typescript-eslint/no-unused-vars": ["error", { + args: "after-used", + ignoreRestSiblings: true, + argsIgnorePattern: "^_", + destructuredArrayIgnorePattern: "^_", + caughtErrors: "all", + caughtErrorsIgnorePattern: "^_", + }], + + /** + * https://typescript-eslint.io/rules/require-await/ + */ + "require-await": "off", + "@typescript-eslint/require-await": "error", + + /** + * https://typescript-eslint.io/rules/default-param-last/ + */ + "default-param-last": "off", + "@typescript-eslint/default-param-last": "error", + + /** + * https://typescript-eslint.io/rules/no-dupe-class-members/ + */ + "no-dupe-class-members": "off", + "@typescript-eslint/no-dupe-class-members": "error", + + /** + * https://typescript-eslint.io/rules/no-use-before-define/ + */ + "@typescript-eslint/no-use-before-define": "off", + + // https://github.com/antfu/eslint-config/blob/main/packages/typescript/index.js#L78 + "indent": "off", + "@typescript-eslint/indent": ["error", 4, { + 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", + "TSTypeParameterInstantiation", + "FunctionExpression > .params[decorators.length > 0]", + "FunctionExpression > .params > :matches(Decorator, :not(:first-child))", + "ClassBody.body > PropertyDefinition[decorators.length > 0] > .key", + ], + offsetTernaryExpressions: true, + }], + }, +}; diff --git a/eslint/typescript/package.json b/eslint/typescript/package.json new file mode 100644 index 0000000..60f3eb4 --- /dev/null +++ b/eslint/typescript/package.json @@ -0,0 +1,29 @@ +{ + "name": "@electronjs-cn/eslint-config-ts", + "version": "0.0.1", + "description": "", + "main": "index.js", + "repository": "https://github.com/electronjs-cn/code-style.git", + "keywords": [ + "eslint", + "eslint-config", + "code-style" + ], + "license": "MIT", + "files": [ + "*.js" + ], + "peerDependencies": { + "eslint": ">=7.4.0", + "typescript": ">=3.9" + }, + "devDependencies": { + "eslint": "^8.28.0", + "typescript": "^4.9.3" + }, + "dependencies": { + "@electronjs-cn/eslint-config-basic": "workspace:^0.1.1", + "@typescript-eslint/eslint-plugin": "^5.45.0", + "@typescript-eslint/parser": "^5.45.0" + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..bb3cbc1 --- /dev/null +++ b/package.json @@ -0,0 +1,8 @@ +{ + "name": "@electronjs-cn/code-style", + "private": true, + "version": "0.0.1", + "description": "code style", + "repository": "https://github.com/electronjs-cn/code-style.git", + "license": "MIT" +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..348bd80 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1779 @@ +lockfileVersion: '6.0' + +importers: + + .: {} + + eslint/basic: + dependencies: + eslint-plugin-eslint-comments: + specifier: ^3.2.0 + version: 3.2.0(eslint@8.28.0) + eslint-plugin-import-newlines: + specifier: ^1.3.1 + version: 1.3.1(eslint@8.28.0) + eslint-plugin-jsonc: + specifier: ^2.5.0 + version: 2.5.0(eslint@8.28.0) + eslint-plugin-unicorn: + specifier: ^45.0.0 + version: 45.0.1(eslint@8.28.0) + eslint-plugin-yml: + specifier: ^1.2.0 + version: 1.2.0(eslint@8.28.0) + jsonc-eslint-parser: + specifier: ^2.1.0 + version: 2.1.0 + yaml-eslint-parser: + specifier: ^1.1.0 + version: 1.1.0 + devDependencies: + eslint: + specifier: ^8.28.0 + version: 8.28.0 + + eslint/react: + dependencies: + '@electronjs-cn/eslint-config-ts': + specifier: workspace:^0.1.2 + version: link:../typescript + eslint-plugin-react: + specifier: ^7.31.11 + version: 7.31.11(eslint@8.28.0) + eslint-plugin-react-hooks: + specifier: ^4.6.0 + version: 4.6.0(eslint@8.28.0) + devDependencies: + eslint: + specifier: ^8.28.0 + version: 8.28.0 + react: + specifier: ^18.2.0 + version: 18.2.0 + typescript: + specifier: ^4.9.3 + version: 4.9.3 + + eslint/typescript: + dependencies: + '@electronjs-cn/eslint-config-basic': + specifier: workspace:^0.1.1 + version: link:../basic + '@typescript-eslint/eslint-plugin': + specifier: ^5.45.0 + version: 5.45.0(@typescript-eslint/parser@5.45.0)(eslint@8.28.0)(typescript@4.9.3) + '@typescript-eslint/parser': + specifier: ^5.45.0 + version: 5.45.0(eslint@8.28.0)(typescript@4.9.3) + devDependencies: + eslint: + specifier: ^8.28.0 + version: 8.28.0 + typescript: + specifier: ^4.9.3 + version: 4.9.3 + + tsconfig: {} + +packages: + + /@babel/code-frame@7.18.6: + resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/highlight': 7.18.6 + dev: false + + /@babel/helper-validator-identifier@7.19.1: + resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==} + engines: {node: '>=6.9.0'} + dev: false + + /@babel/highlight@7.18.6: + resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + chalk: 2.4.2 + js-tokens: 4.0.0 + dev: false + + /@eslint-community/eslint-utils@4.1.2(eslint@8.28.0): + resolution: {integrity: sha512-7qELuQWWjVDdVsFQ5+beUl+KPczrEDA7S3zM4QUd/bJl7oXgsmpXaEVqrRTnOBqenOV4rWf2kVZk2Ot085zPWA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + eslint: 8.28.0 + eslint-visitor-keys: 3.3.0 + dev: false + + /@eslint/eslintrc@1.3.3: + resolution: {integrity: sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + ajv: 6.12.6 + debug: 4.3.4 + espree: 9.4.1 + globals: 13.18.0 + ignore: 5.2.1 + import-fresh: 3.3.0 + js-yaml: 4.1.0 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/config-array@0.11.7: + resolution: {integrity: sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==} + engines: {node: '>=10.10.0'} + dependencies: + '@humanwhocodes/object-schema': 1.2.1 + debug: 4.3.4 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + /@humanwhocodes/object-schema@1.2.1: + resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.13.0 + + /@types/json-schema@7.0.11: + resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} + dev: false + + /@types/normalize-package-data@2.4.1: + resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} + dev: false + + /@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: false + + /@typescript-eslint/eslint-plugin@5.45.0(@typescript-eslint/parser@5.45.0)(eslint@8.28.0)(typescript@4.9.3): + resolution: {integrity: sha512-CXXHNlf0oL+Yg021cxgOdMHNTXD17rHkq7iW6RFHoybdFgQBjU3yIXhhcPpGwr1CjZlo6ET8C6tzX5juQoXeGA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + '@typescript-eslint/parser': ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/parser': 5.45.0(eslint@8.28.0)(typescript@4.9.3) + '@typescript-eslint/scope-manager': 5.45.0 + '@typescript-eslint/type-utils': 5.45.0(eslint@8.28.0)(typescript@4.9.3) + '@typescript-eslint/utils': 5.45.0(eslint@8.28.0)(typescript@4.9.3) + debug: 4.3.4 + eslint: 8.28.0 + ignore: 5.2.1 + natural-compare-lite: 1.4.0 + regexpp: 3.2.0 + semver: 7.3.8 + tsutils: 3.21.0(typescript@4.9.3) + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/parser@5.45.0(eslint@8.28.0)(typescript@4.9.3): + resolution: {integrity: sha512-brvs/WSM4fKUmF5Ot/gEve6qYiCMjm6w4HkHPfS6ZNmxTS0m0iNN4yOChImaCkqc1hRwFGqUyanMXuGal6oyyQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/scope-manager': 5.45.0 + '@typescript-eslint/types': 5.45.0 + '@typescript-eslint/typescript-estree': 5.45.0(typescript@4.9.3) + debug: 4.3.4 + eslint: 8.28.0 + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/scope-manager@5.45.0: + resolution: {integrity: sha512-noDMjr87Arp/PuVrtvN3dXiJstQR1+XlQ4R1EvzG+NMgXi8CuMCXpb8JqNtFHKceVSQ985BZhfRdowJzbv4yKw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.45.0 + '@typescript-eslint/visitor-keys': 5.45.0 + dev: false + + /@typescript-eslint/type-utils@5.45.0(eslint@8.28.0)(typescript@4.9.3): + resolution: {integrity: sha512-DY7BXVFSIGRGFZ574hTEyLPRiQIvI/9oGcN8t1A7f6zIs6ftbrU0nhyV26ZW//6f85avkwrLag424n+fkuoJ1Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '*' + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/typescript-estree': 5.45.0(typescript@4.9.3) + '@typescript-eslint/utils': 5.45.0(eslint@8.28.0)(typescript@4.9.3) + debug: 4.3.4 + eslint: 8.28.0 + tsutils: 3.21.0(typescript@4.9.3) + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/types@5.45.0: + resolution: {integrity: sha512-QQij+u/vgskA66azc9dCmx+rev79PzX8uDHpsqSjEFtfF2gBUTRCpvYMh2gw2ghkJabNkPlSUCimsyBEQZd1DA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: false + + /@typescript-eslint/typescript-estree@5.45.0(typescript@4.9.3): + resolution: {integrity: sha512-maRhLGSzqUpFcZgXxg1qc/+H0bT36lHK4APhp0AEUVrpSwXiRAomm/JGjSG+kNUio5kAa3uekCYu/47cnGn5EQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/types': 5.45.0 + '@typescript-eslint/visitor-keys': 5.45.0 + debug: 4.3.4 + globby: 11.1.0 + is-glob: 4.0.3 + semver: 7.3.8 + tsutils: 3.21.0(typescript@4.9.3) + typescript: 4.9.3 + transitivePeerDependencies: + - supports-color + dev: false + + /@typescript-eslint/utils@5.45.0(eslint@8.28.0)(typescript@4.9.3): + resolution: {integrity: sha512-OUg2JvsVI1oIee/SwiejTot2OxwU8a7UfTFMOdlhD2y+Hl6memUSL4s98bpUTo8EpVEr0lmwlU7JSu/p2QpSvA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + '@types/json-schema': 7.0.11 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.45.0 + '@typescript-eslint/types': 5.45.0 + '@typescript-eslint/typescript-estree': 5.45.0(typescript@4.9.3) + eslint: 8.28.0 + eslint-scope: 5.1.1 + eslint-utils: 3.0.0(eslint@8.28.0) + semver: 7.3.8 + transitivePeerDependencies: + - supports-color + - typescript + dev: false + + /@typescript-eslint/visitor-keys@5.45.0: + resolution: {integrity: sha512-jc6Eccbn2RtQPr1s7th6jJWQHBHI6GBVQkCHoJFQ5UreaKm59Vxw+ynQUPPY2u2Amquc+7tmEoC2G52ApsGNNg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + '@typescript-eslint/types': 5.45.0 + eslint-visitor-keys: 3.3.0 + dev: false + + /acorn-jsx@5.3.2(acorn@8.8.1): + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + dependencies: + acorn: 8.8.1 + + /acorn@8.8.1: + resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} + engines: {node: '>=0.4.0'} + hasBin: true + + /ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + /ansi-styles@3.2.1: + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} + dependencies: + color-convert: 1.9.3 + dev: false + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + + /argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + get-intrinsic: 1.1.3 + is-string: 1.0.7 + dev: false + + /array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + dev: false + + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + es-shim-unscopables: 1.0.0 + dev: false + + /array.prototype.tosorted@1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.1.3 + dev: false + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + /brace-expansion@1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: false + + /builtin-modules@3.3.0: + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} + dev: false + + /call-bind@1.0.2: + resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} + dependencies: + function-bind: 1.1.1 + get-intrinsic: 1.1.3 + dev: false + + /callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + /chalk@2.4.2: + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} + dependencies: + ansi-styles: 3.2.1 + escape-string-regexp: 1.0.5 + supports-color: 5.5.0 + dev: false + + /chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + /ci-info@3.7.0: + resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==} + engines: {node: '>=8'} + dev: false + + /clean-regexp@1.0.0: + resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} + engines: {node: '>=4'} + dependencies: + escape-string-regexp: 1.0.5 + dev: false + + /color-convert@1.9.3: + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + dependencies: + color-name: 1.1.3 + dev: false + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + + /color-name@1.1.3: + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + dev: false + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + /concat-map@0.0.1: + resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + + /deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + /define-properties@1.1.4: + resolution: {integrity: sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==} + engines: {node: '>= 0.4'} + dependencies: + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + dev: false + + /dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + dependencies: + path-type: 4.0.0 + dev: false + + /doctrine@2.1.0: + resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} + engines: {node: '>=0.10.0'} + dependencies: + esutils: 2.0.3 + dev: false + + /doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + dependencies: + esutils: 2.0.3 + + /error-ex@1.3.2: + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + dependencies: + is-arrayish: 0.2.1 + dev: false + + /es-abstract@1.20.4: + resolution: {integrity: sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + es-to-primitive: 1.2.1 + function-bind: 1.1.1 + function.prototype.name: 1.1.5 + get-intrinsic: 1.1.3 + get-symbol-description: 1.0.0 + has: 1.0.3 + has-property-descriptors: 1.0.0 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + is-callable: 1.2.7 + is-negative-zero: 2.0.2 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.2 + is-string: 1.0.7 + is-weakref: 1.0.2 + object-inspect: 1.12.2 + object-keys: 1.1.1 + object.assign: 4.1.4 + regexp.prototype.flags: 1.4.3 + safe-regex-test: 1.0.0 + string.prototype.trimend: 1.0.6 + string.prototype.trimstart: 1.0.6 + unbox-primitive: 1.0.2 + dev: false + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: false + + /es-to-primitive@1.2.1: + resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.7 + is-date-object: 1.0.5 + is-symbol: 1.0.4 + dev: false + + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} + dev: false + + /escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + /eslint-plugin-eslint-comments@3.2.0(eslint@8.28.0): + resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==} + engines: {node: '>=6.5.0'} + peerDependencies: + eslint: '>=4.19.1' + dependencies: + escape-string-regexp: 1.0.5 + eslint: 8.28.0 + ignore: 5.2.1 + dev: false + + /eslint-plugin-import-newlines@1.3.1(eslint@8.28.0): + resolution: {integrity: sha512-7vyhwliGm+CTwteRw2ym+IO9OaksGYmSt63elPPBM0QJ3zwRwMKtgHOSHVtdHlrSERRTVCsWtMO8dDdAdmHMXg==} + engines: {node: '>=10.0.0'} + hasBin: true + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.28.0 + dev: false + + /eslint-plugin-jsonc@2.5.0(eslint@8.28.0): + resolution: {integrity: sha512-G257khwkrOQ5MJpSzz4yQh5K12W4xFZRcHmVlhVFWh2GCLDX+JwHnmkQoUoFDbOieSPBMsPFZDTJScwrXiWlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + eslint: 8.28.0 + eslint-utils: 3.0.0(eslint@8.28.0) + jsonc-eslint-parser: 2.1.0 + natural-compare: 1.4.0 + dev: false + + /eslint-plugin-react-hooks@4.6.0(eslint@8.28.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} + engines: {node: '>=10'} + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + dependencies: + eslint: 8.28.0 + dev: false + + /eslint-plugin-react@7.31.11(eslint@8.28.0): + resolution: {integrity: sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==} + engines: {node: '>=4'} + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + dependencies: + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 + doctrine: 2.1.0 + eslint: 8.28.0 + estraverse: 5.3.0 + jsx-ast-utils: 3.3.3 + minimatch: 3.1.2 + object.entries: 1.1.6 + object.fromentries: 2.0.6 + object.hasown: 1.1.2 + object.values: 1.1.6 + prop-types: 15.8.1 + resolve: 2.0.0-next.4 + semver: 6.3.0 + string.prototype.matchall: 4.0.8 + dev: false + + /eslint-plugin-unicorn@45.0.1(eslint@8.28.0): + resolution: {integrity: sha512-tLnIw5oDJJc3ILYtlKtqOxPP64FZLTkZkgeuoN6e7x6zw+rhBjOxyvq2c7577LGxXuIhBYrwisZuKNqOOHp3BA==} + engines: {node: '>=14.18'} + peerDependencies: + eslint: '>=8.28.0' + dependencies: + '@babel/helper-validator-identifier': 7.19.1 + '@eslint-community/eslint-utils': 4.1.2(eslint@8.28.0) + ci-info: 3.7.0 + clean-regexp: 1.0.0 + eslint: 8.28.0 + esquery: 1.4.0 + indent-string: 4.0.0 + is-builtin-module: 3.2.0 + jsesc: 3.0.2 + lodash: 4.17.21 + pluralize: 8.0.0 + read-pkg-up: 7.0.1 + regexp-tree: 0.1.24 + regjsparser: 0.9.1 + safe-regex: 2.1.1 + semver: 7.3.8 + strip-indent: 3.0.0 + dev: false + + /eslint-plugin-yml@1.2.0(eslint@8.28.0): + resolution: {integrity: sha512-v0jAU/F5SJg28zkpxwGpY04eGZMWFP6os8u2qaEAIRjSH2GqrNl0yBR5+sMHLU/026kAduxVbvLSqmT3Mu3O0g==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + dependencies: + debug: 4.3.4 + eslint: 8.28.0 + lodash: 4.17.21 + natural-compare: 1.4.0 + yaml-eslint-parser: 1.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /eslint-scope@5.1.1: + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} + dependencies: + esrecurse: 4.3.0 + estraverse: 4.3.0 + dev: false + + /eslint-scope@7.1.1: + resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + /eslint-utils@3.0.0(eslint@8.28.0): + resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} + engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} + peerDependencies: + eslint: '>=5' + dependencies: + eslint: 8.28.0 + eslint-visitor-keys: 2.1.0 + + /eslint-visitor-keys@2.1.0: + resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} + engines: {node: '>=10'} + + /eslint-visitor-keys@3.3.0: + resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + /eslint@8.28.0: + resolution: {integrity: sha512-S27Di+EVyMxcHiwDrFzk8dJYAaD+/5SoWKxL1ri/71CRHsnJnRDPNt2Kzj24+MT9FDupf4aqqyqPrvI8MvQ4VQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + hasBin: true + dependencies: + '@eslint/eslintrc': 1.3.3 + '@humanwhocodes/config-array': 0.11.7 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.3 + debug: 4.3.4 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.1.1 + eslint-utils: 3.0.0(eslint@8.28.0) + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + esquery: 1.4.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.18.0 + grapheme-splitter: 1.0.4 + ignore: 5.2.1 + import-fresh: 3.3.0 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.2.0 + js-yaml: 4.1.0 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.1 + regexpp: 3.2.0 + strip-ansi: 6.0.1 + strip-json-comments: 3.1.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + /espree@9.4.1: + resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.1 + acorn-jsx: 5.3.2(acorn@8.8.1) + eslint-visitor-keys: 3.3.0 + + /esquery@1.4.0: + resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + engines: {node: '>=0.10'} + dependencies: + estraverse: 5.3.0 + + /esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + dependencies: + estraverse: 5.3.0 + + /estraverse@4.3.0: + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} + dev: false + + /estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + /esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + /fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + /fast-glob@3.2.12: + resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: false + + /fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + /fastq@1.13.0: + resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} + dependencies: + reusify: 1.0.4 + + /file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flat-cache: 3.0.4 + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: false + + /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: false + + /find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + /flat-cache@3.0.4: + resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + engines: {node: ^10.12.0 || >=12.0.0} + dependencies: + flatted: 3.2.7 + rimraf: 3.0.2 + + /flatted@3.2.7: + resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + + /fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + /function-bind@1.1.1: + resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + dev: false + + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + functions-have-names: 1.2.3 + dev: false + + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: false + + /get-intrinsic@1.1.3: + resolution: {integrity: sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==} + dependencies: + function-bind: 1.1.1 + has: 1.0.3 + has-symbols: 1.0.3 + dev: false + + /get-symbol-description@1.0.0: + resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + dev: false + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: false + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + /globals@13.18.0: + resolution: {integrity: sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==} + engines: {node: '>=8'} + dependencies: + type-fest: 0.20.2 + + /globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.2.12 + ignore: 5.2.1 + merge2: 1.4.1 + slash: 3.0.0 + dev: false + + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} + + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} + dev: false + + /has-flag@3.0.0: + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} + dev: false + + /has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.1.3 + dev: false + + /has-symbols@1.0.3: + resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + engines: {node: '>= 0.4'} + dev: false + + /has-tostringtag@1.0.0: + resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /has@1.0.3: + resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} + engines: {node: '>= 0.4.0'} + dependencies: + function-bind: 1.1.1 + dev: false + + /hosted-git-info@2.8.9: + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + dev: false + + /ignore@5.2.1: + resolution: {integrity: sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==} + engines: {node: '>= 4'} + + /import-fresh@3.3.0: + resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} + engines: {node: '>=6'} + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + /indent-string@4.0.0: + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} + dev: false + + /inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + /inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + /internal-slot@1.0.3: + resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.1.3 + has: 1.0.3 + side-channel: 1.0.4 + dev: false + + /is-arrayish@0.2.1: + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + dev: false + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: false + + /is-boolean-object@1.1.2: + resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-builtin-module@3.2.0: + resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==} + engines: {node: '>=6'} + dependencies: + builtin-modules: 3.3.0 + dev: false + + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} + dev: false + + /is-core-module@2.11.0: + resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + dependencies: + has: 1.0.3 + dev: false + + /is-date-object@1.0.5: + resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + + /is-negative-zero@2.0.2: + resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + engines: {node: '>= 0.4'} + dev: false + + /is-number-object@1.0.7: + resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: false + + /is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + /is-regex@1.1.4: + resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + has-tostringtag: 1.0.0 + dev: false + + /is-shared-array-buffer@1.0.2: + resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + dependencies: + call-bind: 1.0.2 + dev: false + + /is-string@1.0.7: + resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + engines: {node: '>= 0.4'} + dependencies: + has-tostringtag: 1.0.0 + dev: false + + /is-symbol@1.0.4: + resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + engines: {node: '>= 0.4'} + dependencies: + has-symbols: 1.0.3 + dev: false + + /is-weakref@1.0.2: + resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + dependencies: + call-bind: 1.0.2 + dev: false + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + /js-sdsl@4.2.0: + resolution: {integrity: sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==} + + /js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + + /js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /jsesc@0.5.0: + resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} + hasBin: true + dev: false + + /jsesc@3.0.2: + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} + hasBin: true + dev: false + + /json-parse-even-better-errors@2.3.1: + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + dev: false + + /json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + /jsonc-eslint-parser@2.1.0: + resolution: {integrity: sha512-qCRJWlbP2v6HbmKW7R3lFbeiVWHo+oMJ0j+MizwvauqnCV/EvtAeEeuCgoc/ErtsuoKgYB8U4Ih8AxJbXoE6/g==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dependencies: + acorn: 8.8.1 + eslint-visitor-keys: 3.3.0 + espree: 9.4.1 + semver: 7.3.8 + dev: false + + /jsx-ast-utils@3.3.3: + resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + engines: {node: '>=4.0'} + dependencies: + array-includes: 3.1.6 + object.assign: 4.1.4 + dev: false + + /levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: false + + /locate-path@5.0.0: + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} + dependencies: + p-locate: 4.1.0 + dev: false + + /locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + dependencies: + p-locate: 5.0.0 + + /lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + /lodash@4.17.21: + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + dev: false + + /loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + dependencies: + js-tokens: 4.0.0 + + /lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + dependencies: + yallist: 4.0.0 + dev: false + + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: false + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: false + + /min-indent@1.0.1: + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} + dev: false + + /minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 + + /ms@2.1.2: + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} + dev: false + + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + /normalize-package-data@2.5.0: + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + dependencies: + hosted-git-info: 2.8.9 + resolve: 1.22.1 + semver: 5.7.1 + validate-npm-package-license: 3.0.4 + dev: false + + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: false + + /object-inspect@1.12.2: + resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} + dev: false + + /object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + dev: false + + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + has-symbols: 1.0.3 + object-keys: 1.1.1 + dev: false + + /object.entries@1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + dev: false + + /object.fromentries@2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + dev: false + + /object.hasown@1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + dependencies: + define-properties: 1.1.4 + es-abstract: 1.20.4 + dev: false + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + dev: false + + /once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + + /optionator@0.9.1: + resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} + engines: {node: '>= 0.8.0'} + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.3 + + /p-limit@2.3.0: + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} + dependencies: + p-try: 2.2.0 + dev: false + + /p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + dependencies: + yocto-queue: 0.1.0 + + /p-locate@4.1.0: + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} + dependencies: + p-limit: 2.3.0 + dev: false + + /p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + dependencies: + p-limit: 3.1.0 + + /p-try@2.2.0: + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} + dev: false + + /parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + dependencies: + callsites: 3.1.0 + + /parse-json@5.2.0: + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} + dependencies: + '@babel/code-frame': 7.18.6 + error-ex: 1.3.2 + json-parse-even-better-errors: 2.3.1 + lines-and-columns: 1.2.4 + dev: false + + /path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + /path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: false + + /path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + dev: false + + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: false + + /pluralize@8.0.0: + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} + dev: false + + /prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + /prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + dev: false + + /punycode@2.1.1: + resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} + engines: {node: '>=6'} + + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + /react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + dev: false + + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + 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: false + + /read-pkg@5.2.0: + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} + dependencies: + '@types/normalize-package-data': 2.4.1 + normalize-package-data: 2.5.0 + parse-json: 5.2.0 + type-fest: 0.6.0 + dev: false + + /regexp-tree@0.1.24: + resolution: {integrity: sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==} + hasBin: true + dev: false + + /regexp.prototype.flags@1.4.3: + resolution: {integrity: sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + functions-have-names: 1.2.3 + dev: false + + /regexpp@3.2.0: + resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} + engines: {node: '>=8'} + + /regjsparser@0.9.1: + resolution: {integrity: sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==} + hasBin: true + dependencies: + jsesc: 0.5.0 + dev: false + + /resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + /resolve@1.22.1: + resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.11.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: false + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + hasBin: true + dependencies: + glob: 7.2.3 + + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + is-regex: 1.1.4 + dev: false + + /safe-regex@2.1.1: + resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==} + dependencies: + regexp-tree: 0.1.24 + dev: false + + /semver@5.7.1: + resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==} + hasBin: true + dev: false + + /semver@6.3.0: + resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} + hasBin: true + dev: false + + /semver@7.3.8: + resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + engines: {node: '>=10'} + hasBin: true + dependencies: + lru-cache: 6.0.0 + dev: false + + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + /side-channel@1.0.4: + resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.1.3 + object-inspect: 1.12.2 + dev: false + + /slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + dev: false + + /spdx-correct@3.1.1: + resolution: {integrity: sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==} + dependencies: + spdx-expression-parse: 3.0.1 + spdx-license-ids: 3.0.12 + dev: false + + /spdx-exceptions@2.3.0: + resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==} + dev: false + + /spdx-expression-parse@3.0.1: + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + dependencies: + spdx-exceptions: 2.3.0 + spdx-license-ids: 3.0.12 + dev: false + + /spdx-license-ids@3.0.12: + resolution: {integrity: sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==} + dev: false + + /string.prototype.matchall@4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + get-intrinsic: 1.1.3 + has-symbols: 1.0.3 + internal-slot: 1.0.3 + regexp.prototype.flags: 1.4.3 + side-channel: 1.0.4 + dev: false + + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + dev: false + + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.1.4 + es-abstract: 1.20.4 + dev: false + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + + /strip-indent@3.0.0: + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} + dependencies: + min-indent: 1.0.1 + dev: false + + /strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + /supports-color@5.5.0: + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} + dependencies: + has-flag: 3.0.0 + dev: false + + /supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + dependencies: + has-flag: 4.0.0 + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: false + + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: false + + /tslib@1.14.1: + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + dev: false + + /tsutils@3.21.0(typescript@4.9.3): + resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} + engines: {node: '>= 6'} + peerDependencies: + typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + dependencies: + tslib: 1.14.1 + typescript: 4.9.3 + dev: false + + /type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + dependencies: + prelude-ls: 1.2.1 + + /type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + /type-fest@0.6.0: + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} + dev: false + + /type-fest@0.8.1: + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} + dev: false + + /typescript@4.9.3: + resolution: {integrity: sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==} + engines: {node: '>=4.2.0'} + hasBin: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + dependencies: + call-bind: 1.0.2 + has-bigints: 1.0.2 + has-symbols: 1.0.3 + which-boxed-primitive: 1.0.2 + dev: false + + /uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + dependencies: + punycode: 2.1.1 + + /validate-npm-package-license@3.0.4: + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + dependencies: + spdx-correct: 3.1.1 + spdx-expression-parse: 3.0.1 + dev: false + + /which-boxed-primitive@1.0.2: + resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + dependencies: + is-bigint: 1.0.4 + is-boolean-object: 1.1.2 + is-number-object: 1.0.7 + is-string: 1.0.7 + is-symbol: 1.0.4 + dev: false + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + + /word-wrap@1.2.3: + resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + engines: {node: '>=0.10.0'} + + /wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + /yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + dev: false + + /yaml-eslint-parser@1.1.0: + resolution: {integrity: sha512-b464Q1fYiX1oYx2kE8k4mEp6S9Prk+tfDsY/IPxQ0FCjEuj3AKko5Skf3/yQJeYTTDyjDE+aWIJemnv29HvEWQ==} + engines: {node: ^14.17.0 || >=16.0.0} + dependencies: + eslint-visitor-keys: 3.3.0 + lodash: 4.17.21 + yaml: 2.1.3 + dev: false + + /yaml@2.1.3: + resolution: {integrity: sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==} + engines: {node: '>= 14'} + dev: false + + /yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml new file mode 100644 index 0000000..9298b43 --- /dev/null +++ b/pnpm-workspace.yaml @@ -0,0 +1,3 @@ +packages: + - "eslint/*" + - "tsconfig/" diff --git a/tsconfig/README.md b/tsconfig/README.md new file mode 100644 index 0000000..80ebee6 --- /dev/null +++ b/tsconfig/README.md @@ -0,0 +1,40 @@ +# TSConfig code-style + +## Install + +```bash +pnpm add typescript -D +pnpm add @electronjs-cn/tsconfig -D +``` + +## Configuring + +### Node Project + +tsconfig.json: + +```json +{ + "extends": "@electronjs-cn/tsconfig/tsconfig.node.json" +} +``` + +### React Project + +tsconfig.json: + +```json +{ + "extends": "@electronjs-cn/tsconfig/tsconfig.react.json" +} +``` + +### Electron Project + +tsconfig.json: + +```json +{ + "extends": "@electronjs-cn/tsconfig/tsconfig.electron.json" +} +``` diff --git a/tsconfig/package.json b/tsconfig/package.json new file mode 100644 index 0000000..fdd7037 --- /dev/null +++ b/tsconfig/package.json @@ -0,0 +1,12 @@ +{ + "name": "@electronjs-cn/tsconfig", + "version": "0.0.1", + "description": "", + "repository": "https://github.com/electronjs-cn/code-style.git", + "files": [ + "*.json" + ], + "keywords": ["tsconfig", "tsconfig"], + "author": "Black-Hole", + "license": "MIT" +} diff --git a/tsconfig/tsconfig.base.json b/tsconfig/tsconfig.base.json new file mode 100644 index 0000000..823eae4 --- /dev/null +++ b/tsconfig/tsconfig.base.json @@ -0,0 +1,42 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["ESNext"], + + "allowJs": true, + + "strict": true, + "alwaysStrict": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "allowUnreachableCode": false, + "strictPropertyInitialization": false, + "strictBindCallApply": true, + "noImplicitAny": false, + "noFallthroughCasesInSwitch": true, + "noImplicitThis": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noImplicitReturns": false, + "noImplicitOverride": true, + + "esModuleInterop": true, + "isolatedModules": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "useUnknownInCatchVariables": false, + "useDefineForClassFields": true, + "experimentalDecorators": true, + + "noEmit": true, + "removeComments": true, + "sourceMap": true, + + "moduleResolution": "Node", + "resolveJsonModule": true, + + "skipLibCheck": true, + "skipDefaultLibCheck": true + }, + "include": ["src/**/**.ts", "**.js"], +} diff --git a/tsconfig/tsconfig.electron.json b/tsconfig/tsconfig.electron.json new file mode 100644 index 0000000..ee96149 --- /dev/null +++ b/tsconfig/tsconfig.electron.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "module": "CommonJS", + "lib": ["ESNext", "DOM", "DOM.Iterable"], + } +} diff --git a/tsconfig/tsconfig.node.json b/tsconfig/tsconfig.node.json new file mode 100644 index 0000000..2bf741c --- /dev/null +++ b/tsconfig/tsconfig.node.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "module": "CommonJS", + "lib": ["ESNext"] + } +} diff --git a/tsconfig/tsconfig.react.json b/tsconfig/tsconfig.react.json new file mode 100644 index 0000000..6f347a5 --- /dev/null +++ b/tsconfig/tsconfig.react.json @@ -0,0 +1,8 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "module": "ESNext", + "lib": ["ESNext", "DOM", "DOM.Iterable"], + "jsx": "react-jsx", + } +}