@useinsider/eslint-config 1.12.2 → 1.13.0-beta.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.
Files changed (93) hide show
  1. package/dist/base.d.ts +1 -1
  2. package/dist/configs/javascript/index.d.ts +8 -1
  3. package/dist/configs/strict/index.d.ts +15 -1
  4. package/dist/configs/typescript/index.d.ts +1 -2
  5. package/dist/configs/typescript-dom/index.d.ts +1195 -1
  6. package/dist/configs/vue2/index.d.ts +1206 -1
  7. package/dist/configs/vue2-typescript/index.d.ts +1 -1
  8. package/dist/configs/vue3/index.d.ts +1206 -1
  9. package/dist/configs/vue3-typescript/index.d.ts +1 -1
  10. package/dist/{index-M1K64ssP.js → index-19YYf8VW.js} +3 -3
  11. package/dist/{index-M1K64ssP.js.map → index-19YYf8VW.js.map} +1 -1
  12. package/dist/{index-CI6TkV4e.js → index-B-EAZ_Tc.js} +2 -2
  13. package/dist/{index-CI6TkV4e.js.map → index-B-EAZ_Tc.js.map} +1 -1
  14. package/dist/{index-CiVlnmEB.cjs → index-B4pFFPH1.cjs} +2 -2
  15. package/dist/{index-CiVlnmEB.cjs.map → index-B4pFFPH1.cjs.map} +1 -1
  16. package/dist/{index-CeOu2y8a.js → index-C7slLCKk.js} +4 -3
  17. package/dist/index-C7slLCKk.js.map +1 -0
  18. package/dist/{index-DVAtSM0f.cjs → index-C9lla2EX.cjs} +3 -3
  19. package/dist/index-C9lla2EX.cjs.map +1 -0
  20. package/dist/{index-B5e6DfQZ.js → index-C9yxeCQI.js} +2 -2
  21. package/dist/{index-B5e6DfQZ.js.map → index-C9yxeCQI.js.map} +1 -1
  22. package/dist/{index-Cj9TcRjV.cjs → index-CDzhNgGP.cjs} +2 -2
  23. package/dist/{index-Cj9TcRjV.cjs.map → index-CDzhNgGP.cjs.map} +1 -1
  24. package/dist/{index-2o2VBvVN.cjs → index-CGGc3uRg.cjs} +2 -2
  25. package/dist/{index-2o2VBvVN.cjs.map → index-CGGc3uRg.cjs.map} +1 -1
  26. package/dist/index-CQpRB59U.cjs.map +1 -1
  27. package/dist/{index-CsUJY3F4.cjs → index-CZF9Brv0.cjs} +4 -3
  28. package/dist/index-CZF9Brv0.cjs.map +1 -0
  29. package/dist/index-Cp8DpVZf.cjs +47 -0
  30. package/dist/index-Cp8DpVZf.cjs.map +1 -0
  31. package/dist/{index-BCvaWfkS.js → index-Cs26udcc.js} +2 -2
  32. package/dist/{index-BCvaWfkS.js.map → index-Cs26udcc.js.map} +1 -1
  33. package/dist/index-D4MPQx8Q.cjs.map +1 -1
  34. package/dist/index-DJL4a_Kw.js.map +1 -1
  35. package/dist/{index-Os0JbUht.js → index-DNaOYI2H.js} +2 -2
  36. package/dist/{index-Os0JbUht.js.map → index-DNaOYI2H.js.map} +1 -1
  37. package/dist/index-DPseTvz6.cjs.map +1 -1
  38. package/dist/{index-Cpdbh3sr.js → index-DUc2n2W_.js} +2 -2
  39. package/dist/{index-Cpdbh3sr.js.map → index-DUc2n2W_.js.map} +1 -1
  40. package/dist/index-DUyKgs_H.js +47 -0
  41. package/dist/index-DUyKgs_H.js.map +1 -0
  42. package/dist/index-DbPDbm1S.js.map +1 -1
  43. package/dist/index-DePBHdMb.cjs.map +1 -1
  44. package/dist/{index-Ds-dL7rp.cjs → index-Dm0wYL5x.cjs} +2 -2
  45. package/dist/{index-Ds-dL7rp.cjs.map → index-Dm0wYL5x.cjs.map} +1 -1
  46. package/dist/index-DzK5HgVT.js +57 -0
  47. package/dist/index-DzK5HgVT.js.map +1 -0
  48. package/dist/index-FNO0uAiM.js.map +1 -1
  49. package/dist/{index-Vp4HLGO-.cjs → index-RjHXyoB-.cjs} +2 -2
  50. package/dist/{index-Vp4HLGO-.cjs.map → index-RjHXyoB-.cjs.map} +1 -1
  51. package/dist/index-WUeklnFb.js.map +1 -1
  52. package/dist/{index-BabnpV1R.js → index-iXnnqiab.js} +3 -3
  53. package/dist/{index-BabnpV1R.js.map → index-iXnnqiab.js.map} +1 -1
  54. package/dist/{index-B8_S3w5d.cjs → index-sVqXmjl5.cjs} +3 -3
  55. package/dist/{index-B8_S3w5d.cjs.map → index-sVqXmjl5.cjs.map} +1 -1
  56. package/dist/index-tbn5oiBX.cjs +57 -0
  57. package/dist/index-tbn5oiBX.cjs.map +1 -0
  58. package/dist/main.cjs +10 -10
  59. package/dist/main.cjs.map +1 -1
  60. package/dist/main.js +12 -12
  61. package/dist/main.js.map +1 -1
  62. package/dist/removePluginsFromConfigs-ByipAus1.js.map +1 -1
  63. package/dist/removePluginsFromConfigs-D8PUzDVg.cjs.map +1 -1
  64. package/dist/{stylistic-BdRMGyUe.cjs → stylistic-BIxu1akj.cjs} +2 -2
  65. package/dist/stylistic-BIxu1akj.cjs.map +1 -0
  66. package/dist/{stylistic-B7JRcUO4.js → stylistic-BUKb_V_H.js} +2 -2
  67. package/dist/stylistic-BUKb_V_H.js.map +1 -0
  68. package/dist/utils/mergeAllConfig.d.ts +1 -1
  69. package/dist/utils/silenceRules.d.ts +1 -1
  70. package/dist/{vue-BXgQgBC3.cjs → vue-Bu9y4Q7s.cjs} +2 -2
  71. package/dist/vue-Bu9y4Q7s.cjs.map +1 -0
  72. package/dist/{vue-B3lDYr4H.js → vue-C6ZtjH3C.js} +2 -2
  73. package/dist/vue-C6ZtjH3C.js.map +1 -0
  74. package/dist/{vue2-C307LTUQ.js → vue2-DX1imKVf.js} +2 -2
  75. package/dist/{vue2-C307LTUQ.js.map → vue2-DX1imKVf.js.map} +1 -1
  76. package/dist/{vue2-CRyjxVnh.cjs → vue2-DuxyoED7.cjs} +2 -2
  77. package/dist/{vue2-CRyjxVnh.cjs.map → vue2-DuxyoED7.cjs.map} +1 -1
  78. package/package.json +21 -21
  79. package/dist/index-B7KV8_ac.cjs +0 -44
  80. package/dist/index-B7KV8_ac.cjs.map +0 -1
  81. package/dist/index-BIRTKnfa.js +0 -44
  82. package/dist/index-BIRTKnfa.js.map +0 -1
  83. package/dist/index-CeOu2y8a.js.map +0 -1
  84. package/dist/index-CsUJY3F4.cjs.map +0 -1
  85. package/dist/index-D-kLe1Lx.cjs +0 -54
  86. package/dist/index-D-kLe1Lx.cjs.map +0 -1
  87. package/dist/index-DVAtSM0f.cjs.map +0 -1
  88. package/dist/index-DWmPpTAr.js +0 -54
  89. package/dist/index-DWmPpTAr.js.map +0 -1
  90. package/dist/stylistic-B7JRcUO4.js.map +0 -1
  91. package/dist/stylistic-BdRMGyUe.cjs.map +0 -1
  92. package/dist/vue-B3lDYr4H.js.map +0 -1
  93. package/dist/vue-BXgQgBC3.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index-Vp4HLGO-.cjs","sources":["../src/configs/javascript-dom/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport globals from 'globals';\nimport javascript from '../javascript';\nimport { merge } from '~/utils/merge';\n\nexport default merge(\n javascript,\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n }\n) as Linter.Config;\n"],"names":["merge","javascript"],"mappings":";;;;;AAKA,MAAeA,QAAAA,KAAAA,MACXC,QAAAA,SACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAER,CAAA;;"}
1
+ {"version":3,"file":"index-RjHXyoB-.cjs","sources":["../src/configs/javascript-dom/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport globals from 'globals';\nimport javascript from '../javascript';\nimport { merge } from '~/utils/merge';\n\nexport default merge(\n javascript,\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n },\n }\n) as Linter.Config;\n"],"names":["merge","javascript"],"mappings":";;;;;AAKA,MAAA,QAAeA,KAAAA,MACXC,QAAAA,SACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAER,CAAA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-WUeklnFb.js","sources":["../src/configs/strict/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport sonarJS from 'eslint-plugin-sonarjs';\nimport { merge } from '~/utils/merge';\n\nexport default merge(\n sonarJS.configs.recommended,\n {\n rules: {\n 'sonarjs/void-use': 'off',\n 'sonarjs/use-type-alias': 'off',\n 'sonarjs/no-redundant-optional': 'off',\n 'sonarjs/slow-regex': ['warn'],\n 'sonarjs/todo-tag': ['warn'],\n 'sonarjs/no-useless-intersection': ['error'],\n 'sonarjs/cognitive-complexity': ['error', 10],\n complexity: ['error', 10],\n 'max-depth': ['error', { max: 3 }],\n },\n } as Linter.Config\n);\n"],"names":[],"mappings":";;AAIA,MAAA,QAAe,MACX,QAAQ,QAAQ,aAChB;AAAA,EACI,OAAO;AAAA,IACH,oBAAoB;AAAA,IACpB,0BAA0B;AAAA,IAC1B,iCAAiC;AAAA,IACjC,sBAAsB,CAAC,MAAM;AAAA,IAC7B,oBAAoB,CAAC,MAAM;AAAA,IAC3B,mCAAmC,CAAC,OAAO;AAAA,IAC3C,gCAAgC,CAAC,SAAS,EAAE;AAAA,IAC5C,YAAY,CAAC,SAAS,EAAE;AAAA,IACxB,aAAa,CAAC,SAAS,EAAE,KAAK,EAAG,CAAA;AAAA,EAAA;AAEvB,CAAA;"}
1
+ {"version":3,"file":"index-WUeklnFb.js","sources":["../src/configs/strict/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport sonarJS from 'eslint-plugin-sonarjs';\nimport { merge } from '~/utils/merge';\n\nexport default merge(\n sonarJS.configs.recommended,\n {\n rules: {\n 'sonarjs/void-use': 'off',\n 'sonarjs/use-type-alias': 'off',\n 'sonarjs/no-redundant-optional': 'off',\n 'sonarjs/slow-regex': ['warn'],\n 'sonarjs/todo-tag': ['warn'],\n 'sonarjs/no-useless-intersection': ['error'],\n 'sonarjs/cognitive-complexity': ['error', 10],\n complexity: ['error', 10],\n 'max-depth': ['error', { max: 3 }],\n },\n } satisfies Linter.Config\n);\n"],"names":[],"mappings":";;AAIA,MAAA,QAAe,MACX,QAAQ,QAAQ,aAChB;AAAA,EACI,OAAO;AAAA,IACH,oBAAoB;AAAA,IACpB,0BAA0B;AAAA,IAC1B,iCAAiC;AAAA,IACjC,sBAAsB,CAAC,MAAM;AAAA,IAC7B,oBAAoB,CAAC,MAAM;AAAA,IAC3B,mCAAmC,CAAC,OAAO;AAAA,IAC3C,gCAAgC,CAAC,SAAS,EAAE;AAAA,IAC5C,YAAY,CAAC,SAAS,EAAE;AAAA,IACxB,aAAa,CAAC,SAAS,EAAE,KAAK,GAAG;AAAA,EAAA;AAEhB,CAAA;"}
@@ -5,8 +5,8 @@ import jsdocPlugin from "eslint-plugin-jsdoc";
5
5
  import pluginVue from "eslint-plugin-vue";
6
6
  import eslintPluginVueScopedCSS from "eslint-plugin-vue-scoped-css";
7
7
  import globals from "globals";
8
- import { b as postConfig, s as stylisticRules, a as cspell, i as importRules, c as core, p as preConfig } from "./stylistic-B7JRcUO4.js";
9
- import { v as vue2Options } from "./vue2-C307LTUQ.js";
8
+ import { b as postConfig, s as stylisticRules, a as cspell, i as importRules, c as core, p as preConfig } from "./stylistic-BUKb_V_H.js";
9
+ import { v as vue2Options } from "./vue2-DX1imKVf.js";
10
10
  import { merge, mergeAll } from "./main.js";
11
11
  const index = merge(mergeAll(pluginVue.configs["flat/vue2-recommended"], eslintPluginVueScopedCSS.configs["flat/vue2-recommended"]), importX.flatConfigs.recommended, mergeAll(airbnb.configs.base.recommended), jsdocPlugin.configs["flat/recommended"], preConfig(), core, importRules, cspell, { plugins: { "@stylistic": stylistic } }, stylisticRules, vue2Options, postConfig(), {
12
12
  languageOptions: {
@@ -25,4 +25,4 @@ const index = merge(mergeAll(pluginVue.configs["flat/vue2-recommended"], eslintP
25
25
  export {
26
26
  index as default
27
27
  };
28
- //# sourceMappingURL=index-BabnpV1R.js.map
28
+ //# sourceMappingURL=index-iXnnqiab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-BabnpV1R.js","sources":["../src/configs/vue2/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport stylistic from '@stylistic/eslint-plugin';\nimport airbnb from 'eslint-config-airbnb-extended';\nimport { importX } from 'eslint-plugin-import-x';\nimport jsdocPlugin from 'eslint-plugin-jsdoc';\nimport pluginVue from 'eslint-plugin-vue';\nimport eslintPluginVueScopedCSS from 'eslint-plugin-vue-scoped-css';\nimport globals from 'globals';\nimport { postConfig, preConfig } from '~/base';\nimport core from '~/rules/core';\nimport cspell from '~/rules/cspell';\nimport importRules from '~/rules/importRules';\nimport stylisticRules from '~/rules/stylistic';\nimport { vue2Options } from '~/rules/vue2';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default merge(\n mergeAll(\n pluginVue.configs['flat/vue2-recommended'],\n eslintPluginVueScopedCSS.configs['flat/vue2-recommended'] as Linter.Config[]\n ),\n importX.flatConfigs.recommended as Linter.Config,\n mergeAll(airbnb.configs.base.recommended),\n jsdocPlugin.configs['flat/recommended'],\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n vue2Options,\n postConfig(),\n {\n languageOptions: {\n parserOptions: {\n sourceType: 'module',\n ecmaFeatures: {\n jsx: true,\n },\n extraFileExtensions: ['.vue'],\n },\n globals: {\n ...globals.browser,\n },\n },\n } as Linter.Config\n);\n"],"names":[],"mappings":";;;;;;;;;;AAiBA,MAAA,QAAe,MACX,SACI,UAAU,QAAQ,uBAAuB,GACzC,yBAAyB,QAAQ,uBAAuB,CAAoB,GAEhF,QAAQ,YAAY,aACpB,SAAS,OAAO,QAAQ,KAAK,WAAW,GACxC,YAAY,QAAQ,kBAAkB,GACtC,aACA,MACA,aACA,QACA,EAAE,SAAS,EAAE,cAAc,UAAW,EAAA,GACtC,gBACA,aACA,cACA;AAAA,EACI,iBAAiB;AAAA,IACb,eAAe;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAC/B;AAAA,IACD,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAES,CAAA;"}
1
+ {"version":3,"file":"index-iXnnqiab.js","sources":["../src/configs/vue2/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport stylistic from '@stylistic/eslint-plugin';\nimport airbnb from 'eslint-config-airbnb-extended';\nimport { importX } from 'eslint-plugin-import-x';\nimport jsdocPlugin from 'eslint-plugin-jsdoc';\nimport pluginVue from 'eslint-plugin-vue';\nimport eslintPluginVueScopedCSS from 'eslint-plugin-vue-scoped-css';\nimport globals from 'globals';\nimport { postConfig, preConfig } from '~/base';\nimport core from '~/rules/core';\nimport cspell from '~/rules/cspell';\nimport importRules from '~/rules/importRules';\nimport stylisticRules from '~/rules/stylistic';\nimport { vue2Options } from '~/rules/vue2';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default merge(\n mergeAll(\n pluginVue.configs['flat/vue2-recommended'],\n eslintPluginVueScopedCSS.configs['flat/vue2-recommended'] as Linter.Config[]\n ),\n importX.flatConfigs.recommended as Linter.Config,\n mergeAll(airbnb.configs.base.recommended),\n jsdocPlugin.configs['flat/recommended'],\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } satisfies Linter.Config,\n stylisticRules,\n vue2Options,\n postConfig(),\n {\n languageOptions: {\n parserOptions: {\n sourceType: 'module',\n ecmaFeatures: {\n jsx: true,\n },\n extraFileExtensions: ['.vue'],\n },\n globals: {\n ...globals.browser,\n },\n },\n } satisfies Linter.Config\n);\n"],"names":[],"mappings":";;;;;;;;;;AAiBA,MAAA,QAAe,MACX,SACI,UAAU,QAAQ,uBAAuB,GACzC,yBAAyB,QAAQ,uBAAuB,CAAoB,GAEhF,QAAQ,YAAY,aACpB,SAAS,OAAO,QAAQ,KAAK,WAAW,GACxC,YAAY,QAAQ,kBAAkB,GACtC,aACA,MACA,aACA,QACA,EAAE,SAAS,EAAE,cAAc,UAAA,EAAS,GACpC,gBACA,aACA,cACA;AAAA,EACI,iBAAiB;AAAA,IACb,eAAe;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MAAA;AAAA,MAET,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,IAEhC,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAEgB,CAAA;"}
@@ -7,8 +7,8 @@ const jsdocPlugin = require("eslint-plugin-jsdoc");
7
7
  const pluginVue = require("eslint-plugin-vue");
8
8
  const eslintPluginVueScopedCSS = require("eslint-plugin-vue-scoped-css");
9
9
  const globals = require("globals");
10
- const stylistic = require("./stylistic-BdRMGyUe.cjs");
11
- const vue2 = require("./vue2-CRyjxVnh.cjs");
10
+ const stylistic = require("./stylistic-BIxu1akj.cjs");
11
+ const vue2 = require("./vue2-DuxyoED7.cjs");
12
12
  const main = require("./main.cjs");
13
13
  const index = main.merge(main.mergeAll(pluginVue.configs["flat/vue2-recommended"], eslintPluginVueScopedCSS.configs["flat/vue2-recommended"]), eslintPluginImportX.importX.flatConfigs.recommended, main.mergeAll(airbnb.configs.base.recommended), jsdocPlugin.configs["flat/recommended"], stylistic.preConfig(), stylistic.core, stylistic.importRules, stylistic.cspell, { plugins: { "@stylistic": stylistic$1 } }, stylistic.stylisticRules, vue2.vue2Options, stylistic.postConfig(), {
14
14
  languageOptions: {
@@ -25,4 +25,4 @@ const index = main.merge(main.mergeAll(pluginVue.configs["flat/vue2-recommended"
25
25
  }
26
26
  });
27
27
  exports.default = index;
28
- //# sourceMappingURL=index-B8_S3w5d.cjs.map
28
+ //# sourceMappingURL=index-sVqXmjl5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-B8_S3w5d.cjs","sources":["../src/configs/vue2/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport stylistic from '@stylistic/eslint-plugin';\nimport airbnb from 'eslint-config-airbnb-extended';\nimport { importX } from 'eslint-plugin-import-x';\nimport jsdocPlugin from 'eslint-plugin-jsdoc';\nimport pluginVue from 'eslint-plugin-vue';\nimport eslintPluginVueScopedCSS from 'eslint-plugin-vue-scoped-css';\nimport globals from 'globals';\nimport { postConfig, preConfig } from '~/base';\nimport core from '~/rules/core';\nimport cspell from '~/rules/cspell';\nimport importRules from '~/rules/importRules';\nimport stylisticRules from '~/rules/stylistic';\nimport { vue2Options } from '~/rules/vue2';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default merge(\n mergeAll(\n pluginVue.configs['flat/vue2-recommended'],\n eslintPluginVueScopedCSS.configs['flat/vue2-recommended'] as Linter.Config[]\n ),\n importX.flatConfigs.recommended as Linter.Config,\n mergeAll(airbnb.configs.base.recommended),\n jsdocPlugin.configs['flat/recommended'],\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n vue2Options,\n postConfig(),\n {\n languageOptions: {\n parserOptions: {\n sourceType: 'module',\n ecmaFeatures: {\n jsx: true,\n },\n extraFileExtensions: ['.vue'],\n },\n globals: {\n ...globals.browser,\n },\n },\n } as Linter.Config\n);\n"],"names":["merge","mergeAll","importX","preConfig","core","importRules","cspell","stylistic","stylisticRules","vue2Options","postConfig"],"mappings":";;;;;;;;;;;;AAiBA,MAAA,QAAeA,WACXC,KACI,SAAA,UAAU,QAAQ,uBAAuB,GACzC,yBAAyB,QAAQ,uBAAuB,CAAoB,GAEhFC,oBAAAA,QAAQ,YAAY,aACpBD,KAAS,SAAA,OAAO,QAAQ,KAAK,WAAW,GACxC,YAAY,QAAQ,kBAAkB,GACtCE,uBACAC,UAAAA,MACAC,UAAAA,aACAC,UACA,QAAA,EAAE,SAAS,EAAE,cAAcC,YAAW,EAAA,GACtCC,UAAAA,gBACAC,KAAAA,aACAC,UAAAA,cACA;AAAA,EACI,iBAAiB;AAAA,IACb,eAAe;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAC/B;AAAA,IACD,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAES,CAAA;;"}
1
+ {"version":3,"file":"index-sVqXmjl5.cjs","sources":["../src/configs/vue2/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport stylistic from '@stylistic/eslint-plugin';\nimport airbnb from 'eslint-config-airbnb-extended';\nimport { importX } from 'eslint-plugin-import-x';\nimport jsdocPlugin from 'eslint-plugin-jsdoc';\nimport pluginVue from 'eslint-plugin-vue';\nimport eslintPluginVueScopedCSS from 'eslint-plugin-vue-scoped-css';\nimport globals from 'globals';\nimport { postConfig, preConfig } from '~/base';\nimport core from '~/rules/core';\nimport cspell from '~/rules/cspell';\nimport importRules from '~/rules/importRules';\nimport stylisticRules from '~/rules/stylistic';\nimport { vue2Options } from '~/rules/vue2';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default merge(\n mergeAll(\n pluginVue.configs['flat/vue2-recommended'],\n eslintPluginVueScopedCSS.configs['flat/vue2-recommended'] as Linter.Config[]\n ),\n importX.flatConfigs.recommended as Linter.Config,\n mergeAll(airbnb.configs.base.recommended),\n jsdocPlugin.configs['flat/recommended'],\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } satisfies Linter.Config,\n stylisticRules,\n vue2Options,\n postConfig(),\n {\n languageOptions: {\n parserOptions: {\n sourceType: 'module',\n ecmaFeatures: {\n jsx: true,\n },\n extraFileExtensions: ['.vue'],\n },\n globals: {\n ...globals.browser,\n },\n },\n } satisfies Linter.Config\n);\n"],"names":["merge","mergeAll","importX","preConfig","core","importRules","cspell","stylistic","stylisticRules","vue2Options","postConfig"],"mappings":";;;;;;;;;;;;AAiBA,MAAA,QAAeA,KAAAA,MACXC,KAAAA,SACI,UAAU,QAAQ,uBAAuB,GACzC,yBAAyB,QAAQ,uBAAuB,CAAoB,GAEhFC,oBAAAA,QAAQ,YAAY,aACpBD,KAAAA,SAAS,OAAO,QAAQ,KAAK,WAAW,GACxC,YAAY,QAAQ,kBAAkB,GACtCE,UAAAA,aACAC,UAAAA,MACAC,UAAAA,aACAC,UAAAA,QACA,EAAE,SAAS,EAAE,cAAcC,YAAA,EAAS,GACpCC,UAAAA,gBACAC,KAAAA,aACAC,UAAAA,cACA;AAAA,EACI,iBAAiB;AAAA,IACb,eAAe;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MAAA;AAAA,MAET,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,IAEhC,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAEgB,CAAA;;"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const js = require("@eslint/js");
4
+ const stylistic$1 = require("@stylistic/eslint-plugin");
5
+ const airbnb = require("eslint-config-airbnb-extended");
6
+ const eslintPluginImportX = require("eslint-plugin-import-x");
7
+ const jsdocPlugin = require("eslint-plugin-jsdoc");
8
+ const pluginVue = require("eslint-plugin-vue");
9
+ const eslintPluginVueScopedCSS = require("eslint-plugin-vue-scoped-css");
10
+ const globals = require("globals");
11
+ const ts = require("typescript-eslint");
12
+ const stylistic = require("./stylistic-BIxu1akj.cjs");
13
+ const removePluginsFromConfigs = require("./removePluginsFromConfigs-D8PUzDVg.cjs");
14
+ const vue2 = require("./vue2-DuxyoED7.cjs");
15
+ const main = require("./main.cjs");
16
+ const vue2Typescript = {
17
+ rules: {
18
+ "@typescript-eslint/no-duplicate-type-constituents": "off",
19
+ "@typescript-eslint/no-unsafe-call": "off",
20
+ "@typescript-eslint/no-unsafe-argument": "off",
21
+ "@typescript-eslint/no-unsafe-return": "off",
22
+ "@typescript-eslint/no-unsafe-assignment": "off",
23
+ "@typescript-eslint/no-unsafe-member-access": "off"
24
+ }
25
+ };
26
+ const index = main.mergeAll(
27
+ // eslint-disable-next-line sonarjs/deprecation -- defineConfig from eslint/config has a ConfigWithExtends type incompatible with the vue/typescript-eslint plugin configs in this version
28
+ ts.config(js.configs.recommended, eslintPluginImportX.importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...removePluginsFromConfigs.removePluginsFromConfigs(ts.configs.recommendedTypeChecked), ...pluginVue.configs["flat/vue2-recommended"].map((config) => {
29
+ delete config.files;
30
+ return config;
31
+ }), ...eslintPluginVueScopedCSS.configs["flat/vue2-recommended"], jsdocPlugin.configs["flat/recommended-typescript-error"], main.merge(stylistic.preConfig(), stylistic.core, stylistic.importRules, stylistic.cspell, { plugins: { "@stylistic": stylistic$1 } }, stylistic.stylisticRules, vue2.vue2Composition, removePluginsFromConfigs.typescript, vue2Typescript, stylistic.postConfig(), {
32
+ languageOptions: {
33
+ globals: {
34
+ ...globals.browser
35
+ },
36
+ parserOptions: {
37
+ parser: ts.parser,
38
+ sourceType: "module",
39
+ ecmaFeatures: {
40
+ jsx: true
41
+ },
42
+ extraFileExtensions: [".vue"]
43
+ }
44
+ },
45
+ settings: {
46
+ jsdoc: {
47
+ mode: "typescript",
48
+ tagNamePreference: {
49
+ callback: "watch",
50
+ desc: "use"
51
+ }
52
+ }
53
+ }
54
+ }))
55
+ );
56
+ exports.default = index;
57
+ //# sourceMappingURL=index-tbn5oiBX.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-tbn5oiBX.cjs","sources":["../src/rules/vue2-typescript.ts","../src/configs/vue2-typescript/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nexport const vue2Typescript = {\n rules: {\n '@typescript-eslint/no-duplicate-type-constituents': 'off',\n '@typescript-eslint/no-unsafe-call': 'off',\n '@typescript-eslint/no-unsafe-argument': 'off',\n '@typescript-eslint/no-unsafe-return': 'off',\n '@typescript-eslint/no-unsafe-assignment': 'off',\n '@typescript-eslint/no-unsafe-member-access': 'off',\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\nimport js from '@eslint/js';\nimport stylistic from '@stylistic/eslint-plugin';\nimport airbnb from 'eslint-config-airbnb-extended';\nimport { importX } from 'eslint-plugin-import-x';\nimport jsdocPlugin from 'eslint-plugin-jsdoc';\nimport eslintPluginVue from 'eslint-plugin-vue';\nimport eslintPluginVueScopedCSS from 'eslint-plugin-vue-scoped-css';\nimport globals from 'globals';\nimport ts from 'typescript-eslint';\nimport { postConfig, preConfig } from '~/base';\nimport core from '~/rules/core';\nimport cspell from '~/rules/cspell';\nimport importRules from '~/rules/importRules';\nimport stylisticRules from '~/rules/stylistic';\nimport typescript from '~/rules/typescript';\nimport { vue2Composition } from '~/rules/vue2';\nimport { vue2Typescript } from '~/rules/vue2-typescript';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\nimport { removePluginsFromConfigs } from '~/utils/removePluginsFromConfigs';\n\nexport default mergeAll((\n // eslint-disable-next-line sonarjs/deprecation -- defineConfig from eslint/config has a ConfigWithExtends type incompatible with the vue/typescript-eslint plugin configs in this version\n ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...removePluginsFromConfigs(ts.configs.recommendedTypeChecked),\n ...eslintPluginVue.configs['flat/vue2-recommended'].map(config => {\n delete config.files;\n\n return config;\n }),\n ...eslintPluginVueScopedCSS.configs['flat/vue2-recommended'],\n jsdocPlugin.configs['flat/recommended-typescript-error'],\n merge<Linter.Config[]>(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } satisfies Linter.Config,\n stylisticRules,\n vue2Composition,\n typescript,\n vue2Typescript,\n postConfig(),\n {\n languageOptions: {\n globals: {\n ...globals.browser,\n },\n parserOptions: {\n parser: ts.parser,\n sourceType: 'module',\n ecmaFeatures: {\n jsx: true,\n },\n extraFileExtensions: ['.vue'],\n },\n },\n settings: {\n jsdoc: {\n mode: 'typescript',\n tagNamePreference: {\n callback: 'watch',\n desc: 'use',\n },\n },\n },\n }\n )\n )\n) as Linter.Config[]);\n"],"names":["mergeAll","importX","removePluginsFromConfigs","eslintPluginVue","merge","preConfig","core","importRules","cspell","stylistic","stylisticRules","vue2Composition","typescript","postConfig"],"mappings":";;;;;;;;;;;;;;;AAEO,MAAM,iBAAiB;AAAA,EAC1B,OAAO;AAAA,IACH,qDAAqD;AAAA,IACrD,qCAAqC;AAAA,IACrC,yCAAyC;AAAA,IACzC,uCAAuC;AAAA,IACvC,2CAA2C;AAAA,IAC3C,8CAA8C;AAAA,EAAA;;ACatD,MAAA,QAAeA,KAAAA;AAAAA;AAAAA,EAEX,GAAG,OACC,GAAG,QAAQ,aACXC,oBAAAA,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAGC,yBAAAA,yBAAyB,GAAG,QAAQ,sBAAsB,GAC7D,GAAGC,UAAgB,QAAQ,uBAAuB,EAAE,IAAI,CAAA,WAAS;AAC7D,WAAO,OAAO;AAEd,WAAO;AAAA,EACX,CAAC,GACD,GAAG,yBAAyB,QAAQ,uBAAuB,GAC3D,YAAY,QAAQ,mCAAmC,GACvDC,KAAAA,MACIC,UAAAA,UAAA,GACAC,UAAAA,MACAC,UAAAA,aACAC,kBACA,EAAE,SAAS,EAAE,cAAcC,YAAA,KAC3BC,UAAAA,gBACAC,KAAAA,iBACAC,yBAAAA,YACA,gBACAC,UAAAA,cACA;AAAA,IACI,iBAAiB;AAAA,MACb,SAAS;AAAA,QACL,GAAG,QAAQ;AAAA,MAAA;AAAA,MAEf,eAAe;AAAA,QACX,QAAQ,GAAG;AAAA,QACX,YAAY;AAAA,QACZ,cAAc;AAAA,UACV,KAAK;AAAA,QAAA;AAAA,QAET,qBAAqB,CAAC,MAAM;AAAA,MAAA;AAAA,IAC/B;AAAA,IAEL,UAAU;AAAA,MACN,OAAO;AAAA,QACH,MAAM;AAAA,QACN,mBAAmB;AAAA,UACf,UAAU;AAAA,UACV,MAAM;AAAA,QAAA;AAAA,MACT;AAAA,IACJ;AAAA,EACJ,CACJ,CACJ;AAEW;;"}
package/dist/main.cjs CHANGED
@@ -128,34 +128,34 @@ const configMap = {
128
128
  return Promise.resolve().then(() => require("./index-DPseTvz6.cjs"));
129
129
  },
130
130
  async javascript() {
131
- return Promise.resolve().then(() => require("./index-Ds-dL7rp.cjs"));
131
+ return Promise.resolve().then(() => require("./index-Dm0wYL5x.cjs"));
132
132
  },
133
133
  async "javascript-node"() {
134
- return Promise.resolve().then(() => require("./index-Cj9TcRjV.cjs"));
134
+ return Promise.resolve().then(() => require("./index-CDzhNgGP.cjs"));
135
135
  },
136
136
  async "javascript-dom"() {
137
- return Promise.resolve().then(() => require("./index-Vp4HLGO-.cjs"));
137
+ return Promise.resolve().then(() => require("./index-RjHXyoB-.cjs"));
138
138
  },
139
139
  async typescript() {
140
- return Promise.resolve().then(() => require("./index-CsUJY3F4.cjs"));
140
+ return Promise.resolve().then(() => require("./index-CZF9Brv0.cjs"));
141
141
  },
142
142
  async "typescript-node"() {
143
- return Promise.resolve().then(() => require("./index-CiVlnmEB.cjs"));
143
+ return Promise.resolve().then(() => require("./index-B4pFFPH1.cjs"));
144
144
  },
145
145
  async "typescript-dom"() {
146
- return Promise.resolve().then(() => require("./index-2o2VBvVN.cjs"));
146
+ return Promise.resolve().then(() => require("./index-CGGc3uRg.cjs"));
147
147
  },
148
148
  async vue3() {
149
- return Promise.resolve().then(() => require("./index-DVAtSM0f.cjs"));
149
+ return Promise.resolve().then(() => require("./index-C9lla2EX.cjs"));
150
150
  },
151
151
  async "vue3-typescript"() {
152
- return Promise.resolve().then(() => require("./index-B7KV8_ac.cjs"));
152
+ return Promise.resolve().then(() => require("./index-Cp8DpVZf.cjs"));
153
153
  },
154
154
  async vue2() {
155
- return Promise.resolve().then(() => require("./index-B8_S3w5d.cjs"));
155
+ return Promise.resolve().then(() => require("./index-sVqXmjl5.cjs"));
156
156
  },
157
157
  async "vue2-typescript"() {
158
- return Promise.resolve().then(() => require("./index-D-kLe1Lx.cjs"));
158
+ return Promise.resolve().then(() => require("./index-tbn5oiBX.cjs"));
159
159
  },
160
160
  async jest() {
161
161
  return Promise.resolve().then(() => require("./index-DePBHdMb.cjs"));
package/dist/main.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.cjs","sources":["../src/utils/ensureDependencies.ts","../src/utils/merge.ts","../src/utils/silenceRules.ts","../src/utils/mergeAllConfig.ts","../src/main.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport { resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { installPackage } from '@antfu/install-pkg';\nimport semver from 'semver';\n\nlet turnOff = false;\nlet scanned = false;\nconst silencedDependencies = new Set<string>();\nconst fixedDependencies = [\n 'eslint',\n 'globals',\n];\nconst require = createRequire(import.meta.url);\n\nfunction getPackageJSONPath (currentDir: string) {\n const fileLocation = resolve(currentDir, 'package.json');\n\n if (existsSync(fileLocation)) {\n return fileLocation;\n }\n\n if (currentDir === process.cwd()) {\n throw new Error(`Unable to locate package.json in ${currentDir}`);\n }\n\n const parentDir = resolve(currentDir, '..');\n\n return getPackageJSONPath(parentDir);\n}\n\nfunction getPackageJSON (fileLocation: string) {\n const packageJsonContent = readFileSync(fileLocation, 'utf8');\n\n return JSON.parse(packageJsonContent) as Record<string, Record<string, string>>;\n}\n\nfunction getExpectedDependencies (): Record<string, string> {\n const path = getPackageJSONPath(fileURLToPath(new URL(/* @vite-ignore */ import.meta.url)));\n const packageJson = getPackageJSON(path);\n\n return packageJson.dependencies;\n}\n\nfunction getDependencyVersionFromConsumer (depName: string, baseDir: string = process.cwd()): string | undefined {\n try {\n const pkgJsonPath = require.resolve(`${depName}/package.json`, { paths: [baseDir] });\n const pkgContent = readFileSync(pkgJsonPath, 'utf8');\n const pkg: { version?: string } = JSON.parse(pkgContent) as Record<string, Record<string, string>>;\n\n return pkg.version;\n } catch {\n return undefined;\n }\n}\n\nexport async function ensureDependencies () {\n if (turnOff || scanned) {\n return;\n }\n\n scanned = true;\n\n const expectedDependencies = Object.entries(getExpectedDependencies());\n const missingDependencyEntries = expectedDependencies.filter(\n ([expectedDependency, expectedVersion]) => {\n if (!fixedDependencies.includes(expectedDependency) || silencedDependencies.has(expectedDependency)) {\n return false;\n }\n\n const installedVersion = getDependencyVersionFromConsumer(expectedDependency);\n\n if (!installedVersion) {\n return true;\n }\n\n return semver.lt(installedVersion, expectedVersion);\n }\n );\n\n if (!missingDependencyEntries.length) {\n return;\n }\n\n const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\\W+/, '')}`);\n\n // eslint-disable-next-line no-console\n console.info('Missing dependencies detected:');\n // eslint-disable-next-line no-console\n console.info(missingDependencies.map(dependency => ` - ${dependency}`).join('\\n'));\n // eslint-disable-next-line no-console\n console.info('\\nInstalling dependencies:');\n\n await installPackage(missingDependencies, { dev: true, additionalArgs: ['-E'] });\n\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n}\n\nexport function silenceDependencyWarning (\n /**\n * Pass `true` to silence all dependency warnings.\n */\n all: boolean\n): void;\n\nexport function silenceDependencyWarning (dependencies: string[]): void;\n\nexport function silenceDependencyWarning (input: boolean | string[]) {\n if (typeof input === 'boolean') {\n turnOff = input;\n\n return;\n }\n\n silencedDependencies.clear();\n input.forEach(dependency => silencedDependencies.add(String(dependency)));\n}\n","import { merge as tsMerge } from 'ts-deepmerge';\n\nexport function merge<Arguments extends NonNullable<unknown>[]> (...args: Arguments): Arguments[number] {\n return tsMerge.withOptions({ mergeArrays: false }, ...args) as unknown as Arguments;\n}\n","import { warn } from 'node:console';\nimport type { Linter } from 'eslint';\n\nconst globallySilencedRules = new Set<string>();\n\n/**\n * Silence rules globally.\n * This will affect all configs scopes.\n */\nexport function silenceRules (rules: string[]) {\n rules.forEach(rule => {\n globallySilencedRules.add(rule);\n });\n}\n\nfunction silenceRule (config: Linter.RuleEntry) {\n const [, ...restConfig] = Array.isArray(config) ? config : [];\n\n return ['warn', ...restConfig as Record<string, unknown>[]] as Linter.RuleSeverityAndOptions;\n}\n\nexport function filterSilencedRules (\n rules: Partial<Linter.RulesRecord> | Readonly<Linter.RulesRecord> | undefined,\n silencedRules?: string[] | Set<string>\n) {\n let targetSilencedRules = silencedRules || globallySilencedRules;\n\n if (Array.isArray(targetSilencedRules)) {\n targetSilencedRules = new Set(targetSilencedRules);\n }\n\n if (!rules || !targetSilencedRules.size) {\n return rules;\n }\n\n if (silencedRules) {\n targetSilencedRules.forEach(rule => {\n if (rules[rule]) {\n return;\n }\n\n warn(`Unknown rule \"${rule}\". Please remove it from the silenced rules list.`);\n });\n }\n\n return Object.entries(rules).reduce((newRules, [key, value]) => {\n if (value) {\n newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;\n }\n\n return newRules;\n }, {} as Linter.RulesRecord);\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { vi, describe, test, expect, afterEach } = import.meta.vitest;\n\n const mocks = vi.hoisted(() => ({\n warn: vi.fn(),\n }));\n\n vi.mock('node:console', () => mocks);\n\n afterEach(() => {\n globallySilencedRules.clear();\n });\n\n describe('silenceRules', () => {\n test('should register given rule keys as silenced', () => {\n const rule = '@stylistic/type-generic-spacing';\n\n expect(globallySilencedRules.has(rule)).toBe(false);\n silenceRules([rule]);\n expect(globallySilencedRules.has(rule)).toBe(true);\n });\n });\n\n describe('filterSilencedRules', () => {\n test('should return the same rules object if no rules are silenced', () => {\n const rules = {\n 'no-console': 'warn',\n 'no-debugger': 'warn',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toBe(rules);\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-console']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'no-console': ['warn'],\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n });\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-bitwise', 'new-cap']);\n\n const rules = {\n 'max-len': 'off',\n 'new-cap': ['error'],\n 'no-alert': ['error'],\n 'no-bitwise': ['error', {\n allow: ['~'],\n }],\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'max-len': 'off',\n 'new-cap': ['warn'],\n 'no-alert': ['error'],\n 'no-bitwise': ['warn', {\n allow: ['~'],\n }],\n });\n });\n\n test('should not warn about unknown rules', () => {\n silenceRules(['no-console', 'no-bitwise']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules);\n\n expect(mocks.warn).not.toHaveBeenCalled();\n expect(mocks.warn).not.toHaveBeenCalled();\n });\n\n test('should warn about unknown rules', () => {\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules, ['no-console', 'no-bitwise']);\n\n expect(mocks.warn).toHaveBeenCalledTimes(1);\n expect(mocks.warn).toHaveBeenCalledWith(\n 'Unknown rule \"no-bitwise\". Please remove it from the silenced rules list.'\n );\n });\n\n test.each([\n [['@typescript-eslint/no-unsafe-call'], ['warn']],\n [new Set(['@typescript-eslint/no-unsafe-call']), ['warn']],\n [[], 'error'],\n ])(\n '#%# should filter scope-related rules and ignore globally silenced rules',\n (silencedRules, expectation) => {\n silenceRules(['@typescript-eslint/no-unsafe-assignment']);\n\n const rules = {\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules, silencedRules)).toStrictEqual({\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': expectation,\n });\n }\n );\n });\n}\n","import type { Linter } from 'eslint';\nimport { merge } from './merge';\n\nexport function mergeAll (...configs: Linter.Config[][]) {\n return configs.flat().reduce((acc, scope) => merge(acc, scope), {} as Linter.Config);\n}\n","import type { Linter } from 'eslint';\nimport { ensureDependencies } from './utils/ensureDependencies';\nimport { merge } from './utils/merge';\nimport { filterSilencedRules } from './utils/silenceRules';\n\nconst configMap = {\n async config () {\n return import('./configs/config');\n },\n async javascript () {\n return import('./configs/javascript');\n },\n async 'javascript-node' () {\n return import('./configs/javascript-node');\n },\n async 'javascript-dom' () {\n return import('./configs/javascript-dom');\n },\n async typescript () {\n return import('./configs/typescript');\n },\n async 'typescript-node' () {\n return import('./configs/typescript-node');\n },\n async 'typescript-dom' () {\n return import('./configs/typescript-dom');\n },\n async vue3 () {\n return import('./configs/vue3');\n },\n async 'vue3-typescript' () {\n return import('./configs/vue3-typescript');\n },\n async vue2 () {\n return import('./configs/vue2');\n },\n async 'vue2-typescript' () {\n return import('./configs/vue2-typescript');\n },\n async jest () {\n return import('./configs/jest');\n },\n async 'jsdoc-based-ts' () {\n return import('./configs/jsdoc-based-ts');\n },\n async strict () {\n return import('./configs/strict');\n },\n} satisfies Record<string, () => Promise<{ default: Linter.Config }>>;\n\ninterface Config {\n /** Precedence order will affect how rules applied */\n preset: (keyof typeof configMap)[];\n config: Linter.Config;\n silenceRules?: string[];\n}\n\nexport async function useInsider (config: Config): Promise<Linter.Config> {\n await ensureDependencies();\n\n const configs = config.preset\n .map(async scope => typeof configMap[scope] === 'function' && (await configMap[scope]()).default)\n .filter(Boolean);\n\n const resolvedConfigs = await Promise.all(configs);\n const resolvedConfigAll = resolvedConfigs.reduce((acc, scope) => merge(acc, scope), {}) as Linter.Config;\n\n delete resolvedConfigAll.files;\n\n const mergedConfig = merge(resolvedConfigAll, config.config);\n\n if (!mergedConfig) {\n return Promise.reject(new Error('No config found'));\n }\n\n if (config.silenceRules) {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);\n } else {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules);\n }\n\n return mergedConfig;\n}\n\nexport { merge } from './utils/merge';\n\nexport { mergeAll } from './utils/mergeAllConfig';\n\nexport { silenceDependencyWarning } from './utils/ensureDependencies';\n\nexport { silenceRules } from './utils/silenceRules';\n"],"names":["require","createRequire","resolve","existsSync","readFileSync","fileURLToPath","installPackage","tsMerge","warn"],"mappings":"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"}
1
+ {"version":3,"file":"main.cjs","sources":["../src/utils/ensureDependencies.ts","../src/utils/merge.ts","../src/utils/silenceRules.ts","../src/utils/mergeAllConfig.ts","../src/main.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport { resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { installPackage } from '@antfu/install-pkg';\nimport semver from 'semver';\n\nlet turnOff = false;\nlet scanned = false;\nconst silencedDependencies = new Set<string>();\nconst fixedDependencies = [\n 'eslint',\n 'globals',\n];\nconst require = createRequire(import.meta.url);\n\nfunction getPackageJSONPath (currentDir: string) {\n const fileLocation = resolve(currentDir, 'package.json');\n\n if (existsSync(fileLocation)) {\n return fileLocation;\n }\n\n if (currentDir === process.cwd()) {\n throw new Error(`Unable to locate package.json in ${currentDir}`);\n }\n\n const parentDir = resolve(currentDir, '..');\n\n return getPackageJSONPath(parentDir);\n}\n\nfunction getPackageJSON (fileLocation: string) {\n const packageJsonContent = readFileSync(fileLocation, 'utf8');\n\n return JSON.parse(packageJsonContent) as Record<string, Record<string, string>>;\n}\n\nfunction getExpectedDependencies (): Record<string, string> {\n const path = getPackageJSONPath(fileURLToPath(new URL(/* @vite-ignore */ import.meta.url)));\n const packageJson = getPackageJSON(path);\n\n return packageJson.dependencies;\n}\n\nfunction getDependencyVersionFromConsumer (depName: string, baseDir: string = process.cwd()): string | undefined {\n try {\n const pkgJsonPath = require.resolve(`${depName}/package.json`, { paths: [baseDir] });\n const pkgContent = readFileSync(pkgJsonPath, 'utf8');\n const pkg: { version?: string } = JSON.parse(pkgContent) as Record<string, Record<string, string>>;\n\n return pkg.version;\n } catch {\n return undefined;\n }\n}\n\nexport async function ensureDependencies () {\n if (turnOff || scanned) {\n return;\n }\n\n scanned = true;\n\n const expectedDependencies = Object.entries(getExpectedDependencies());\n const missingDependencyEntries = expectedDependencies.filter(\n ([expectedDependency, expectedVersion]) => {\n if (!fixedDependencies.includes(expectedDependency) || silencedDependencies.has(expectedDependency)) {\n return false;\n }\n\n const installedVersion = getDependencyVersionFromConsumer(expectedDependency);\n\n if (!installedVersion) {\n return true;\n }\n\n return semver.lt(installedVersion, expectedVersion);\n }\n );\n\n if (!missingDependencyEntries.length) {\n return;\n }\n\n const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\\W+/, '')}`);\n\n // eslint-disable-next-line no-console\n console.info('Missing dependencies detected:');\n // eslint-disable-next-line no-console\n console.info(missingDependencies.map(dependency => ` - ${dependency}`).join('\\n'));\n // eslint-disable-next-line no-console\n console.info('\\nInstalling dependencies:');\n\n await installPackage(missingDependencies, { dev: true, additionalArgs: ['-E'] });\n\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n}\n\nexport function silenceDependencyWarning (\n /**\n * Pass `true` to silence all dependency warnings.\n */\n all: boolean\n): void;\n\nexport function silenceDependencyWarning (dependencies: string[]): void;\n\nexport function silenceDependencyWarning (input: boolean | string[]) {\n if (typeof input === 'boolean') {\n turnOff = input;\n\n return;\n }\n\n silencedDependencies.clear();\n input.forEach(dependency => silencedDependencies.add(String(dependency)));\n}\n","import { merge as tsMerge } from 'ts-deepmerge';\n\nexport function merge<Arguments extends NonNullable<unknown>[]> (...args: Arguments): Arguments[number] {\n return tsMerge.withOptions({ mergeArrays: false }, ...args);\n}\n","import { warn } from 'node:console';\nimport type { Linter } from 'eslint';\n\nconst globallySilencedRules = new Set<string>();\n\n/**\n * Silence rules globally.\n * This will affect all configs scopes.\n */\nexport function silenceRules (rules: string[]) {\n rules.forEach(rule => {\n globallySilencedRules.add(rule);\n });\n}\n\nfunction silenceRule (config: Linter.RuleEntry) {\n const [, ...restConfig] = Array.isArray(config) ? config : [];\n\n return ['warn', ...restConfig as Record<string, unknown>[]] as Linter.RuleSeverityAndOptions;\n}\n\nexport function filterSilencedRules (\n rules: Partial<Linter.RulesRecord> | Readonly<Linter.RulesRecord> | undefined,\n silencedRules?: string[] | Set<string>\n) {\n let targetSilencedRules = silencedRules || globallySilencedRules;\n\n if (Array.isArray(targetSilencedRules)) {\n targetSilencedRules = new Set(targetSilencedRules);\n }\n\n if (!rules || !targetSilencedRules.size) {\n return rules;\n }\n\n if (silencedRules) {\n targetSilencedRules.forEach(rule => {\n if (rules[rule]) {\n return;\n }\n\n warn(`Unknown rule \"${rule}\". Please remove it from the silenced rules list.`);\n });\n }\n\n return Object.entries(rules).reduce((newRules, [key, value]) => {\n if (value) {\n newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;\n }\n\n return newRules;\n }, {} as Linter.RulesRecord);\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { vi, describe, test, expect, afterEach } = import.meta.vitest;\n\n const mocks = vi.hoisted(() => ({\n warn: vi.fn(),\n }));\n\n vi.mock('node:console', () => mocks);\n\n afterEach(() => {\n globallySilencedRules.clear();\n });\n\n describe('silenceRules', () => {\n test('should register given rule keys as silenced', () => {\n const rule = '@stylistic/type-generic-spacing';\n\n expect(globallySilencedRules.has(rule)).toBe(false);\n silenceRules([rule]);\n expect(globallySilencedRules.has(rule)).toBe(true);\n });\n });\n\n describe('filterSilencedRules', () => {\n test('should return the same rules object if no rules are silenced', () => {\n const rules = {\n 'no-console': 'warn',\n 'no-debugger': 'warn',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toBe(rules);\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-console']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'no-console': ['warn'],\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n });\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-bitwise', 'new-cap']);\n\n const rules = {\n 'max-len': 'off',\n 'new-cap': ['error'],\n 'no-alert': ['error'],\n 'no-bitwise': ['error', {\n allow: ['~'],\n }],\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'max-len': 'off',\n 'new-cap': ['warn'],\n 'no-alert': ['error'],\n 'no-bitwise': ['warn', {\n allow: ['~'],\n }],\n });\n });\n\n test('should not warn about unknown rules', () => {\n silenceRules(['no-console', 'no-bitwise']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules);\n\n expect(mocks.warn).not.toHaveBeenCalled();\n expect(mocks.warn).not.toHaveBeenCalled();\n });\n\n test('should warn about unknown rules', () => {\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules, ['no-console', 'no-bitwise']);\n\n expect(mocks.warn).toHaveBeenCalledTimes(1);\n expect(mocks.warn).toHaveBeenCalledWith(\n 'Unknown rule \"no-bitwise\". Please remove it from the silenced rules list.'\n );\n });\n\n test.each([\n [['@typescript-eslint/no-unsafe-call'], ['warn']],\n [new Set(['@typescript-eslint/no-unsafe-call']), ['warn']],\n [[], 'error'],\n ])(\n '#%# should filter scope-related rules and ignore globally silenced rules',\n (silencedRules, expectation) => {\n silenceRules(['@typescript-eslint/no-unsafe-assignment']);\n\n const rules = {\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules, silencedRules)).toStrictEqual({\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': expectation,\n });\n }\n );\n });\n}\n","import type { Linter } from 'eslint';\nimport { merge } from './merge';\n\nexport function mergeAll (...configs: Linter.Config[][]) {\n return configs.flat().reduce((acc, scope) => merge(acc, scope), {} as Linter.Config);\n}\n","import type { Linter } from 'eslint';\nimport { ensureDependencies } from './utils/ensureDependencies';\nimport { merge } from './utils/merge';\nimport { filterSilencedRules } from './utils/silenceRules';\n\nconst configMap = {\n async config () {\n return import('./configs/config');\n },\n async javascript () {\n return import('./configs/javascript');\n },\n async 'javascript-node' () {\n return import('./configs/javascript-node');\n },\n async 'javascript-dom' () {\n return import('./configs/javascript-dom');\n },\n async typescript () {\n return import('./configs/typescript');\n },\n async 'typescript-node' () {\n return import('./configs/typescript-node');\n },\n async 'typescript-dom' () {\n return import('./configs/typescript-dom');\n },\n async vue3 () {\n return import('./configs/vue3');\n },\n async 'vue3-typescript' () {\n return import('./configs/vue3-typescript');\n },\n async vue2 () {\n return import('./configs/vue2');\n },\n async 'vue2-typescript' () {\n return import('./configs/vue2-typescript');\n },\n async jest () {\n return import('./configs/jest');\n },\n async 'jsdoc-based-ts' () {\n return import('./configs/jsdoc-based-ts');\n },\n async strict () {\n return import('./configs/strict');\n },\n} satisfies Record<string, () => Promise<{ default: Linter.Config }>>;\n\ninterface Config {\n /** Precedence order will affect how rules applied */\n preset: (keyof typeof configMap)[];\n config: Linter.Config;\n silenceRules?: string[];\n}\n\nexport async function useInsider (config: Config): Promise<Linter.Config> {\n await ensureDependencies();\n\n const configs = config.preset\n .map(async scope => typeof configMap[scope] === 'function' && (await configMap[scope]()).default)\n .filter(Boolean);\n\n const resolvedConfigs = await Promise.all(configs);\n const resolvedConfigAll = resolvedConfigs.reduce((acc, scope) => merge(acc, scope), {}) as Linter.Config;\n\n delete resolvedConfigAll.files;\n\n const mergedConfig = merge(resolvedConfigAll, config.config);\n\n if (!mergedConfig) {\n return Promise.reject(new Error('No config found'));\n }\n\n if (config.silenceRules) {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);\n } else {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules);\n }\n\n return mergedConfig;\n}\n\nexport { merge } from './utils/merge';\n\nexport { mergeAll } from './utils/mergeAllConfig';\n\nexport { silenceDependencyWarning } from './utils/ensureDependencies';\n\nexport { silenceRules } from './utils/silenceRules';\n"],"names":["require","createRequire","resolve","existsSync","readFileSync","fileURLToPath","installPackage","tsMerge","warn"],"mappings":"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"}
package/dist/main.js CHANGED
@@ -13,7 +13,7 @@ const fixedDependencies = [
13
13
  "eslint",
14
14
  "globals"
15
15
  ];
16
- const require2 = createRequire(import.meta.url);
16
+ const require$1 = createRequire(import.meta.url);
17
17
  function getPackageJSONPath(currentDir) {
18
18
  const fileLocation = resolve(currentDir, "package.json");
19
19
  if (existsSync(fileLocation)) {
@@ -39,7 +39,7 @@ function getExpectedDependencies() {
39
39
  }
40
40
  function getDependencyVersionFromConsumer(depName, baseDir = process.cwd()) {
41
41
  try {
42
- const pkgJsonPath = require2.resolve(`${depName}/package.json`, { paths: [baseDir] });
42
+ const pkgJsonPath = require$1.resolve(`${depName}/package.json`, { paths: [baseDir] });
43
43
  const pkgContent = readFileSync(pkgJsonPath, "utf8");
44
44
  const pkg = JSON.parse(pkgContent);
45
45
  return pkg.version;
@@ -125,34 +125,34 @@ const configMap = {
125
125
  return import("./index-DbPDbm1S.js");
126
126
  },
127
127
  async javascript() {
128
- return import("./index-Os0JbUht.js");
128
+ return import("./index-DNaOYI2H.js");
129
129
  },
130
130
  async "javascript-node"() {
131
- return import("./index-CI6TkV4e.js");
131
+ return import("./index-B-EAZ_Tc.js");
132
132
  },
133
133
  async "javascript-dom"() {
134
- return import("./index-BCvaWfkS.js");
134
+ return import("./index-Cs26udcc.js");
135
135
  },
136
136
  async typescript() {
137
- return import("./index-CeOu2y8a.js");
137
+ return import("./index-C7slLCKk.js");
138
138
  },
139
139
  async "typescript-node"() {
140
- return import("./index-B5e6DfQZ.js");
140
+ return import("./index-C9yxeCQI.js");
141
141
  },
142
142
  async "typescript-dom"() {
143
- return import("./index-Cpdbh3sr.js");
143
+ return import("./index-DUc2n2W_.js");
144
144
  },
145
145
  async vue3() {
146
- return import("./index-M1K64ssP.js");
146
+ return import("./index-19YYf8VW.js");
147
147
  },
148
148
  async "vue3-typescript"() {
149
- return import("./index-BIRTKnfa.js");
149
+ return import("./index-DUyKgs_H.js");
150
150
  },
151
151
  async vue2() {
152
- return import("./index-BabnpV1R.js");
152
+ return import("./index-iXnnqiab.js");
153
153
  },
154
154
  async "vue2-typescript"() {
155
- return import("./index-DWmPpTAr.js");
155
+ return import("./index-DzK5HgVT.js");
156
156
  },
157
157
  async jest() {
158
158
  return import("./index-DJL4a_Kw.js");
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/utils/ensureDependencies.ts","../src/utils/merge.ts","../src/utils/silenceRules.ts","../src/utils/mergeAllConfig.ts","../src/main.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport { resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { installPackage } from '@antfu/install-pkg';\nimport semver from 'semver';\n\nlet turnOff = false;\nlet scanned = false;\nconst silencedDependencies = new Set<string>();\nconst fixedDependencies = [\n 'eslint',\n 'globals',\n];\nconst require = createRequire(import.meta.url);\n\nfunction getPackageJSONPath (currentDir: string) {\n const fileLocation = resolve(currentDir, 'package.json');\n\n if (existsSync(fileLocation)) {\n return fileLocation;\n }\n\n if (currentDir === process.cwd()) {\n throw new Error(`Unable to locate package.json in ${currentDir}`);\n }\n\n const parentDir = resolve(currentDir, '..');\n\n return getPackageJSONPath(parentDir);\n}\n\nfunction getPackageJSON (fileLocation: string) {\n const packageJsonContent = readFileSync(fileLocation, 'utf8');\n\n return JSON.parse(packageJsonContent) as Record<string, Record<string, string>>;\n}\n\nfunction getExpectedDependencies (): Record<string, string> {\n const path = getPackageJSONPath(fileURLToPath(new URL(/* @vite-ignore */ import.meta.url)));\n const packageJson = getPackageJSON(path);\n\n return packageJson.dependencies;\n}\n\nfunction getDependencyVersionFromConsumer (depName: string, baseDir: string = process.cwd()): string | undefined {\n try {\n const pkgJsonPath = require.resolve(`${depName}/package.json`, { paths: [baseDir] });\n const pkgContent = readFileSync(pkgJsonPath, 'utf8');\n const pkg: { version?: string } = JSON.parse(pkgContent) as Record<string, Record<string, string>>;\n\n return pkg.version;\n } catch {\n return undefined;\n }\n}\n\nexport async function ensureDependencies () {\n if (turnOff || scanned) {\n return;\n }\n\n scanned = true;\n\n const expectedDependencies = Object.entries(getExpectedDependencies());\n const missingDependencyEntries = expectedDependencies.filter(\n ([expectedDependency, expectedVersion]) => {\n if (!fixedDependencies.includes(expectedDependency) || silencedDependencies.has(expectedDependency)) {\n return false;\n }\n\n const installedVersion = getDependencyVersionFromConsumer(expectedDependency);\n\n if (!installedVersion) {\n return true;\n }\n\n return semver.lt(installedVersion, expectedVersion);\n }\n );\n\n if (!missingDependencyEntries.length) {\n return;\n }\n\n const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\\W+/, '')}`);\n\n // eslint-disable-next-line no-console\n console.info('Missing dependencies detected:');\n // eslint-disable-next-line no-console\n console.info(missingDependencies.map(dependency => ` - ${dependency}`).join('\\n'));\n // eslint-disable-next-line no-console\n console.info('\\nInstalling dependencies:');\n\n await installPackage(missingDependencies, { dev: true, additionalArgs: ['-E'] });\n\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n}\n\nexport function silenceDependencyWarning (\n /**\n * Pass `true` to silence all dependency warnings.\n */\n all: boolean\n): void;\n\nexport function silenceDependencyWarning (dependencies: string[]): void;\n\nexport function silenceDependencyWarning (input: boolean | string[]) {\n if (typeof input === 'boolean') {\n turnOff = input;\n\n return;\n }\n\n silencedDependencies.clear();\n input.forEach(dependency => silencedDependencies.add(String(dependency)));\n}\n","import { merge as tsMerge } from 'ts-deepmerge';\n\nexport function merge<Arguments extends NonNullable<unknown>[]> (...args: Arguments): Arguments[number] {\n return tsMerge.withOptions({ mergeArrays: false }, ...args) as unknown as Arguments;\n}\n","import { warn } from 'node:console';\nimport type { Linter } from 'eslint';\n\nconst globallySilencedRules = new Set<string>();\n\n/**\n * Silence rules globally.\n * This will affect all configs scopes.\n */\nexport function silenceRules (rules: string[]) {\n rules.forEach(rule => {\n globallySilencedRules.add(rule);\n });\n}\n\nfunction silenceRule (config: Linter.RuleEntry) {\n const [, ...restConfig] = Array.isArray(config) ? config : [];\n\n return ['warn', ...restConfig as Record<string, unknown>[]] as Linter.RuleSeverityAndOptions;\n}\n\nexport function filterSilencedRules (\n rules: Partial<Linter.RulesRecord> | Readonly<Linter.RulesRecord> | undefined,\n silencedRules?: string[] | Set<string>\n) {\n let targetSilencedRules = silencedRules || globallySilencedRules;\n\n if (Array.isArray(targetSilencedRules)) {\n targetSilencedRules = new Set(targetSilencedRules);\n }\n\n if (!rules || !targetSilencedRules.size) {\n return rules;\n }\n\n if (silencedRules) {\n targetSilencedRules.forEach(rule => {\n if (rules[rule]) {\n return;\n }\n\n warn(`Unknown rule \"${rule}\". Please remove it from the silenced rules list.`);\n });\n }\n\n return Object.entries(rules).reduce((newRules, [key, value]) => {\n if (value) {\n newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;\n }\n\n return newRules;\n }, {} as Linter.RulesRecord);\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { vi, describe, test, expect, afterEach } = import.meta.vitest;\n\n const mocks = vi.hoisted(() => ({\n warn: vi.fn(),\n }));\n\n vi.mock('node:console', () => mocks);\n\n afterEach(() => {\n globallySilencedRules.clear();\n });\n\n describe('silenceRules', () => {\n test('should register given rule keys as silenced', () => {\n const rule = '@stylistic/type-generic-spacing';\n\n expect(globallySilencedRules.has(rule)).toBe(false);\n silenceRules([rule]);\n expect(globallySilencedRules.has(rule)).toBe(true);\n });\n });\n\n describe('filterSilencedRules', () => {\n test('should return the same rules object if no rules are silenced', () => {\n const rules = {\n 'no-console': 'warn',\n 'no-debugger': 'warn',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toBe(rules);\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-console']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'no-console': ['warn'],\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n });\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-bitwise', 'new-cap']);\n\n const rules = {\n 'max-len': 'off',\n 'new-cap': ['error'],\n 'no-alert': ['error'],\n 'no-bitwise': ['error', {\n allow: ['~'],\n }],\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'max-len': 'off',\n 'new-cap': ['warn'],\n 'no-alert': ['error'],\n 'no-bitwise': ['warn', {\n allow: ['~'],\n }],\n });\n });\n\n test('should not warn about unknown rules', () => {\n silenceRules(['no-console', 'no-bitwise']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules);\n\n expect(mocks.warn).not.toHaveBeenCalled();\n expect(mocks.warn).not.toHaveBeenCalled();\n });\n\n test('should warn about unknown rules', () => {\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules, ['no-console', 'no-bitwise']);\n\n expect(mocks.warn).toHaveBeenCalledTimes(1);\n expect(mocks.warn).toHaveBeenCalledWith(\n 'Unknown rule \"no-bitwise\". Please remove it from the silenced rules list.'\n );\n });\n\n test.each([\n [['@typescript-eslint/no-unsafe-call'], ['warn']],\n [new Set(['@typescript-eslint/no-unsafe-call']), ['warn']],\n [[], 'error'],\n ])(\n '#%# should filter scope-related rules and ignore globally silenced rules',\n (silencedRules, expectation) => {\n silenceRules(['@typescript-eslint/no-unsafe-assignment']);\n\n const rules = {\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules, silencedRules)).toStrictEqual({\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': expectation,\n });\n }\n );\n });\n}\n","import type { Linter } from 'eslint';\nimport { merge } from './merge';\n\nexport function mergeAll (...configs: Linter.Config[][]) {\n return configs.flat().reduce((acc, scope) => merge(acc, scope), {} as Linter.Config);\n}\n","import type { Linter } from 'eslint';\nimport { ensureDependencies } from './utils/ensureDependencies';\nimport { merge } from './utils/merge';\nimport { filterSilencedRules } from './utils/silenceRules';\n\nconst configMap = {\n async config () {\n return import('./configs/config');\n },\n async javascript () {\n return import('./configs/javascript');\n },\n async 'javascript-node' () {\n return import('./configs/javascript-node');\n },\n async 'javascript-dom' () {\n return import('./configs/javascript-dom');\n },\n async typescript () {\n return import('./configs/typescript');\n },\n async 'typescript-node' () {\n return import('./configs/typescript-node');\n },\n async 'typescript-dom' () {\n return import('./configs/typescript-dom');\n },\n async vue3 () {\n return import('./configs/vue3');\n },\n async 'vue3-typescript' () {\n return import('./configs/vue3-typescript');\n },\n async vue2 () {\n return import('./configs/vue2');\n },\n async 'vue2-typescript' () {\n return import('./configs/vue2-typescript');\n },\n async jest () {\n return import('./configs/jest');\n },\n async 'jsdoc-based-ts' () {\n return import('./configs/jsdoc-based-ts');\n },\n async strict () {\n return import('./configs/strict');\n },\n} satisfies Record<string, () => Promise<{ default: Linter.Config }>>;\n\ninterface Config {\n /** Precedence order will affect how rules applied */\n preset: (keyof typeof configMap)[];\n config: Linter.Config;\n silenceRules?: string[];\n}\n\nexport async function useInsider (config: Config): Promise<Linter.Config> {\n await ensureDependencies();\n\n const configs = config.preset\n .map(async scope => typeof configMap[scope] === 'function' && (await configMap[scope]()).default)\n .filter(Boolean);\n\n const resolvedConfigs = await Promise.all(configs);\n const resolvedConfigAll = resolvedConfigs.reduce((acc, scope) => merge(acc, scope), {}) as Linter.Config;\n\n delete resolvedConfigAll.files;\n\n const mergedConfig = merge(resolvedConfigAll, config.config);\n\n if (!mergedConfig) {\n return Promise.reject(new Error('No config found'));\n }\n\n if (config.silenceRules) {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);\n } else {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules);\n }\n\n return mergedConfig;\n}\n\nexport { merge } from './utils/merge';\n\nexport { mergeAll } from './utils/mergeAllConfig';\n\nexport { silenceDependencyWarning } from './utils/ensureDependencies';\n\nexport { silenceRules } from './utils/silenceRules';\n"],"names":["require","tsMerge"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/utils/ensureDependencies.ts","../src/utils/merge.ts","../src/utils/silenceRules.ts","../src/utils/mergeAllConfig.ts","../src/main.ts"],"sourcesContent":["import { existsSync, readFileSync } from 'node:fs';\nimport { createRequire } from 'node:module';\nimport { resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport { installPackage } from '@antfu/install-pkg';\nimport semver from 'semver';\n\nlet turnOff = false;\nlet scanned = false;\nconst silencedDependencies = new Set<string>();\nconst fixedDependencies = [\n 'eslint',\n 'globals',\n];\nconst require = createRequire(import.meta.url);\n\nfunction getPackageJSONPath (currentDir: string) {\n const fileLocation = resolve(currentDir, 'package.json');\n\n if (existsSync(fileLocation)) {\n return fileLocation;\n }\n\n if (currentDir === process.cwd()) {\n throw new Error(`Unable to locate package.json in ${currentDir}`);\n }\n\n const parentDir = resolve(currentDir, '..');\n\n return getPackageJSONPath(parentDir);\n}\n\nfunction getPackageJSON (fileLocation: string) {\n const packageJsonContent = readFileSync(fileLocation, 'utf8');\n\n return JSON.parse(packageJsonContent) as Record<string, Record<string, string>>;\n}\n\nfunction getExpectedDependencies (): Record<string, string> {\n const path = getPackageJSONPath(fileURLToPath(new URL(/* @vite-ignore */ import.meta.url)));\n const packageJson = getPackageJSON(path);\n\n return packageJson.dependencies;\n}\n\nfunction getDependencyVersionFromConsumer (depName: string, baseDir: string = process.cwd()): string | undefined {\n try {\n const pkgJsonPath = require.resolve(`${depName}/package.json`, { paths: [baseDir] });\n const pkgContent = readFileSync(pkgJsonPath, 'utf8');\n const pkg: { version?: string } = JSON.parse(pkgContent) as Record<string, Record<string, string>>;\n\n return pkg.version;\n } catch {\n return undefined;\n }\n}\n\nexport async function ensureDependencies () {\n if (turnOff || scanned) {\n return;\n }\n\n scanned = true;\n\n const expectedDependencies = Object.entries(getExpectedDependencies());\n const missingDependencyEntries = expectedDependencies.filter(\n ([expectedDependency, expectedVersion]) => {\n if (!fixedDependencies.includes(expectedDependency) || silencedDependencies.has(expectedDependency)) {\n return false;\n }\n\n const installedVersion = getDependencyVersionFromConsumer(expectedDependency);\n\n if (!installedVersion) {\n return true;\n }\n\n return semver.lt(installedVersion, expectedVersion);\n }\n );\n\n if (!missingDependencyEntries.length) {\n return;\n }\n\n const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\\W+/, '')}`);\n\n // eslint-disable-next-line no-console\n console.info('Missing dependencies detected:');\n // eslint-disable-next-line no-console\n console.info(missingDependencies.map(dependency => ` - ${dependency}`).join('\\n'));\n // eslint-disable-next-line no-console\n console.info('\\nInstalling dependencies:');\n\n await installPackage(missingDependencies, { dev: true, additionalArgs: ['-E'] });\n\n // eslint-disable-next-line no-process-exit\n process.exit(1);\n}\n\nexport function silenceDependencyWarning (\n /**\n * Pass `true` to silence all dependency warnings.\n */\n all: boolean\n): void;\n\nexport function silenceDependencyWarning (dependencies: string[]): void;\n\nexport function silenceDependencyWarning (input: boolean | string[]) {\n if (typeof input === 'boolean') {\n turnOff = input;\n\n return;\n }\n\n silencedDependencies.clear();\n input.forEach(dependency => silencedDependencies.add(String(dependency)));\n}\n","import { merge as tsMerge } from 'ts-deepmerge';\n\nexport function merge<Arguments extends NonNullable<unknown>[]> (...args: Arguments): Arguments[number] {\n return tsMerge.withOptions({ mergeArrays: false }, ...args);\n}\n","import { warn } from 'node:console';\nimport type { Linter } from 'eslint';\n\nconst globallySilencedRules = new Set<string>();\n\n/**\n * Silence rules globally.\n * This will affect all configs scopes.\n */\nexport function silenceRules (rules: string[]) {\n rules.forEach(rule => {\n globallySilencedRules.add(rule);\n });\n}\n\nfunction silenceRule (config: Linter.RuleEntry) {\n const [, ...restConfig] = Array.isArray(config) ? config : [];\n\n return ['warn', ...restConfig as Record<string, unknown>[]] as Linter.RuleSeverityAndOptions;\n}\n\nexport function filterSilencedRules (\n rules: Partial<Linter.RulesRecord> | Readonly<Linter.RulesRecord> | undefined,\n silencedRules?: string[] | Set<string>\n) {\n let targetSilencedRules = silencedRules || globallySilencedRules;\n\n if (Array.isArray(targetSilencedRules)) {\n targetSilencedRules = new Set(targetSilencedRules);\n }\n\n if (!rules || !targetSilencedRules.size) {\n return rules;\n }\n\n if (silencedRules) {\n targetSilencedRules.forEach(rule => {\n if (rules[rule]) {\n return;\n }\n\n warn(`Unknown rule \"${rule}\". Please remove it from the silenced rules list.`);\n });\n }\n\n return Object.entries(rules).reduce((newRules, [key, value]) => {\n if (value) {\n newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;\n }\n\n return newRules;\n }, {} as Linter.RulesRecord);\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { vi, describe, test, expect, afterEach } = import.meta.vitest;\n\n const mocks = vi.hoisted(() => ({\n warn: vi.fn(),\n }));\n\n vi.mock('node:console', () => mocks);\n\n afterEach(() => {\n globallySilencedRules.clear();\n });\n\n describe('silenceRules', () => {\n test('should register given rule keys as silenced', () => {\n const rule = '@stylistic/type-generic-spacing';\n\n expect(globallySilencedRules.has(rule)).toBe(false);\n silenceRules([rule]);\n expect(globallySilencedRules.has(rule)).toBe(true);\n });\n });\n\n describe('filterSilencedRules', () => {\n test('should return the same rules object if no rules are silenced', () => {\n const rules = {\n 'no-console': 'warn',\n 'no-debugger': 'warn',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toBe(rules);\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-console']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'no-console': ['warn'],\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n });\n });\n\n test('should return a new rules object with silenced rules silenced and other rules unchanged', () => {\n silenceRules(['no-bitwise', 'new-cap']);\n\n const rules = {\n 'max-len': 'off',\n 'new-cap': ['error'],\n 'no-alert': ['error'],\n 'no-bitwise': ['error', {\n allow: ['~'],\n }],\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules)).toStrictEqual({\n 'max-len': 'off',\n 'new-cap': ['warn'],\n 'no-alert': ['error'],\n 'no-bitwise': ['warn', {\n allow: ['~'],\n }],\n });\n });\n\n test('should not warn about unknown rules', () => {\n silenceRules(['no-console', 'no-bitwise']);\n\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules);\n\n expect(mocks.warn).not.toHaveBeenCalled();\n expect(mocks.warn).not.toHaveBeenCalled();\n });\n\n test('should warn about unknown rules', () => {\n const rules = {\n 'no-console': 'error',\n 'no-debugger': 'warn',\n 'no-alert': 'error',\n } as Linter.RulesRecord;\n\n filterSilencedRules(rules, ['no-console', 'no-bitwise']);\n\n expect(mocks.warn).toHaveBeenCalledTimes(1);\n expect(mocks.warn).toHaveBeenCalledWith(\n 'Unknown rule \"no-bitwise\". Please remove it from the silenced rules list.'\n );\n });\n\n test.each([\n [['@typescript-eslint/no-unsafe-call'], ['warn']],\n [new Set(['@typescript-eslint/no-unsafe-call']), ['warn']],\n [[], 'error'],\n ])(\n '#%# should filter scope-related rules and ignore globally silenced rules',\n (silencedRules, expectation) => {\n silenceRules(['@typescript-eslint/no-unsafe-assignment']);\n\n const rules = {\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': 'error',\n } as Linter.RulesRecord;\n\n expect(filterSilencedRules(rules, silencedRules)).toStrictEqual({\n '@typescript-eslint/no-unsafe-assignment': 'error',\n '@typescript-eslint/no-unsafe-member-access': 'error',\n '@typescript-eslint/no-unsafe-call': expectation,\n });\n }\n );\n });\n}\n","import type { Linter } from 'eslint';\nimport { merge } from './merge';\n\nexport function mergeAll (...configs: Linter.Config[][]) {\n return configs.flat().reduce((acc, scope) => merge(acc, scope), {} as Linter.Config);\n}\n","import type { Linter } from 'eslint';\nimport { ensureDependencies } from './utils/ensureDependencies';\nimport { merge } from './utils/merge';\nimport { filterSilencedRules } from './utils/silenceRules';\n\nconst configMap = {\n async config () {\n return import('./configs/config');\n },\n async javascript () {\n return import('./configs/javascript');\n },\n async 'javascript-node' () {\n return import('./configs/javascript-node');\n },\n async 'javascript-dom' () {\n return import('./configs/javascript-dom');\n },\n async typescript () {\n return import('./configs/typescript');\n },\n async 'typescript-node' () {\n return import('./configs/typescript-node');\n },\n async 'typescript-dom' () {\n return import('./configs/typescript-dom');\n },\n async vue3 () {\n return import('./configs/vue3');\n },\n async 'vue3-typescript' () {\n return import('./configs/vue3-typescript');\n },\n async vue2 () {\n return import('./configs/vue2');\n },\n async 'vue2-typescript' () {\n return import('./configs/vue2-typescript');\n },\n async jest () {\n return import('./configs/jest');\n },\n async 'jsdoc-based-ts' () {\n return import('./configs/jsdoc-based-ts');\n },\n async strict () {\n return import('./configs/strict');\n },\n} satisfies Record<string, () => Promise<{ default: Linter.Config }>>;\n\ninterface Config {\n /** Precedence order will affect how rules applied */\n preset: (keyof typeof configMap)[];\n config: Linter.Config;\n silenceRules?: string[];\n}\n\nexport async function useInsider (config: Config): Promise<Linter.Config> {\n await ensureDependencies();\n\n const configs = config.preset\n .map(async scope => typeof configMap[scope] === 'function' && (await configMap[scope]()).default)\n .filter(Boolean);\n\n const resolvedConfigs = await Promise.all(configs);\n const resolvedConfigAll = resolvedConfigs.reduce((acc, scope) => merge(acc, scope), {}) as Linter.Config;\n\n delete resolvedConfigAll.files;\n\n const mergedConfig = merge(resolvedConfigAll, config.config);\n\n if (!mergedConfig) {\n return Promise.reject(new Error('No config found'));\n }\n\n if (config.silenceRules) {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);\n } else {\n mergedConfig.rules = filterSilencedRules(mergedConfig.rules);\n }\n\n return mergedConfig;\n}\n\nexport { merge } from './utils/merge';\n\nexport { mergeAll } from './utils/mergeAllConfig';\n\nexport { silenceDependencyWarning } from './utils/ensureDependencies';\n\nexport { silenceRules } from './utils/silenceRules';\n"],"names":["require","tsMerge"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"removePluginsFromConfigs-ByipAus1.js","sources":["../src/rules/typescript.ts","../src/utils/removePluginsFromConfigs.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nconst overriddenRules: Linter.RulesRecord = {\n indent: 'off',\n 'no-undef': 'off',\n 'no-shadow': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n 'no-extra-parens': 'off',\n '@typescript-eslint/no-extra-parens': 'off',\n '@typescript-eslint/space-before-function-paren': 'off',\n 'no-unused-vars': 'off',\n 'no-useless-constructor': 'off',\n '@typescript-eslint/indent': 'off',\n semi: 'off',\n '@typescript-eslint/semi': 'off',\n 'react/jsx-filename-extension': 'off',\n 'no-use-before-define': 'off',\n '@typescript-eslint/lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/space-before-blocks': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n 'no-redeclare': 'off',\n // https://eslint.style/rules/ts/function-call-spacing\n '@typescript-eslint/func-call-spacing': 'off',\n};\n\nexport default {\n rules: {\n ...overriddenRules,\n '@typescript-eslint/no-shadow': 'error',\n '@typescript-eslint/no-unused-vars': ['error'],\n '@typescript-eslint/no-useless-constructor': ['error'],\n '@typescript-eslint/array-type': ['error', { default: 'array', readonly: 'array' }],\n '@typescript-eslint/no-misused-promises': ['error', {\n checksVoidReturn: { arguments: false },\n }],\n '@typescript-eslint/no-use-before-define': ['error'],\n '@typescript-eslint/consistent-type-imports': ['error', {\n fixStyle: 'inline-type-imports',\n disallowTypeAnnotations: false,\n }],\n '@typescript-eslint/naming-convention': ['error', {\n selector: ['typeLike'],\n format: ['PascalCase'],\n custom: {\n regex: '^((I|T|E|G|C)[A-Z][a-z]|[A-Z]{1,2}$)',\n match: false,\n },\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport function removePluginsFromConfigs (configs: Linter.Config[]): Linter.Config[] {\n return configs.map(config => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { plugins, ...rest } = config;\n\n return rest;\n });\n}\n"],"names":[],"mappings":"AAEA,MAAM,kBAAsC;AAAA,EACxC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,mCAAmC;AAAA,EACnC,mBAAmB;AAAA,EACnB,sCAAsC;AAAA,EACtC,kDAAkD;AAAA,EAClD,kBAAkB;AAAA,EAClB,0BAA0B;AAAA,EAC1B,6BAA6B;AAAA,EAC7B,MAAM;AAAA,EACN,2BAA2B;AAAA,EAC3B,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,kDAAkD;AAAA,EAClD,oCAAoC;AAAA,EACpC,0CAA0C;AAAA,EAC1C,2CAA2C;AAAA,EAC3C,gBAAgB;AAAA;AAAA,EAEhB,wCAAwC;;AAG5C,MAAe,aAAA;AAAA,EACX,OAAO;AAAA,IACH,GAAG;AAAA,IACH,gCAAgC;AAAA,IAChC,qCAAqC,CAAC,OAAO;AAAA,IAC7C,6CAA6C,CAAC,OAAO;AAAA,IACrD,iCAAiC,CAAC,SAAS,EAAE,SAAS,SAAS,UAAU,SAAS;AAAA,IAClF,0CAA0C,CAAC,SAAS;AAAA,MAChD,kBAAkB,EAAE,WAAW,MAAO;AAAA,IAAA,CACzC;AAAA,IACD,2CAA2C,CAAC,OAAO;AAAA,IACnD,8CAA8C,CAAC,SAAS;AAAA,MACpD,UAAU;AAAA,MACV,yBAAyB;AAAA,IAAA,CAC5B;AAAA,IACD,wCAAwC,CAAC,SAAS;AAAA,MAC9C,UAAU,CAAC,UAAU;AAAA,MACrB,QAAQ,CAAC,YAAY;AAAA,MACrB,QAAQ;AAAA,QACJ,OAAO;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IAEd,CAAA;AAAA,EAAA;;AC9CH,SAAU,yBAA0B,SAAwB;AACvD,SAAA,QAAQ,IAAI,CAAS,WAAA;AAExB,UAAM,EAAE,SAAS,GAAG,KAAA,IAAS;AAEtB,WAAA;AAAA,EAAA,CACV;AACL;"}
1
+ {"version":3,"file":"removePluginsFromConfigs-ByipAus1.js","sources":["../src/rules/typescript.ts","../src/utils/removePluginsFromConfigs.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nconst overriddenRules: Linter.RulesRecord = {\n indent: 'off',\n 'no-undef': 'off',\n 'no-shadow': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n 'no-extra-parens': 'off',\n '@typescript-eslint/no-extra-parens': 'off',\n '@typescript-eslint/space-before-function-paren': 'off',\n 'no-unused-vars': 'off',\n 'no-useless-constructor': 'off',\n '@typescript-eslint/indent': 'off',\n semi: 'off',\n '@typescript-eslint/semi': 'off',\n 'react/jsx-filename-extension': 'off',\n 'no-use-before-define': 'off',\n '@typescript-eslint/lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/space-before-blocks': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n 'no-redeclare': 'off',\n // https://eslint.style/rules/ts/function-call-spacing\n '@typescript-eslint/func-call-spacing': 'off',\n};\n\nexport default {\n rules: {\n ...overriddenRules,\n '@typescript-eslint/no-shadow': 'error',\n '@typescript-eslint/no-unused-vars': ['error'],\n '@typescript-eslint/no-useless-constructor': ['error'],\n '@typescript-eslint/array-type': ['error', { default: 'array', readonly: 'array' }],\n '@typescript-eslint/no-misused-promises': ['error', {\n checksVoidReturn: { arguments: false },\n }],\n '@typescript-eslint/no-use-before-define': ['error'],\n '@typescript-eslint/consistent-type-imports': ['error', {\n fixStyle: 'inline-type-imports',\n disallowTypeAnnotations: false,\n }],\n '@typescript-eslint/naming-convention': ['error', {\n selector: ['typeLike'],\n format: ['PascalCase'],\n custom: {\n regex: '^((I|T|E|G|C)[A-Z][a-z]|[A-Z]{1,2}$)',\n match: false,\n },\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport function removePluginsFromConfigs (configs: Linter.Config[]): Linter.Config[] {\n return configs.map(config => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { plugins, ...rest } = config;\n\n return rest;\n });\n}\n"],"names":[],"mappings":"AAEA,MAAM,kBAAsC;AAAA,EACxC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,mCAAmC;AAAA,EACnC,mBAAmB;AAAA,EACnB,sCAAsC;AAAA,EACtC,kDAAkD;AAAA,EAClD,kBAAkB;AAAA,EAClB,0BAA0B;AAAA,EAC1B,6BAA6B;AAAA,EAC7B,MAAM;AAAA,EACN,2BAA2B;AAAA,EAC3B,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,kDAAkD;AAAA,EAClD,oCAAoC;AAAA,EACpC,0CAA0C;AAAA,EAC1C,2CAA2C;AAAA,EAC3C,gBAAgB;AAAA;AAAA,EAEhB,wCAAwC;;AAG5C,MAAA,aAAe;AAAA,EACX,OAAO;AAAA,IACH,GAAG;AAAA,IACH,gCAAgC;AAAA,IAChC,qCAAqC,CAAC,OAAO;AAAA,IAC7C,6CAA6C,CAAC,OAAO;AAAA,IACrD,iCAAiC,CAAC,SAAS,EAAE,SAAS,SAAS,UAAU,SAAS;AAAA,IAClF,0CAA0C,CAAC,SAAS;AAAA,MAChD,kBAAkB,EAAE,WAAW,MAAA;AAAA,IAAK,CACvC;AAAA,IACD,2CAA2C,CAAC,OAAO;AAAA,IACnD,8CAA8C,CAAC,SAAS;AAAA,MACpD,UAAU;AAAA,MACV,yBAAyB;AAAA,IAAA,CAC5B;AAAA,IACD,wCAAwC,CAAC,SAAS;AAAA,MAC9C,UAAU,CAAC,UAAU;AAAA,MACrB,QAAQ,CAAC,YAAY;AAAA,MACrB,QAAQ;AAAA,QACJ,OAAO;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IACV,CACJ;AAAA,EAAA;;AC9CH,SAAU,yBAA0B,SAAwB;AAC9D,SAAO,QAAQ,IAAI,CAAA,WAAS;AAExB,UAAM,EAAE,SAAS,GAAG,KAAA,IAAS;AAE7B,WAAO;AAAA,EACX,CAAC;AACL;"}
@@ -1 +1 @@
1
- {"version":3,"file":"removePluginsFromConfigs-D8PUzDVg.cjs","sources":["../src/rules/typescript.ts","../src/utils/removePluginsFromConfigs.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nconst overriddenRules: Linter.RulesRecord = {\n indent: 'off',\n 'no-undef': 'off',\n 'no-shadow': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n 'no-extra-parens': 'off',\n '@typescript-eslint/no-extra-parens': 'off',\n '@typescript-eslint/space-before-function-paren': 'off',\n 'no-unused-vars': 'off',\n 'no-useless-constructor': 'off',\n '@typescript-eslint/indent': 'off',\n semi: 'off',\n '@typescript-eslint/semi': 'off',\n 'react/jsx-filename-extension': 'off',\n 'no-use-before-define': 'off',\n '@typescript-eslint/lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/space-before-blocks': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n 'no-redeclare': 'off',\n // https://eslint.style/rules/ts/function-call-spacing\n '@typescript-eslint/func-call-spacing': 'off',\n};\n\nexport default {\n rules: {\n ...overriddenRules,\n '@typescript-eslint/no-shadow': 'error',\n '@typescript-eslint/no-unused-vars': ['error'],\n '@typescript-eslint/no-useless-constructor': ['error'],\n '@typescript-eslint/array-type': ['error', { default: 'array', readonly: 'array' }],\n '@typescript-eslint/no-misused-promises': ['error', {\n checksVoidReturn: { arguments: false },\n }],\n '@typescript-eslint/no-use-before-define': ['error'],\n '@typescript-eslint/consistent-type-imports': ['error', {\n fixStyle: 'inline-type-imports',\n disallowTypeAnnotations: false,\n }],\n '@typescript-eslint/naming-convention': ['error', {\n selector: ['typeLike'],\n format: ['PascalCase'],\n custom: {\n regex: '^((I|T|E|G|C)[A-Z][a-z]|[A-Z]{1,2}$)',\n match: false,\n },\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport function removePluginsFromConfigs (configs: Linter.Config[]): Linter.Config[] {\n return configs.map(config => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { plugins, ...rest } = config;\n\n return rest;\n });\n}\n"],"names":[],"mappings":";AAEA,MAAM,kBAAsC;AAAA,EACxC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,mCAAmC;AAAA,EACnC,mBAAmB;AAAA,EACnB,sCAAsC;AAAA,EACtC,kDAAkD;AAAA,EAClD,kBAAkB;AAAA,EAClB,0BAA0B;AAAA,EAC1B,6BAA6B;AAAA,EAC7B,MAAM;AAAA,EACN,2BAA2B;AAAA,EAC3B,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,kDAAkD;AAAA,EAClD,oCAAoC;AAAA,EACpC,0CAA0C;AAAA,EAC1C,2CAA2C;AAAA,EAC3C,gBAAgB;AAAA;AAAA,EAEhB,wCAAwC;;AAG5C,MAAe,aAAA;AAAA,EACX,OAAO;AAAA,IACH,GAAG;AAAA,IACH,gCAAgC;AAAA,IAChC,qCAAqC,CAAC,OAAO;AAAA,IAC7C,6CAA6C,CAAC,OAAO;AAAA,IACrD,iCAAiC,CAAC,SAAS,EAAE,SAAS,SAAS,UAAU,SAAS;AAAA,IAClF,0CAA0C,CAAC,SAAS;AAAA,MAChD,kBAAkB,EAAE,WAAW,MAAO;AAAA,IAAA,CACzC;AAAA,IACD,2CAA2C,CAAC,OAAO;AAAA,IACnD,8CAA8C,CAAC,SAAS;AAAA,MACpD,UAAU;AAAA,MACV,yBAAyB;AAAA,IAAA,CAC5B;AAAA,IACD,wCAAwC,CAAC,SAAS;AAAA,MAC9C,UAAU,CAAC,UAAU;AAAA,MACrB,QAAQ,CAAC,YAAY;AAAA,MACrB,QAAQ;AAAA,QACJ,OAAO;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IAEd,CAAA;AAAA,EAAA;;AC9CH,SAAU,yBAA0B,SAAwB;AACvD,SAAA,QAAQ,IAAI,CAAS,WAAA;AAExB,UAAM,EAAE,SAAS,GAAG,KAAA,IAAS;AAEtB,WAAA;AAAA,EAAA,CACV;AACL;;;"}
1
+ {"version":3,"file":"removePluginsFromConfigs-D8PUzDVg.cjs","sources":["../src/rules/typescript.ts","../src/utils/removePluginsFromConfigs.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nconst overriddenRules: Linter.RulesRecord = {\n indent: 'off',\n 'no-undef': 'off',\n 'no-shadow': 'off',\n '@typescript-eslint/comma-dangle': 'off',\n 'no-extra-parens': 'off',\n '@typescript-eslint/no-extra-parens': 'off',\n '@typescript-eslint/space-before-function-paren': 'off',\n 'no-unused-vars': 'off',\n 'no-useless-constructor': 'off',\n '@typescript-eslint/indent': 'off',\n semi: 'off',\n '@typescript-eslint/semi': 'off',\n 'react/jsx-filename-extension': 'off',\n 'no-use-before-define': 'off',\n '@typescript-eslint/lines-between-class-members': 'off',\n '@typescript-eslint/comma-spacing': 'off',\n '@typescript-eslint/space-before-blocks': 'off',\n '@typescript-eslint/object-curly-spacing': 'off',\n 'no-redeclare': 'off',\n // https://eslint.style/rules/ts/function-call-spacing\n '@typescript-eslint/func-call-spacing': 'off',\n};\n\nexport default {\n rules: {\n ...overriddenRules,\n '@typescript-eslint/no-shadow': 'error',\n '@typescript-eslint/no-unused-vars': ['error'],\n '@typescript-eslint/no-useless-constructor': ['error'],\n '@typescript-eslint/array-type': ['error', { default: 'array', readonly: 'array' }],\n '@typescript-eslint/no-misused-promises': ['error', {\n checksVoidReturn: { arguments: false },\n }],\n '@typescript-eslint/no-use-before-define': ['error'],\n '@typescript-eslint/consistent-type-imports': ['error', {\n fixStyle: 'inline-type-imports',\n disallowTypeAnnotations: false,\n }],\n '@typescript-eslint/naming-convention': ['error', {\n selector: ['typeLike'],\n format: ['PascalCase'],\n custom: {\n regex: '^((I|T|E|G|C)[A-Z][a-z]|[A-Z]{1,2}$)',\n match: false,\n },\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport function removePluginsFromConfigs (configs: Linter.Config[]): Linter.Config[] {\n return configs.map(config => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { plugins, ...rest } = config;\n\n return rest;\n });\n}\n"],"names":[],"mappings":";AAEA,MAAM,kBAAsC;AAAA,EACxC,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,mCAAmC;AAAA,EACnC,mBAAmB;AAAA,EACnB,sCAAsC;AAAA,EACtC,kDAAkD;AAAA,EAClD,kBAAkB;AAAA,EAClB,0BAA0B;AAAA,EAC1B,6BAA6B;AAAA,EAC7B,MAAM;AAAA,EACN,2BAA2B;AAAA,EAC3B,gCAAgC;AAAA,EAChC,wBAAwB;AAAA,EACxB,kDAAkD;AAAA,EAClD,oCAAoC;AAAA,EACpC,0CAA0C;AAAA,EAC1C,2CAA2C;AAAA,EAC3C,gBAAgB;AAAA;AAAA,EAEhB,wCAAwC;;AAG5C,MAAA,aAAe;AAAA,EACX,OAAO;AAAA,IACH,GAAG;AAAA,IACH,gCAAgC;AAAA,IAChC,qCAAqC,CAAC,OAAO;AAAA,IAC7C,6CAA6C,CAAC,OAAO;AAAA,IACrD,iCAAiC,CAAC,SAAS,EAAE,SAAS,SAAS,UAAU,SAAS;AAAA,IAClF,0CAA0C,CAAC,SAAS;AAAA,MAChD,kBAAkB,EAAE,WAAW,MAAA;AAAA,IAAK,CACvC;AAAA,IACD,2CAA2C,CAAC,OAAO;AAAA,IACnD,8CAA8C,CAAC,SAAS;AAAA,MACpD,UAAU;AAAA,MACV,yBAAyB;AAAA,IAAA,CAC5B;AAAA,IACD,wCAAwC,CAAC,SAAS;AAAA,MAC9C,UAAU,CAAC,UAAU;AAAA,MACrB,QAAQ,CAAC,YAAY;AAAA,MACrB,QAAQ;AAAA,QACJ,OAAO;AAAA,QACP,OAAO;AAAA,MAAA;AAAA,IACV,CACJ;AAAA,EAAA;;AC9CH,SAAU,yBAA0B,SAAwB;AAC9D,SAAO,QAAQ,IAAI,CAAA,WAAS;AAExB,UAAM,EAAE,SAAS,GAAG,KAAA,IAAS;AAE7B,WAAO;AAAA,EACX,CAAC;AACL;;;"}
@@ -289,7 +289,7 @@ const stylisticRules = {
289
289
  "@stylistic/new-parens": ["error", "always"],
290
290
  "@stylistic/no-extra-parens": ["error", "all", {
291
291
  allowParensAfterCommentPattern: "@type|@satisfies",
292
- enforceForArrowConditionals: false,
292
+ ignoredNodes: ["ArrowFunctionExpression[body.type='ConditionalExpression']"],
293
293
  nestedBinaryExpressions: false,
294
294
  returnAssign: false
295
295
  }],
@@ -415,4 +415,4 @@ exports.importRules = importRules;
415
415
  exports.postConfig = postConfig;
416
416
  exports.preConfig = preConfig;
417
417
  exports.stylisticRules = stylisticRules;
418
- //# sourceMappingURL=stylistic-BdRMGyUe.cjs.map
418
+ //# sourceMappingURL=stylistic-BIxu1akj.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stylistic-BIxu1akj.cjs","sources":["../src/rules/jsdoc.ts","../src/base.ts","../src/rules/core.ts","../src/rules/cspell.ts","../src/rules/importRules.ts","../src/rules/stylistic.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n 'jsdoc/check-param-names': ['error'],\n 'jsdoc/check-tag-names': ['error'],\n 'jsdoc/no-undefined-types': 'off',\n 'jsdoc/require-param': ['error', {\n enableRestElementFixer: false,\n enableRootFixer: false,\n }],\n 'jsdoc/require-jsdoc': ['off'],\n 'jsdoc/require-param-description': 'off',\n 'jsdoc/require-param-type': ['error'],\n 'jsdoc/require-property-description': 'off',\n 'jsdoc/require-returns': ['error', {\n contexts: ['TSInterfaceDeclaration', 'TSMethodSignature'],\n forceRequireReturn: true,\n exemptedBy: ['inheritdoc', 'watch'],\n }],\n 'jsdoc/require-returns-check': ['error'],\n 'jsdoc/require-returns-description': 'off',\n 'jsdoc/tag-lines': ['error'],\n 'jsdoc/valid-types': 'off',\n 'jsdoc/check-types': ['error'],\n 'jsdoc/no-multi-asterisks': ['error'],\n 'jsdoc/check-alignment': ['error'],\n 'jsdoc/sort-tags': ['error', {\n linesBetween: 1,\n tagSequence: [{\n tags: [\n 'todo',\n 'description',\n 'deprecated',\n 'namespace',\n 'private',\n 'protected',\n 'public',\n 'static',\n 'readonly',\n 'since',\n 'access',\n 'template',\n 'typedef',\n 'class',\n 'augments',\n 'mixes',\n 'extends',\n 'interface',\n 'this',\n 'constructor',\n 'alias',\n 'memberof',\n 'example',\n 'use',\n 'see',\n 'link',\n 'global',\n 'fires',\n 'listens',\n 'type',\n 'param',\n 'property',\n 'yields',\n 'returns',\n 'lends',\n 'override',\n 'todo',\n ],\n }],\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\nimport cspellESLintPluginRecommended from '@cspell/eslint-plugin/recommended';\nimport js from '@eslint/js';\nimport jsdoc from './rules/jsdoc';\nimport { merge } from './utils/merge';\n\nexport function preConfig () {\n return merge(\n js.configs.recommended as Linter.Config,\n cspellESLintPluginRecommended as Linter.Config\n );\n}\n\nexport function postConfig (): Linter.Config {\n return merge(\n jsdoc,\n {\n languageOptions: {\n ecmaVersion: 2022,\n parserOptions: {\n ecmaVersion: 2022,\n },\n },\n rules: {\n 'jsdoc/require-param': 'off',\n 'jsdoc/require-jsdoc': 'off',\n 'jsdoc/require-returns': 'off',\n 'jsdoc/require-param-type': 'off',\n 'jsdoc/check-param-names': 'off',\n },\n } satisfies Linter.Config\n );\n}\n","import type { Linter } from 'eslint';\n\nconst overriddenRules: Linter.RulesRecord = {\n // https://eslint.style/rules/js/function-call-spacing\n 'no-spaced-func': 'off',\n};\n\nexport default {\n rules: {\n ...overriddenRules,\n 'arrow-parens': 'off',\n camelcase: ['error', {\n allow: ['^\\\\$_'],\n }],\n 'comma-dangle': 'off',\n 'consistent-return': ['error'],\n 'class-methods-use-this': 'off',\n curly: ['error', 'all'],\n 'dot-notation': ['error'],\n 'function-paren-newline': 'off',\n 'guard-for-in': 'error',\n 'handle-callback-err': ['error'],\n indent: 'off',\n 'max-len': 'off',\n 'new-cap': ['error'],\n 'no-alert': ['error'],\n 'no-bitwise': ['error', {\n allow: ['~'],\n }],\n 'no-caller': ['error'],\n 'no-case-declarations': ['error'],\n 'no-confusing-arrow': ['error', {\n allowParens: true,\n }],\n 'no-console': ['error'],\n 'no-debugger': ['error'],\n 'no-div-regex': ['error'],\n 'no-dupe-args': ['error'],\n 'no-dupe-keys': ['error'],\n 'no-duplicate-case': ['error'],\n 'no-else-return': ['error'],\n 'no-empty': ['error'],\n 'no-extra-bind': ['error'],\n 'no-extra-boolean-cast': 'error',\n 'no-fallthrough': ['error'],\n 'no-implicit-coercion': ['error', {\n boolean: true,\n number: true,\n string: true,\n }],\n 'implicit-arrow-linebreak': 'off',\n 'no-invalid-regexp': ['error'],\n 'no-iterator': ['error'],\n 'no-mixed-operators': 'off',\n 'no-multi-spaces': 'off',\n 'no-multi-str': ['error'],\n 'no-multiple-empty-lines': 'off',\n 'no-native-reassign': 'error',\n 'no-nested-ternary': ['error'],\n 'no-new': 'off',\n 'no-new-object': ['error'],\n 'no-new-require': ['error'],\n 'no-param-reassign': ['error', {\n props: false,\n }],\n 'no-plusplus': 'off',\n 'no-process-exit': ['error'],\n 'no-promise-executor-return': ['error', {\n allowVoid: true,\n }],\n 'no-return-assign': ['error', 'except-parens'],\n 'no-self-compare': ['error'],\n 'no-sequences': ['error'],\n 'no-shadow': ['error', {\n allow: ['state'],\n }],\n 'no-undef': ['error'],\n 'no-underscore-dangle': 'off',\n 'no-unexpected-multiline': ['error'],\n 'no-unreachable': ['error'],\n 'no-unused-vars': ['error'],\n 'no-use-before-define': 'error',\n 'no-useless-call': ['error'],\n 'no-void': 'off',\n 'no-with': ['error'],\n 'object-curly-newline': 'off',\n 'object-shorthand': ['error', 'always'],\n 'padded-blocks': 'off',\n 'prefer-const': ['error', {\n destructuring: 'all',\n }],\n 'prefer-destructuring': ['error'],\n radix: ['error', 'as-needed'],\n semi: 'off',\n 'space-before-function-paren': 'off',\n 'space-in-parens': 'off',\n strict: ['error', 'never'],\n 'use-isnan': ['error'],\n 'valid-typeof': ['error'],\n 'no-trailing-spaces': 'off',\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n '@cspell/spellchecker': ['error', {\n customWordListFile: './cspell.json',\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n 'import-x/extensions': ['error', {\n css: 'always',\n js: 'never',\n json: 'always',\n jsx: 'never',\n sass: 'always',\n scss: 'always',\n svg: 'always',\n ts: 'never',\n tsx: 'never',\n vue: 'always',\n }],\n 'import-x/no-cycle': 'off',\n 'import-x/no-unresolved': 'off',\n 'import-x/order': ['error', {\n alphabetize: {\n caseInsensitive: true,\n order: 'asc',\n },\n groups: ['index', 'builtin', 'object', 'type', 'external', 'parent', 'internal', 'sibling'],\n pathGroups: [{\n group: 'internal',\n pattern: '@/**',\n }],\n }],\n 'import-x/prefer-default-export': 'off',\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n '@stylistic/array-bracket-newline': ['error', 'consistent'],\n '@stylistic/array-bracket-spacing': ['error', 'never'],\n '@stylistic/array-element-newline': ['error', 'consistent'],\n '@stylistic/arrow-parens': ['error', 'as-needed'],\n '@stylistic/arrow-spacing': ['error'],\n '@stylistic/brace-style': ['error', '1tbs'],\n '@stylistic/comma-dangle': ['error', {\n arrays: 'always-multiline',\n exports: 'always-multiline',\n functions: 'never',\n imports: 'always-multiline',\n objects: 'always-multiline',\n enums: 'always-multiline',\n generics: 'always-multiline',\n tuples: 'always-multiline',\n }],\n '@stylistic/comma-spacing': ['error'],\n '@stylistic/computed-property-spacing': ['error'],\n '@stylistic/dot-location': ['error', 'property'],\n '@stylistic/eol-last': ['error', 'always'],\n '@stylistic/function-call-argument-newline': ['error', 'consistent'],\n '@stylistic/function-call-spacing': ['error', 'never'],\n '@stylistic/function-paren-newline': ['error', 'consistent'],\n '@stylistic/implicit-arrow-linebreak': ['error', 'beside'],\n '@stylistic/indent': ['error', 4, {\n SwitchCase: 1,\n ignoredNodes: [\n 'PropertyDefinition[decorators]',\n 'TSUnionType',\n ],\n }],\n '@stylistic/key-spacing': ['error'],\n '@stylistic/keyword-spacing': ['error'],\n '@stylistic/linebreak-style': ['error', 'unix'],\n '@stylistic/lines-between-class-members': ['error', 'always', {\n exceptAfterSingleLine: true,\n }],\n '@stylistic/max-len': ['error', 120, {\n ignoreComments: true,\n ignoreRegExpLiterals: true,\n ignoreTrailingComments: true,\n ignoreUrls: true,\n }],\n '@stylistic/max-statements-per-line': ['error', {\n max: 2,\n }],\n '@stylistic/member-delimiter-style': ['error', {\n multiline: {\n requireLast: true,\n },\n singleline: {\n requireLast: false,\n },\n }],\n '@stylistic/multiline-ternary': ['error', 'always-multiline'],\n '@stylistic/new-parens': ['error', 'always'],\n '@stylistic/no-extra-parens': ['error', 'all', {\n allowParensAfterCommentPattern: '@type|@satisfies',\n ignoredNodes: [\"ArrowFunctionExpression[body.type='ConditionalExpression']\"],\n nestedBinaryExpressions: false,\n returnAssign: false,\n }],\n '@stylistic/no-extra-semi': ['error'],\n '@stylistic/no-floating-decimal': 'error',\n '@stylistic/no-mixed-operators': ['error', {\n allowSamePrecedence: true,\n groups: [\n ['&', '|', '^', '~', '<<', '>>', '>>>'],\n ['==', '!=', '===', '!==', '>', '>=', '<', '<='],\n ['&&', '||'],\n ['in', 'instanceof'],\n ],\n }],\n '@stylistic/no-mixed-spaces-and-tabs': ['error'],\n '@stylistic/no-multi-spaces': ['error'],\n '@stylistic/no-multiple-empty-lines': ['error', {\n max: 1,\n maxEOF: 0,\n maxBOF: 0,\n }],\n '@stylistic/no-trailing-spaces': ['error'],\n '@stylistic/no-whitespace-before-property': ['error'],\n '@stylistic/object-curly-newline': ['error', {\n multiline: true,\n consistent: true,\n }],\n '@stylistic/object-curly-spacing': ['error', 'always'],\n '@stylistic/padded-blocks': ['error', 'never'],\n '@stylistic/quote-props': ['error', 'as-needed'],\n '@stylistic/quotes': ['error', 'single', {\n avoidEscape: true,\n }],\n '@stylistic/rest-spread-spacing': ['error', 'never'],\n '@stylistic/semi': ['error'],\n '@stylistic/semi-spacing': ['error', {\n after: true,\n before: false,\n }],\n '@stylistic/semi-style': ['error', 'last'],\n '@stylistic/space-before-blocks': ['error'],\n '@stylistic/space-before-function-paren': ['error', {\n anonymous: 'always',\n named: 'always',\n }],\n '@stylistic/space-in-parens': ['error', 'never'],\n '@stylistic/space-infix-ops': ['error'],\n '@stylistic/spaced-comment': ['error', 'always', {\n markers: ['/'],\n }],\n '@stylistic/template-curly-spacing': ['error', 'never'],\n '@stylistic/template-tag-spacing': ['error', 'never'],\n '@stylistic/type-annotation-spacing': ['error'],\n '@stylistic/type-generic-spacing': ['error'],\n '@stylistic/padding-line-between-statements': [\n 'error',\n {\n blankLine: 'always',\n next: '*',\n prev: ['const', 'let', 'var', 'if', 'block-like', 'directive'],\n },\n {\n blankLine: 'always',\n next: [\n 'const',\n 'let',\n 'var',\n 'if',\n 'while',\n 'directive',\n 'throw',\n 'return',\n 'break',\n 'default',\n 'cjs-export',\n 'export',\n 'continue',\n 'iife',\n ],\n prev: '*',\n },\n {\n blankLine: 'always',\n prev: ['*'],\n next: ['cjs-export', 'export'],\n },\n {\n blankLine: 'any',\n next: ['const', 'let', 'var', 'directive'],\n prev: ['const', 'let', 'var', 'directive'],\n },\n {\n blankLine: 'never',\n next: ['singleline-const', 'singleline-let', 'singleline-var'],\n prev: ['singleline-const', 'singleline-let', 'singleline-var'],\n },\n {\n blankLine: 'always',\n next: ['multiline-block-like'],\n prev: ['*'],\n },\n {\n blankLine: 'always',\n next: ['*'],\n prev: ['multiline-block-like'],\n },\n {\n blankLine: 'any',\n next: ['case'],\n prev: ['case'],\n },\n {\n blankLine: 'any',\n next: ['singleline-const', 'singleline-let', 'singleline-var'],\n prev: ['cjs-import'],\n },\n ],\n },\n} as Linter.Config;\n"],"names":["merge"],"mappings":"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"}
@@ -288,7 +288,7 @@ const stylisticRules = {
288
288
  "@stylistic/new-parens": ["error", "always"],
289
289
  "@stylistic/no-extra-parens": ["error", "all", {
290
290
  allowParensAfterCommentPattern: "@type|@satisfies",
291
- enforceForArrowConditionals: false,
291
+ ignoredNodes: ["ArrowFunctionExpression[body.type='ConditionalExpression']"],
292
292
  nestedBinaryExpressions: false,
293
293
  returnAssign: false
294
294
  }],
@@ -416,4 +416,4 @@ export {
416
416
  preConfig as p,
417
417
  stylisticRules as s
418
418
  };
419
- //# sourceMappingURL=stylistic-B7JRcUO4.js.map
419
+ //# sourceMappingURL=stylistic-BUKb_V_H.js.map