@useinsider/eslint-config 1.12.2 → 1.13.0-beta.2

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 (169) hide show
  1. package/dist/base.d.ts +1 -1
  2. package/dist/chunk-CKQMccvm.cjs +28 -0
  3. package/dist/config-ByQJiSMj.cjs +9 -0
  4. package/dist/config-ByQJiSMj.cjs.map +1 -0
  5. package/dist/config-Css2Pu_R.js +9 -0
  6. package/dist/config-Css2Pu_R.js.map +1 -0
  7. package/dist/configs/javascript/index.d.ts +8 -1
  8. package/dist/configs/strict/index.d.ts +15 -1
  9. package/dist/configs/typescript/index.d.ts +1 -2
  10. package/dist/configs/typescript-dom/index.d.ts +1195 -1
  11. package/dist/configs/vue2/index.d.ts +1206 -1
  12. package/dist/configs/vue2-typescript/index.d.ts +1 -1
  13. package/dist/configs/vue3/index.d.ts +1206 -1
  14. package/dist/configs/vue3-typescript/index.d.ts +1 -1
  15. package/dist/javascript-BTduhgPC.cjs +16 -0
  16. package/dist/javascript-BTduhgPC.cjs.map +1 -0
  17. package/dist/javascript-DrnVnn8x.js +13 -0
  18. package/dist/javascript-DrnVnn8x.js.map +1 -0
  19. package/dist/javascript-dom-BGO7V06H.cjs +11 -0
  20. package/dist/javascript-dom-BGO7V06H.cjs.map +1 -0
  21. package/dist/javascript-dom-DUniYlu6.js +9 -0
  22. package/dist/javascript-dom-DUniYlu6.js.map +1 -0
  23. package/dist/javascript-node-CFSgAg1n.cjs +11 -0
  24. package/dist/javascript-node-CFSgAg1n.cjs.map +1 -0
  25. package/dist/javascript-node-CcgaOykE.js +9 -0
  26. package/dist/javascript-node-CcgaOykE.js.map +1 -0
  27. package/dist/jest-B0jgh-Ns.js +16 -0
  28. package/dist/jest-B0jgh-Ns.js.map +1 -0
  29. package/dist/jest-Ct_2c2e5.cjs +18 -0
  30. package/dist/jest-Ct_2c2e5.cjs.map +1 -0
  31. package/dist/jsdoc-based-ts-B40HFdNC.js +6 -0
  32. package/dist/jsdoc-based-ts-B40HFdNC.js.map +1 -0
  33. package/dist/jsdoc-based-ts-De6bAjFn.cjs +6 -0
  34. package/dist/jsdoc-based-ts-De6bAjFn.cjs.map +1 -0
  35. package/dist/main.cjs +139 -167
  36. package/dist/main.cjs.map +1 -1
  37. package/dist/main.js +130 -164
  38. package/dist/main.js.map +1 -1
  39. package/dist/merge-9BZzhd4u.cjs +15 -0
  40. package/dist/merge-9BZzhd4u.cjs.map +1 -0
  41. package/dist/merge-DEya5rmo.js +9 -0
  42. package/dist/merge-DEya5rmo.js.map +1 -0
  43. package/dist/mergeAllConfig-B2TWh9bP.cjs +14 -0
  44. package/dist/mergeAllConfig-B2TWh9bP.cjs.map +1 -0
  45. package/dist/mergeAllConfig-BbXVeKTg.js +9 -0
  46. package/dist/mergeAllConfig-BbXVeKTg.js.map +1 -0
  47. package/dist/removePluginsFromConfigs-BvvgY3b5.cjs +66 -0
  48. package/dist/removePluginsFromConfigs-BvvgY3b5.cjs.map +1 -0
  49. package/dist/removePluginsFromConfigs-DXGEhx1r.js +55 -0
  50. package/dist/removePluginsFromConfigs-DXGEhx1r.js.map +1 -0
  51. package/dist/strict-BfeS2xp_.js +18 -0
  52. package/dist/strict-BfeS2xp_.js.map +1 -0
  53. package/dist/strict-TbDHFSQX.cjs +19 -0
  54. package/dist/strict-TbDHFSQX.cjs.map +1 -0
  55. package/dist/stylistic-BD98baD9.cjs +489 -0
  56. package/dist/stylistic-BD98baD9.cjs.map +1 -0
  57. package/dist/stylistic-CVYJnZ8f.js +451 -0
  58. package/dist/stylistic-CVYJnZ8f.js.map +1 -0
  59. package/dist/typescript-0_O11nWX.cjs +34 -0
  60. package/dist/typescript-0_O11nWX.cjs.map +1 -0
  61. package/dist/typescript-CQ_Hr2QM.js +29 -0
  62. package/dist/typescript-CQ_Hr2QM.js.map +1 -0
  63. package/dist/typescript-dom-970fDiUU.cjs +14 -0
  64. package/dist/typescript-dom-970fDiUU.cjs.map +1 -0
  65. package/dist/typescript-dom-Bv_Zz0xP.js +12 -0
  66. package/dist/typescript-dom-Bv_Zz0xP.js.map +1 -0
  67. package/dist/typescript-node-D1A44bTs.js +9 -0
  68. package/dist/typescript-node-D1A44bTs.js.map +1 -0
  69. package/dist/typescript-node-D9_lMhx2.cjs +11 -0
  70. package/dist/typescript-node-D9_lMhx2.cjs.map +1 -0
  71. package/dist/utils/mergeAllConfig.d.ts +1 -1
  72. package/dist/utils/silenceRules.d.ts +1 -1
  73. package/dist/vue-By1Xn7IP.js +210 -0
  74. package/dist/vue-By1Xn7IP.js.map +1 -0
  75. package/dist/vue-uaPZkygC.cjs +215 -0
  76. package/dist/vue-uaPZkygC.cjs.map +1 -0
  77. package/dist/vue2-8ymY78UQ.js +24 -0
  78. package/dist/vue2-8ymY78UQ.js.map +1 -0
  79. package/dist/vue2-C94Kq0T6.cjs +30 -0
  80. package/dist/vue2-C94Kq0T6.cjs.map +1 -0
  81. package/dist/vue2-Xpr87v0K.cjs +24 -0
  82. package/dist/vue2-Xpr87v0K.cjs.map +1 -0
  83. package/dist/vue2-oH2qFl6d.js +13 -0
  84. package/dist/vue2-oH2qFl6d.js.map +1 -0
  85. package/dist/vue2-typescript-B_jQOM2b.cjs +58 -0
  86. package/dist/vue2-typescript-B_jQOM2b.cjs.map +1 -0
  87. package/dist/vue2-typescript-D0PJDNVJ.js +50 -0
  88. package/dist/vue2-typescript-D0PJDNVJ.js.map +1 -0
  89. package/dist/vue3-BJZAtjCx.cjs +30 -0
  90. package/dist/vue3-BJZAtjCx.cjs.map +1 -0
  91. package/dist/vue3-DvAMqq2z.js +24 -0
  92. package/dist/vue3-DvAMqq2z.js.map +1 -0
  93. package/dist/vue3-typescript-B-MIQF7E.js +40 -0
  94. package/dist/vue3-typescript-B-MIQF7E.js.map +1 -0
  95. package/dist/vue3-typescript-DAo2WlD3.cjs +48 -0
  96. package/dist/vue3-typescript-DAo2WlD3.cjs.map +1 -0
  97. package/package.json +32 -33
  98. package/dist/index-2o2VBvVN.cjs +0 -17
  99. package/dist/index-2o2VBvVN.cjs.map +0 -1
  100. package/dist/index-B5e6DfQZ.js +0 -14
  101. package/dist/index-B5e6DfQZ.js.map +0 -1
  102. package/dist/index-B7KV8_ac.cjs +0 -44
  103. package/dist/index-B7KV8_ac.cjs.map +0 -1
  104. package/dist/index-B8_S3w5d.cjs +0 -28
  105. package/dist/index-B8_S3w5d.cjs.map +0 -1
  106. package/dist/index-BCvaWfkS.js +0 -14
  107. package/dist/index-BCvaWfkS.js.map +0 -1
  108. package/dist/index-BIRTKnfa.js +0 -44
  109. package/dist/index-BIRTKnfa.js.map +0 -1
  110. package/dist/index-BabnpV1R.js +0 -28
  111. package/dist/index-BabnpV1R.js.map +0 -1
  112. package/dist/index-CI6TkV4e.js +0 -14
  113. package/dist/index-CI6TkV4e.js.map +0 -1
  114. package/dist/index-CQpRB59U.cjs +0 -19
  115. package/dist/index-CQpRB59U.cjs.map +0 -1
  116. package/dist/index-CeOu2y8a.js +0 -28
  117. package/dist/index-CeOu2y8a.js.map +0 -1
  118. package/dist/index-CiVlnmEB.cjs +0 -14
  119. package/dist/index-CiVlnmEB.cjs.map +0 -1
  120. package/dist/index-Cj9TcRjV.cjs +0 -14
  121. package/dist/index-Cj9TcRjV.cjs.map +0 -1
  122. package/dist/index-Cpdbh3sr.js +0 -17
  123. package/dist/index-Cpdbh3sr.js.map +0 -1
  124. package/dist/index-CsUJY3F4.cjs +0 -28
  125. package/dist/index-CsUJY3F4.cjs.map +0 -1
  126. package/dist/index-D-kLe1Lx.cjs +0 -54
  127. package/dist/index-D-kLe1Lx.cjs.map +0 -1
  128. package/dist/index-D4MPQx8Q.cjs +0 -9
  129. package/dist/index-D4MPQx8Q.cjs.map +0 -1
  130. package/dist/index-DJL4a_Kw.js +0 -15
  131. package/dist/index-DJL4a_Kw.js.map +0 -1
  132. package/dist/index-DPseTvz6.cjs +0 -10
  133. package/dist/index-DPseTvz6.cjs.map +0 -1
  134. package/dist/index-DVAtSM0f.cjs +0 -28
  135. package/dist/index-DVAtSM0f.cjs.map +0 -1
  136. package/dist/index-DWmPpTAr.js +0 -54
  137. package/dist/index-DWmPpTAr.js.map +0 -1
  138. package/dist/index-DbPDbm1S.js +0 -10
  139. package/dist/index-DbPDbm1S.js.map +0 -1
  140. package/dist/index-DePBHdMb.cjs +0 -15
  141. package/dist/index-DePBHdMb.cjs.map +0 -1
  142. package/dist/index-Ds-dL7rp.cjs +0 -11
  143. package/dist/index-Ds-dL7rp.cjs.map +0 -1
  144. package/dist/index-FNO0uAiM.js +0 -9
  145. package/dist/index-FNO0uAiM.js.map +0 -1
  146. package/dist/index-M1K64ssP.js +0 -28
  147. package/dist/index-M1K64ssP.js.map +0 -1
  148. package/dist/index-Os0JbUht.js +0 -11
  149. package/dist/index-Os0JbUht.js.map +0 -1
  150. package/dist/index-Vp4HLGO-.cjs +0 -14
  151. package/dist/index-Vp4HLGO-.cjs.map +0 -1
  152. package/dist/index-WUeklnFb.js +0 -19
  153. package/dist/index-WUeklnFb.js.map +0 -1
  154. package/dist/removePluginsFromConfigs-ByipAus1.js +0 -59
  155. package/dist/removePluginsFromConfigs-ByipAus1.js.map +0 -1
  156. package/dist/removePluginsFromConfigs-D8PUzDVg.cjs +0 -58
  157. package/dist/removePluginsFromConfigs-D8PUzDVg.cjs.map +0 -1
  158. package/dist/stylistic-B7JRcUO4.js +0 -419
  159. package/dist/stylistic-B7JRcUO4.js.map +0 -1
  160. package/dist/stylistic-BdRMGyUe.cjs +0 -418
  161. package/dist/stylistic-BdRMGyUe.cjs.map +0 -1
  162. package/dist/vue-B3lDYr4H.js +0 -211
  163. package/dist/vue-B3lDYr4H.js.map +0 -1
  164. package/dist/vue-BXgQgBC3.cjs +0 -210
  165. package/dist/vue-BXgQgBC3.cjs.map +0 -1
  166. package/dist/vue2-C307LTUQ.js +0 -19
  167. package/dist/vue2-C307LTUQ.js.map +0 -1
  168. package/dist/vue2-CRyjxVnh.cjs +0 -18
  169. package/dist/vue2-CRyjxVnh.cjs.map +0 -1
@@ -1,3 +1,3 @@
1
1
  import type { Linter } from 'eslint';
2
- declare const _default: Linter.Config<Linter.RulesRecord>;
2
+ declare const _default: Linter.Config<import("@eslint/core").RulesConfig>;
3
3
  export default _default;
@@ -0,0 +1,16 @@
1
+ const require_chunk = require("./chunk-CKQMccvm.cjs");
2
+ const require_merge = require("./merge-9BZzhd4u.cjs");
3
+ const require_mergeAllConfig = require("./mergeAllConfig-B2TWh9bP.cjs");
4
+ const require_stylistic = require("./stylistic-BD98baD9.cjs");
5
+ let _stylistic_eslint_plugin = require("@stylistic/eslint-plugin");
6
+ _stylistic_eslint_plugin = require_chunk.__toESM(_stylistic_eslint_plugin, 1);
7
+ let eslint_config_airbnb_extended = require("eslint-config-airbnb-extended");
8
+ let eslint_plugin_import_x = require("eslint-plugin-import-x");
9
+ let eslint_plugin_jsdoc = require("eslint-plugin-jsdoc");
10
+ eslint_plugin_jsdoc = require_chunk.__toESM(eslint_plugin_jsdoc, 1);
11
+ //#region src/configs/javascript/index.ts
12
+ var javascript_default = require_merge.merge(eslint_plugin_import_x.importX.flatConfigs.recommended, require_mergeAllConfig.mergeAll(eslint_config_airbnb_extended.configs.base.recommended), eslint_plugin_jsdoc.default.configs["flat/recommended"], require_stylistic.preConfig(), require_stylistic.core_default, require_stylistic.importRules_default, require_stylistic.cspell_default, { plugins: { "@stylistic": _stylistic_eslint_plugin.default } }, require_stylistic.stylistic_default, require_stylistic.postConfig());
13
+ //#endregion
14
+ exports.default = javascript_default;
15
+
16
+ //# sourceMappingURL=javascript-BTduhgPC.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-BTduhgPC.cjs","names":[],"sources":["../src/configs/javascript/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport stylistic from '@stylistic/eslint-plugin';\nimport { configs as airbnbConfigs } from 'eslint-config-airbnb-extended';\nimport { importX } from 'eslint-plugin-import-x';\nimport jsdocPlugin from 'eslint-plugin-jsdoc';\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 { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default merge(\n importX.flatConfigs.recommended as Linter.Config,\n mergeAll(airbnbConfigs.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 postConfig()\n);\n"],"mappings":";;;;;;;;;;;AAaA,IAAA,qBAAe,cAAA,MACX,uBAAA,QAAQ,YAAY,aACpB,uBAAA,SAAS,8BAAA,QAAc,KAAK,YAAY,EACxC,oBAAA,QAAY,QAAQ,qBACpB,kBAAA,WAAW,EACX,kBAAA,cACA,kBAAA,qBACA,kBAAA,gBACA,EAAE,SAAS,EAAE,cAAc,yBAAA,SAAW,EAA0B,EAChE,kBAAA,mBACA,kBAAA,YAAY,CACf"}
@@ -0,0 +1,13 @@
1
+ import { t as merge } from "./merge-DEya5rmo.js";
2
+ import { t as mergeAll } from "./mergeAllConfig-BbXVeKTg.js";
3
+ import { a as postConfig, i as core_default, n as importRules_default, o as preConfig, r as cspell_default, t as stylistic_default } from "./stylistic-CVYJnZ8f.js";
4
+ import stylistic from "@stylistic/eslint-plugin";
5
+ import { configs } from "eslint-config-airbnb-extended";
6
+ import { importX } from "eslint-plugin-import-x";
7
+ import jsdocPlugin from "eslint-plugin-jsdoc";
8
+ //#region src/configs/javascript/index.ts
9
+ var javascript_default = merge(importX.flatConfigs.recommended, mergeAll(configs.base.recommended), jsdocPlugin.configs["flat/recommended"], preConfig(), core_default, importRules_default, cspell_default, { plugins: { "@stylistic": stylistic } }, stylistic_default, postConfig());
10
+ //#endregion
11
+ export { javascript_default as default };
12
+
13
+ //# sourceMappingURL=javascript-DrnVnn8x.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-DrnVnn8x.js","names":[],"sources":["../src/configs/javascript/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport stylistic from '@stylistic/eslint-plugin';\nimport { configs as airbnbConfigs } from 'eslint-config-airbnb-extended';\nimport { importX } from 'eslint-plugin-import-x';\nimport jsdocPlugin from 'eslint-plugin-jsdoc';\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 { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default merge(\n importX.flatConfigs.recommended as Linter.Config,\n mergeAll(airbnbConfigs.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 postConfig()\n);\n"],"mappings":";;;;;;;;AAaA,IAAA,qBAAe,MACX,QAAQ,YAAY,aACpB,SAAS,QAAc,KAAK,YAAY,EACxC,YAAY,QAAQ,qBACpB,WAAW,EACX,cACA,qBACA,gBACA,EAAE,SAAS,EAAE,cAAc,WAAW,EAA0B,EAChE,mBACA,YAAY,CACf"}
@@ -0,0 +1,11 @@
1
+ const require_chunk = require("./chunk-CKQMccvm.cjs");
2
+ const require_merge = require("./merge-9BZzhd4u.cjs");
3
+ const require_javascript = require("./javascript-BTduhgPC.cjs");
4
+ let globals = require("globals");
5
+ globals = require_chunk.__toESM(globals, 1);
6
+ //#region src/configs/javascript-dom/index.ts
7
+ var javascript_dom_default = require_merge.merge(require_javascript.default, { languageOptions: { globals: { ...globals.default.browser } } });
8
+ //#endregion
9
+ exports.default = javascript_dom_default;
10
+
11
+ //# sourceMappingURL=javascript-dom-BGO7V06H.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-dom-BGO7V06H.cjs","names":[],"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"],"mappings":";;;;;;AAKA,IAAA,yBAAe,cAAA,MACX,mBAAA,SACA,EACI,iBAAiB,EACb,SAAS,EACL,GAAG,QAAA,QAAQ,SACd,EACJ,EACJ,CACa"}
@@ -0,0 +1,9 @@
1
+ import { t as merge } from "./merge-DEya5rmo.js";
2
+ import javascript_default from "./javascript-DrnVnn8x.js";
3
+ import globals from "globals";
4
+ //#region src/configs/javascript-dom/index.ts
5
+ var javascript_dom_default = merge(javascript_default, { languageOptions: { globals: { ...globals.browser } } });
6
+ //#endregion
7
+ export { javascript_dom_default as default };
8
+
9
+ //# sourceMappingURL=javascript-dom-DUniYlu6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-dom-DUniYlu6.js","names":[],"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"],"mappings":";;;;AAKA,IAAA,yBAAe,MACX,oBACA,EACI,iBAAiB,EACb,SAAS,EACL,GAAG,QAAQ,SACd,EACJ,EACJ,CACa"}
@@ -0,0 +1,11 @@
1
+ const require_chunk = require("./chunk-CKQMccvm.cjs");
2
+ const require_merge = require("./merge-9BZzhd4u.cjs");
3
+ const require_javascript = require("./javascript-BTduhgPC.cjs");
4
+ let globals = require("globals");
5
+ globals = require_chunk.__toESM(globals, 1);
6
+ //#region src/configs/javascript-node/index.ts
7
+ var javascript_node_default = require_merge.merge(require_javascript.default, { languageOptions: { globals: { ...globals.default.node } } });
8
+ //#endregion
9
+ exports.default = javascript_node_default;
10
+
11
+ //# sourceMappingURL=javascript-node-CFSgAg1n.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-node-CFSgAg1n.cjs","names":[],"sources":["../src/configs/javascript-node/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.node,\n },\n },\n }\n) as Linter.Config;\n"],"mappings":";;;;;;AAKA,IAAA,0BAAe,cAAA,MACX,mBAAA,SACA,EACI,iBAAiB,EACb,SAAS,EACL,GAAG,QAAA,QAAQ,MACd,EACJ,EACJ,CACa"}
@@ -0,0 +1,9 @@
1
+ import { t as merge } from "./merge-DEya5rmo.js";
2
+ import javascript_default from "./javascript-DrnVnn8x.js";
3
+ import globals from "globals";
4
+ //#region src/configs/javascript-node/index.ts
5
+ var javascript_node_default = merge(javascript_default, { languageOptions: { globals: { ...globals.node } } });
6
+ //#endregion
7
+ export { javascript_node_default as default };
8
+
9
+ //# sourceMappingURL=javascript-node-CcgaOykE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"javascript-node-CcgaOykE.js","names":[],"sources":["../src/configs/javascript-node/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.node,\n },\n },\n }\n) as Linter.Config;\n"],"mappings":";;;;AAKA,IAAA,0BAAe,MACX,oBACA,EACI,iBAAiB,EACb,SAAS,EACL,GAAG,QAAQ,MACd,EACJ,EACJ,CACa"}
@@ -0,0 +1,16 @@
1
+ import jest from "eslint-plugin-jest";
2
+ //#region src/configs/jest/index.ts
3
+ var jest_default = {
4
+ plugins: { jest },
5
+ rules: {
6
+ ...jest.configs["flat/style"].rules,
7
+ ...jest.configs["flat/recommended"].rules,
8
+ "jest/no-disabled-tests": ["error"],
9
+ "jest/prefer-expect-resolves": ["error"],
10
+ "jest/prefer-hooks-in-order": ["error"]
11
+ }
12
+ };
13
+ //#endregion
14
+ export { jest_default as default };
15
+
16
+ //# sourceMappingURL=jest-B0jgh-Ns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest-B0jgh-Ns.js","names":[],"sources":["../src/configs/jest/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport jest from 'eslint-plugin-jest';\n\nexport default {\n plugins: { jest },\n rules: {\n ...jest.configs['flat/style'].rules,\n ...jest.configs['flat/recommended'].rules,\n 'jest/no-disabled-tests': ['error'],\n 'jest/prefer-expect-resolves': ['error'],\n 'jest/prefer-hooks-in-order': ['error'],\n },\n} as Linter.Config;\n"],"mappings":";;AAGA,IAAA,eAAe;CACX,SAAS,EAAE,MAAM;CACjB,OAAO;EACH,GAAG,KAAK,QAAQ,cAAc;EAC9B,GAAG,KAAK,QAAQ,oBAAoB;EACpC,0BAA0B,CAAC,QAAQ;EACnC,+BAA+B,CAAC,QAAQ;EACxC,8BAA8B,CAAC,QAAQ;EAC1C;CACa"}
@@ -0,0 +1,18 @@
1
+ const require_chunk = require("./chunk-CKQMccvm.cjs");
2
+ let eslint_plugin_jest = require("eslint-plugin-jest");
3
+ eslint_plugin_jest = require_chunk.__toESM(eslint_plugin_jest, 1);
4
+ //#region src/configs/jest/index.ts
5
+ var jest_default = {
6
+ plugins: { jest: eslint_plugin_jest.default },
7
+ rules: {
8
+ ...eslint_plugin_jest.default.configs["flat/style"].rules,
9
+ ...eslint_plugin_jest.default.configs["flat/recommended"].rules,
10
+ "jest/no-disabled-tests": ["error"],
11
+ "jest/prefer-expect-resolves": ["error"],
12
+ "jest/prefer-hooks-in-order": ["error"]
13
+ }
14
+ };
15
+ //#endregion
16
+ exports.default = jest_default;
17
+
18
+ //# sourceMappingURL=jest-Ct_2c2e5.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jest-Ct_2c2e5.cjs","names":[],"sources":["../src/configs/jest/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport jest from 'eslint-plugin-jest';\n\nexport default {\n plugins: { jest },\n rules: {\n ...jest.configs['flat/style'].rules,\n ...jest.configs['flat/recommended'].rules,\n 'jest/no-disabled-tests': ['error'],\n 'jest/prefer-expect-resolves': ['error'],\n 'jest/prefer-hooks-in-order': ['error'],\n },\n} as Linter.Config;\n"],"mappings":";;;;AAGA,IAAA,eAAe;CACX,SAAS,EAAE,MAAA,mBAAA,SAAM;CACjB,OAAO;EACH,GAAG,mBAAA,QAAK,QAAQ,cAAc;EAC9B,GAAG,mBAAA,QAAK,QAAQ,oBAAoB;EACpC,0BAA0B,CAAC,QAAQ;EACnC,+BAA+B,CAAC,QAAQ;EACxC,8BAA8B,CAAC,QAAQ;EAC1C;CACa"}
@@ -0,0 +1,6 @@
1
+ //#region src/configs/jsdoc-based-ts/index.ts
2
+ var jsdoc_based_ts_default = { rules: { "jsdoc/no-types": "off" } };
3
+ //#endregion
4
+ export { jsdoc_based_ts_default as default };
5
+
6
+ //# sourceMappingURL=jsdoc-based-ts-B40HFdNC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsdoc-based-ts-B40HFdNC.js","names":[],"sources":["../src/configs/jsdoc-based-ts/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n 'jsdoc/no-types': 'off',\n },\n} as Linter.Config;\n"],"mappings":";AAEA,IAAA,yBAAe,EACX,OAAO,EACH,kBAAkB,OACrB,EACa"}
@@ -0,0 +1,6 @@
1
+ //#region src/configs/jsdoc-based-ts/index.ts
2
+ var jsdoc_based_ts_default = { rules: { "jsdoc/no-types": "off" } };
3
+ //#endregion
4
+ exports.default = jsdoc_based_ts_default;
5
+
6
+ //# sourceMappingURL=jsdoc-based-ts-De6bAjFn.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsdoc-based-ts-De6bAjFn.cjs","names":[],"sources":["../src/configs/jsdoc-based-ts/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n 'jsdoc/no-types': 'off',\n },\n} as Linter.Config;\n"],"mappings":";AAEA,IAAA,yBAAe,EACX,OAAO,EACH,kBAAkB,OACrB,EACa"}
package/dist/main.cjs CHANGED
@@ -1,192 +1,164 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const node_fs = require("node:fs");
4
- const node_module = require("node:module");
5
- const node_path = require("node:path");
6
- const node_url = require("node:url");
7
- const installPkg = require("@antfu/install-pkg");
8
- const semver = require("semver");
9
- const tsDeepmerge = require("ts-deepmerge");
10
- const node_console = require("node:console");
11
- var _documentCurrentScript = typeof document !== "undefined" ? document.currentScript : null;
12
- let turnOff = false;
13
- let scanned = false;
14
- const silencedDependencies = /* @__PURE__ */ new Set();
15
- const fixedDependencies = [
16
- "eslint",
17
- "globals"
18
- ];
19
- const require$1 = node_module.createRequire(typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("main.cjs", document.baseURI).href);
2
+ const require_chunk = require("./chunk-CKQMccvm.cjs");
3
+ const require_merge = require("./merge-9BZzhd4u.cjs");
4
+ const require_mergeAllConfig = require("./mergeAllConfig-B2TWh9bP.cjs");
5
+ let node_fs = require("node:fs");
6
+ let node_module = require("node:module");
7
+ let node_path = require("node:path");
8
+ let node_url = require("node:url");
9
+ let _antfu_install_pkg = require("@antfu/install-pkg");
10
+ let semver = require("semver");
11
+ semver = require_chunk.__toESM(semver, 1);
12
+ let node_console = require("node:console");
13
+ //#region src/utils/ensureDependencies.ts
14
+ var turnOff = false;
15
+ var scanned = false;
16
+ var silencedDependencies = /* @__PURE__ */ new Set();
17
+ var fixedDependencies = ["eslint", "globals"];
18
+ var require$1 = (0, node_module.createRequire)({}.url);
20
19
  function getPackageJSONPath(currentDir) {
21
- const fileLocation = node_path.resolve(currentDir, "package.json");
22
- if (node_fs.existsSync(fileLocation)) {
23
- return fileLocation;
24
- }
25
- if (currentDir === process.cwd()) {
26
- throw new Error(`Unable to locate package.json in ${currentDir}`);
27
- }
28
- const parentDir = node_path.resolve(currentDir, "..");
29
- return getPackageJSONPath(parentDir);
20
+ const fileLocation = (0, node_path.resolve)(currentDir, "package.json");
21
+ if ((0, node_fs.existsSync)(fileLocation)) return fileLocation;
22
+ if (currentDir === process.cwd()) throw new Error(`Unable to locate package.json in ${currentDir}`);
23
+ return getPackageJSONPath((0, node_path.resolve)(currentDir, ".."));
30
24
  }
31
25
  function getPackageJSON(fileLocation) {
32
- const packageJsonContent = node_fs.readFileSync(fileLocation, "utf8");
33
- return JSON.parse(packageJsonContent);
26
+ const packageJsonContent = (0, node_fs.readFileSync)(fileLocation, "utf8");
27
+ return JSON.parse(packageJsonContent);
34
28
  }
35
29
  function getExpectedDependencies() {
36
- const path = getPackageJSONPath(node_url.fileURLToPath(new URL(
37
- /* @vite-ignore */
38
- typeof document === "undefined" ? require("url").pathToFileURL(__filename).href : _documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === "SCRIPT" && _documentCurrentScript.src || new URL("main.cjs", document.baseURI).href
39
- )));
40
- const packageJson = getPackageJSON(path);
41
- return packageJson.dependencies;
30
+ return getPackageJSON(getPackageJSONPath((0, node_url.fileURLToPath)(new URL(
31
+ /* @vite-ignore */
32
+ {}.url
33
+ )))).dependencies;
42
34
  }
43
35
  function getDependencyVersionFromConsumer(depName, baseDir = process.cwd()) {
44
- try {
45
- const pkgJsonPath = require$1.resolve(`${depName}/package.json`, { paths: [baseDir] });
46
- const pkgContent = node_fs.readFileSync(pkgJsonPath, "utf8");
47
- const pkg = JSON.parse(pkgContent);
48
- return pkg.version;
49
- } catch {
50
- return void 0;
51
- }
36
+ try {
37
+ const pkgContent = (0, node_fs.readFileSync)(require$1.resolve(`${depName}/package.json`, { paths: [baseDir] }), "utf8");
38
+ return JSON.parse(pkgContent).version;
39
+ } catch {
40
+ return;
41
+ }
52
42
  }
53
43
  async function ensureDependencies() {
54
- if (turnOff || scanned) {
55
- return;
56
- }
57
- scanned = true;
58
- const expectedDependencies = Object.entries(getExpectedDependencies());
59
- const missingDependencyEntries = expectedDependencies.filter(([expectedDependency, expectedVersion]) => {
60
- if (!fixedDependencies.includes(expectedDependency) || silencedDependencies.has(expectedDependency)) {
61
- return false;
62
- }
63
- const installedVersion = getDependencyVersionFromConsumer(expectedDependency);
64
- if (!installedVersion) {
65
- return true;
66
- }
67
- return semver.lt(installedVersion, expectedVersion);
68
- });
69
- if (!missingDependencyEntries.length) {
70
- return;
71
- }
72
- const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\W+/, "")}`);
73
- console.info("Missing dependencies detected:");
74
- console.info(missingDependencies.map((dependency) => ` - ${dependency}`).join("\n"));
75
- console.info("\nInstalling dependencies:");
76
- await installPkg.installPackage(missingDependencies, { dev: true, additionalArgs: ["-E"] });
77
- process.exit(1);
44
+ if (turnOff || scanned) return;
45
+ scanned = true;
46
+ const missingDependencyEntries = Object.entries(getExpectedDependencies()).filter(([expectedDependency, expectedVersion]) => {
47
+ if (!fixedDependencies.includes(expectedDependency) || silencedDependencies.has(expectedDependency)) return false;
48
+ const installedVersion = getDependencyVersionFromConsumer(expectedDependency);
49
+ if (!installedVersion) return true;
50
+ return semver.default.lt(installedVersion, expectedVersion);
51
+ });
52
+ if (!missingDependencyEntries.length) return;
53
+ const missingDependencies = missingDependencyEntries.map(([dependency, version]) => `${dependency}@${version.replace(/^\W+/, "")}`);
54
+ console.info("Missing dependencies detected:");
55
+ console.info(missingDependencies.map((dependency) => ` - ${dependency}`).join("\n"));
56
+ console.info("\nInstalling dependencies:");
57
+ await (0, _antfu_install_pkg.installPackage)(missingDependencies, {
58
+ dev: true,
59
+ additionalArgs: ["-E"]
60
+ });
61
+ process.exit(1);
78
62
  }
79
63
  function silenceDependencyWarning(input) {
80
- if (typeof input === "boolean") {
81
- turnOff = input;
82
- return;
83
- }
84
- silencedDependencies.clear();
85
- input.forEach((dependency) => silencedDependencies.add(String(dependency)));
64
+ if (typeof input === "boolean") {
65
+ turnOff = input;
66
+ return;
67
+ }
68
+ silencedDependencies.clear();
69
+ input.forEach((dependency) => silencedDependencies.add(String(dependency)));
86
70
  }
87
- function merge(...args) {
88
- return tsDeepmerge.merge.withOptions({ mergeArrays: false }, ...args);
89
- }
90
- const globallySilencedRules = /* @__PURE__ */ new Set();
71
+ //#endregion
72
+ //#region src/utils/silenceRules.ts
73
+ var globallySilencedRules = /* @__PURE__ */ new Set();
74
+ /**
75
+ * Silence rules globally.
76
+ * This will affect all configs scopes.
77
+ */
91
78
  function silenceRules(rules) {
92
- rules.forEach((rule) => {
93
- globallySilencedRules.add(rule);
94
- });
79
+ rules.forEach((rule) => {
80
+ globallySilencedRules.add(rule);
81
+ });
95
82
  }
96
83
  function silenceRule(config) {
97
- const [, ...restConfig] = Array.isArray(config) ? config : [];
98
- return ["warn", ...restConfig];
84
+ const [, ...restConfig] = Array.isArray(config) ? config : [];
85
+ return ["warn", ...restConfig];
99
86
  }
100
87
  function filterSilencedRules(rules, silencedRules) {
101
- let targetSilencedRules = silencedRules || globallySilencedRules;
102
- if (Array.isArray(targetSilencedRules)) {
103
- targetSilencedRules = new Set(targetSilencedRules);
104
- }
105
- if (!rules || !targetSilencedRules.size) {
106
- return rules;
107
- }
108
- if (silencedRules) {
109
- targetSilencedRules.forEach((rule) => {
110
- if (rules[rule]) {
111
- return;
112
- }
113
- node_console.warn(`Unknown rule "${rule}". Please remove it from the silenced rules list.`);
114
- });
115
- }
116
- return Object.entries(rules).reduce((newRules, [key, value]) => {
117
- if (value) {
118
- newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;
119
- }
120
- return newRules;
121
- }, {});
122
- }
123
- function mergeAll(...configs) {
124
- return configs.flat().reduce((acc, scope) => merge(acc, scope), {});
88
+ let targetSilencedRules = silencedRules || globallySilencedRules;
89
+ if (Array.isArray(targetSilencedRules)) targetSilencedRules = new Set(targetSilencedRules);
90
+ if (!rules || !targetSilencedRules.size) return rules;
91
+ if (silencedRules) targetSilencedRules.forEach((rule) => {
92
+ if (rules[rule]) return;
93
+ (0, node_console.warn)(`Unknown rule "${rule}". Please remove it from the silenced rules list.`);
94
+ });
95
+ return Object.entries(rules).reduce((newRules, [key, value]) => {
96
+ if (value) newRules[key] = targetSilencedRules.has(key) ? silenceRule(value) : value;
97
+ return newRules;
98
+ }, {});
125
99
  }
126
- const configMap = {
127
- async config() {
128
- return Promise.resolve().then(() => require("./index-DPseTvz6.cjs"));
129
- },
130
- async javascript() {
131
- return Promise.resolve().then(() => require("./index-Ds-dL7rp.cjs"));
132
- },
133
- async "javascript-node"() {
134
- return Promise.resolve().then(() => require("./index-Cj9TcRjV.cjs"));
135
- },
136
- async "javascript-dom"() {
137
- return Promise.resolve().then(() => require("./index-Vp4HLGO-.cjs"));
138
- },
139
- async typescript() {
140
- return Promise.resolve().then(() => require("./index-CsUJY3F4.cjs"));
141
- },
142
- async "typescript-node"() {
143
- return Promise.resolve().then(() => require("./index-CiVlnmEB.cjs"));
144
- },
145
- async "typescript-dom"() {
146
- return Promise.resolve().then(() => require("./index-2o2VBvVN.cjs"));
147
- },
148
- async vue3() {
149
- return Promise.resolve().then(() => require("./index-DVAtSM0f.cjs"));
150
- },
151
- async "vue3-typescript"() {
152
- return Promise.resolve().then(() => require("./index-B7KV8_ac.cjs"));
153
- },
154
- async vue2() {
155
- return Promise.resolve().then(() => require("./index-B8_S3w5d.cjs"));
156
- },
157
- async "vue2-typescript"() {
158
- return Promise.resolve().then(() => require("./index-D-kLe1Lx.cjs"));
159
- },
160
- async jest() {
161
- return Promise.resolve().then(() => require("./index-DePBHdMb.cjs"));
162
- },
163
- async "jsdoc-based-ts"() {
164
- return Promise.resolve().then(() => require("./index-D4MPQx8Q.cjs"));
165
- },
166
- async strict() {
167
- return Promise.resolve().then(() => require("./index-CQpRB59U.cjs"));
168
- }
100
+ //#endregion
101
+ //#region src/main.ts
102
+ var configMap = {
103
+ async config() {
104
+ return Promise.resolve().then(() => require("./config-ByQJiSMj.cjs"));
105
+ },
106
+ async javascript() {
107
+ return Promise.resolve().then(() => require("./javascript-BTduhgPC.cjs"));
108
+ },
109
+ async "javascript-node"() {
110
+ return Promise.resolve().then(() => require("./javascript-node-CFSgAg1n.cjs"));
111
+ },
112
+ async "javascript-dom"() {
113
+ return Promise.resolve().then(() => require("./javascript-dom-BGO7V06H.cjs"));
114
+ },
115
+ async typescript() {
116
+ return Promise.resolve().then(() => require("./typescript-0_O11nWX.cjs"));
117
+ },
118
+ async "typescript-node"() {
119
+ return Promise.resolve().then(() => require("./typescript-node-D9_lMhx2.cjs"));
120
+ },
121
+ async "typescript-dom"() {
122
+ return Promise.resolve().then(() => require("./typescript-dom-970fDiUU.cjs"));
123
+ },
124
+ async vue3() {
125
+ return Promise.resolve().then(() => require("./vue3-BJZAtjCx.cjs"));
126
+ },
127
+ async "vue3-typescript"() {
128
+ return Promise.resolve().then(() => require("./vue3-typescript-DAo2WlD3.cjs"));
129
+ },
130
+ async vue2() {
131
+ return Promise.resolve().then(() => require("./vue2-C94Kq0T6.cjs"));
132
+ },
133
+ async "vue2-typescript"() {
134
+ return Promise.resolve().then(() => require("./vue2-typescript-B_jQOM2b.cjs"));
135
+ },
136
+ async jest() {
137
+ return Promise.resolve().then(() => require("./jest-Ct_2c2e5.cjs"));
138
+ },
139
+ async "jsdoc-based-ts"() {
140
+ return Promise.resolve().then(() => require("./jsdoc-based-ts-De6bAjFn.cjs"));
141
+ },
142
+ async strict() {
143
+ return Promise.resolve().then(() => require("./strict-TbDHFSQX.cjs"));
144
+ }
169
145
  };
170
146
  async function useInsider(config) {
171
- await ensureDependencies();
172
- const configs = config.preset.map(async (scope) => typeof configMap[scope] === "function" && (await configMap[scope]()).default).filter(Boolean);
173
- const resolvedConfigs = await Promise.all(configs);
174
- const resolvedConfigAll = resolvedConfigs.reduce((acc, scope) => merge(acc, scope), {});
175
- delete resolvedConfigAll.files;
176
- const mergedConfig = merge(resolvedConfigAll, config.config);
177
- if (!mergedConfig) {
178
- return Promise.reject(new Error("No config found"));
179
- }
180
- if (config.silenceRules) {
181
- mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);
182
- } else {
183
- mergedConfig.rules = filterSilencedRules(mergedConfig.rules);
184
- }
185
- return mergedConfig;
147
+ await ensureDependencies();
148
+ const configs = config.preset.map(async (scope) => typeof configMap[scope] === "function" && (await configMap[scope]()).default).filter(Boolean);
149
+ const resolvedConfigAll = (await Promise.all(configs)).reduce((acc, scope) => require_merge.merge(acc, scope), {});
150
+ delete resolvedConfigAll.files;
151
+ const mergedConfig = require_merge.merge(resolvedConfigAll, config.config);
152
+ if (!mergedConfig) return Promise.reject(/* @__PURE__ */ new Error("No config found"));
153
+ if (config.silenceRules) mergedConfig.rules = filterSilencedRules(mergedConfig.rules, config.silenceRules);
154
+ else mergedConfig.rules = filterSilencedRules(mergedConfig.rules);
155
+ return mergedConfig;
186
156
  }
187
- exports.merge = merge;
188
- exports.mergeAll = mergeAll;
157
+ //#endregion
158
+ exports.merge = require_merge.merge;
159
+ exports.mergeAll = require_mergeAllConfig.mergeAll;
189
160
  exports.silenceDependencyWarning = silenceDependencyWarning;
190
161
  exports.silenceRules = silenceRules;
191
162
  exports.useInsider = useInsider;
192
- //# sourceMappingURL=main.cjs.map
163
+
164
+ //# sourceMappingURL=main.cjs.map
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":";;;;;;;;;;;AAOA,IAAI,UAAU;AACd,IAAI,UAAU;AACd,MAAM,2CAA2B;AACjC,MAAM,oBAAoB;AAAA,EACtB;AAAA,EACA;;AAEJ,MAAMA,YAAUC,YAAc,+PAAe;AAE7C,SAAS,mBAAoB,YAAkB;AACrC,QAAA,eAAeC,UAAAA,QAAQ,YAAY,cAAc;AAEnD,MAAAC,QAAAA,WAAW,YAAY,GAAG;AACnB,WAAA;AAAA,EAAA;AAGP,MAAA,eAAe,QAAQ,OAAO;AAC9B,UAAM,IAAI,MAAM,oCAAoC,UAAU,EAAE;AAAA,EAAA;AAG9D,QAAA,YAAYD,UAAAA,QAAQ,YAAY,IAAI;AAE1C,SAAO,mBAAmB,SAAS;AACvC;AAEA,SAAS,eAAgB,cAAoB;AACnC,QAAA,qBAAqBE,QAAAA,aAAa,cAAc,MAAM;AAErD,SAAA,KAAK,MAAM,kBAAkB;AACxC;AAEA,SAAS,0BAAuB;AACtB,QAAA,OAAO,mBAAmBC,SAAA,cAAc,IAAI;AAAA;AAAA,IAAuB,OAAA,aAAA,cAAA,QAAA,KAAA,EAAA,cAAA,UAAA,EAAA,OAAA,0BAAA,uBAAA,QAAA,YAAA,MAAA,YAAA,uBAAA,OAAA,IAAA,IAAA,YAAA,SAAA,OAAA,EAAA;AAAA,EAAY,CAAI,CAAC;AACpF,QAAA,cAAc,eAAe,IAAI;AAEvC,SAAO,YAAY;AACvB;AAEA,SAAS,iCAAkC,SAAiB,UAAkB,QAAQ,OAAK;AACnF,MAAA;AACM,UAAA,cAAcL,UAAQ,QAAQ,GAAG,OAAO,iBAAiB,EAAE,OAAO,CAAC,OAAO,EAAA,CAAG;AAC7E,UAAA,aAAaI,QAAAA,aAAa,aAAa,MAAM;AAC7C,UAAA,MAA4B,KAAK,MAAM,UAAU;AAEvD,WAAO,IAAI;AAAA,EAAA,QACP;AACG,WAAA;AAAA,EAAA;AAEf;AAEA,eAAsB,qBAAkB;AACpC,MAAI,WAAW,SAAS;AACpB;AAAA,EAAA;AAGM,YAAA;AAEV,QAAM,uBAAuB,OAAO,QAAQ,wBAAA,CAAyB;AACrE,QAAM,2BAA2B,qBAAqB,OAClD,CAAC,CAAC,oBAAoB,eAAe,MAAK;AAClC,QAAA,CAAC,kBAAkB,SAAS,kBAAkB,KAAK,qBAAqB,IAAI,kBAAkB,GAAG;AAC1F,aAAA;AAAA,IAAA;AAGL,UAAA,mBAAmB,iCAAiC,kBAAkB;AAE5E,QAAI,CAAC,kBAAkB;AACZ,aAAA;AAAA,IAAA;AAGJ,WAAA,OAAO,GAAG,kBAAkB,eAAe;AAAA,EAAA,CACrD;AAGD,MAAA,CAAC,yBAAyB,QAAQ;AAClC;AAAA,EAAA;AAGJ,QAAM,sBAAsB,yBAAyB,IAAI,CAAC,CAAC,YAAY,OAAO,MAAM,GAAG,UAAU,IAAI,QAAQ,QAAQ,QAAQ,EAAE,CAAC,EAAE;AAGlI,UAAQ,KAAK,gCAAgC;AAErC,UAAA,KAAK,oBAAoB,IAAI,CAAc,eAAA,OAAO,UAAU,EAAE,EAAE,KAAK,IAAI,CAAC;AAElF,UAAQ,KAAK,4BAA4B;AAEnC,QAAAE,WAAA,eAAe,qBAAqB,EAAE,KAAK,MAAM,gBAAgB,CAAC,IAAI,GAAG;AAG/E,UAAQ,KAAK,CAAC;AAClB;AAWM,SAAU,yBAA0B,OAAyB;AAC3D,MAAA,OAAO,UAAU,WAAW;AAClB,cAAA;AAEV;AAAA,EAAA;AAGJ,uBAAqB,MAAK;AAC1B,QAAM,QAAQ,CAAc,eAAA,qBAAqB,IAAI,OAAO,UAAU,CAAC,CAAC;AAC5E;ACpHgB,SAAA,SAAoD,MAAe;AAC/E,SAAOC,YAAAA,MAAQ,YAAY,EAAE,aAAa,MAAO,GAAE,GAAG,IAAI;AAC9D;ACDA,MAAM,4CAA4B;AAM5B,SAAU,aAAc,OAAe;AACnC,QAAA,QAAQ,CAAO,SAAA;AACjB,0BAAsB,IAAI,IAAI;AAAA,EAAA,CACjC;AACL;AAEA,SAAS,YAAa,QAAwB;AACpC,QAAA,CAAA,EAAG,GAAG,UAAU,IAAI,MAAM,QAAQ,MAAM,IAAI,SAAS;AAEpD,SAAA,CAAC,QAAQ,GAAG,UAAuC;AAC9D;AAEgB,SAAA,oBACZ,OACA,eAAsC;AAEtC,MAAI,sBAAsB,iBAAiB;AAEvC,MAAA,MAAM,QAAQ,mBAAmB,GAAG;AACd,0BAAA,IAAI,IAAI,mBAAmB;AAAA,EAAA;AAGrD,MAAI,CAAC,SAAS,CAAC,oBAAoB,MAAM;AAC9B,WAAA;AAAA,EAAA;AAGX,MAAI,eAAe;AACK,wBAAA,QAAQ,CAAO,SAAA;AAC3B,UAAA,MAAM,IAAI,GAAG;AACb;AAAA,MAAA;AAGCC,mBAAAA,KAAA,iBAAiB,IAAI,mDAAmD;AAAA,IAAA,CAChF;AAAA,EAAA;AAGE,SAAA,OAAO,QAAQ,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,KAAK,MAAK;AAC3D,QAAI,OAAO;AACE,eAAA,GAAG,IAAI,oBAAoB,IAAI,GAAG,IAAI,YAAY,KAAK,IAAI;AAAA,IAAA;AAGjE,WAAA;AAAA,EACX,GAAG,EAAwB;AAC/B;ACjDgB,SAAA,YAAa,SAA0B;AACnD,SAAO,QAAQ,OAAO,OAAO,CAAC,KAAK,UAAU,MAAM,KAAK,KAAK,GAAG,CAAA,CAAmB;AACvF;ACAA,MAAM,YAAY;AAAA,EACd,MAAM,SAAM;AACR,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAAkB,CAAA;AAAA,EACpC;AAAA,EACA,MAAM,aAAU;AACZ,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAAsB,CAAA;AAAA,EACxC;AAAA,EACA,MAAM,oBAAiB;AACnB,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAA2B,CAAA;AAAA,EAC7C;AAAA,EACA,MAAM,mBAAgB;AAClB,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAA0B,CAAA;AAAA,EAC5C;AAAA,EACA,MAAM,aAAU;AACZ,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAAsB,CAAA;AAAA,EACxC;AAAA,EACA,MAAM,oBAAiB;AACnB,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAA2B,CAAA;AAAA,EAC7C;AAAA,EACA,MAAM,mBAAgB;AAClB,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAA0B,CAAA;AAAA,EAC5C;AAAA,EACA,MAAM,OAAI;AACN,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAAgB,CAAA;AAAA,EAClC;AAAA,EACA,MAAM,oBAAiB;AACnB,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAA2B,CAAA;AAAA,EAC7C;AAAA,EACA,MAAM,OAAI;AACN,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAAgB,CAAA;AAAA,EAClC;AAAA,EACA,MAAM,oBAAiB;AACnB,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAA2B,CAAA;AAAA,EAC7C;AAAA,EACA,MAAM,OAAI;AACN,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAAgB,CAAA;AAAA,EAClC;AAAA,EACA,MAAM,mBAAgB;AAClB,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAA0B,CAAA;AAAA,EAC5C;AAAA,EACA,MAAM,SAAM;AACR,WAAO,QAAO,QAAA,EAAA,KAAA,MAAA,QAAA,sBAAkB,CAAA;AAAA,EAAA;;AAWxC,eAAsB,WAAY,QAAc;AAC5C,QAAM;AAEN,QAAM,UAAU,OAAO,OAClB,IAAI,OAAM,UAAS,OAAO,UAAU,KAAK,MAAM,eAAe,MAAM,UAAU,KAAK,KAAK,OAAO,EAC/F,OAAO,OAAO;AAEnB,QAAM,kBAAkB,MAAM,QAAQ,IAAI,OAAO;AAC3C,QAAA,oBAAoB,gBAAgB,OAAO,CAAC,KAAK,UAAU,MAAM,KAAK,KAAK,GAAG,EAAE;AAEtF,SAAO,kBAAkB;AAEzB,QAAM,eAAe,MAAM,mBAAmB,OAAO,MAAM;AAE3D,MAAI,CAAC,cAAc;AACf,WAAO,QAAQ,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAAA,EAAA;AAGtD,MAAI,OAAO,cAAc;AACrB,iBAAa,QAAQ,oBAAoB,aAAa,OAAO,OAAO,YAAY;AAAA,EAAA,OAC7E;AACU,iBAAA,QAAQ,oBAAoB,aAAa,KAAK;AAAA,EAAA;AAGxD,SAAA;AACX;;;;;;"}
1
+ {"version":3,"file":"main.cjs","names":[],"sources":["../src/utils/ensureDependencies.ts","../src/utils/silenceRules.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 { 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 { 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"],"mappings":"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"}