@anolilab/eslint-config 12.0.0 → 13.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +41 -0
- package/dist/{chunk-MGBRUNOT.js → chunk-KOLBUMAZ.js} +1 -1
- package/dist/chunk-KOLBUMAZ.js.map +1 -0
- package/dist/{chunk-KP2UPQGN.js → chunk-N2VJ7KO5.js} +1 -1
- package/dist/{chunk-KP2UPQGN.js.map → chunk-N2VJ7KO5.js.map} +1 -1
- package/dist/config/errors.js +2 -2
- package/dist/config/plugins/babel.js +3 -3
- package/dist/config/plugins/import.js +1 -1
- package/dist/config/plugins/import.js.map +1 -1
- package/dist/config/plugins/jsonc.js +1 -1
- package/dist/config/plugins/jsonc.js.map +1 -1
- package/dist/config/plugins/jsx-a11y.js.map +1 -1
- package/dist/config/plugins/react.js +5 -5
- package/dist/config/plugins/react.js.map +1 -1
- package/dist/config/plugins/simple-import-sort.js +1 -1
- package/dist/config/plugins/simple-import-sort.js.map +1 -1
- package/dist/config/plugins/typescript.js +4 -4
- package/dist/config/plugins/typescript.js.map +1 -1
- package/dist/config/plugins/vitest.js.map +1 -1
- package/dist/config/style.js +2 -2
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/postinstall.js +5 -5
- package/dist/postinstall.js.map +1 -1
- package/dist/typescript-type-checking.js.map +1 -1
- package/package.json +19 -19
- package/dist/chunk-MGBRUNOT.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/plugins/typescript.ts"],"names":["hasDependency","hasDevDependency","env","bestPracticesRules","best_practices_default","errorsRules","errors_default","styleRules","style_default","eS6Rules","es6_default","variablesRules","variables_default","indent","quotes","semi","commaDangle","showUnsupportedTypeScriptVersionWarning","eslint_config_default","config","createConfigs","typescript_default"],"mappings":"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","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport { env } from \"node:process\";\n\nimport anolilabEslintConfig from \"../../utils/eslint-config\";\nimport bestPracticesConfig from \"../best-practices\";\nimport errorsConfig from \"../errors\";\n// eslint-disable-next-line unicorn/prevent-abbreviations\nimport eS6Config from \"../es6\";\nimport styleConfig from \"../style\";\nimport variablesConfig from \"../variables\";\nimport { createConfigs } from \"../../utils/create-config\";\n\nconst bestPracticesRules = bestPracticesConfig.rules as Linter.RulesRecord;\n// @ts-expect-error TODO: find the correct type\nconst errorsRules = errorsConfig.overrides[0].rules as Linter.RulesRecord;\n// @ts-expect-error TODO: find the correct type\nconst styleRules = styleConfig.overrides[0].rules as Linter.RulesRecord;\n// eslint-disable-next-line unicorn/prevent-abbreviations\nconst eS6Rules = eS6Config.rules as Linter.RulesRecord;\nconst variablesRules = variablesConfig.rules as Linter.RulesRecord;\n\nconst { indent, quotes, semi } = styleRules;\n\nif (global.anolilabEslintConfigTypescriptPrettierRules === undefined && (hasDependency(\"prettier\") || hasDevDependency(\"prettier\"))) {\n global.anolilabEslintConfigTypescriptPrettierRules = {\n \"@typescript-eslint/block-spacing\": \"off\",\n \"@typescript-eslint/brace-style\": \"off\",\n \"@typescript-eslint/comma-dangle\": \"off\",\n \"@typescript-eslint/comma-spacing\": \"off\",\n \"@typescript-eslint/func-call-spacing\": \"off\",\n \"@typescript-eslint/indent\": \"off\",\n \"@typescript-eslint/key-spacing\": \"off\",\n \"@typescript-eslint/keyword-spacing\": \"off\",\n \"@typescript-eslint/lines-around-comment\": 0,\n \"@typescript-eslint/member-delimiter-style\": \"off\",\n \"@typescript-eslint/no-extra-parens\": \"off\",\n \"@typescript-eslint/no-extra-semi\": \"off\",\n \"@typescript-eslint/object-curly-spacing\": \"off\",\n \"@typescript-eslint/quotes\": 0,\n \"@typescript-eslint/semi\": \"off\",\n \"@typescript-eslint/space-before-blocks\": \"off\",\n \"@typescript-eslint/space-before-function-paren\": \"off\",\n \"@typescript-eslint/space-infix-ops\": \"off\",\n \"@typescript-eslint/type-annotation-spacing\": \"off\",\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst commaDangle = styleRules[\"comma-dangle\"] as any[];\n\nlet showUnsupportedTypeScriptVersionWarning: boolean = env[\"DISABLE_ESLINT_WARN_UNSUPPORTED_TYPESCRIPT_VERSION\"] !== \"true\";\n\nif (anolilabEslintConfig[\"warn_on_unsupported_typescript_version\"] !== undefined) {\n showUnsupportedTypeScriptVersionWarning = anolilabEslintConfig[\"warn_on_unsupported_typescript_version\"];\n}\n\nconst config: Linter.Config = createConfigs([\n {\n config: {\n extends: [\"plugin:@typescript-eslint/recommended\", \"plugin:@typescript-eslint/stylistic\", \"plugin:@typescript-eslint/strict\"],\n parser: \"@typescript-eslint/parser\",\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n sourceType: \"module\",\n warnOnUnsupportedTypeScriptVersion: showUnsupportedTypeScriptVersionWarning,\n },\n plugins: [\"@typescript-eslint\"],\n rules: {\n // Disabled because of perfectionist/sort-interfaces rule\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/adjacent-overload-signatures.md\n \"@typescript-eslint/adjacent-overload-signatures\": \"off\",\n\n // Replace 'brace-style' rule with '@typescript-eslint' version\n // Requires using either T[] for arrays (array-type)\n \"@typescript-eslint/array-type\": [\n \"error\",\n {\n default: \"array\",\n readonly: \"generic\",\n },\n ],\n // Enforces that types will not to be used\n \"@typescript-eslint/ban-types\": [\n \"error\",\n {\n types: {\n Array: { message: \"Provide a more specific type\" },\n Boolean: { fixWith: \"boolean\", message: \"Use boolean instead\" },\n Number: { fixWith: \"number\", message: \"Use number instead\" },\n Object: { fixWith: \"object\", message: \"Use object instead\" },\n String: { fixWith: \"string\", message: \"Use string instead\" },\n },\n },\n ],\n\n // Replace 'camelcase' rule with '@typescript-eslint/naming-convention'\n \"@typescript-eslint/brace-style\": styleRules[\"brace-style\"],\n\n \"@typescript-eslint/comma-dangle\": [\n commaDangle[0],\n {\n ...commaDangle[1],\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n enums: commaDangle[1].arrays,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n generics: commaDangle[1].arrays,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n tuples: commaDangle[1].arrays,\n },\n ],\n\n // Replace 'comma-dangle' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-dangle.md\n \"@typescript-eslint/comma-spacing\": styleRules[\"comma-spacing\"],\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/consistent-generic-constructors.md\n \"@typescript-eslint/consistent-generic-constructors\": \"error\",\n\n // Replace 'comma-spacing' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/consistent-type-imports.md\n \"@typescript-eslint/consistent-type-imports\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md\n \"@typescript-eslint/explicit-member-accessibility\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/explicit-module-boundary-types.md\n \"@typescript-eslint/explicit-module-boundary-types\": \"error\",\n\n // Replace 'func-call-spacing' rule with '@typescript-eslint' version\n \"@typescript-eslint/func-call-spacing\": styleRules[\"func-call-spacing\"],\n \"@typescript-eslint/indent\": indent,\n\n // Replace 'indent' rule with '@typescript-eslint' version\n \"@typescript-eslint/keyword-spacing\": styleRules[\"keyword-spacing\"],\n \"@typescript-eslint/lines-between-class-members\": [\"error\", \"always\", { exceptAfterSingleLine: false }],\n\n // Replace 'keyword-spacing' rule with '@typescript-eslint' version\n // Disabled because of perfectionist/sort-interfaces rule\n \"@typescript-eslint/member-ordering\": \"off\",\n\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/method-signature-style.md\n \"@typescript-eslint/method-signature-style\": \"error\",\n\n // Replace 'lines-between-class-members' rule with '@typescript-eslint' version\n // The `@typescript-eslint/naming-convention` rule allows `leadingUnderscore` and `trailingUnderscore` settings. However, the existing `no-underscore-dangle` rule already takes care of this.\n \"@typescript-eslint/naming-convention\": [\n \"error\",\n // Allow camelCase variables (23.2), PascalCase variables (23.8), and UPPER_CASE variables (23.10)\n {\n format: [\"camelCase\", \"PascalCase\", \"UPPER_CASE\"],\n selector: \"variable\",\n },\n // Allow camelCase functions (23.2), and PascalCase functions (23.8)\n {\n format: [\"camelCase\", \"PascalCase\"],\n selector: \"function\",\n },\n\n // recommends PascalCase for classes (23.3), and although it does not make TypeScript recommendations, we are assuming this rule would similarly apply to anything \"type like\", including interfaces, type aliases, and enums\n {\n format: [\"PascalCase\"],\n selector: \"typeLike\",\n },\n ],\n \"@typescript-eslint/no-array-constructor\": styleRules[\"no-array-constructor\"],\n\n // Replace 'no-array-constructor' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-confusing-non-null-assertion.md\n \"@typescript-eslint/no-confusing-non-null-assertion\": \"error\",\n \"@typescript-eslint/no-dupe-class-members\": eS6Rules[\"no-dupe-class-members\"],\n\n // Replace 'no-dupe-class-members' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-duplicate-enum-values.md\n \"@typescript-eslint/no-duplicate-enum-values\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-dynamic-delete.md\n \"@typescript-eslint/no-dynamic-delete\": \"warn\",\n\n // Replace 'no-empty-function' rule with '@typescript-eslint' version\n \"@typescript-eslint/no-empty-function\": bestPracticesRules[\"no-empty-function\"],\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-extra-non-null-assertion.md\n \"@typescript-eslint/no-extra-non-null-assertion\": \"error\",\n\n // Replace 'no-extra-parens' rule with '@typescript-eslint' version\n \"@typescript-eslint/no-extra-parens\": errorsRules[\"no-extra-parens\"],\n \"@typescript-eslint/no-extra-semi\": errorsRules[\"no-extra-semi\"],\n\n // Replace 'no-extra-semi' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-import-type-side-effects.md\n \"@typescript-eslint/no-import-type-side-effects\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-invalid-void-type.md\n \"@typescript-eslint/no-invalid-void-type\": \"warn\",\n\n \"@typescript-eslint/no-loop-func\": bestPracticesRules[\"no-loop-func\"],\n \"@typescript-eslint/no-magic-numbers\": bestPracticesRules[\"no-magic-numbers\"],\n\n // Replace 'no-loop-func' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-misused-new.md\n \"@typescript-eslint/no-misused-new\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-namespace.md\n \"@typescript-eslint/no-namespace\": \"error\",\n\n // Replace 'no-magic-numbers' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-non-null-asserted-nullish-coalescing.md\n \"@typescript-eslint/no-non-null-asserted-nullish-coalescing\": \"warn\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md\n \"@typescript-eslint/no-non-null-asserted-optional-chain\": \"error\",\n\n // Replace 'no-redeclare' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-non-null-assertion.md\n \"@typescript-eslint/no-non-null-assertion\": \"error\",\n \"@typescript-eslint/no-redeclare\": bestPracticesRules[\"no-redeclare\"],\n\n // Replace 'no-shadow' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-require-imports.md\n \"@typescript-eslint/no-require-imports\": \"error\",\n \"@typescript-eslint/no-shadow\": variablesRules[\"no-shadow\"],\n\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-this-alias.md\n \"@typescript-eslint/no-this-alias\": \"error\",\n\n // Replace 'no-unused-expressions' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-type-constraint.md\n \"@typescript-eslint/no-unnecessary-type-constraint\": \"error\",\n\n // Replace 'no-unused-vars' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-argument.md\n \"@typescript-eslint/no-unsafe-argument\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-assignment.md\n \"@typescript-eslint/no-unsafe-assignment\": \"error\",\n\n // Replace 'no-use-before-define' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-call.md\n \"@typescript-eslint/no-unsafe-call\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-declaration-merging.md\n \"@typescript-eslint/no-unsafe-declaration-merging\": \"error\",\n\n // Replace 'no-useless-constructor' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-member-access.md\n \"@typescript-eslint/no-unsafe-member-access\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-return.md\n \"@typescript-eslint/no-unsafe-return\": \"error\",\n\n // Replace 'quotes' rule with '@typescript-eslint' version\n \"@typescript-eslint/no-unused-expressions\": bestPracticesRules[\"no-unused-expressions\"],\n \"@typescript-eslint/no-unused-vars\": variablesRules[\"no-unused-vars\"],\n\n // Replace 'semi' rule with '@typescript-eslint' version\n \"@typescript-eslint/no-use-before-define\": variablesRules[\"no-use-before-define\"],\n \"@typescript-eslint/no-useless-constructor\": eS6Rules[\"no-useless-constructor\"],\n\n // Replace 'space-before-function-paren' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-useless-empty-export.md\n \"@typescript-eslint/no-useless-empty-export\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/non-nullable-type-assertion-style.md\n \"@typescript-eslint/non-nullable-type-assertion-style\": \"off\",\n\n // Replace 'no-return-await' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-enum-initializers.md\n \"@typescript-eslint/prefer-enum-initializers\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-function-type.md\n \"@typescript-eslint/prefer-function-type\": \"error\",\n\n // Replace 'space-infix-ops' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-optional-chain.md\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\n\n // Append 'ts' and 'tsx' to 'import/extensions' rule\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-ts-expect-error.md\n \"@typescript-eslint/prefer-ts-expect-error\": \"error\",\n\n // Append 'ts' and 'tsx' extensions to 'import/no-extraneous-dependencies' rule\n \"@typescript-eslint/quotes\": quotes,\n\n // The following rules are enabled in config, but are already checked (more thoroughly) by the TypeScript compiler\n \"@typescript-eslint/return-await\": bestPracticesRules[\"no-return-await\"],\n \"@typescript-eslint/semi\": semi,\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/sort-type-constituents.md\n \"@typescript-eslint/sort-type-constituents\": \"error\",\n \"@typescript-eslint/space-before-function-paren\": styleRules[\"space-before-function-paren\"],\n \"@typescript-eslint/space-infix-ops\": styleRules[\"space-infix-ops\"],\n\n // Disable rules that are handled by prettier\n ...global.anolilabEslintConfigTypescriptPrettierRules,\n },\n },\n type: \"typescript\",\n },\n]);\n\nexport default config;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/config/plugins/typescript.ts"],"names":["env","hasDependency","hasDevDependency","bestPracticesRules","best_practices_default","errorsRules","errors_default","styleRules","style_default","eS6Rules","es6_default","variablesRules","variables_default","indent","quotes","semi","commaDangle","showUnsupportedTypeScriptVersionWarning","eslint_config_default","config","createConfigs","typescript_default"],"mappings":"+WAAA,OAAS,OAAAA,MAAW,UAEpB,OAAS,iBAAAC,EAAe,oBAAAC,MAAwB,+BAYhD,IAAMC,EAAqBC,EAAoB,MAEzCC,EAAcC,EAAa,UAAU,CAAC,EAAE,MAExCC,EAAaC,EAAY,UAAU,CAAC,EAAE,MAEtCC,EAAWC,EAAU,MACrBC,EAAiBC,EAAgB,MAEjC,CAAE,OAAAC,EAAQ,OAAAC,EAAQ,KAAAC,CAAK,EAAIR,EAE7B,OAAO,8CAAgD,SAAcN,EAAc,UAAU,GAAKC,EAAiB,UAAU,KAC7H,OAAO,4CAA8C,CACjD,mCAAoC,MACpC,iCAAkC,MAClC,kCAAmC,MACnC,mCAAoC,MACpC,uCAAwC,MACxC,4BAA6B,MAC7B,iCAAkC,MAClC,qCAAsC,MACtC,0CAA2C,EAC3C,4CAA6C,MAC7C,qCAAsC,MACtC,mCAAoC,MACpC,0CAA2C,MAC3C,4BAA6B,EAC7B,0BAA2B,MAC3B,yCAA0C,MAC1C,iDAAkD,MAClD,qCAAsC,MACtC,6CAA8C,KAClD,GAIJ,IAAMc,EAAcT,EAAW,cAAc,EAEzCU,EAAmDjB,EAAI,qDAA0D,OAEjHkB,EAAqB,yCAA8C,SACnED,EAA0CC,EAAqB,wCAGnE,IAAMC,EAAwBC,EAAc,CACxC,CACI,OAAQ,CACJ,QAAS,CAAC,wCAAyC,sCAAuC,kCAAkC,EAC5H,OAAQ,4BACR,cAAe,CACX,aAAc,CACV,IAAK,EACT,EACA,WAAY,SACZ,mCAAoCH,CACxC,EACA,QAAS,CAAC,oBAAoB,EAC9B,MAAO,CAGH,kDAAmD,MAInD,gCAAiC,CAC7B,QACA,CACI,QAAS,QACT,SAAU,SACd,CACJ,EAEA,+BAAgC,CAC5B,QACA,CACI,MAAO,CACH,MAAO,CAAE,QAAS,8BAA+B,EACjD,QAAS,CAAE,QAAS,UAAW,QAAS,qBAAsB,EAC9D,OAAQ,CAAE,QAAS,SAAU,QAAS,oBAAqB,EAC3D,OAAQ,CAAE,QAAS,SAAU,QAAS,oBAAqB,EAC3D,OAAQ,CAAE,QAAS,SAAU,QAAS,oBAAqB,CAC/D,CACJ,CACJ,EAGA,iCAAkCV,EAAW,aAAa,EAE1D,kCAAmC,CAC/BS,EAAY,CAAC,EACb,CACI,GAAGA,EAAY,CAAC,EAEhB,MAAOA,EAAY,CAAC,EAAE,OAEtB,SAAUA,EAAY,CAAC,EAAE,OAEzB,OAAQA,EAAY,CAAC,EAAE,MAC3B,CACJ,EAIA,mCAAoCT,EAAW,eAAe,EAE9D,qDAAsD,QAItD,6CAA8C,QAE9C,mDAAoD,QAGpD,oDAAqD,QAGrD,uCAAwCA,EAAW,mBAAmB,EACtE,4BAA6BM,EAG7B,qCAAsCN,EAAW,iBAAiB,EAClE,iDAAkD,CAAC,QAAS,SAAU,CAAE,sBAAuB,EAAM,CAAC,EAItG,qCAAsC,MAGtC,4CAA6C,QAI7C,uCAAwC,CACpC,QAEA,CACI,OAAQ,CAAC,YAAa,aAAc,YAAY,EAChD,SAAU,UACd,EAEA,CACI,OAAQ,CAAC,YAAa,YAAY,EAClC,SAAU,UACd,EAGA,CACI,OAAQ,CAAC,YAAY,EACrB,SAAU,UACd,CACJ,EACA,0CAA2CA,EAAW,sBAAsB,EAI5E,qDAAsD,QACtD,2CAA4CE,EAAS,uBAAuB,EAI5E,8CAA+C,QAE/C,uCAAwC,OAGxC,uCAAwCN,EAAmB,mBAAmB,EAE9E,iDAAkD,QAGlD,qCAAsCE,EAAY,iBAAiB,EACnE,mCAAoCA,EAAY,eAAe,EAI/D,iDAAkD,QAElD,0CAA2C,OAE3C,kCAAmCF,EAAmB,cAAc,EACpE,sCAAuCA,EAAmB,kBAAkB,EAI5E,oCAAqC,QAErC,kCAAmC,QAInC,6DAA8D,OAE9D,yDAA0D,QAI1D,2CAA4C,QAC5C,kCAAmCA,EAAmB,cAAc,EAIpE,wCAAyC,QACzC,+BAAgCQ,EAAe,WAAW,EAG1D,mCAAoC,QAIpC,mDAAoD,QAEpD,oDAAqD,QAIrD,wCAAyC,QAEzC,0CAA2C,QAI3C,oCAAqC,QAErC,mDAAoD,QAIpD,6CAA8C,QAE9C,sCAAuC,QAGvC,2CAA4CR,EAAmB,uBAAuB,EACtF,oCAAqCQ,EAAe,gBAAgB,EAGpE,0CAA2CA,EAAe,sBAAsB,EAChF,4CAA6CF,EAAS,wBAAwB,EAI9E,6CAA8C,QAE9C,uDAAwD,MAIxD,8CAA+C,QAE/C,0CAA2C,QAI3C,+CAAgD,QAEhD,2CAA4C,QAI5C,4CAA6C,QAG7C,4BAA6BK,EAG7B,kCAAmCX,EAAmB,iBAAiB,EACvE,0BAA2BY,EAE3B,4CAA6C,QAC7C,iDAAkDR,EAAW,6BAA6B,EAC1F,qCAAsCA,EAAW,iBAAiB,EAGlE,GAAG,OAAO,2CACd,CACJ,EACA,KAAM,YACV,CACJ,CAAC,EAEMc,EAAQF","sourcesContent":["import { env } from \"node:process\";\n\nimport { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\n\nimport { createConfigs } from \"../../utils/create-config\";\nimport anolilabEslintConfig from \"../../utils/eslint-config\";\nimport bestPracticesConfig from \"../best-practices\";\nimport errorsConfig from \"../errors\";\n// eslint-disable-next-line unicorn/prevent-abbreviations\nimport eS6Config from \"../es6\";\nimport styleConfig from \"../style\";\nimport variablesConfig from \"../variables\";\n\nconst bestPracticesRules = bestPracticesConfig.rules as Linter.RulesRecord;\n// @ts-expect-error TODO: find the correct type\nconst errorsRules = errorsConfig.overrides[0].rules as Linter.RulesRecord;\n// @ts-expect-error TODO: find the correct type\nconst styleRules = styleConfig.overrides[0].rules as Linter.RulesRecord;\n// eslint-disable-next-line unicorn/prevent-abbreviations\nconst eS6Rules = eS6Config.rules as Linter.RulesRecord;\nconst variablesRules = variablesConfig.rules as Linter.RulesRecord;\n\nconst { indent, quotes, semi } = styleRules;\n\nif (global.anolilabEslintConfigTypescriptPrettierRules === undefined && (hasDependency(\"prettier\") || hasDevDependency(\"prettier\"))) {\n global.anolilabEslintConfigTypescriptPrettierRules = {\n \"@typescript-eslint/block-spacing\": \"off\",\n \"@typescript-eslint/brace-style\": \"off\",\n \"@typescript-eslint/comma-dangle\": \"off\",\n \"@typescript-eslint/comma-spacing\": \"off\",\n \"@typescript-eslint/func-call-spacing\": \"off\",\n \"@typescript-eslint/indent\": \"off\",\n \"@typescript-eslint/key-spacing\": \"off\",\n \"@typescript-eslint/keyword-spacing\": \"off\",\n \"@typescript-eslint/lines-around-comment\": 0,\n \"@typescript-eslint/member-delimiter-style\": \"off\",\n \"@typescript-eslint/no-extra-parens\": \"off\",\n \"@typescript-eslint/no-extra-semi\": \"off\",\n \"@typescript-eslint/object-curly-spacing\": \"off\",\n \"@typescript-eslint/quotes\": 0,\n \"@typescript-eslint/semi\": \"off\",\n \"@typescript-eslint/space-before-blocks\": \"off\",\n \"@typescript-eslint/space-before-function-paren\": \"off\",\n \"@typescript-eslint/space-infix-ops\": \"off\",\n \"@typescript-eslint/type-annotation-spacing\": \"off\",\n };\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst commaDangle = styleRules[\"comma-dangle\"] as any[];\n\nlet showUnsupportedTypeScriptVersionWarning: boolean = env[\"DISABLE_ESLINT_WARN_UNSUPPORTED_TYPESCRIPT_VERSION\"] !== \"true\";\n\nif (anolilabEslintConfig[\"warn_on_unsupported_typescript_version\"] !== undefined) {\n showUnsupportedTypeScriptVersionWarning = anolilabEslintConfig[\"warn_on_unsupported_typescript_version\"];\n}\n\nconst config: Linter.Config = createConfigs([\n {\n config: {\n extends: [\"plugin:@typescript-eslint/recommended\", \"plugin:@typescript-eslint/stylistic\", \"plugin:@typescript-eslint/strict\"],\n parser: \"@typescript-eslint/parser\",\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n sourceType: \"module\",\n warnOnUnsupportedTypeScriptVersion: showUnsupportedTypeScriptVersionWarning,\n },\n plugins: [\"@typescript-eslint\"],\n rules: {\n // Disabled because of perfectionist/sort-interfaces rule\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/adjacent-overload-signatures.md\n \"@typescript-eslint/adjacent-overload-signatures\": \"off\",\n\n // Replace 'brace-style' rule with '@typescript-eslint' version\n // Requires using either T[] for arrays (array-type)\n \"@typescript-eslint/array-type\": [\n \"error\",\n {\n default: \"array\",\n readonly: \"generic\",\n },\n ],\n // Enforces that types will not to be used\n \"@typescript-eslint/ban-types\": [\n \"error\",\n {\n types: {\n Array: { message: \"Provide a more specific type\" },\n Boolean: { fixWith: \"boolean\", message: \"Use boolean instead\" },\n Number: { fixWith: \"number\", message: \"Use number instead\" },\n Object: { fixWith: \"object\", message: \"Use object instead\" },\n String: { fixWith: \"string\", message: \"Use string instead\" },\n },\n },\n ],\n\n // Replace 'camelcase' rule with '@typescript-eslint/naming-convention'\n \"@typescript-eslint/brace-style\": styleRules[\"brace-style\"],\n\n \"@typescript-eslint/comma-dangle\": [\n commaDangle[0],\n {\n ...commaDangle[1],\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n enums: commaDangle[1].arrays,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n generics: commaDangle[1].arrays,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access\n tuples: commaDangle[1].arrays,\n },\n ],\n\n // Replace 'comma-dangle' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-dangle.md\n \"@typescript-eslint/comma-spacing\": styleRules[\"comma-spacing\"],\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/consistent-generic-constructors.md\n \"@typescript-eslint/consistent-generic-constructors\": \"error\",\n\n // Replace 'comma-spacing' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/consistent-type-imports.md\n \"@typescript-eslint/consistent-type-imports\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/explicit-member-accessibility.md\n \"@typescript-eslint/explicit-member-accessibility\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/explicit-module-boundary-types.md\n \"@typescript-eslint/explicit-module-boundary-types\": \"error\",\n\n // Replace 'func-call-spacing' rule with '@typescript-eslint' version\n \"@typescript-eslint/func-call-spacing\": styleRules[\"func-call-spacing\"],\n \"@typescript-eslint/indent\": indent,\n\n // Replace 'indent' rule with '@typescript-eslint' version\n \"@typescript-eslint/keyword-spacing\": styleRules[\"keyword-spacing\"],\n \"@typescript-eslint/lines-between-class-members\": [\"error\", \"always\", { exceptAfterSingleLine: false }],\n\n // Replace 'keyword-spacing' rule with '@typescript-eslint' version\n // Disabled because of perfectionist/sort-interfaces rule\n \"@typescript-eslint/member-ordering\": \"off\",\n\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/method-signature-style.md\n \"@typescript-eslint/method-signature-style\": \"error\",\n\n // Replace 'lines-between-class-members' rule with '@typescript-eslint' version\n // The `@typescript-eslint/naming-convention` rule allows `leadingUnderscore` and `trailingUnderscore` settings. However, the existing `no-underscore-dangle` rule already takes care of this.\n \"@typescript-eslint/naming-convention\": [\n \"error\",\n // Allow camelCase variables (23.2), PascalCase variables (23.8), and UPPER_CASE variables (23.10)\n {\n format: [\"camelCase\", \"PascalCase\", \"UPPER_CASE\"],\n selector: \"variable\",\n },\n // Allow camelCase functions (23.2), and PascalCase functions (23.8)\n {\n format: [\"camelCase\", \"PascalCase\"],\n selector: \"function\",\n },\n\n // recommends PascalCase for classes (23.3), and although it does not make TypeScript recommendations, we are assuming this rule would similarly apply to anything \"type like\", including interfaces, type aliases, and enums\n {\n format: [\"PascalCase\"],\n selector: \"typeLike\",\n },\n ],\n \"@typescript-eslint/no-array-constructor\": styleRules[\"no-array-constructor\"],\n\n // Replace 'no-array-constructor' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-confusing-non-null-assertion.md\n \"@typescript-eslint/no-confusing-non-null-assertion\": \"error\",\n \"@typescript-eslint/no-dupe-class-members\": eS6Rules[\"no-dupe-class-members\"],\n\n // Replace 'no-dupe-class-members' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-duplicate-enum-values.md\n \"@typescript-eslint/no-duplicate-enum-values\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-dynamic-delete.md\n \"@typescript-eslint/no-dynamic-delete\": \"warn\",\n\n // Replace 'no-empty-function' rule with '@typescript-eslint' version\n \"@typescript-eslint/no-empty-function\": bestPracticesRules[\"no-empty-function\"],\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-extra-non-null-assertion.md\n \"@typescript-eslint/no-extra-non-null-assertion\": \"error\",\n\n // Replace 'no-extra-parens' rule with '@typescript-eslint' version\n \"@typescript-eslint/no-extra-parens\": errorsRules[\"no-extra-parens\"],\n \"@typescript-eslint/no-extra-semi\": errorsRules[\"no-extra-semi\"],\n\n // Replace 'no-extra-semi' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-import-type-side-effects.md\n \"@typescript-eslint/no-import-type-side-effects\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-invalid-void-type.md\n \"@typescript-eslint/no-invalid-void-type\": \"warn\",\n\n \"@typescript-eslint/no-loop-func\": bestPracticesRules[\"no-loop-func\"],\n \"@typescript-eslint/no-magic-numbers\": bestPracticesRules[\"no-magic-numbers\"],\n\n // Replace 'no-loop-func' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-misused-new.md\n \"@typescript-eslint/no-misused-new\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-namespace.md\n \"@typescript-eslint/no-namespace\": \"error\",\n\n // Replace 'no-magic-numbers' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-non-null-asserted-nullish-coalescing.md\n \"@typescript-eslint/no-non-null-asserted-nullish-coalescing\": \"warn\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-non-null-asserted-optional-chain.md\n \"@typescript-eslint/no-non-null-asserted-optional-chain\": \"error\",\n\n // Replace 'no-redeclare' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-non-null-assertion.md\n \"@typescript-eslint/no-non-null-assertion\": \"error\",\n \"@typescript-eslint/no-redeclare\": bestPracticesRules[\"no-redeclare\"],\n\n // Replace 'no-shadow' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-require-imports.md\n \"@typescript-eslint/no-require-imports\": \"error\",\n \"@typescript-eslint/no-shadow\": variablesRules[\"no-shadow\"],\n\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-this-alias.md\n \"@typescript-eslint/no-this-alias\": \"error\",\n\n // Replace 'no-unused-expressions' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-type-assertion.md\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-type-constraint.md\n \"@typescript-eslint/no-unnecessary-type-constraint\": \"error\",\n\n // Replace 'no-unused-vars' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-argument.md\n \"@typescript-eslint/no-unsafe-argument\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-assignment.md\n \"@typescript-eslint/no-unsafe-assignment\": \"error\",\n\n // Replace 'no-use-before-define' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-call.md\n \"@typescript-eslint/no-unsafe-call\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-declaration-merging.md\n \"@typescript-eslint/no-unsafe-declaration-merging\": \"error\",\n\n // Replace 'no-useless-constructor' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-member-access.md\n \"@typescript-eslint/no-unsafe-member-access\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unsafe-return.md\n \"@typescript-eslint/no-unsafe-return\": \"error\",\n\n // Replace 'quotes' rule with '@typescript-eslint' version\n \"@typescript-eslint/no-unused-expressions\": bestPracticesRules[\"no-unused-expressions\"],\n \"@typescript-eslint/no-unused-vars\": variablesRules[\"no-unused-vars\"],\n\n // Replace 'semi' rule with '@typescript-eslint' version\n \"@typescript-eslint/no-use-before-define\": variablesRules[\"no-use-before-define\"],\n \"@typescript-eslint/no-useless-constructor\": eS6Rules[\"no-useless-constructor\"],\n\n // Replace 'space-before-function-paren' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-useless-empty-export.md\n \"@typescript-eslint/no-useless-empty-export\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/non-nullable-type-assertion-style.md\n \"@typescript-eslint/non-nullable-type-assertion-style\": \"off\",\n\n // Replace 'no-return-await' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-enum-initializers.md\n \"@typescript-eslint/prefer-enum-initializers\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-function-type.md\n \"@typescript-eslint/prefer-function-type\": \"error\",\n\n // Replace 'space-infix-ops' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md\n \"@typescript-eslint/prefer-nullish-coalescing\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-optional-chain.md\n \"@typescript-eslint/prefer-optional-chain\": \"error\",\n\n // Append 'ts' and 'tsx' to 'import/extensions' rule\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-ts-expect-error.md\n \"@typescript-eslint/prefer-ts-expect-error\": \"error\",\n\n // Append 'ts' and 'tsx' extensions to 'import/no-extraneous-dependencies' rule\n \"@typescript-eslint/quotes\": quotes,\n\n // The following rules are enabled in config, but are already checked (more thoroughly) by the TypeScript compiler\n \"@typescript-eslint/return-await\": bestPracticesRules[\"no-return-await\"],\n \"@typescript-eslint/semi\": semi,\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/sort-type-constituents.md\n \"@typescript-eslint/sort-type-constituents\": \"error\",\n \"@typescript-eslint/space-before-function-paren\": styleRules[\"space-before-function-paren\"],\n \"@typescript-eslint/space-infix-ops\": styleRules[\"space-infix-ops\"],\n\n // Disable rules that are handled by prettier\n ...global.anolilabEslintConfigTypescriptPrettierRules,\n },\n },\n type: \"typescript\",\n },\n]);\n\nexport default config;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/config/plugins/vitest.ts"],"names":["hasDependency","hasDevDependency","plugins","config","vitest_default"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/config/plugins/vitest.ts"],"names":["hasDependency","hasDevDependency","plugins","config","vitest_default"],"mappings":"gCAAA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,+BAG3C,OAAO,uCACR,OAAO,qCAAuCD,EAAc,8BAA8B,GAAKC,EAAiB,8BAA8B,GAGlJ,IAAMC,EAAU,CAAC,4BAA6B,mBAAmB,EAE7D,OAAO,sCACPA,EAAQ,KAAK,mCAAmC,EAGpD,IAAMC,EAAwB,CAC1B,UAAW,CACP,CACI,QAASD,EACT,MAAO,CAAC,oCAAqC,qCAAqC,EAClF,QAAS,CAAC,QAAQ,EAElB,MAAO,CAIH,qBAAsB,MAItB,kBAAmB,MAInB,yBAA0B,MAI1B,kCAAmC,MAInC,8BAA+B,QAI/B,sBAAuB,CAAC,QAAS,CAAE,YAAa,GAAM,QAAS,EAAG,QAAS,CAAE,CAAC,CAClF,CACJ,CACJ,CACJ,EAEOE,EAAQD","sourcesContent":["import { hasDependency, hasDevDependency } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\n\nif (!global.hasAnolilabEsLintVitestGlobalsPlugin) {\n global.hasAnolilabEsLintVitestGlobalsPlugin = hasDependency(\"eslint-plugin-vitest-globals\") || hasDevDependency(\"eslint-plugin-vitest-globals\");\n}\n\nconst plugins = [\"plugin:vitest/recommended\", \"plugin:vitest/all\"];\n\nif (global.hasAnolilabEsLintVitestGlobalsPlugin) {\n plugins.push(\"plugin:vitest-globals/recommended\");\n}\n\nconst config: Linter.Config = {\n overrides: [\n {\n extends: plugins,\n files: [\"**/__tests__/**/*.?(c|m)[jt]s?(x)\", \"**/?(*.){test,spec}.?(c|m)[jt]s?(x)\"],\n plugins: [\"vitest\"],\n // TODO: transform all rules to error\n rules: {\n // Enforce a maximum number of expect per test\n // https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/max-expects.md\n // This rule should be set on the root config\n \"vitest/max-expects\": \"off\",\n\n // Enforce valid expect() usage\n // https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-hooks.md\n \"vitest/no-hooks\": \"off\",\n\n // Disallow setup and teardown hooks\n // https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-mocks-import.md\n \"vitest/no-mocks-import\": \"off\",\n\n // Disallow importing from mocks directory\n // https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-restricted-vi-methods.md\n \"vitest/no-restricted-vi-methods\": \"off\",\n\n // Disallow specific vi. methods\n // https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/no-standalone-expect.md\n \"vitest/no-standalone-expect\": \"error\",\n\n // Disallow using expect outside of it or test blocks\n // https://github.com/veritem/eslint-plugin-vitest/blob/main/docs/rules/valid-expect.md\n \"vitest/valid-expect\": [\"error\", { alwaysAwait: true, maxArgs: 2, minArgs: 1 }],\n },\n },\n ],\n};\n\nexport default config;\n"]}
|
package/dist/config/style.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkN2VJ7KO5_js = require('../chunk-N2VJ7KO5.js');
|
|
4
4
|
require('../chunk-O7JDC6TD.js');
|
|
5
5
|
require('../chunk-OCCLNRZC.js');
|
|
6
6
|
require('../chunk-WG6GTAIA.js');
|
|
@@ -8,6 +8,6 @@ require('../chunk-MFE6DF6Y.js');
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
module.exports =
|
|
11
|
+
module.exports = chunkN2VJ7KO5_js.a;
|
|
12
12
|
//# sourceMappingURL=out.js.map
|
|
13
13
|
//# sourceMappingURL=style.js.map
|
package/dist/index.js
CHANGED
|
@@ -4,14 +4,14 @@ var chunkSEYYGHPU_js = require('./chunk-SEYYGHPU.js');
|
|
|
4
4
|
var chunkOCCLNRZC_js = require('./chunk-OCCLNRZC.js');
|
|
5
5
|
require('./chunk-MFE6DF6Y.js');
|
|
6
6
|
require('@rushstack/eslint-patch/modern-module-resolution');
|
|
7
|
-
var packageJsonUtils = require('@anolilab/package-json-utils');
|
|
8
|
-
var w = require('globals');
|
|
9
7
|
var path = require('path');
|
|
8
|
+
var packageJsonUtils = require('@anolilab/package-json-utils');
|
|
9
|
+
var x = require('globals');
|
|
10
10
|
var k = require('semver');
|
|
11
11
|
|
|
12
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var x__default = /*#__PURE__*/_interopDefault(x);
|
|
15
15
|
var k__default = /*#__PURE__*/_interopDefault(k);
|
|
16
16
|
|
|
17
17
|
var R=["best-practices","errors","style","es6","variables"],r=["compat","eslint-comments","import","promise","simple-import-sort","no-extend-native","node","no-secrets","sonarjs","security","regexp","jsonc","markdown","toml","yml","html","antfu","unicorn","es","perfectionist"],E=[{configName:"array-func",dependencies:["eslint-plugin-array-func"]},{configName:"jsdoc",dependencies:["eslint-plugin-jsdoc"]},{configName:"tsdoc",dependencies:["eslint-plugin-tsdoc","typescript"]},{configName:"you-dont-need-lodash-underscore",dependencies:["eslint-plugin-you-dont-need-lodash-underscore"],oneOfDependency:["lodash","underscore","lodash-es","@types/lodash","lodash.chunk","lodash.compact","lodash.concat","lodash.difference","lodash.differenceby","lodash.differencewith","lodash.drop","lodash.dropright","lodash.droprightwhile","lodash.dropwhile","lodash.fill","lodash.findindex","lodash.findlastindex","lodash.flatten","lodash.flattendeep","lodash.flattendepth","lodash.frompairs","lodash.head","lodash.indexof","lodash.initial","lodash.intersection","lodash.intersectionby","lodash.intersectionwith","lodash.join","lodash.last","lodash.lastindexof","lodash.nth","lodash.pull","lodash.pullall","lodash.pullallby","lodash.pullallwith","lodash.pullat","lodash.remove","lodash.reverse","lodash.slice","lodash.sortedindex","lodash.sortedindexby","lodash.sortedindexof","lodash.sortedlastindex","lodash.sortedlastindexby","lodash.sortedlastindexof","lodash.sorteduniq","lodash.sorteduniqby","lodash.tail","lodash.take","lodash.takeright","lodash.takerightwhile","lodash.takewhile","lodash.union","lodash.unionby","lodash.unionwith","lodash.uniq","lodash.uniqby","lodash.uniqwith","lodash.unzip","lodash.unzipwith","lodash.without","lodash.xor","lodash.xorby","lodash.xorwith","lodash.zip","lodash.zipobject","lodash.zipobjectdeep","lodash.zipwith","lodash.countby","lodash.every","lodash.filter","lodash.find","lodash.findlast","lodash.flatmap","lodash.flatmapdeep","lodash.flatmapdepth","lodash.foreach","lodash.foreachright","lodash.groupby","lodash.includes","lodash.invokemap","lodash.keyby","lodash.map","lodash.orderby","lodash.partition","lodash.reduce","lodash.reduceright","lodash.reject","lodash.sample","lodash.samplesize","lodash.shuffle","lodash.size","lodash.some","lodash.sortby","lodash.now","lodash.after","lodash.ary","lodash.before","lodash.bind","lodash.bindkey","lodash.curry","lodash.curryright","lodash.debounce","lodash.defer","lodash.delay","lodash.flip","lodash.memoize","lodash.negate","lodash.once","lodash.overargs","lodash.partial","lodash.partialright","lodash.rearg","lodash.rest","lodash.spread","lodash.throttle","lodash.unary","lodash.wrap","lodash.castarray","lodash.clone","lodash.clonedeep","lodash.clonedeepwith","lodash.clonewith","lodash.conformsto","lodash.eq","lodash.gt","lodash.gte","lodash.isarguments","lodash.isarray","lodash.isarraybuffer","lodash.isarraylike","lodash.isarraylikeobject","lodash.isboolean","lodash.isbuffer","lodash.isdate","lodash.iselement","lodash.isempty","lodash.isequal","lodash.isequalwith","lodash.iserror","lodash.isfinite","lodash.isfunction","lodash.isinteger","lodash.islength","lodash.ismap","lodash.ismatch","lodash.ismatchwith","lodash.isnan","lodash.isnative","lodash.isnil","lodash.isnull","lodash.isnumber","lodash.isobject","lodash.isobjectlike","lodash.isplainobject","lodash.isregexp","lodash.issafeinteger","lodash.isset","lodash.isstring","lodash.issymbol","lodash.istypedarray","lodash.isundefined","lodash.isweakmap","lodash.isweakset","lodash.lt","lodash.lte","lodash.toarray","lodash.tofinite","lodash.tointeger","lodash.tolength","lodash.tonumber","lodash.toplainobject","lodash.tosafeinteger","lodash.tostring","lodash.add","lodash.ceil","lodash.divide","lodash.floor","lodash.max","lodash.maxby","lodash.mean","lodash.meanby","lodash.min","lodash.minby","lodash.multiply","lodash.round","lodash.subtract","lodash.sum","lodash.sumby","lodash.clamp","lodash.inrange","lodash.random","lodash.assign","lodash.assignin","lodash.assigninwith","lodash.assignwith","lodash.at","lodash.create","lodash.defaults","lodash.defaultsdeep","lodash.findkey","lodash.findlastkey","lodash.forin","lodash.forinright","lodash.forown","lodash.forownright","lodash.functions","lodash.functionsin","lodash.get","lodash.has","lodash.hasin","lodash.invert","lodash.invertby","lodash.invoke","lodash.keys","lodash.keysin","lodash.mapkeys","lodash.mapvalues","lodash.merge","lodash.mergewith","lodash.omit","lodash.omitby","lodash.pick","lodash.pickby","lodash.result","lodash.set","lodash.setwith","lodash.topairs","lodash.topairsin","lodash.transform","lodash.unset","lodash.update","lodash.updatewith","lodash.values","lodash.valuesin","lodash.chain","lodash.tap","lodash.thru","lodash.camelcase","lodash.capitalize","lodash.deburr","lodash.endswith","lodash.escape","lodash.escaperegexp","lodash.kebabcase","lodash.lowercase","lodash.lowerfirst","lodash.pad","lodash.padend","lodash.padstart","lodash.parseint","lodash.repeat","lodash.replace","lodash.snakecase","lodash.split","lodash.startcase","lodash.startswith","lodash.template","lodash.tolower","lodash.toupper","lodash.trim","lodash.trimend","lodash.trimstart","lodash.truncate","lodash.unescape","lodash.uppercase","lodash.upperfirst","lodash.words","lodash.attempt","lodash.bindall","lodash.cond","lodash.conforms","lodash.constant","lodash.defaultto","lodash.flow","lodash.flowright","lodash.identity","lodash.iteratee","lodash.matches","lodash.matchesproperty","lodash.method","lodash.methodof","lodash.mixin","lodash.noconflict","lodash.noop","lodash.ntharg","lodash.over","lodash.overevery","lodash.oversome","lodash.property","lodash.propertyof","lodash.range","lodash.rangeright","lodash.runincontext","lodash.stubarray","lodash.stubfalse","lodash.stubobject","lodash.stubstring","lodash.stubtrue","lodash.times","lodash.topath","lodash.uniqueid"]},{configName:"mdx",dependencies:["eslint-plugin-mdx"],oneOfDependency:["nextra","docz","@docusaurus/core","gatsby-plugin-mdx"],resolve:["@mdx-js/mdx","remark-mdx","@mdx-js/loader","@mdx-js/rollup","@mdx-js/react"]},{configName:"no-unsanitized",dependencies:["eslint-plugin-no-unsanitized"]},{configName:"react",dependencies:["react","react-dom","eslint-plugin-react"]},{configName:"react-redux",dependencies:["eslint-plugin-react-redux"],oneOfDependency:["@reduxjs/toolkit","redux"]},{configName:"jsx-a11y",dependencies:["react","react-dom","eslint-plugin-jsx-a11y"]},{configName:"react-hooks",dependencies:["react","react-dom","eslint-plugin-react-hooks"]},{configName:"react-usememo",dependencies:["react","react-dom","@arthurgeron/eslint-plugin-react-usememo"]},{configName:"you-dont-need-momentjs",dependencies:["moment","eslint-plugin-you-dont-need-momentjs"]},{configName:"you-dont-need-momentjs",dependencies:["moment-timezone","eslint-plugin-you-dont-need-momentjs"]},{configName:"tailwindcss",dependencies:["eslint-plugin-tailwindcss"]},{configName:"cypress",dependencies:["cypress","eslint-plugin-cypress"]},{configName:"jest",dependencies:["jest","eslint-plugin-jest"]},{configName:"jest-dom",dependencies:["jest","@testing-library/jest-dom","eslint-plugin-jest-dom"]},{configName:"jest-async",dependencies:["jest","eslint-plugin-jest-async"]},{configName:"jest-formatting",dependencies:["jest","eslint-plugin-jest-formatting"]},{configName:"tailwindcss",dependencies:["tailwindcss"]},{configName:"testing-library-dom",dependencies:["@testing-library/dom","eslint-plugin-testing-library"]},{configName:"testing-library-react",dependencies:["react","@testing-library/react","eslint-plugin-testing-library"]},{configName:"typescript",dependencies:["typescript"],files:["tsconfig.json","tsconfig.eslint.json"]},{configName:"etc",dependencies:["typescript","eslint-plugin-etc"]},{configName:"vitest",dependencies:["vitest","eslint-plugin-vitest"]},{configName:"vitest",dependencies:["vitest","eslint-plugin-vitest","eslint-plugin-vitest-globals"]},{configName:"zod",dependencies:["zod","eslint-plugin-zod"]},{configName:"ava",dependencies:["ava","eslint-plugin-ava"]},{configName:"editorconfig",dependencies:["eslint-plugin-editorconfig"],files:[".editorconfig"]},{configName:"storybook",dependencies:["storybook","eslint-plugin-storybook"]},{configName:"playwright",dependencies:["playwright","eslint-plugin-playwright"]},{configName:"tanstack-query",dependencies:["@tanstack/react-query","@tanstack/eslint-plugin-query"]}],p=[...r],n={};p.length===r.length&&E.forEach(o=>{let{configName:e,dependencies:a}=o;if(chunkOCCLNRZC_js.a.plugin?.[e]!==!1){let d=[];if(a.forEach(s=>{(packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s))&&d.push(s);}),n[e]={},d.length===0){if(o.oneOfDependency!==void 0){let s=!1;o.oneOfDependency.forEach(i=>{!s&&(packageJsonUtils.hasDependency(i)||packageJsonUtils.hasDevDependency(i))&&(s=!0,n[e][i]=!0);});}o.resolve!==void 0&&o.resolve.forEach(s=>{packageJsonUtils.resolvePackage(s)!==void 0&&(n[e][s]=!0);}),o.files!==void 0&&o.files.forEach(s=>{packageJsonUtils.hasFile(s)&&(n[e][s]=!0);});}d.length===a.length?(delete n[e],p.push(e)):a.forEach(s=>{n[e][s]=packageJsonUtils.hasDependency(s)||packageJsonUtils.hasDevDependency(s);});}});var u=R,m=p,b=n;var O={"n/prefer-global/text-decoder":{"11.0.0":"off"},"n/prefer-global/text-encoder":{"11.0.0":"off"},"n/prefer-global/url":{"10.0.0":"off"},"n/prefer-global/url-search-params":{"10.0.0":"off"},"n/prefer-promises/dns":{"11.14.0":"off"},"n/prefer-promises/fs":{"11.14.0":"off"},"no-useless-catch":{"10.0.0":"off"},"prefer-destructuring":{"6.0.0":"off"},"prefer-named-capture-group":{"10.0.0":"off"},"prefer-object-spread":{"8.3.0":"off"},"prefer-rest-params":{"6.0.0":"off"},"promise/prefer-await-to-then":{"7.6.0":"off"},"unicorn/no-new-buffer":{"5.10.0":"off"},"unicorn/prefer-flat-map":{"11.0.0":"off"},"unicorn/prefer-spread":{"5.0.0":"off"}},y=O;if(!global.hasAnolilabEsLintConfigLoaded){process.env.DEBUG&&(chunkSEYYGHPU_js.b(`
|
|
@@ -20,7 +20,7 @@ var R=["best-practices","errors","style","es6","variables"],r=["compat","eslint-
|
|
|
20
20
|
Your package.json container dependencies for the "${e}" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`),Object.entries(a).forEach(([s,i])=>{i||chunkSEYYGHPU_js.b(` ${s}`);}));}),o&&(chunkSEYYGHPU_js.b(`
|
|
21
21
|
To disable this message, add the following to your package.json:`),chunkSEYYGHPU_js.b(` "anolilab": { "eslint-config": { plugin: { "plugin-name": false } } }
|
|
22
22
|
`)),chunkSEYYGHPU_js.b('To disable all logging, add the following to your eslint command call "NO_LOGS=true eslint ..."'),global.hasAnolilabEsLintConfigLoaded=!0;}var v={},f;packageJsonUtils.pkg?.engines?.node&&(f=packageJsonUtils.pkg.engines.node);Object.entries(y).forEach(([o,e])=>{Object.keys(e).sort(k__default.default.rcompare).forEach(a=>{f&&k__default.default.intersects(f,`<${a}`)&&(v[o]=e[a]);});});!global.hasAnolilabEsLintConfigPrettier&&(packageJsonUtils.hasDependency("prettier")||packageJsonUtils.hasDevDependency("prettier"))&&(global.hasAnolilabEsLintConfigPrettier=!0,chunkOCCLNRZC_js.a.info_on_disabling_prettier_conflict_rule!==!1&&chunkSEYYGHPU_js.b(`
|
|
23
|
-
Found prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier`));var L={extends:[...u.map(o=>path.join(__dirname,`./config/${o}.js`)),...m.map(o=>path.join(__dirname,`./config/plugins/${o}.js`))],globals:{...
|
|
23
|
+
Found prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier`));var L={extends:[...u.map(o=>path.join(__dirname,`./config/${o}.js`)),...m.map(o=>path.join(__dirname,`./config/plugins/${o}.js`))],globals:{...x__default.default.browser,...x__default.default.nodeBuiltin},ignorePatterns:["!.*",".git/","node_modules/","bower_components/","jspm_packages/",".npm/","lib-cov/","coverage/",".nyc_output/",".cache/","build/","dist/","tmp/","**/*.min.*","*.d.ts","pnpm-lock.yaml"],overrides:[{files:["**/migrations/*.{js,ts}"],rules:{"filenames/match-regex":"off"}},{files:["**/*.spec.{js,ts,tsx}","**/*.test.{js,ts,tsx}","**/__mocks__/*.{js,ts,tsx}","**/__tests__/*.{js,ts,tsx}","**/test/*.{js,ts,tsx}"],rules:{"no-magic-numbers":"off","sonarjs/no-duplicate-string":"off"}},{files:packageJsonUtils.packageIsTypeModule?["*.js","*.mjs"]:["*.mjs"],parser:"@babel/eslint-parser",parserOptions:{babelOptions:{plugins:["@babel/plugin-syntax-import-assertions"]},requireConfigFile:!1}}],parser:"",rules:{...v}},H=L;
|
|
24
24
|
|
|
25
25
|
module.exports = H;
|
|
26
26
|
//# sourceMappingURL=out.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/config.ts","../src/engine-node-overwrite.ts"],"names":["hasDependency","hasDevDependency","packageIsTypeModule","pkg","globals","join","semver","hasFile","resolvePackage","baseConfig","internalPluginConfig","pluginConfig","loadedPlugins","possiblePlugins","plugin","configName","dependencies","eslint_config_default","foundDependencies","dependency","foundOneOfDependency","rdependency","file","rules","pluginRules","possiblePluginRules","engineRules","engine_node_overwrite_default","consoleLog","name","consolePlugin","hasLogged","installed","configRules","nodeVersion","rule","ruleConfig","minVersion","config","src_default"],"mappings":"mHAYA,MAAO,mDAEP,OAAS,iBAAAA,EAAe,oBAAAC,EAAkB,uBAAAC,EAAqB,OAAAC,MAAW,+BAE1E,OAAOC,MAAa,UACpB,OAAS,QAAAC,MAAY,OACrB,OAAOC,MAAY,SClBnB,OAAS,iBAAAN,EAAe,oBAAAC,EAAkB,WAAAM,EAAS,kBAAAC,MAAsB,+BAKzE,IAAMC,EAAa,CAAC,iBAAkB,SAAU,QAAS,MAAO,WAAW,EAG9DC,EAAuB,CAChC,SACA,kBACA,SACA,UACA,qBACA,mBACA,OAEA,aACA,UACA,WACA,SAEA,QACA,WACA,OACA,MACA,OAGA,QACA,UACA,KACA,eACJ,EAEMC,EAA6B,CAC/B,CACI,WAAY,aACZ,aAAc,CAAC,0BAA0B,CAC7C,EACA,CACI,WAAY,QACZ,aAAc,CAAC,qBAAqB,CACxC,EACA,CACI,WAAY,QACZ,aAAc,CAAC,sBAAuB,YAAY,CACtD,EACA,CACI,WAAY,kCACZ,aAAc,CAAC,+CAA+C,EAC9D,gBAAiB,CACb,SACA,aACA,YACA,gBAEA,eACA,iBACA,gBACA,oBACA,sBACA,wBACA,cACA,mBACA,wBACA,mBACA,cACA,mBACA,uBACA,iBACA,qBACA,sBACA,mBACA,cACA,iBACA,iBACA,sBACA,wBACA,0BACA,cACA,cACA,qBACA,aACA,cACA,iBACA,mBACA,qBACA,gBACA,gBACA,iBACA,eACA,qBACA,uBACA,uBACA,yBACA,2BACA,2BACA,oBACA,sBACA,cACA,cACA,mBACA,wBACA,mBACA,eACA,iBACA,mBACA,cACA,gBACA,kBACA,eACA,mBACA,iBACA,aACA,eACA,iBACA,aACA,mBACA,uBACA,iBACA,iBACA,eACA,gBACA,cACA,kBACA,iBACA,qBACA,sBACA,iBACA,sBACA,iBACA,kBACA,mBACA,eACA,aACA,iBACA,mBACA,gBACA,qBACA,gBACA,gBACA,oBACA,iBACA,cACA,cACA,gBACA,aACA,eACA,aACA,gBACA,cACA,iBACA,eACA,oBACA,kBACA,eACA,eACA,cACA,iBACA,gBACA,cACA,kBACA,iBACA,sBACA,eACA,cACA,gBACA,kBACA,eACA,cACA,mBACA,eACA,mBACA,uBACA,mBACA,oBACA,YACA,YACA,aACA,qBACA,iBACA,uBACA,qBACA,2BACA,mBACA,kBACA,gBACA,mBACA,iBACA,iBACA,qBACA,iBACA,kBACA,oBACA,mBACA,kBACA,eACA,iBACA,qBACA,eACA,kBACA,eACA,gBACA,kBACA,kBACA,sBACA,uBACA,kBACA,uBACA,eACA,kBACA,kBACA,sBACA,qBACA,mBACA,mBACA,YACA,aACA,iBACA,kBACA,mBACA,kBACA,kBACA,uBACA,uBACA,kBACA,aACA,cACA,gBACA,eACA,aACA,eACA,cACA,gBACA,aACA,eACA,kBACA,eACA,kBACA,aACA,eACA,eACA,iBACA,gBACA,gBACA,kBACA,sBACA,oBACA,YACA,gBACA,kBACA,sBACA,iBACA,qBACA,eACA,oBACA,gBACA,qBACA,mBACA,qBACA,aACA,aACA,eACA,gBACA,kBACA,gBACA,cACA,gBACA,iBACA,mBACA,eACA,mBACA,cACA,gBACA,cACA,gBACA,gBACA,aACA,iBACA,iBACA,mBACA,mBACA,eACA,gBACA,oBACA,gBACA,kBACA,eACA,aACA,cACA,mBACA,oBACA,gBACA,kBACA,gBACA,sBACA,mBACA,mBACA,oBACA,aACA,gBACA,kBACA,kBACA,gBACA,iBACA,mBACA,eACA,mBACA,oBACA,kBACA,iBACA,iBACA,cACA,iBACA,mBACA,kBACA,kBACA,mBACA,oBACA,eACA,iBACA,iBACA,cACA,kBACA,kBACA,mBACA,cACA,mBACA,kBACA,kBACA,iBACA,yBACA,gBACA,kBACA,eACA,oBACA,cACA,gBACA,cACA,mBACA,kBACA,kBACA,oBACA,eACA,oBACA,sBACA,mBACA,mBACA,oBACA,oBACA,kBACA,eACA,gBACA,iBACJ,CACJ,EACA,CACI,WAAY,MACZ,aAAc,CAAC,mBAAmB,EAClC,gBAAiB,CAAC,SAAU,OAAQ,mBAAoB,mBAAmB,EAC3E,QAAS,CAAC,cAAe,aAAc,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","sourcesContent":["/**\n * rushstack eslint-patch is used to include plugins as dev\n * dependencies instead of imposing them as peer dependencies\n *\n * {@link https://www.npmjs.com/package/@rushstack/eslint-patch}\n * {@link https://stackoverflow.com/a/74478635/1392749}\n * {@link https://github.com/eslint/eslint/issues/3458}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-1/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-2/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-3/}\n * {@link https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new}\n */\nimport \"@rushstack/eslint-patch/modern-module-resolution\";\n\nimport { hasDependency, hasDevDependency, packageIsTypeModule, pkg } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport globals from \"globals\";\nimport { join } from \"node:path\";\nimport semver from \"semver\";\n\nimport { internalPluginConfig, pluginRules, possiblePluginRules, rules } from \"./config\";\nimport engineRules from \"./engine-node-overwrite\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\nimport { consoleLog, consolePlugin } from \"./utils/loggers\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigLoaded) {\n if (process.env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/eslint-config loaded the following plugins:\\n\");\n\n consoleLog(\" @rushstack/eslint-plugin-security\");\n internalPluginConfig\n .map((name: string) => {\n if (name === \"import\") {\n return \"i\";\n }\n\n if (name === \"node\") {\n return \"n\";\n }\n\n return name;\n })\n .forEach((plugin) => consolePlugin(plugin));\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePluginRules).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"eslint-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabEsLintConfigLoaded = true;\n}\n\nconst configRules: Linter.RulesRecord = {};\nlet nodeVersion: string | undefined;\n\nif (pkg?.engines?.[\"node\"]) {\n nodeVersion = pkg.engines[\"node\"];\n}\n\nObject.entries(engineRules).forEach(([rule, ruleConfig]) => {\n Object.keys(ruleConfig)\n .sort(semver.rcompare)\n .forEach((minVersion) => {\n if (nodeVersion && semver.intersects(nodeVersion, `<${minVersion}`)) {\n // eslint-disable-next-line security/detect-object-injection\n configRules[rule] = ruleConfig[minVersion as keyof typeof ruleConfig] as Linter.RuleEntry;\n }\n });\n});\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigPrettier && (hasDependency(\"prettier\") || hasDevDependency(\"prettier\"))) {\n global.hasAnolilabEsLintConfigPrettier = true;\n\n if (anolilabEslintConfig[\"info_on_disabling_prettier_conflict_rule\"] !== false) {\n consoleLog(\"\\nFound prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier\");\n }\n}\n\nconst config: Linter.Config = {\n // After an .eslintrc.js file is loaded, ESLint will normally continue visiting all parent folders\n // to look for other .eslintrc.js files, and also consult a personal file ~/.eslintrc.js. If any files\n // are found, their options will be merged. This is difficult for humans to understand, and it will cause\n // nondeterministic behavior if files are loaded from outside the Git working folder.\n //\n // Setting root=true causes ESLint to stop looking for other config files after the first .eslintrc.js\n extends: [\n ...rules.map((plugin) => join(__dirname, `./config/${plugin}.js`)),\n\n ...pluginRules.map((plugin) => join(__dirname, `./config/plugins/${plugin}.js`)),\n ],\n globals: {\n ...globals.browser,\n ...globals.nodeBuiltin,\n },\n ignorePatterns: [\n \"!.*\",\n\n \".git/\",\n \"node_modules/\",\n \"bower_components/\",\n \"jspm_packages/\",\n \".npm/\",\n\n \"lib-cov/\",\n \"coverage/\",\n \".nyc_output/\",\n \".cache/\",\n\n \"build/\",\n \"dist/\",\n \"tmp/\",\n\n \"**/*.min.*\",\n\n // Manually authored .d.ts files are generally used to describe external APIs that are not expected\n // to follow our coding conventions. Linting those files tends to produce a lot of spurious suppressions,\n // so we simply ignore them.\n \"*.d.ts\",\n\n \"pnpm-lock.yaml\",\n ],\n overrides: [\n {\n files: [\"**/migrations/*.{js,ts}\"],\n rules: {\n \"filenames/match-regex\": \"off\",\n },\n },\n {\n files: [\n // Test files\n \"**/*.spec.{js,ts,tsx}\",\n \"**/*.test.{js,ts,tsx}\",\n\n // Facebook convention\n \"**/__mocks__/*.{js,ts,tsx}\",\n \"**/__tests__/*.{js,ts,tsx}\",\n\n // Microsoft convention\n \"**/test/*.{js,ts,tsx}\",\n ],\n rules: {\n \"no-magic-numbers\": \"off\",\n \"sonarjs/no-duplicate-string\": \"off\",\n },\n },\n // Fixes https://github.com/eslint/eslint/discussions/15305\n {\n files: packageIsTypeModule ? [\"*.js\", \"*.mjs\"] : [\"*.mjs\"],\n parser: \"@babel/eslint-parser\",\n parserOptions: {\n babelOptions: {\n plugins: [\"@babel/plugin-syntax-import-assertions\"],\n },\n requireConfigFile: false,\n },\n },\n ],\n // Disable the parser by default\n parser: \"\",\n // is loaded.\n rules: {\n ...configRules,\n },\n};\n\nexport default config;\n","import { hasDependency, hasDevDependency, hasFile, resolvePackage } from \"@anolilab/package-json-utils\";\n\nimport type { PackageRules } from \"./types\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\n\nconst baseConfig = [\"best-practices\", \"errors\", \"style\", \"es6\", \"variables\"];\n\n// eslint-disable-next-line import/exports-last\nexport const internalPluginConfig = [\n \"compat\",\n \"eslint-comments\",\n \"import\",\n \"promise\",\n \"simple-import-sort\",\n \"no-extend-native\",\n \"node\",\n // Security Rules\n \"no-secrets\",\n \"sonarjs\",\n \"security\",\n \"regexp\",\n // file rules\n \"jsonc\",\n \"markdown\",\n \"toml\",\n \"yml\",\n \"html\",\n\n // custom rules\n \"antfu\",\n \"unicorn\",\n \"es\",\n \"perfectionist\",\n];\n\nconst pluginConfig: PackageRules = [\n {\n configName: \"array-func\",\n dependencies: [\"eslint-plugin-array-func\"],\n },\n {\n configName: \"jsdoc\",\n dependencies: [\"eslint-plugin-jsdoc\"],\n },\n {\n configName: \"tsdoc\",\n dependencies: [\"eslint-plugin-tsdoc\", \"typescript\"],\n },\n {\n configName: \"you-dont-need-lodash-underscore\",\n dependencies: [\"eslint-plugin-you-dont-need-lodash-underscore\"],\n oneOfDependency: [\n \"lodash\",\n \"underscore\",\n \"lodash-es\",\n \"@types/lodash\",\n\n \"lodash.chunk\",\n \"lodash.compact\",\n \"lodash.concat\",\n \"lodash.difference\",\n \"lodash.differenceby\",\n \"lodash.differencewith\",\n \"lodash.drop\",\n \"lodash.dropright\",\n \"lodash.droprightwhile\",\n \"lodash.dropwhile\",\n \"lodash.fill\",\n \"lodash.findindex\",\n \"lodash.findlastindex\",\n \"lodash.flatten\",\n \"lodash.flattendeep\",\n \"lodash.flattendepth\",\n \"lodash.frompairs\",\n \"lodash.head\",\n \"lodash.indexof\",\n \"lodash.initial\",\n \"lodash.intersection\",\n \"lodash.intersectionby\",\n \"lodash.intersectionwith\",\n \"lodash.join\",\n \"lodash.last\",\n \"lodash.lastindexof\",\n \"lodash.nth\",\n \"lodash.pull\",\n \"lodash.pullall\",\n \"lodash.pullallby\",\n \"lodash.pullallwith\",\n \"lodash.pullat\",\n \"lodash.remove\",\n \"lodash.reverse\",\n \"lodash.slice\",\n \"lodash.sortedindex\",\n \"lodash.sortedindexby\",\n \"lodash.sortedindexof\",\n \"lodash.sortedlastindex\",\n \"lodash.sortedlastindexby\",\n \"lodash.sortedlastindexof\",\n \"lodash.sorteduniq\",\n \"lodash.sorteduniqby\",\n \"lodash.tail\",\n \"lodash.take\",\n \"lodash.takeright\",\n \"lodash.takerightwhile\",\n \"lodash.takewhile\",\n \"lodash.union\",\n \"lodash.unionby\",\n \"lodash.unionwith\",\n \"lodash.uniq\",\n \"lodash.uniqby\",\n \"lodash.uniqwith\",\n \"lodash.unzip\",\n \"lodash.unzipwith\",\n \"lodash.without\",\n \"lodash.xor\",\n \"lodash.xorby\",\n \"lodash.xorwith\",\n \"lodash.zip\",\n \"lodash.zipobject\",\n \"lodash.zipobjectdeep\",\n \"lodash.zipwith\",\n \"lodash.countby\",\n \"lodash.every\",\n \"lodash.filter\",\n \"lodash.find\",\n \"lodash.findlast\",\n \"lodash.flatmap\",\n \"lodash.flatmapdeep\",\n \"lodash.flatmapdepth\",\n \"lodash.foreach\",\n \"lodash.foreachright\",\n \"lodash.groupby\",\n \"lodash.includes\",\n \"lodash.invokemap\",\n \"lodash.keyby\",\n \"lodash.map\",\n \"lodash.orderby\",\n \"lodash.partition\",\n \"lodash.reduce\",\n \"lodash.reduceright\",\n \"lodash.reject\",\n \"lodash.sample\",\n \"lodash.samplesize\",\n \"lodash.shuffle\",\n \"lodash.size\",\n \"lodash.some\",\n \"lodash.sortby\",\n \"lodash.now\",\n \"lodash.after\",\n \"lodash.ary\",\n \"lodash.before\",\n \"lodash.bind\",\n \"lodash.bindkey\",\n \"lodash.curry\",\n \"lodash.curryright\",\n \"lodash.debounce\",\n \"lodash.defer\",\n \"lodash.delay\",\n \"lodash.flip\",\n \"lodash.memoize\",\n \"lodash.negate\",\n \"lodash.once\",\n \"lodash.overargs\",\n \"lodash.partial\",\n \"lodash.partialright\",\n \"lodash.rearg\",\n \"lodash.rest\",\n \"lodash.spread\",\n \"lodash.throttle\",\n \"lodash.unary\",\n \"lodash.wrap\",\n \"lodash.castarray\",\n \"lodash.clone\",\n \"lodash.clonedeep\",\n \"lodash.clonedeepwith\",\n \"lodash.clonewith\",\n \"lodash.conformsto\",\n \"lodash.eq\",\n \"lodash.gt\",\n \"lodash.gte\",\n \"lodash.isarguments\",\n \"lodash.isarray\",\n \"lodash.isarraybuffer\",\n \"lodash.isarraylike\",\n \"lodash.isarraylikeobject\",\n \"lodash.isboolean\",\n \"lodash.isbuffer\",\n \"lodash.isdate\",\n \"lodash.iselement\",\n \"lodash.isempty\",\n \"lodash.isequal\",\n \"lodash.isequalwith\",\n \"lodash.iserror\",\n \"lodash.isfinite\",\n \"lodash.isfunction\",\n \"lodash.isinteger\",\n \"lodash.islength\",\n \"lodash.ismap\",\n \"lodash.ismatch\",\n \"lodash.ismatchwith\",\n \"lodash.isnan\",\n \"lodash.isnative\",\n \"lodash.isnil\",\n \"lodash.isnull\",\n \"lodash.isnumber\",\n \"lodash.isobject\",\n \"lodash.isobjectlike\",\n \"lodash.isplainobject\",\n \"lodash.isregexp\",\n \"lodash.issafeinteger\",\n \"lodash.isset\",\n \"lodash.isstring\",\n \"lodash.issymbol\",\n \"lodash.istypedarray\",\n \"lodash.isundefined\",\n \"lodash.isweakmap\",\n \"lodash.isweakset\",\n \"lodash.lt\",\n \"lodash.lte\",\n \"lodash.toarray\",\n \"lodash.tofinite\",\n \"lodash.tointeger\",\n \"lodash.tolength\",\n \"lodash.tonumber\",\n \"lodash.toplainobject\",\n \"lodash.tosafeinteger\",\n \"lodash.tostring\",\n \"lodash.add\",\n \"lodash.ceil\",\n \"lodash.divide\",\n \"lodash.floor\",\n \"lodash.max\",\n \"lodash.maxby\",\n \"lodash.mean\",\n \"lodash.meanby\",\n \"lodash.min\",\n \"lodash.minby\",\n \"lodash.multiply\",\n \"lodash.round\",\n \"lodash.subtract\",\n \"lodash.sum\",\n \"lodash.sumby\",\n \"lodash.clamp\",\n \"lodash.inrange\",\n \"lodash.random\",\n \"lodash.assign\",\n \"lodash.assignin\",\n \"lodash.assigninwith\",\n \"lodash.assignwith\",\n \"lodash.at\",\n \"lodash.create\",\n \"lodash.defaults\",\n \"lodash.defaultsdeep\",\n \"lodash.findkey\",\n \"lodash.findlastkey\",\n \"lodash.forin\",\n \"lodash.forinright\",\n \"lodash.forown\",\n \"lodash.forownright\",\n \"lodash.functions\",\n \"lodash.functionsin\",\n \"lodash.get\",\n \"lodash.has\",\n \"lodash.hasin\",\n \"lodash.invert\",\n \"lodash.invertby\",\n \"lodash.invoke\",\n \"lodash.keys\",\n \"lodash.keysin\",\n \"lodash.mapkeys\",\n \"lodash.mapvalues\",\n \"lodash.merge\",\n \"lodash.mergewith\",\n \"lodash.omit\",\n \"lodash.omitby\",\n \"lodash.pick\",\n \"lodash.pickby\",\n \"lodash.result\",\n \"lodash.set\",\n \"lodash.setwith\",\n \"lodash.topairs\",\n \"lodash.topairsin\",\n \"lodash.transform\",\n \"lodash.unset\",\n \"lodash.update\",\n \"lodash.updatewith\",\n \"lodash.values\",\n \"lodash.valuesin\",\n \"lodash.chain\",\n \"lodash.tap\",\n \"lodash.thru\",\n \"lodash.camelcase\",\n \"lodash.capitalize\",\n \"lodash.deburr\",\n \"lodash.endswith\",\n \"lodash.escape\",\n \"lodash.escaperegexp\",\n \"lodash.kebabcase\",\n \"lodash.lowercase\",\n \"lodash.lowerfirst\",\n \"lodash.pad\",\n \"lodash.padend\",\n \"lodash.padstart\",\n \"lodash.parseint\",\n \"lodash.repeat\",\n \"lodash.replace\",\n \"lodash.snakecase\",\n \"lodash.split\",\n \"lodash.startcase\",\n \"lodash.startswith\",\n \"lodash.template\",\n \"lodash.tolower\",\n \"lodash.toupper\",\n \"lodash.trim\",\n \"lodash.trimend\",\n \"lodash.trimstart\",\n \"lodash.truncate\",\n \"lodash.unescape\",\n \"lodash.uppercase\",\n \"lodash.upperfirst\",\n \"lodash.words\",\n \"lodash.attempt\",\n \"lodash.bindall\",\n \"lodash.cond\",\n \"lodash.conforms\",\n \"lodash.constant\",\n \"lodash.defaultto\",\n \"lodash.flow\",\n \"lodash.flowright\",\n \"lodash.identity\",\n \"lodash.iteratee\",\n \"lodash.matches\",\n \"lodash.matchesproperty\",\n \"lodash.method\",\n \"lodash.methodof\",\n \"lodash.mixin\",\n \"lodash.noconflict\",\n \"lodash.noop\",\n \"lodash.ntharg\",\n \"lodash.over\",\n \"lodash.overevery\",\n \"lodash.oversome\",\n \"lodash.property\",\n \"lodash.propertyof\",\n \"lodash.range\",\n \"lodash.rangeright\",\n \"lodash.runincontext\",\n \"lodash.stubarray\",\n \"lodash.stubfalse\",\n \"lodash.stubobject\",\n \"lodash.stubstring\",\n \"lodash.stubtrue\",\n \"lodash.times\",\n \"lodash.topath\",\n \"lodash.uniqueid\",\n ],\n },\n {\n configName: \"mdx\",\n dependencies: [\"eslint-plugin-mdx\"],\n oneOfDependency: [\"nextra\", \"docz\", \"@docusaurus/core\", \"gatsby-plugin-mdx\"],\n resolve: [\"@mdx-js/mdx\", \"remark-mdx\", \"@mdx-js/loader\", \"@mdx-js/rollup\", \"@mdx-js/react\"],\n },\n {\n configName: \"no-unsanitized\",\n dependencies: [\"eslint-plugin-no-unsanitized\"],\n },\n {\n configName: \"react\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react\"],\n },\n {\n configName: \"react-redux\",\n dependencies: [\"eslint-plugin-react-redux\"],\n oneOfDependency: [\"@reduxjs/toolkit\", \"redux\"],\n },\n {\n configName: \"jsx-a11y\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-jsx-a11y\"],\n },\n {\n configName: \"react-hooks\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react-hooks\"],\n },\n {\n configName: \"react-usememo\",\n dependencies: [\"react\", \"react-dom\", \"@arthurgeron/eslint-plugin-react-usememo\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment-timezone\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"eslint-plugin-tailwindcss\"],\n },\n {\n configName: \"cypress\",\n dependencies: [\"cypress\", \"eslint-plugin-cypress\"],\n },\n {\n configName: \"jest\",\n dependencies: [\"jest\", \"eslint-plugin-jest\"],\n },\n {\n configName: \"jest-dom\",\n dependencies: [\"jest\", \"@testing-library/jest-dom\", \"eslint-plugin-jest-dom\"],\n },\n {\n configName: \"jest-async\",\n dependencies: [\"jest\", \"eslint-plugin-jest-async\"],\n },\n {\n configName: \"jest-formatting\",\n dependencies: [\"jest\", \"eslint-plugin-jest-formatting\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"tailwindcss\"],\n },\n {\n configName: \"testing-library-dom\",\n dependencies: [\"@testing-library/dom\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"testing-library-react\",\n dependencies: [\"react\", \"@testing-library/react\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"typescript\",\n dependencies: [\"typescript\"],\n files: [\"tsconfig.json\", \"tsconfig.eslint.json\"],\n },\n {\n configName: \"etc\",\n dependencies: [\"typescript\", \"eslint-plugin-etc\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\", \"eslint-plugin-vitest-globals\"],\n },\n {\n configName: \"zod\",\n dependencies: [\"zod\", \"eslint-plugin-zod\"],\n },\n {\n configName: \"ava\",\n dependencies: [\"ava\", \"eslint-plugin-ava\"],\n },\n {\n configName: \"editorconfig\",\n dependencies: [\"eslint-plugin-editorconfig\"],\n files: [\".editorconfig\"],\n },\n {\n configName: \"storybook\",\n dependencies: [\"storybook\", \"eslint-plugin-storybook\"],\n },\n {\n configName: \"playwright\",\n dependencies: [\"playwright\", \"eslint-plugin-playwright\"],\n },\n {\n configName: \"tanstack-query\",\n dependencies: [\"@tanstack/react-query\", \"@tanstack/eslint-plugin-query\"],\n },\n];\n\nconst loadedPlugins: string[] = [...internalPluginConfig];\nconst possiblePlugins: Record<string, Record<string, boolean>> = {};\n\nif (loadedPlugins.length === internalPluginConfig.length) {\n // eslint-disable-next-line sonarjs/cognitive-complexity\n pluginConfig.forEach((plugin) => {\n const { configName, dependencies } = plugin;\n\n // eslint-disable-next-line security/detect-object-injection\n if ((anolilabEslintConfig as unknown as Record<string, Record<string, false | undefined>>)[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n // eslint-disable-next-line security/detect-object-injection\n possiblePlugins[configName] = {};\n\n if (foundDependencies.length === 0) {\n if (plugin.oneOfDependency !== undefined) {\n let foundOneOfDependency = false;\n\n plugin.oneOfDependency.forEach((dependency) => {\n if (!foundOneOfDependency && (hasDependency(dependency) || hasDevDependency(dependency))) {\n foundOneOfDependency = true;\n\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = true;\n }\n });\n }\n\n if (plugin.resolve !== undefined) {\n plugin.resolve.forEach((rdependency) => {\n if (resolvePackage(rdependency) !== undefined) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[rdependency] = true;\n }\n });\n }\n\n if (plugin.files !== undefined) {\n plugin.files.forEach((file) => {\n if (hasFile(file)) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[file] = true;\n }\n });\n }\n }\n\n if (foundDependencies.length === dependencies.length) {\n // eslint-disable-next-line security/detect-object-injection,@typescript-eslint/no-dynamic-delete\n delete possiblePlugins[configName];\n\n loadedPlugins.push(configName);\n } else {\n dependencies.forEach((dependency) => {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n });\n}\n\nexport const rules = baseConfig;\nexport const pluginRules = loadedPlugins;\n\nexport const possiblePluginRules = possiblePlugins;\n","/**\nDefine the rules config that are overwritten only for specific version of Node.js based on `engines.node` in package.json or the `nodeVersion` option.\n\nThe keys are rule names and the values are an Object with a valid semver (`4.0.0` is valid `4` is not) as keys and the rule configuration as values.\n\nEach entry define the rule config and the maximum Node.js version for which to set it.\nThe entry with the lowest version that is compliant with the `engines.node`/`nodeVersion` range will be used.\n\n@type {Object}\n\n@example\n```\n{\n 'plugin/rule': {\n '6.0.0': ['error', {prop: 'node-6-conf'}],\n '8.0.0': ['error', {prop: 'node-8-conf'}]\n }\n}\n```\n\nWith `engines.node` set to `>=4` the rule `plugin/rule` will not be used.\nWith `engines.node` set to `>=6` the rule `plugin/rule` will be used with the config `{prop: 'node-6-conf'}`.\nWith `engines.node` set to `>=8` the rule `plugin/rule` will be used with the config `{prop: 'node-8-conf'}`.\n*/\nconst engineRules = {\n \"n/prefer-global/text-decoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/text-encoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/url\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-global/url-search-params\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-promises/dns\": {\n \"11.14.0\": \"off\",\n },\n \"n/prefer-promises/fs\": {\n \"11.14.0\": \"off\",\n },\n \"no-useless-catch\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-destructuring\": {\n \"6.0.0\": \"off\",\n },\n \"prefer-named-capture-group\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-object-spread\": {\n \"8.3.0\": \"off\",\n },\n \"prefer-rest-params\": {\n \"6.0.0\": \"off\",\n },\n \"promise/prefer-await-to-then\": {\n \"7.6.0\": \"off\",\n },\n \"unicorn/no-new-buffer\": {\n \"5.10.0\": \"off\",\n },\n \"unicorn/prefer-flat-map\": {\n \"11.0.0\": \"off\",\n },\n \"unicorn/prefer-spread\": {\n \"5.0.0\": \"off\",\n },\n};\n\nexport default engineRules;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/config.ts","../src/engine-node-overwrite.ts"],"names":["join","hasDependency","hasDevDependency","packageIsTypeModule","pkg","globals","semver","hasFile","resolvePackage","baseConfig","internalPluginConfig","pluginConfig","loadedPlugins","possiblePlugins","plugin","configName","dependencies","eslint_config_default","foundDependencies","dependency","foundOneOfDependency","rdependency","file","rules","pluginRules","possiblePluginRules","engineRules","engine_node_overwrite_default","consoleLog","name","consolePlugin","hasLogged","installed","configRules","nodeVersion","rule","ruleConfig","minVersion","config","src_default"],"mappings":"mHAYA,MAAO,mDAEP,OAAS,QAAAA,MAAY,OAErB,OAAS,iBAAAC,EAAe,oBAAAC,EAAkB,uBAAAC,EAAqB,OAAAC,MAAW,+BAE1E,OAAOC,MAAa,UACpB,OAAOC,MAAY,SCnBnB,OAAS,iBAAAL,EAAe,oBAAAC,EAAkB,WAAAK,EAAS,kBAAAC,MAAsB,+BAKzE,IAAMC,EAAa,CAAC,iBAAkB,SAAU,QAAS,MAAO,WAAW,EAG9DC,EAAuB,CAChC,SACA,kBACA,SACA,UACA,qBACA,mBACA,OAEA,aACA,UACA,WACA,SAEA,QACA,WACA,OACA,MACA,OAGA,QACA,UACA,KACA,eACJ,EAEMC,EAA6B,CAC/B,CACI,WAAY,aACZ,aAAc,CAAC,0BAA0B,CAC7C,EACA,CACI,WAAY,QACZ,aAAc,CAAC,qBAAqB,CACxC,EACA,CACI,WAAY,QACZ,aAAc,CAAC,sBAAuB,YAAY,CACtD,EACA,CACI,WAAY,kCACZ,aAAc,CAAC,+CAA+C,EAC9D,gBAAiB,CACb,SACA,aACA,YACA,gBAEA,eACA,iBACA,gBACA,oBACA,sBACA,wBACA,cACA,mBACA,wBACA,mBACA,cACA,mBACA,uBACA,iBACA,qBACA,sBACA,mBACA,cACA,iBACA,iBACA,sBACA,wBACA,0BACA,cACA,cACA,qBACA,aACA,cACA,iBACA,mBACA,qBACA,gBACA,gBACA,iBACA,eACA,qBACA,uBACA,uBACA,yBACA,2BACA,2BACA,oBACA,sBACA,cACA,cACA,mBACA,wBACA,mBACA,eACA,iBACA,mBACA,cACA,gBACA,kBACA,eACA,mBACA,iBACA,aACA,eACA,iBACA,aACA,mBACA,uBACA,iBACA,iBACA,eACA,gBACA,cACA,kBACA,iBACA,qBACA,sBACA,iBACA,sBACA,iBACA,kBACA,mBACA,eACA,aACA,iBACA,mBACA,gBACA,qBACA,gBACA,gBACA,oBACA,iBACA,cACA,cACA,gBACA,aACA,eACA,aACA,gBACA,cACA,iBACA,eACA,oBACA,kBACA,eACA,eACA,cACA,iBACA,gBACA,cACA,kBACA,iBACA,sBACA,eACA,cACA,gBACA,kBACA,eACA,cACA,mBACA,eACA,mBACA,uBACA,mBACA,oBACA,YACA,YACA,aACA,qBACA,iBACA,uBACA,qBACA,2BACA,mBACA,kBACA,gBACA,mBACA,iBACA,iBACA,qBACA,iBACA,kBACA,oBACA,mBACA,kBACA,eACA,iBACA,qBACA,eACA,kBACA,eACA,gBACA,kBACA,kBACA,sBACA,uBACA,kBACA,uBACA,eACA,kBACA,kBACA,sBACA,qBACA,mBACA,mBACA,YACA,aACA,iBACA,kBACA,mBACA,kBACA,kBACA,uBACA,uBACA,kBACA,aACA,cACA,gBACA,eACA,aACA,eACA,cACA,gBACA,aACA,eACA,kBACA,eACA,kBACA,aACA,eACA,eACA,iBACA,gBACA,gBACA,kBACA,sBACA,oBACA,YACA,gBACA,kBACA,sBACA,iBACA,qBACA,eACA,oBACA,gBACA,qBACA,mBACA,qBACA,aACA,aACA,eACA,gBACA,kBACA,gBACA,cACA,gBACA,iBACA,mBACA,eACA,mBACA,cACA,gBACA,cACA,gBACA,gBACA,aACA,iBACA,iBACA,mBACA,mBACA,eACA,gBACA,oBACA,gBACA,kBACA,eACA,aACA,cACA,mBACA,oBACA,gBACA,kBACA,gBACA,sBACA,mBACA,mBACA,oBACA,aACA,gBACA,kBACA,kBACA,gBACA,iBACA,mBACA,eACA,mBACA,oBACA,kBACA,iBACA,iBACA,cACA,iBACA,mBACA,kBACA,kBACA,mBACA,oBACA,eACA,iBACA,iBACA,cACA,kBACA,kBACA,mBACA,cACA,mBACA,kBACA,kBACA,iBACA,yBACA,gBACA,kBACA,eACA,oBACA,cACA,gBACA,cACA,mBACA,kBACA,kBACA,oBACA,eACA,oBACA,sBACA,mBACA,mBACA,oBACA,oBACA,kBACA,eACA,gBACA,iBACJ,CACJ,EACA,CACI,WAAY,MACZ,aAAc,CAAC,mBAAmB,EAClC,gBAAiB,CAAC,SAAU,OAAQ,mBAAoB,mBAAmB,EAC3E,QAAS,CAAC,cAAe,aAAc,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","sourcesContent":["/**\n * rushstack eslint-patch is used to include plugins as dev\n * dependencies instead of imposing them as peer dependencies\n *\n * {@link https://www.npmjs.com/package/@rushstack/eslint-patch}\n * {@link https://stackoverflow.com/a/74478635/1392749}\n * {@link https://github.com/eslint/eslint/issues/3458}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-1/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-2/}\n * {@link https://eslint.org/blog/2022/08/new-config-system-part-3/}\n * {@link https://eslint.org/docs/latest/user-guide/configuring/configuration-files-new}\n */\nimport \"@rushstack/eslint-patch/modern-module-resolution\";\n\nimport { join } from \"node:path\";\n\nimport { hasDependency, hasDevDependency, packageIsTypeModule, pkg } from \"@anolilab/package-json-utils\";\nimport type { Linter } from \"eslint\";\nimport globals from \"globals\";\nimport semver from \"semver\";\n\nimport { internalPluginConfig, pluginRules, possiblePluginRules, rules } from \"./config\";\nimport engineRules from \"./engine-node-overwrite\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\nimport { consoleLog, consolePlugin } from \"./utils/loggers\";\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigLoaded) {\n if (process.env[\"DEBUG\"]) {\n consoleLog(\"\\n@anolilab/eslint-config loaded the following plugins:\\n\");\n\n consoleLog(\" @rushstack/eslint-plugin-security\");\n internalPluginConfig\n .map((name: string) => {\n if (name === \"import\") {\n return \"i\";\n }\n\n if (name === \"node\") {\n return \"n\";\n }\n\n return name;\n })\n .forEach((plugin) => consolePlugin(plugin));\n }\n\n let hasLogged = false;\n\n Object.entries(possiblePluginRules).forEach(([plugin, dependencies]) => {\n const hasOneDependency = Object.values(dependencies).some(Boolean);\n\n if (hasOneDependency) {\n hasLogged = true;\n\n consoleLog(\n `\\nYour package.json container dependencies for the \"${plugin}\" eslint-plugin, please add the following dependencies with your chosen package manager to enable this plugin:`,\n );\n\n Object.entries(dependencies).forEach(([dependency, installed]) => {\n if (!installed) {\n consoleLog(` ${dependency}`);\n }\n });\n }\n });\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (hasLogged) {\n consoleLog(\"\\nTo disable this message, add the following to your package.json:\");\n consoleLog(' \"anolilab\": { \"eslint-config\": { plugin: { \"plugin-name\": false } } }\\n');\n }\n\n consoleLog('To disable all logging, add the following to your eslint command call \"NO_LOGS=true eslint ...\"');\n\n global.hasAnolilabEsLintConfigLoaded = true;\n}\n\nconst configRules: Linter.RulesRecord = {};\nlet nodeVersion: string | undefined;\n\nif (pkg?.engines?.[\"node\"]) {\n nodeVersion = pkg.engines[\"node\"];\n}\n\nObject.entries(engineRules).forEach(([rule, ruleConfig]) => {\n Object.keys(ruleConfig)\n .sort(semver.rcompare)\n .forEach((minVersion) => {\n if (nodeVersion && semver.intersects(nodeVersion, `<${minVersion}`)) {\n // eslint-disable-next-line security/detect-object-injection\n configRules[rule] = ruleConfig[minVersion as keyof typeof ruleConfig] as Linter.RuleEntry;\n }\n });\n});\n\n// Workaround VS Code trying to run this file twice!\nif (!global.hasAnolilabEsLintConfigPrettier && (hasDependency(\"prettier\") || hasDevDependency(\"prettier\"))) {\n global.hasAnolilabEsLintConfigPrettier = true;\n\n if (anolilabEslintConfig[\"info_on_disabling_prettier_conflict_rule\"] !== false) {\n consoleLog(\"\\nFound prettier as dependency, disabling some rules to fix wrong behavior of the rule with eslint and prettier\");\n }\n}\n\nconst config: Linter.Config = {\n // After an .eslintrc.js file is loaded, ESLint will normally continue visiting all parent folders\n // to look for other .eslintrc.js files, and also consult a personal file ~/.eslintrc.js. If any files\n // are found, their options will be merged. This is difficult for humans to understand, and it will cause\n // nondeterministic behavior if files are loaded from outside the Git working folder.\n //\n // Setting root=true causes ESLint to stop looking for other config files after the first .eslintrc.js\n extends: [\n ...rules.map((plugin) => join(__dirname, `./config/${plugin}.js`)),\n\n ...pluginRules.map((plugin) => join(__dirname, `./config/plugins/${plugin}.js`)),\n ],\n globals: {\n ...globals.browser,\n ...globals.nodeBuiltin,\n },\n ignorePatterns: [\n \"!.*\",\n\n \".git/\",\n \"node_modules/\",\n \"bower_components/\",\n \"jspm_packages/\",\n \".npm/\",\n\n \"lib-cov/\",\n \"coverage/\",\n \".nyc_output/\",\n \".cache/\",\n\n \"build/\",\n \"dist/\",\n \"tmp/\",\n\n \"**/*.min.*\",\n\n // Manually authored .d.ts files are generally used to describe external APIs that are not expected\n // to follow our coding conventions. Linting those files tends to produce a lot of spurious suppressions,\n // so we simply ignore them.\n \"*.d.ts\",\n\n \"pnpm-lock.yaml\",\n ],\n overrides: [\n {\n files: [\"**/migrations/*.{js,ts}\"],\n rules: {\n \"filenames/match-regex\": \"off\",\n },\n },\n {\n files: [\n // Test files\n \"**/*.spec.{js,ts,tsx}\",\n \"**/*.test.{js,ts,tsx}\",\n\n // Facebook convention\n \"**/__mocks__/*.{js,ts,tsx}\",\n \"**/__tests__/*.{js,ts,tsx}\",\n\n // Microsoft convention\n \"**/test/*.{js,ts,tsx}\",\n ],\n rules: {\n \"no-magic-numbers\": \"off\",\n \"sonarjs/no-duplicate-string\": \"off\",\n },\n },\n // Fixes https://github.com/eslint/eslint/discussions/15305\n {\n files: packageIsTypeModule ? [\"*.js\", \"*.mjs\"] : [\"*.mjs\"],\n parser: \"@babel/eslint-parser\",\n parserOptions: {\n babelOptions: {\n plugins: [\"@babel/plugin-syntax-import-assertions\"],\n },\n requireConfigFile: false,\n },\n },\n ],\n // Disable the parser by default\n parser: \"\",\n // is loaded.\n rules: {\n ...configRules,\n },\n};\n\nexport default config;\n","import { hasDependency, hasDevDependency, hasFile, resolvePackage } from \"@anolilab/package-json-utils\";\n\nimport type { PackageRules } from \"./types\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\n\nconst baseConfig = [\"best-practices\", \"errors\", \"style\", \"es6\", \"variables\"];\n\n// eslint-disable-next-line import/exports-last\nexport const internalPluginConfig = [\n \"compat\",\n \"eslint-comments\",\n \"import\",\n \"promise\",\n \"simple-import-sort\",\n \"no-extend-native\",\n \"node\",\n // Security Rules\n \"no-secrets\",\n \"sonarjs\",\n \"security\",\n \"regexp\",\n // file rules\n \"jsonc\",\n \"markdown\",\n \"toml\",\n \"yml\",\n \"html\",\n\n // custom rules\n \"antfu\",\n \"unicorn\",\n \"es\",\n \"perfectionist\",\n];\n\nconst pluginConfig: PackageRules = [\n {\n configName: \"array-func\",\n dependencies: [\"eslint-plugin-array-func\"],\n },\n {\n configName: \"jsdoc\",\n dependencies: [\"eslint-plugin-jsdoc\"],\n },\n {\n configName: \"tsdoc\",\n dependencies: [\"eslint-plugin-tsdoc\", \"typescript\"],\n },\n {\n configName: \"you-dont-need-lodash-underscore\",\n dependencies: [\"eslint-plugin-you-dont-need-lodash-underscore\"],\n oneOfDependency: [\n \"lodash\",\n \"underscore\",\n \"lodash-es\",\n \"@types/lodash\",\n\n \"lodash.chunk\",\n \"lodash.compact\",\n \"lodash.concat\",\n \"lodash.difference\",\n \"lodash.differenceby\",\n \"lodash.differencewith\",\n \"lodash.drop\",\n \"lodash.dropright\",\n \"lodash.droprightwhile\",\n \"lodash.dropwhile\",\n \"lodash.fill\",\n \"lodash.findindex\",\n \"lodash.findlastindex\",\n \"lodash.flatten\",\n \"lodash.flattendeep\",\n \"lodash.flattendepth\",\n \"lodash.frompairs\",\n \"lodash.head\",\n \"lodash.indexof\",\n \"lodash.initial\",\n \"lodash.intersection\",\n \"lodash.intersectionby\",\n \"lodash.intersectionwith\",\n \"lodash.join\",\n \"lodash.last\",\n \"lodash.lastindexof\",\n \"lodash.nth\",\n \"lodash.pull\",\n \"lodash.pullall\",\n \"lodash.pullallby\",\n \"lodash.pullallwith\",\n \"lodash.pullat\",\n \"lodash.remove\",\n \"lodash.reverse\",\n \"lodash.slice\",\n \"lodash.sortedindex\",\n \"lodash.sortedindexby\",\n \"lodash.sortedindexof\",\n \"lodash.sortedlastindex\",\n \"lodash.sortedlastindexby\",\n \"lodash.sortedlastindexof\",\n \"lodash.sorteduniq\",\n \"lodash.sorteduniqby\",\n \"lodash.tail\",\n \"lodash.take\",\n \"lodash.takeright\",\n \"lodash.takerightwhile\",\n \"lodash.takewhile\",\n \"lodash.union\",\n \"lodash.unionby\",\n \"lodash.unionwith\",\n \"lodash.uniq\",\n \"lodash.uniqby\",\n \"lodash.uniqwith\",\n \"lodash.unzip\",\n \"lodash.unzipwith\",\n \"lodash.without\",\n \"lodash.xor\",\n \"lodash.xorby\",\n \"lodash.xorwith\",\n \"lodash.zip\",\n \"lodash.zipobject\",\n \"lodash.zipobjectdeep\",\n \"lodash.zipwith\",\n \"lodash.countby\",\n \"lodash.every\",\n \"lodash.filter\",\n \"lodash.find\",\n \"lodash.findlast\",\n \"lodash.flatmap\",\n \"lodash.flatmapdeep\",\n \"lodash.flatmapdepth\",\n \"lodash.foreach\",\n \"lodash.foreachright\",\n \"lodash.groupby\",\n \"lodash.includes\",\n \"lodash.invokemap\",\n \"lodash.keyby\",\n \"lodash.map\",\n \"lodash.orderby\",\n \"lodash.partition\",\n \"lodash.reduce\",\n \"lodash.reduceright\",\n \"lodash.reject\",\n \"lodash.sample\",\n \"lodash.samplesize\",\n \"lodash.shuffle\",\n \"lodash.size\",\n \"lodash.some\",\n \"lodash.sortby\",\n \"lodash.now\",\n \"lodash.after\",\n \"lodash.ary\",\n \"lodash.before\",\n \"lodash.bind\",\n \"lodash.bindkey\",\n \"lodash.curry\",\n \"lodash.curryright\",\n \"lodash.debounce\",\n \"lodash.defer\",\n \"lodash.delay\",\n \"lodash.flip\",\n \"lodash.memoize\",\n \"lodash.negate\",\n \"lodash.once\",\n \"lodash.overargs\",\n \"lodash.partial\",\n \"lodash.partialright\",\n \"lodash.rearg\",\n \"lodash.rest\",\n \"lodash.spread\",\n \"lodash.throttle\",\n \"lodash.unary\",\n \"lodash.wrap\",\n \"lodash.castarray\",\n \"lodash.clone\",\n \"lodash.clonedeep\",\n \"lodash.clonedeepwith\",\n \"lodash.clonewith\",\n \"lodash.conformsto\",\n \"lodash.eq\",\n \"lodash.gt\",\n \"lodash.gte\",\n \"lodash.isarguments\",\n \"lodash.isarray\",\n \"lodash.isarraybuffer\",\n \"lodash.isarraylike\",\n \"lodash.isarraylikeobject\",\n \"lodash.isboolean\",\n \"lodash.isbuffer\",\n \"lodash.isdate\",\n \"lodash.iselement\",\n \"lodash.isempty\",\n \"lodash.isequal\",\n \"lodash.isequalwith\",\n \"lodash.iserror\",\n \"lodash.isfinite\",\n \"lodash.isfunction\",\n \"lodash.isinteger\",\n \"lodash.islength\",\n \"lodash.ismap\",\n \"lodash.ismatch\",\n \"lodash.ismatchwith\",\n \"lodash.isnan\",\n \"lodash.isnative\",\n \"lodash.isnil\",\n \"lodash.isnull\",\n \"lodash.isnumber\",\n \"lodash.isobject\",\n \"lodash.isobjectlike\",\n \"lodash.isplainobject\",\n \"lodash.isregexp\",\n \"lodash.issafeinteger\",\n \"lodash.isset\",\n \"lodash.isstring\",\n \"lodash.issymbol\",\n \"lodash.istypedarray\",\n \"lodash.isundefined\",\n \"lodash.isweakmap\",\n \"lodash.isweakset\",\n \"lodash.lt\",\n \"lodash.lte\",\n \"lodash.toarray\",\n \"lodash.tofinite\",\n \"lodash.tointeger\",\n \"lodash.tolength\",\n \"lodash.tonumber\",\n \"lodash.toplainobject\",\n \"lodash.tosafeinteger\",\n \"lodash.tostring\",\n \"lodash.add\",\n \"lodash.ceil\",\n \"lodash.divide\",\n \"lodash.floor\",\n \"lodash.max\",\n \"lodash.maxby\",\n \"lodash.mean\",\n \"lodash.meanby\",\n \"lodash.min\",\n \"lodash.minby\",\n \"lodash.multiply\",\n \"lodash.round\",\n \"lodash.subtract\",\n \"lodash.sum\",\n \"lodash.sumby\",\n \"lodash.clamp\",\n \"lodash.inrange\",\n \"lodash.random\",\n \"lodash.assign\",\n \"lodash.assignin\",\n \"lodash.assigninwith\",\n \"lodash.assignwith\",\n \"lodash.at\",\n \"lodash.create\",\n \"lodash.defaults\",\n \"lodash.defaultsdeep\",\n \"lodash.findkey\",\n \"lodash.findlastkey\",\n \"lodash.forin\",\n \"lodash.forinright\",\n \"lodash.forown\",\n \"lodash.forownright\",\n \"lodash.functions\",\n \"lodash.functionsin\",\n \"lodash.get\",\n \"lodash.has\",\n \"lodash.hasin\",\n \"lodash.invert\",\n \"lodash.invertby\",\n \"lodash.invoke\",\n \"lodash.keys\",\n \"lodash.keysin\",\n \"lodash.mapkeys\",\n \"lodash.mapvalues\",\n \"lodash.merge\",\n \"lodash.mergewith\",\n \"lodash.omit\",\n \"lodash.omitby\",\n \"lodash.pick\",\n \"lodash.pickby\",\n \"lodash.result\",\n \"lodash.set\",\n \"lodash.setwith\",\n \"lodash.topairs\",\n \"lodash.topairsin\",\n \"lodash.transform\",\n \"lodash.unset\",\n \"lodash.update\",\n \"lodash.updatewith\",\n \"lodash.values\",\n \"lodash.valuesin\",\n \"lodash.chain\",\n \"lodash.tap\",\n \"lodash.thru\",\n \"lodash.camelcase\",\n \"lodash.capitalize\",\n \"lodash.deburr\",\n \"lodash.endswith\",\n \"lodash.escape\",\n \"lodash.escaperegexp\",\n \"lodash.kebabcase\",\n \"lodash.lowercase\",\n \"lodash.lowerfirst\",\n \"lodash.pad\",\n \"lodash.padend\",\n \"lodash.padstart\",\n \"lodash.parseint\",\n \"lodash.repeat\",\n \"lodash.replace\",\n \"lodash.snakecase\",\n \"lodash.split\",\n \"lodash.startcase\",\n \"lodash.startswith\",\n \"lodash.template\",\n \"lodash.tolower\",\n \"lodash.toupper\",\n \"lodash.trim\",\n \"lodash.trimend\",\n \"lodash.trimstart\",\n \"lodash.truncate\",\n \"lodash.unescape\",\n \"lodash.uppercase\",\n \"lodash.upperfirst\",\n \"lodash.words\",\n \"lodash.attempt\",\n \"lodash.bindall\",\n \"lodash.cond\",\n \"lodash.conforms\",\n \"lodash.constant\",\n \"lodash.defaultto\",\n \"lodash.flow\",\n \"lodash.flowright\",\n \"lodash.identity\",\n \"lodash.iteratee\",\n \"lodash.matches\",\n \"lodash.matchesproperty\",\n \"lodash.method\",\n \"lodash.methodof\",\n \"lodash.mixin\",\n \"lodash.noconflict\",\n \"lodash.noop\",\n \"lodash.ntharg\",\n \"lodash.over\",\n \"lodash.overevery\",\n \"lodash.oversome\",\n \"lodash.property\",\n \"lodash.propertyof\",\n \"lodash.range\",\n \"lodash.rangeright\",\n \"lodash.runincontext\",\n \"lodash.stubarray\",\n \"lodash.stubfalse\",\n \"lodash.stubobject\",\n \"lodash.stubstring\",\n \"lodash.stubtrue\",\n \"lodash.times\",\n \"lodash.topath\",\n \"lodash.uniqueid\",\n ],\n },\n {\n configName: \"mdx\",\n dependencies: [\"eslint-plugin-mdx\"],\n oneOfDependency: [\"nextra\", \"docz\", \"@docusaurus/core\", \"gatsby-plugin-mdx\"],\n resolve: [\"@mdx-js/mdx\", \"remark-mdx\", \"@mdx-js/loader\", \"@mdx-js/rollup\", \"@mdx-js/react\"],\n },\n {\n configName: \"no-unsanitized\",\n dependencies: [\"eslint-plugin-no-unsanitized\"],\n },\n {\n configName: \"react\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react\"],\n },\n {\n configName: \"react-redux\",\n dependencies: [\"eslint-plugin-react-redux\"],\n oneOfDependency: [\"@reduxjs/toolkit\", \"redux\"],\n },\n {\n configName: \"jsx-a11y\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-jsx-a11y\"],\n },\n {\n configName: \"react-hooks\",\n dependencies: [\"react\", \"react-dom\", \"eslint-plugin-react-hooks\"],\n },\n {\n configName: \"react-usememo\",\n dependencies: [\"react\", \"react-dom\", \"@arthurgeron/eslint-plugin-react-usememo\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"you-dont-need-momentjs\",\n dependencies: [\"moment-timezone\", \"eslint-plugin-you-dont-need-momentjs\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"eslint-plugin-tailwindcss\"],\n },\n {\n configName: \"cypress\",\n dependencies: [\"cypress\", \"eslint-plugin-cypress\"],\n },\n {\n configName: \"jest\",\n dependencies: [\"jest\", \"eslint-plugin-jest\"],\n },\n {\n configName: \"jest-dom\",\n dependencies: [\"jest\", \"@testing-library/jest-dom\", \"eslint-plugin-jest-dom\"],\n },\n {\n configName: \"jest-async\",\n dependencies: [\"jest\", \"eslint-plugin-jest-async\"],\n },\n {\n configName: \"jest-formatting\",\n dependencies: [\"jest\", \"eslint-plugin-jest-formatting\"],\n },\n {\n configName: \"tailwindcss\",\n dependencies: [\"tailwindcss\"],\n },\n {\n configName: \"testing-library-dom\",\n dependencies: [\"@testing-library/dom\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"testing-library-react\",\n dependencies: [\"react\", \"@testing-library/react\", \"eslint-plugin-testing-library\"],\n },\n {\n configName: \"typescript\",\n dependencies: [\"typescript\"],\n files: [\"tsconfig.json\", \"tsconfig.eslint.json\"],\n },\n {\n configName: \"etc\",\n dependencies: [\"typescript\", \"eslint-plugin-etc\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\"],\n },\n {\n configName: \"vitest\",\n dependencies: [\"vitest\", \"eslint-plugin-vitest\", \"eslint-plugin-vitest-globals\"],\n },\n {\n configName: \"zod\",\n dependencies: [\"zod\", \"eslint-plugin-zod\"],\n },\n {\n configName: \"ava\",\n dependencies: [\"ava\", \"eslint-plugin-ava\"],\n },\n {\n configName: \"editorconfig\",\n dependencies: [\"eslint-plugin-editorconfig\"],\n files: [\".editorconfig\"],\n },\n {\n configName: \"storybook\",\n dependencies: [\"storybook\", \"eslint-plugin-storybook\"],\n },\n {\n configName: \"playwright\",\n dependencies: [\"playwright\", \"eslint-plugin-playwright\"],\n },\n {\n configName: \"tanstack-query\",\n dependencies: [\"@tanstack/react-query\", \"@tanstack/eslint-plugin-query\"],\n },\n];\n\nconst loadedPlugins: string[] = [...internalPluginConfig];\nconst possiblePlugins: Record<string, Record<string, boolean>> = {};\n\nif (loadedPlugins.length === internalPluginConfig.length) {\n // eslint-disable-next-line sonarjs/cognitive-complexity\n pluginConfig.forEach((plugin) => {\n const { configName, dependencies } = plugin;\n\n // eslint-disable-next-line security/detect-object-injection\n if ((anolilabEslintConfig as unknown as Record<string, Record<string, false | undefined>>)[\"plugin\"]?.[configName] !== false) {\n const foundDependencies = [];\n\n dependencies.forEach((dependency) => {\n if (hasDependency(dependency) || hasDevDependency(dependency)) {\n foundDependencies.push(dependency);\n }\n });\n\n // eslint-disable-next-line security/detect-object-injection\n possiblePlugins[configName] = {};\n\n if (foundDependencies.length === 0) {\n if (plugin.oneOfDependency !== undefined) {\n let foundOneOfDependency = false;\n\n plugin.oneOfDependency.forEach((dependency) => {\n if (!foundOneOfDependency && (hasDependency(dependency) || hasDevDependency(dependency))) {\n foundOneOfDependency = true;\n\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = true;\n }\n });\n }\n\n if (plugin.resolve !== undefined) {\n plugin.resolve.forEach((rdependency) => {\n if (resolvePackage(rdependency) !== undefined) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[rdependency] = true;\n }\n });\n }\n\n if (plugin.files !== undefined) {\n plugin.files.forEach((file) => {\n if (hasFile(file)) {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[file] = true;\n }\n });\n }\n }\n\n if (foundDependencies.length === dependencies.length) {\n // eslint-disable-next-line security/detect-object-injection,@typescript-eslint/no-dynamic-delete\n delete possiblePlugins[configName];\n\n loadedPlugins.push(configName);\n } else {\n dependencies.forEach((dependency) => {\n // eslint-disable-next-line security/detect-object-injection\n (possiblePlugins[configName] as Record<string, boolean>)[dependency] = hasDependency(dependency) || hasDevDependency(dependency);\n });\n }\n }\n });\n}\n\nexport const rules = baseConfig;\nexport const pluginRules = loadedPlugins;\n\nexport const possiblePluginRules = possiblePlugins;\n","/**\nDefine the rules config that are overwritten only for specific version of Node.js based on `engines.node` in package.json or the `nodeVersion` option.\n\nThe keys are rule names and the values are an Object with a valid semver (`4.0.0` is valid `4` is not) as keys and the rule configuration as values.\n\nEach entry define the rule config and the maximum Node.js version for which to set it.\nThe entry with the lowest version that is compliant with the `engines.node`/`nodeVersion` range will be used.\n\n@type {Object}\n\n@example\n```\n{\n 'plugin/rule': {\n '6.0.0': ['error', {prop: 'node-6-conf'}],\n '8.0.0': ['error', {prop: 'node-8-conf'}]\n }\n}\n```\n\nWith `engines.node` set to `>=4` the rule `plugin/rule` will not be used.\nWith `engines.node` set to `>=6` the rule `plugin/rule` will be used with the config `{prop: 'node-6-conf'}`.\nWith `engines.node` set to `>=8` the rule `plugin/rule` will be used with the config `{prop: 'node-8-conf'}`.\n*/\nconst engineRules = {\n \"n/prefer-global/text-decoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/text-encoder\": {\n \"11.0.0\": \"off\",\n },\n \"n/prefer-global/url\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-global/url-search-params\": {\n \"10.0.0\": \"off\",\n },\n \"n/prefer-promises/dns\": {\n \"11.14.0\": \"off\",\n },\n \"n/prefer-promises/fs\": {\n \"11.14.0\": \"off\",\n },\n \"no-useless-catch\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-destructuring\": {\n \"6.0.0\": \"off\",\n },\n \"prefer-named-capture-group\": {\n \"10.0.0\": \"off\",\n },\n \"prefer-object-spread\": {\n \"8.3.0\": \"off\",\n },\n \"prefer-rest-params\": {\n \"6.0.0\": \"off\",\n },\n \"promise/prefer-await-to-then\": {\n \"7.6.0\": \"off\",\n },\n \"unicorn/no-new-buffer\": {\n \"5.10.0\": \"off\",\n },\n \"unicorn/prefer-flat-map\": {\n \"11.0.0\": \"off\",\n },\n \"unicorn/prefer-spread\": {\n \"5.0.0\": \"off\",\n },\n};\n\nexport default engineRules;\n"]}
|
package/dist/postinstall.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkMFE6DF6Y_js = require('./chunk-MFE6DF6Y.js');
|
|
4
|
-
var packageJsonUtils = require('@anolilab/package-json-utils');
|
|
5
4
|
var fs = require('fs');
|
|
6
5
|
var path = require('path');
|
|
7
6
|
var util = require('util');
|
|
7
|
+
var packageJsonUtils = require('@anolilab/package-json-utils');
|
|
8
8
|
var process = require('process');
|
|
9
9
|
|
|
10
|
-
var
|
|
11
|
-
`);o=".eslintrc",
|
|
10
|
+
var C,O,m,g=chunkMFE6DF6Y_js.a(()=>{C=util.promisify(fs.writeFile),O=async()=>{let t=path.join(packageJsonUtils.projectPath,".eslintignore");if(fs.existsSync(t)){console.warn("\u26A0\uFE0F .eslintignore already exists");return}await C(t,"","utf8");},m=O;});var k,o,E,d,w=chunkMFE6DF6Y_js.a(()=>{k=util.promisify(fs.writeFile);console.log("Configuring @anolilab/eslint-config",packageJsonUtils.projectPath,`
|
|
11
|
+
`);o=".eslintrc",E=async()=>{for(let s of [o,`${o}.js`,`${o}.cjs`,`${o}.json`,`${o}.yaml`,`${o}.yml`])if(fs.existsSync(path.join(packageJsonUtils.projectPath,s))){console.warn(`\u26A0\uFE0F ${s} already exists;
|
|
12
12
|
Make sure that it includes the following for @anolilab/eslint-config'
|
|
13
13
|
to work as it should: { extends: ["@anolilab/eslint-config"] }.`);return}let t=path.join(packageJsonUtils.projectPath,`.eslintrc.${packageJsonUtils.packageIsTypeModule?"c":""}js`),a="",c=`
|
|
14
14
|
parserOptions: {
|
|
@@ -66,8 +66,8 @@ module.exports = defineConfig({
|
|
|
66
66
|
},
|
|
67
67
|
],
|
|
68
68
|
});
|
|
69
|
-
`;await
|
|
70
|
-
`);(async()=>{try{await Promise.all([
|
|
69
|
+
`;await k(t,h,"utf8");},d=E;});var J=chunkMFE6DF6Y_js.b(()=>{g();w();process.env.CI&&process.exit(0);console.log("Configuring @anolilab/eslint-config",packageJsonUtils.projectPath,`
|
|
70
|
+
`);(async()=>{try{await Promise.all([d(),m()]),console.log("\u{1F60E} Everything went well, have fun!"),process.exit(0);}catch(t){console.log("\u{1F62C} something went wrong:"),console.error(t),process.exit(1);}})();});var postinstall = J();
|
|
71
71
|
|
|
72
72
|
module.exports = postinstall;
|
|
73
73
|
//# sourceMappingURL=out.js.map
|
package/dist/postinstall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/postinstall/write-eslint-
|
|
1
|
+
{"version":3,"sources":["../src/postinstall/write-eslint-ignore.ts","../src/postinstall/write-eslint-rc.ts","../src/postinstall.ts"],"names":["existsSync","writeFile","join","promisify","projectPath","writeFileAsync","writeEslintIgnore","write_eslint_ignore_default","init_write_eslint_ignore","__esmMin","eslintIgnorePath","readFileSync","packageIsTypeModule","configFile","writeEslintRc","write_eslint_rc_default","init_write_eslint_rc","filename","eslintPath","pluginExtends","parserOptions","tsconfigPath","ecmaVersion","tsConfig","content","env","exit","require_postinstall","__commonJSMin","error"],"mappings":"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","sourcesContent":["import { existsSync, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { promisify } from \"node:util\";\n\nimport { projectPath } from \"@anolilab/package-json-utils\";\n\nconst writeFileAsync = promisify(writeFile);\n\nconst writeEslintIgnore = async (): Promise<void> => {\n const eslintIgnorePath = join(projectPath, \".eslintignore\");\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(eslintIgnorePath)) {\n console.warn(\"⚠️ .eslintignore already exists\");\n\n return;\n }\n\n await writeFileAsync(eslintIgnorePath, \"\", \"utf8\");\n};\n\nexport default writeEslintIgnore;\n","import { existsSync, readFileSync, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { promisify } from \"node:util\";\n\nimport { packageIsTypeModule, projectPath } from \"@anolilab/package-json-utils\";\nimport type { TsConfigJson } from \"type-fest\";\n\nconst writeFileAsync = promisify(writeFile);\n\nconsole.log(\"Configuring @anolilab/eslint-config\", projectPath, \"\\n\");\n\nconst configFile = \".eslintrc\";\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst writeEslintRc = async (): Promise<void> => {\n // eslint-disable-next-line no-restricted-syntax\n for (const filename of [configFile, `${configFile}.js`, `${configFile}.cjs`, `${configFile}.json`, `${configFile}.yaml`, `${configFile}.yml`]) {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(join(projectPath, filename))) {\n console.warn(`⚠️ ${filename} already exists;\nMake sure that it includes the following for @anolilab/eslint-config'\nto work as it should: { extends: [\"@anolilab/eslint-config\"] }.`);\n\n return;\n }\n }\n\n const eslintPath = join(projectPath, `.eslintrc.${packageIsTypeModule ? \"c\" : \"\"}js`);\n\n let pluginExtends = \"\";\n let parserOptions = `\n parserOptions: {\n ecmaVersion: \"latest\",\n sourceType: ${packageIsTypeModule ? '\"module\"' : '\"commonjs\"'},\n },`;\n\n const tsconfigPath = join(projectPath, \"tsconfig.json\");\n\n let ecmaVersion = \"latest\";\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(tsconfigPath)) {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n const tsConfig = JSON.parse(readFileSync(tsconfigPath, \"utf8\")) as TsConfigJson;\n\n if (tsConfig.compilerOptions?.target) {\n ecmaVersion = tsConfig.compilerOptions.target;\n\n ecmaVersion =\n ecmaVersion.toLowerCase() === \"es2022\" || ecmaVersion.toLowerCase() === \"esnext\" ? \"latest\" : ecmaVersion.toLowerCase().replace(\"es\", \"\");\n\n if (ecmaVersion !== \"latest\" && ecmaVersion !== \"2022\" && ecmaVersion !== \"2021\" && ecmaVersion !== \"6\") {\n pluginExtends = `, \"plugin:es-x/restrict-to-es${ecmaVersion}\"`;\n }\n }\n\n parserOptions = `\n parserOptions: {\n project: true,\n ecmaVersion: ${ecmaVersion === \"latest\" ? `\"${ecmaVersion}\"` : ecmaVersion},\n sourceType: ${packageIsTypeModule ? '\"module\"' : '\"commonjs\"'},\n },`;\n }\n\n const content = `/** @ts-check */\nconst { defineConfig } = require('@anolilab/eslint-config/define-config');\n${[\"es2015\", \"es2017\", \"es2020\", \"es2021\", \"latest\"].includes(ecmaVersion) ? 'const { globals } = require(\"@anolilab/eslint-config/globals\");\\n\\n' : \"\"}\nmodule.exports = defineConfig({\n root: true,\n extends: [\"@anolilab/eslint-config\"${pluginExtends}],\n ignorePatterns: [\"!**/*\"],\n env: {\n // Your environments (which contains several predefined global variables)\n // Most environments are loaded automatically if our rules are added\n },${parserOptions}\n globals: {${\n [\"es2015\", \"es2017\", \"es2020\", \"es2021\", \"latest\"].includes(ecmaVersion)\n ? `\\n ...globals.${ecmaVersion === \"latest\" ? \"es2021\" : ecmaVersion},`\n : \"\"\n }\n // Your global variables (setting to false means it's not allowed to be reassigned)\n // myGlobal: false\n },\n rules: {\n // Customize your rules\n },\n overrides: [\n {\n files: [\n \"*.ts\",\n \"*.tsx\",\n \"*.mts\",\n \"*.cts\",\n \"*.js\",\n \"*.jsx\",\n ],\n // Set parserOptions.project for the project to allow TypeScript to create the type-checker behind the scenes when we run linting\n parserOptions: {},\n rules: {},\n },\n {\n files: [\"*.ts\", \"*.tsx\", \"*.mts\", \"*.cts\"],\n // Set parserOptions.project for the project to allow TypeScript to create the type-checker behind the scenes when we run linting\n parserOptions: {},\n rules: {},\n },\n {\n files: [\"*.js\", \"*.jsx\"],\n rules: {},\n },\n ],\n});\n`;\n\n await writeFileAsync(eslintPath, content, \"utf8\");\n};\n\nexport default writeEslintRc;\n","import { env, exit } from \"node:process\";\n\nimport { projectPath } from \"@anolilab/package-json-utils\";\n\nimport writeEslintIgnore from \"./postinstall/write-eslint-ignore\";\nimport writeEslintRc from \"./postinstall/write-eslint-rc\";\n\nif (env[\"CI\"]) {\n exit(0);\n}\n\nconsole.log(\"Configuring @anolilab/eslint-config\", projectPath, \"\\n\");\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n // eslint-disable-next-line compat/compat\n await Promise.all([writeEslintRc(), writeEslintIgnore()]);\n\n console.log(\"😎 Everything went well, have fun!\");\n\n exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n exit(1);\n }\n})();\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/typescript-type-checking.ts"],"names":["env","bestPracticesRules","best_practices_default","showUnsupportedTypeScriptVersionWarning","eslint_config_default","config","createConfig","typescript_type_checking_default"],"mappings":"oJACA,OAAS,OAAAA,MAAW,UAMpB,IAAMC,EAAqBC,EAAoB,MAE3CC,EAAmDH,EAAI,qDAA0D,OAEjHI,EAAqB,yCAA8C,SACnED,EAA0CC,EAAqB,wCAGnE,IAAMC,EAASC,EAAa,aAAc,CACtC,QAAS,CACL,qDACA,gDACA,kDACJ,EACA,OAAQ,4BACR,cAAe,CACX,aAAc,CACV,IAAK,EACT,EACA,WAAY,SACZ,mCAAoCH,CACxC,EACA,QAAS,CAAC,oBAAoB,EAC9B,MAAO,CAEH,oCAAqC,QAErC,6CAA8C,CAC1C,QACA,CACI,uCAAwC,EAC5C,CACJ,EAGA,kCAAmC,CAAC,QAAS,CAAE,cAAe,EAAK,CAAC,EAEpE,uCAAwC,CACpC,QACA,CACI,iBAAkB,CAAC,QAAQ,CAC/B,CACJ,EAGA,kDAAmD,CAC/C,QACA,CACI,qBAAsB,GACtB,mBAAoB,EACxB,CACJ,EAGA,0CAA2C,CACvC,QACA,CACI,WAAY,GACZ,WAAY,EAChB,CACJ,EAGA,qCAAsC,QAEtC,qCAAsCF,EAAmB,iBAAiB,EAI1E,kDAAmD,CAAC,QAAS,CAAE,WAAY,EAAK,CAAC,EAEjF,yCAA0C,CACtC,QACA,CACI,mBAAoB,GACpB,iBAAkB,CACd,UAAW,GACX,WAAY,GACZ,WAAY,GACZ,QAAS,GACT,UAAW,EACf,CACJ,CACJ,EAGA,sCAAuCA,EAAmB,kBAAkB,EAE5E,8CAA+C,QAE/C,8CAA+C,QAI/C,mDAAoD,QAIpD,mDAAoD,MAGpD,uDAAwD,MAIxD,qCAAsC,QAGtC,+CAAgD,CAC5C,QACA,CACI,uBAAwB,GACxB,8BAA+B,EACnC,CACJ,EAIA,qCAAsC,CAAC,QAAS,CAAE,kBAAmB,EAAM,CAAC,EAI5E,kDAAmD,QAInD,wCAAyC,QAIzC,6CAA8C,QAE9C,oDAAqD,QAGrD,4CAA6C,QAG7C,gDAAiD,CAC7C,QACA,CACI,mBAAoB,EACxB,CACJ,EAEA,mCAAoCA,EAAmB,eAAe,EAGtE,4CAA6C,QAG7C,kCAAmC,CAAC,QAAS,QAAQ,EAIrD,iDAAkD,QAGlD,oCAAqC,CAAC,QAAS,CAAE,aAAc,EAAM,CAAC,CAC1E,CACJ,CAAC,EAEMM,EAAQF","sourcesContent":["import type { Linter } from \"eslint\";\nimport { env } from \"node:process\";\n\nimport bestPracticesConfig from \"./config/best-practices\";\nimport { createConfig } from \"./utils/create-config\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\n\nconst bestPracticesRules = bestPracticesConfig.rules as Linter.RulesRecord;\n\nlet showUnsupportedTypeScriptVersionWarning: boolean = env[\"DISABLE_ESLINT_WARN_UNSUPPORTED_TYPESCRIPT_VERSION\"] !== \"true\";\n\nif (anolilabEslintConfig[\"warn_on_unsupported_typescript_version\"] !== undefined) {\n showUnsupportedTypeScriptVersionWarning = anolilabEslintConfig[\"warn_on_unsupported_typescript_version\"];\n}\n\nconst config = createConfig(\"typescript\", {\n extends: [\n \"plugin:@typescript-eslint/recommended-type-checked\",\n \"plugin:@typescript-eslint/strict-type-checked\",\n \"plugin:@typescript-eslint/stylistic-type-checked\",\n ],\n parser: \"@typescript-eslint/parser\",\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n sourceType: \"module\",\n warnOnUnsupportedTypeScriptVersion: showUnsupportedTypeScriptVersionWarning,\n },\n plugins: [\"@typescript-eslint\"],\n rules: {\n // Disallows awaiting a value that is not a Thenable\n \"@typescript-eslint/await-thenable\": \"error\",\n\n \"@typescript-eslint/consistent-type-exports\": [\n \"error\",\n {\n fixMixedExportsWithInlineTypeSpecifier: true,\n },\n ],\n\n // Replace 'dot-notation' rule with '@typescript-eslint' version\n \"@typescript-eslint/dot-notation\": [\"error\", { allowKeywords: true }],\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-base-to-string.md\n \"@typescript-eslint/no-base-to-string\": [\n \"error\",\n {\n ignoredTypeNames: [\"RegExp\"],\n },\n ],\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-confusing-void-expression.md\n \"@typescript-eslint/no-confusing-void-expression\": [\n \"error\",\n {\n ignoreArrowShorthand: true,\n ignoreVoidOperator: false,\n },\n ],\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-floating-promises.md\n \"@typescript-eslint/no-floating-promises\": [\n \"error\",\n {\n ignoreIIFE: true,\n ignoreVoid: true,\n },\n ],\n\n // Disallow iterating over an array with a for-in loop\n \"@typescript-eslint/no-for-in-array\": \"error\",\n\n \"@typescript-eslint/no-implied-eval\": bestPracticesRules[\"no-implied-eval\"],\n\n // Replace 'no-throw-literal' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-meaningless-void-operator.md\n \"@typescript-eslint/no-meaningless-void-operator\": [\"error\", { checkNever: true }],\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-misused-promises.md\n \"@typescript-eslint/no-misused-promises\": [\n \"error\",\n {\n checksConditionals: true,\n checksVoidReturn: {\n arguments: true,\n attributes: false,\n properties: true,\n returns: true,\n variables: true,\n },\n },\n ],\n\n // Replace 'no-implied-eval' and 'no-new-func' rules with '@typescript-eslint' version\n \"@typescript-eslint/no-throw-literal\": bestPracticesRules[\"no-throw-literal\"],\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-condition.md\n \"@typescript-eslint/no-unnecessary-condition\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-qualifier.md\n \"@typescript-eslint/no-unnecessary-qualifier\": \"error\",\n\n // Disallow the void operator except when used to discard a value.\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-type-arguments.md\n \"@typescript-eslint/no-unnecessary-type-arguments\": \"error\",\n\n // Disallow Promises in places not designed to handle them.\n // Disabling here because in most cases the explicitness is still valuable\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"off\",\n\n // Warns if a type assertion does not change the type of an expression\n \"@typescript-eslint/non-nullable-type-assertion-style\": \"off\",\n\n // Enforce includes method over indexOf method.\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-includes.md\n \"@typescript-eslint/prefer-includes\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md\n \"@typescript-eslint/prefer-nullish-coalescing\": [\n \"error\",\n {\n ignoreConditionalTests: true,\n ignoreMixedLogicalExpressions: true,\n },\n ],\n\n // Enforce RegExp#exec over String#match if no global flag is provided.\n // Requires that private members are marked as readonly if they're never modified outside of the constructor\n \"@typescript-eslint/prefer-readonly\": [\"error\", { onlyInlineLambdas: false }],\n\n // Enforce that this is used when only this type is returned.\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-reduce-type-parameter.md\n \"@typescript-eslint/prefer-reduce-type-parameter\": \"error\",\n\n // Enforce using String#startsWith and String#endsWith over other equivalent methods of checking substrings.\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-regexp-exec.md\n \"@typescript-eslint/prefer-regexp-exec\": \"error\",\n\n // Replace 'require-await' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-return-this-type.md\n \"@typescript-eslint/prefer-return-this-type\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-string-starts-ends-with.md\n \"@typescript-eslint/prefer-string-starts-ends-with\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/promise-function-async.md\n \"@typescript-eslint/promise-function-async\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/require-array-sort-compare.md\n \"@typescript-eslint/require-array-sort-compare\": [\n \"error\",\n {\n ignoreStringArrays: false,\n },\n ],\n\n \"@typescript-eslint/require-await\": bestPracticesRules[\"require-await\"],\n\n // When adding two variables, operands must both be of type number or of type string\n \"@typescript-eslint/restrict-plus-operands\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/return-await.md\n \"@typescript-eslint/return-await\": [\"error\", \"always\"],\n\n // Disallow unnecessary namespace qualifiers.\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/switch-exhaustiveness-check.md\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\n\n // Enforces unbound methods are called with their expected scope\n \"@typescript-eslint/unbound-method\": [\"error\", { ignoreStatic: false }],\n },\n});\n\nexport default config;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/typescript-type-checking.ts"],"names":["env","bestPracticesRules","best_practices_default","showUnsupportedTypeScriptVersionWarning","eslint_config_default","config","createConfig","typescript_type_checking_default"],"mappings":"oJAAA,OAAS,OAAAA,MAAW,UAQpB,IAAMC,EAAqBC,EAAoB,MAE3CC,EAAmDH,EAAI,qDAA0D,OAEjHI,EAAqB,yCAA8C,SACnED,EAA0CC,EAAqB,wCAGnE,IAAMC,EAASC,EAAa,aAAc,CACtC,QAAS,CACL,qDACA,gDACA,kDACJ,EACA,OAAQ,4BACR,cAAe,CACX,aAAc,CACV,IAAK,EACT,EACA,WAAY,SACZ,mCAAoCH,CACxC,EACA,QAAS,CAAC,oBAAoB,EAC9B,MAAO,CAEH,oCAAqC,QAErC,6CAA8C,CAC1C,QACA,CACI,uCAAwC,EAC5C,CACJ,EAGA,kCAAmC,CAAC,QAAS,CAAE,cAAe,EAAK,CAAC,EAEpE,uCAAwC,CACpC,QACA,CACI,iBAAkB,CAAC,QAAQ,CAC/B,CACJ,EAGA,kDAAmD,CAC/C,QACA,CACI,qBAAsB,GACtB,mBAAoB,EACxB,CACJ,EAGA,0CAA2C,CACvC,QACA,CACI,WAAY,GACZ,WAAY,EAChB,CACJ,EAGA,qCAAsC,QAEtC,qCAAsCF,EAAmB,iBAAiB,EAI1E,kDAAmD,CAAC,QAAS,CAAE,WAAY,EAAK,CAAC,EAEjF,yCAA0C,CACtC,QACA,CACI,mBAAoB,GACpB,iBAAkB,CACd,UAAW,GACX,WAAY,GACZ,WAAY,GACZ,QAAS,GACT,UAAW,EACf,CACJ,CACJ,EAGA,sCAAuCA,EAAmB,kBAAkB,EAE5E,8CAA+C,QAE/C,8CAA+C,QAI/C,mDAAoD,QAIpD,mDAAoD,MAGpD,uDAAwD,MAIxD,qCAAsC,QAGtC,+CAAgD,CAC5C,QACA,CACI,uBAAwB,GACxB,8BAA+B,EACnC,CACJ,EAIA,qCAAsC,CAAC,QAAS,CAAE,kBAAmB,EAAM,CAAC,EAI5E,kDAAmD,QAInD,wCAAyC,QAIzC,6CAA8C,QAE9C,oDAAqD,QAGrD,4CAA6C,QAG7C,gDAAiD,CAC7C,QACA,CACI,mBAAoB,EACxB,CACJ,EAEA,mCAAoCA,EAAmB,eAAe,EAGtE,4CAA6C,QAG7C,kCAAmC,CAAC,QAAS,QAAQ,EAIrD,iDAAkD,QAGlD,oCAAqC,CAAC,QAAS,CAAE,aAAc,EAAM,CAAC,CAC1E,CACJ,CAAC,EAEMM,EAAQF","sourcesContent":["import { env } from \"node:process\";\n\nimport type { Linter } from \"eslint\";\n\nimport bestPracticesConfig from \"./config/best-practices\";\nimport { createConfig } from \"./utils/create-config\";\nimport anolilabEslintConfig from \"./utils/eslint-config\";\n\nconst bestPracticesRules = bestPracticesConfig.rules as Linter.RulesRecord;\n\nlet showUnsupportedTypeScriptVersionWarning: boolean = env[\"DISABLE_ESLINT_WARN_UNSUPPORTED_TYPESCRIPT_VERSION\"] !== \"true\";\n\nif (anolilabEslintConfig[\"warn_on_unsupported_typescript_version\"] !== undefined) {\n showUnsupportedTypeScriptVersionWarning = anolilabEslintConfig[\"warn_on_unsupported_typescript_version\"];\n}\n\nconst config = createConfig(\"typescript\", {\n extends: [\n \"plugin:@typescript-eslint/recommended-type-checked\",\n \"plugin:@typescript-eslint/strict-type-checked\",\n \"plugin:@typescript-eslint/stylistic-type-checked\",\n ],\n parser: \"@typescript-eslint/parser\",\n parserOptions: {\n ecmaFeatures: {\n jsx: true,\n },\n sourceType: \"module\",\n warnOnUnsupportedTypeScriptVersion: showUnsupportedTypeScriptVersionWarning,\n },\n plugins: [\"@typescript-eslint\"],\n rules: {\n // Disallows awaiting a value that is not a Thenable\n \"@typescript-eslint/await-thenable\": \"error\",\n\n \"@typescript-eslint/consistent-type-exports\": [\n \"error\",\n {\n fixMixedExportsWithInlineTypeSpecifier: true,\n },\n ],\n\n // Replace 'dot-notation' rule with '@typescript-eslint' version\n \"@typescript-eslint/dot-notation\": [\"error\", { allowKeywords: true }],\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-base-to-string.md\n \"@typescript-eslint/no-base-to-string\": [\n \"error\",\n {\n ignoredTypeNames: [\"RegExp\"],\n },\n ],\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-confusing-void-expression.md\n \"@typescript-eslint/no-confusing-void-expression\": [\n \"error\",\n {\n ignoreArrowShorthand: true,\n ignoreVoidOperator: false,\n },\n ],\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-floating-promises.md\n \"@typescript-eslint/no-floating-promises\": [\n \"error\",\n {\n ignoreIIFE: true,\n ignoreVoid: true,\n },\n ],\n\n // Disallow iterating over an array with a for-in loop\n \"@typescript-eslint/no-for-in-array\": \"error\",\n\n \"@typescript-eslint/no-implied-eval\": bestPracticesRules[\"no-implied-eval\"],\n\n // Replace 'no-throw-literal' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-meaningless-void-operator.md\n \"@typescript-eslint/no-meaningless-void-operator\": [\"error\", { checkNever: true }],\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-misused-promises.md\n \"@typescript-eslint/no-misused-promises\": [\n \"error\",\n {\n checksConditionals: true,\n checksVoidReturn: {\n arguments: true,\n attributes: false,\n properties: true,\n returns: true,\n variables: true,\n },\n },\n ],\n\n // Replace 'no-implied-eval' and 'no-new-func' rules with '@typescript-eslint' version\n \"@typescript-eslint/no-throw-literal\": bestPracticesRules[\"no-throw-literal\"],\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-condition.md\n \"@typescript-eslint/no-unnecessary-condition\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-qualifier.md\n \"@typescript-eslint/no-unnecessary-qualifier\": \"error\",\n\n // Disallow the void operator except when used to discard a value.\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/no-unnecessary-type-arguments.md\n \"@typescript-eslint/no-unnecessary-type-arguments\": \"error\",\n\n // Disallow Promises in places not designed to handle them.\n // Disabling here because in most cases the explicitness is still valuable\n \"@typescript-eslint/no-unnecessary-type-assertion\": \"off\",\n\n // Warns if a type assertion does not change the type of an expression\n \"@typescript-eslint/non-nullable-type-assertion-style\": \"off\",\n\n // Enforce includes method over indexOf method.\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-includes.md\n \"@typescript-eslint/prefer-includes\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-nullish-coalescing.md\n \"@typescript-eslint/prefer-nullish-coalescing\": [\n \"error\",\n {\n ignoreConditionalTests: true,\n ignoreMixedLogicalExpressions: true,\n },\n ],\n\n // Enforce RegExp#exec over String#match if no global flag is provided.\n // Requires that private members are marked as readonly if they're never modified outside of the constructor\n \"@typescript-eslint/prefer-readonly\": [\"error\", { onlyInlineLambdas: false }],\n\n // Enforce that this is used when only this type is returned.\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-reduce-type-parameter.md\n \"@typescript-eslint/prefer-reduce-type-parameter\": \"error\",\n\n // Enforce using String#startsWith and String#endsWith over other equivalent methods of checking substrings.\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-regexp-exec.md\n \"@typescript-eslint/prefer-regexp-exec\": \"error\",\n\n // Replace 'require-await' rule with '@typescript-eslint' version\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-return-this-type.md\n \"@typescript-eslint/prefer-return-this-type\": \"error\",\n // https://github.com/typescript-eslint/typescript-eslint/tree/main/packages/eslint-plugin/docs/rules/prefer-string-starts-ends-with.md\n \"@typescript-eslint/prefer-string-starts-ends-with\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/promise-function-async.md\n \"@typescript-eslint/promise-function-async\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/require-array-sort-compare.md\n \"@typescript-eslint/require-array-sort-compare\": [\n \"error\",\n {\n ignoreStringArrays: false,\n },\n ],\n\n \"@typescript-eslint/require-await\": bestPracticesRules[\"require-await\"],\n\n // When adding two variables, operands must both be of type number or of type string\n \"@typescript-eslint/restrict-plus-operands\": \"error\",\n\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/return-await.md\n \"@typescript-eslint/return-await\": [\"error\", \"always\"],\n\n // Disallow unnecessary namespace qualifiers.\n // https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/switch-exhaustiveness-check.md\n \"@typescript-eslint/switch-exhaustiveness-check\": \"error\",\n\n // Enforces unbound methods are called with their expected scope\n \"@typescript-eslint/unbound-method\": [\"error\", { ignoreStatic: false }],\n },\n});\n\nexport default config;\n"]}
|