@useinsider/eslint-config 1.10.0 → 1.12.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.
- package/README.md +5 -4
- package/dist/configs/strict/index.d.ts +3 -0
- package/dist/{index-G0Yk1c8B.cjs → index-4TAamsUY.cjs} +2 -2
- package/dist/{index-G0Yk1c8B.cjs.map → index-4TAamsUY.cjs.map} +1 -1
- package/dist/{index-fQHA1Q85.js → index-B5UryX4F.js} +2 -2
- package/dist/{index-fQHA1Q85.js.map → index-B5UryX4F.js.map} +1 -1
- package/dist/{index-lL8X11Fl.cjs → index-Buz3frqF.cjs} +4 -4
- package/dist/index-Buz3frqF.cjs.map +1 -0
- package/dist/index-CQpRB59U.cjs +19 -0
- package/dist/index-CQpRB59U.cjs.map +1 -0
- package/dist/{index-DIqcxV_k.js → index-CYXJe_OW.js} +3 -3
- package/dist/index-CYXJe_OW.js.map +1 -0
- package/dist/{index-CRD6SwKn.js → index-CdZ7r9PX.js} +2 -2
- package/dist/{index-CRD6SwKn.js.map → index-CdZ7r9PX.js.map} +1 -1
- package/dist/{index-D84g26dl.js → index-CgaSxBXT.js} +3 -3
- package/dist/index-CgaSxBXT.js.map +1 -0
- package/dist/{index-DGiWIDAp.cjs → index-DF6DZcge.cjs} +3 -3
- package/dist/index-DF6DZcge.cjs.map +1 -0
- package/dist/{index-Bkn0-edz.js → index-DVcFuiMQ.js} +3 -3
- package/dist/index-DVcFuiMQ.js.map +1 -0
- package/dist/{index-DDKeobH4.cjs → index-DaNTQqCV.cjs} +2 -2
- package/dist/{index-DDKeobH4.cjs.map → index-DaNTQqCV.cjs.map} +1 -1
- package/dist/{index-BhIppjjk.cjs → index-So9bS5DL.cjs} +4 -4
- package/dist/index-So9bS5DL.cjs.map +1 -0
- package/dist/index-WUeklnFb.js +19 -0
- package/dist/index-WUeklnFb.js.map +1 -0
- package/dist/main.cjs +9 -9
- package/dist/main.cjs.map +1 -1
- package/dist/main.d.ts +1 -0
- package/dist/main.js +9 -9
- package/dist/main.js.map +1 -1
- package/dist/{typescript-Bh2dj5yT.js → removePluginsFromConfigs-ByipAus1.js} +8 -1
- package/dist/removePluginsFromConfigs-ByipAus1.js.map +1 -0
- package/dist/{typescript-JqNY1gXc.cjs → removePluginsFromConfigs-D8PUzDVg.cjs} +8 -1
- package/dist/removePluginsFromConfigs-D8PUzDVg.cjs.map +1 -0
- package/dist/utils/removePluginsFromConfigs.d.ts +2 -0
- package/package.json +26 -25
- package/dist/index-BhIppjjk.cjs.map +0 -1
- package/dist/index-Bkn0-edz.js.map +0 -1
- package/dist/index-D84g26dl.js.map +0 -1
- package/dist/index-DGiWIDAp.cjs.map +0 -1
- package/dist/index-DIqcxV_k.js.map +0 -1
- package/dist/index-lL8X11Fl.cjs.map +0 -1
- package/dist/typescript-Bh2dj5yT.js.map +0 -1
- package/dist/typescript-JqNY1gXc.cjs.map +0 -1
package/README.md
CHANGED
|
@@ -38,10 +38,11 @@ configured for different environments, such as ServiceWorkers, WebWorkers, etc.
|
|
|
38
38
|
|
|
39
39
|
### Library-specific & Standalone Configs
|
|
40
40
|
|
|
41
|
-
| Environment | JavaScript
|
|
42
|
-
| :--------------- | :-------------------------------------- |
|
|
43
|
-
| **Config files** | [`config`](./src/configs/config#readme) |
|
|
44
|
-
| **Jest** | [`jest`](./src/configs/jest#readme) |
|
|
41
|
+
| Environment | JavaScript & TypeScript |
|
|
42
|
+
| :--------------- | :-------------------------------------- |
|
|
43
|
+
| **Config files** | [`config`](./src/configs/config#readme) |
|
|
44
|
+
| **Jest** | [`jest`](./src/configs/jest#readme) |
|
|
45
|
+
| **Strict** | [`strict`](./src/configs/strict#readme) |
|
|
45
46
|
|
|
46
47
|
### Framework-specific
|
|
47
48
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const globals = require("globals");
|
|
4
|
-
const index = require("./index-
|
|
4
|
+
const index = require("./index-DF6DZcge.cjs");
|
|
5
5
|
const main = require("./main.cjs");
|
|
6
6
|
const scope = main.merge(index.default, {
|
|
7
7
|
languageOptions: {
|
|
@@ -11,4 +11,4 @@ const scope = main.merge(index.default, {
|
|
|
11
11
|
}
|
|
12
12
|
});
|
|
13
13
|
exports.default = scope;
|
|
14
|
-
//# sourceMappingURL=index-
|
|
14
|
+
//# sourceMappingURL=index-4TAamsUY.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-4TAamsUY.cjs","sources":["../src/configs/typescript-node/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport globals from 'globals';\nimport typescript from '../typescript';\nimport { merge } from '~/utils/merge';\n\nconst scope = merge(\n typescript,\n {\n languageOptions: {\n globals: {\n ...globals.node,\n },\n },\n }\n) as Linter.Config;\n\nexport default scope;\n"],"names":["merge","typescript"],"mappings":";;;;;AAKM,MAAA,QAAQA,WACVC,eACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAER,CAAA;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import globals from "globals";
|
|
2
|
-
import typescript from "./index-
|
|
2
|
+
import typescript from "./index-CYXJe_OW.js";
|
|
3
3
|
import { merge } from "./main.js";
|
|
4
4
|
const scope = merge(typescript, {
|
|
5
5
|
languageOptions: {
|
|
@@ -11,4 +11,4 @@ const scope = merge(typescript, {
|
|
|
11
11
|
export {
|
|
12
12
|
scope as default
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=index-
|
|
14
|
+
//# sourceMappingURL=index-B5UryX4F.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-B5UryX4F.js","sources":["../src/configs/typescript-node/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport globals from 'globals';\nimport typescript from '../typescript';\nimport { merge } from '~/utils/merge';\n\nconst scope = merge(\n typescript,\n {\n languageOptions: {\n globals: {\n ...globals.node,\n },\n },\n }\n) as Linter.Config;\n\nexport default scope;\n"],"names":[],"mappings":";;;AAKM,MAAA,QAAQ,MACV,YACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAER,CAAA;"}
|
|
@@ -10,13 +10,13 @@ const eslintPluginVueScopedCSS = require("eslint-plugin-vue-scoped-css");
|
|
|
10
10
|
const globals = require("globals");
|
|
11
11
|
const ts = require("typescript-eslint");
|
|
12
12
|
const stylistic = require("./stylistic-CFIZ-V78.cjs");
|
|
13
|
-
const
|
|
13
|
+
const removePluginsFromConfigs = require("./removePluginsFromConfigs-D8PUzDVg.cjs");
|
|
14
14
|
const vue = require("./vue-B6Bqb251.cjs");
|
|
15
15
|
const main = require("./main.cjs");
|
|
16
|
-
const index = main.mergeAll(ts.config(js.configs.recommended, eslintPluginImportX.importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...ts.configs.recommendedTypeChecked
|
|
16
|
+
const index = main.mergeAll(ts.config(js.configs.recommended, eslintPluginImportX.importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...removePluginsFromConfigs.removePluginsFromConfigs(ts.configs.recommendedTypeChecked), ...pluginVue.configs["flat/recommended"].map((config) => {
|
|
17
17
|
delete config.files;
|
|
18
18
|
return config;
|
|
19
|
-
}), ...eslintPluginVueScopedCSS.configs["flat/recommended"], jsdocPlugin.configs["flat/recommended-typescript-error"], main.merge(stylistic.preConfig(), stylistic.core, stylistic.importRules, stylistic.cspell, { plugins: { "@stylistic": stylistic$1 } }, stylistic.stylisticRules, vue.vue,
|
|
19
|
+
}), ...eslintPluginVueScopedCSS.configs["flat/recommended"], jsdocPlugin.configs["flat/recommended-typescript-error"], main.merge(stylistic.preConfig(), stylistic.core, stylistic.importRules, stylistic.cspell, { plugins: { "@stylistic": stylistic$1 } }, stylistic.stylisticRules, vue.vue, removePluginsFromConfigs.typescript, stylistic.postConfig(), {
|
|
20
20
|
languageOptions: {
|
|
21
21
|
globals: {
|
|
22
22
|
...globals.browser
|
|
@@ -41,4 +41,4 @@ const index = main.mergeAll(ts.config(js.configs.recommended, eslintPluginImport
|
|
|
41
41
|
}
|
|
42
42
|
})));
|
|
43
43
|
exports.default = index;
|
|
44
|
-
//# sourceMappingURL=index-
|
|
44
|
+
//# sourceMappingURL=index-Buz3frqF.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-Buz3frqF.cjs","sources":["../src/configs/vue3-typescript/index.ts"],"sourcesContent":["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 vue from '~/rules/vue';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\nimport { removePluginsFromConfigs } from '~/utils/removePluginsFromConfigs';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...removePluginsFromConfigs(ts.configs.recommendedTypeChecked),\n ...eslintPluginVue.configs['flat/recommended'].map(config => {\n delete config.files;\n\n return config;\n }),\n ...eslintPluginVueScopedCSS.configs['flat/recommended'],\n jsdocPlugin.configs['flat/recommended-typescript-error'],\n merge(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n vue,\n typescript,\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 } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["mergeAll","importX","removePluginsFromConfigs","eslintPluginVue","merge","preConfig","core","importRules","cspell","stylistic","stylisticRules","vue","typescript","postConfig"],"mappings":";;;;;;;;;;;;;;;AAqBA,MAAeA,QAAAA,KAAAA,SAAU,GAAG,OACxB,GAAG,QAAQ,aACXC,4BAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAGC,yBAAyB,yBAAA,GAAG,QAAQ,sBAAsB,GAC7D,GAAGC,UAAgB,QAAQ,kBAAkB,EAAE,IAAI,CAAS,WAAA;AACxD,SAAO,OAAO;AAEP,SAAA;AACX,CAAC,GACD,GAAG,yBAAyB,QAAQ,kBAAkB,GACtD,YAAY,QAAQ,mCAAmC,GACvDC,KAAA,MACIC,UAAS,UAAA,GACTC,UAAAA,MACAC,UAAA,aACAC,kBACA,EAAE,SAAS,EAAE,cAAcC,cAA8B,GACzDC,0BACAC,IAAAA,KACAC,yBACA,YAAAC,UAAA,WAAA,GACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IACd;AAAA,IACD,eAAe;AAAA,MACX,QAAQ,GAAG;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,EAEnC;AAAA,EACD,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IACT;AAAA,EACJ;CAES,CACrB,CACgB;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const sonarJS = require("eslint-plugin-sonarjs");
|
|
4
|
+
const main = require("./main.cjs");
|
|
5
|
+
const index = main.merge(sonarJS.configs.recommended, {
|
|
6
|
+
rules: {
|
|
7
|
+
"sonarjs/void-use": "off",
|
|
8
|
+
"sonarjs/use-type-alias": "off",
|
|
9
|
+
"sonarjs/no-redundant-optional": "off",
|
|
10
|
+
"sonarjs/slow-regex": ["warn"],
|
|
11
|
+
"sonarjs/todo-tag": ["warn"],
|
|
12
|
+
"sonarjs/no-useless-intersection": ["error"],
|
|
13
|
+
"sonarjs/cognitive-complexity": ["error", 10],
|
|
14
|
+
complexity: ["error", 10],
|
|
15
|
+
"max-depth": ["error", { max: 3 }]
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
exports.default = index;
|
|
19
|
+
//# sourceMappingURL=index-CQpRB59U.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CQpRB59U.cjs","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":["merge"],"mappings":";;;;AAIA,MAAA,QAAeA,WACX,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;;"}
|
|
@@ -5,9 +5,9 @@ import { importX } from "eslint-plugin-import-x";
|
|
|
5
5
|
import jsdocPlugin from "eslint-plugin-jsdoc";
|
|
6
6
|
import ts from "typescript-eslint";
|
|
7
7
|
import { p as preConfig, c as core, i as importRules, a as cspell, s as stylisticRules, b as postConfig } from "./stylistic-BzZCZ0ri.js";
|
|
8
|
-
import { t as typescript$1 } from "./
|
|
8
|
+
import { r as removePluginsFromConfigs, t as typescript$1 } from "./removePluginsFromConfigs-ByipAus1.js";
|
|
9
9
|
import { mergeAll, merge } from "./main.js";
|
|
10
|
-
const typescript = mergeAll(ts.config(js.configs.recommended, importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...ts.configs.recommendedTypeChecked
|
|
10
|
+
const typescript = mergeAll(ts.config(js.configs.recommended, importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...removePluginsFromConfigs(ts.configs.recommendedTypeChecked), jsdocPlugin.configs["flat/recommended-typescript-error"], merge(preConfig(), core, importRules, cspell, { plugins: { "@stylistic": stylistic } }, stylisticRules, typescript$1, postConfig(), {
|
|
11
11
|
settings: {
|
|
12
12
|
jsdoc: {
|
|
13
13
|
mode: "typescript",
|
|
@@ -25,4 +25,4 @@ const typescript = mergeAll(ts.config(js.configs.recommended, importX.flatConfig
|
|
|
25
25
|
export {
|
|
26
26
|
typescript as default
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=index-
|
|
28
|
+
//# sourceMappingURL=index-CYXJe_OW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CYXJe_OW.js","sources":["../src/configs/typescript/index.ts"],"sourcesContent":["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 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 { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\nimport { removePluginsFromConfigs } from '~/utils/removePluginsFromConfigs';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...removePluginsFromConfigs(ts.configs.recommendedTypeChecked),\n jsdocPlugin.configs['flat/recommended-typescript-error'],\n merge(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n typescript,\n postConfig(),\n {\n settings: {\n jsdoc: {\n mode: 'typescript',\n tagNamePreference: {\n callback: 'watch',\n desc: 'use',\n },\n },\n 'import/resolver': {\n typescript: true,\n node: true,\n },\n },\n } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["typescript"],"mappings":";;;;;;;;;AAiBA,MAAA,aAAe,SAAU,GAAG,OACxB,GAAG,QAAQ,aACX,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAG,yBAAyB,GAAG,QAAQ,sBAAsB,GAC7D,YAAY,QAAQ,mCAAmC,GACvD,MACI,UAAW,GACX,MACA,aACA,QACA,EAAE,SAAS,EAAE,cAAc,UAAW,EAAA,GACtC,gBACAA,cACA,cACA;AAAA,EACI,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IAEb;AAAA,IACD,mBAAmB;AAAA,MACf,YAAY;AAAA,MACZ,MAAM;AAAA,IAAA;AAAA,EACT;CAES,CACrB,CACgB;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import globals from "globals";
|
|
2
|
-
import typescript from "./index-
|
|
2
|
+
import typescript from "./index-CYXJe_OW.js";
|
|
3
3
|
import { merge } from "./main.js";
|
|
4
4
|
const index = merge(typescript, {
|
|
5
5
|
languageOptions: {
|
|
@@ -14,4 +14,4 @@ const index = merge(typescript, {
|
|
|
14
14
|
export {
|
|
15
15
|
index as default
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=index-
|
|
17
|
+
//# sourceMappingURL=index-CdZ7r9PX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-CdZ7r9PX.js","sources":["../src/configs/typescript-dom/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport globals from 'globals';\nimport typescript from '../typescript';\nimport { merge } from '~/utils/merge';\n\nexport default merge(\n typescript,\n {\n languageOptions: {\n parserOptions: {\n extraFileExtensions: ['.vue'],\n },\n globals: {\n ...globals.browser,\n },\n },\n } as Linter.Config\n);\n"],"names":[],"mappings":";;;AAKA,MAAe,QAAA,MACX,YACA;AAAA,EACI,iBAAiB;AAAA,IACb,eAAe;AAAA,MACX,qBAAqB,CAAC,MAAM;AAAA,IAC/B;AAAA,IACD,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAES,CAAA;"}
|
|
@@ -8,10 +8,10 @@ import eslintPluginVueScopedCSS from "eslint-plugin-vue-scoped-css";
|
|
|
8
8
|
import globals from "globals";
|
|
9
9
|
import ts from "typescript-eslint";
|
|
10
10
|
import { b as postConfig, s as stylisticRules, a as cspell, i as importRules, c as core, p as preConfig } from "./stylistic-BzZCZ0ri.js";
|
|
11
|
-
import { t as typescript } from "./
|
|
11
|
+
import { r as removePluginsFromConfigs, t as typescript } from "./removePluginsFromConfigs-ByipAus1.js";
|
|
12
12
|
import { v as vue } from "./vue-DtDckVDl.js";
|
|
13
13
|
import { mergeAll, merge } from "./main.js";
|
|
14
|
-
const index = mergeAll(ts.config(js.configs.recommended, importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...ts.configs.recommendedTypeChecked
|
|
14
|
+
const index = mergeAll(ts.config(js.configs.recommended, importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...removePluginsFromConfigs(ts.configs.recommendedTypeChecked), ...pluginVue.configs["flat/recommended"].map((config) => {
|
|
15
15
|
delete config.files;
|
|
16
16
|
return config;
|
|
17
17
|
}), ...eslintPluginVueScopedCSS.configs["flat/recommended"], jsdocPlugin.configs["flat/recommended-typescript-error"], merge(preConfig(), core, importRules, cspell, { plugins: { "@stylistic": stylistic } }, stylisticRules, vue, typescript, postConfig(), {
|
|
@@ -41,4 +41,4 @@ const index = mergeAll(ts.config(js.configs.recommended, importX.flatConfigs.rec
|
|
|
41
41
|
export {
|
|
42
42
|
index as default
|
|
43
43
|
};
|
|
44
|
-
//# sourceMappingURL=index-
|
|
44
|
+
//# sourceMappingURL=index-CgaSxBXT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-CgaSxBXT.js","sources":["../src/configs/vue3-typescript/index.ts"],"sourcesContent":["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 vue from '~/rules/vue';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\nimport { removePluginsFromConfigs } from '~/utils/removePluginsFromConfigs';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...removePluginsFromConfigs(ts.configs.recommendedTypeChecked),\n ...eslintPluginVue.configs['flat/recommended'].map(config => {\n delete config.files;\n\n return config;\n }),\n ...eslintPluginVueScopedCSS.configs['flat/recommended'],\n jsdocPlugin.configs['flat/recommended-typescript-error'],\n merge(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n vue,\n typescript,\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 } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["eslintPluginVue"],"mappings":";;;;;;;;;;;;;AAqBA,MAAe,QAAA,SAAU,GAAG,OACxB,GAAG,QAAQ,aACX,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAG,yBAAyB,GAAG,QAAQ,sBAAsB,GAC7D,GAAGA,UAAgB,QAAQ,kBAAkB,EAAE,IAAI,CAAS,WAAA;AACxD,SAAO,OAAO;AAEP,SAAA;AACX,CAAC,GACD,GAAG,yBAAyB,QAAQ,kBAAkB,GACtD,YAAY,QAAQ,mCAAmC,GACvD,MACI,UAAS,GACT,MACA,aACA,QACA,EAAE,SAAS,EAAE,cAAc,YAA8B,GACzD,gBACA,KACA,YACA,WAAA,GACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IACd;AAAA,IACD,eAAe;AAAA,MACX,QAAQ,GAAG;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,EAEnC;AAAA,EACD,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IACT;AAAA,EACJ;CAES,CACrB,CACgB;"}
|
|
@@ -7,9 +7,9 @@ const eslintPluginImportX = require("eslint-plugin-import-x");
|
|
|
7
7
|
const jsdocPlugin = require("eslint-plugin-jsdoc");
|
|
8
8
|
const ts = require("typescript-eslint");
|
|
9
9
|
const stylistic = require("./stylistic-CFIZ-V78.cjs");
|
|
10
|
-
const
|
|
10
|
+
const removePluginsFromConfigs = require("./removePluginsFromConfigs-D8PUzDVg.cjs");
|
|
11
11
|
const main = require("./main.cjs");
|
|
12
|
-
const typescript = main.mergeAll(ts.config(js.configs.recommended, eslintPluginImportX.importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...ts.configs.recommendedTypeChecked
|
|
12
|
+
const typescript = main.mergeAll(ts.config(js.configs.recommended, eslintPluginImportX.importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...removePluginsFromConfigs.removePluginsFromConfigs(ts.configs.recommendedTypeChecked), jsdocPlugin.configs["flat/recommended-typescript-error"], main.merge(stylistic.preConfig(), stylistic.core, stylistic.importRules, stylistic.cspell, { plugins: { "@stylistic": stylistic$1 } }, stylistic.stylisticRules, removePluginsFromConfigs.typescript, stylistic.postConfig(), {
|
|
13
13
|
settings: {
|
|
14
14
|
jsdoc: {
|
|
15
15
|
mode: "typescript",
|
|
@@ -25,4 +25,4 @@ const typescript = main.mergeAll(ts.config(js.configs.recommended, eslintPluginI
|
|
|
25
25
|
}
|
|
26
26
|
})));
|
|
27
27
|
exports.default = typescript;
|
|
28
|
-
//# sourceMappingURL=index-
|
|
28
|
+
//# sourceMappingURL=index-DF6DZcge.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DF6DZcge.cjs","sources":["../src/configs/typescript/index.ts"],"sourcesContent":["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 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 { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\nimport { removePluginsFromConfigs } from '~/utils/removePluginsFromConfigs';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...removePluginsFromConfigs(ts.configs.recommendedTypeChecked),\n jsdocPlugin.configs['flat/recommended-typescript-error'],\n merge(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n typescript,\n postConfig(),\n {\n settings: {\n jsdoc: {\n mode: 'typescript',\n tagNamePreference: {\n callback: 'watch',\n desc: 'use',\n },\n },\n 'import/resolver': {\n typescript: true,\n node: true,\n },\n },\n } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["mergeAll","importX","removePluginsFromConfigs","merge","preConfig","core","importRules","cspell","stylistic","stylisticRules","typescript","postConfig"],"mappings":";;;;;;;;;;;AAiBA,MAAA,aAAeA,cAAU,GAAG,OACxB,GAAG,QAAQ,aACXC,oBAAAA,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAGC,yBAAAA,yBAAyB,GAAG,QAAQ,sBAAsB,GAC7D,YAAY,QAAQ,mCAAmC,GACvDC,WACIC,UAAAA,UAAW,GACXC,gBACAC,UAAAA,aACAC,UAAAA,QACA,EAAE,SAAS,EAAE,cAAcC,YAAW,EAAA,GACtCC,UACA,gBAAAC,qCACAC,UAAAA,cACA;AAAA,EACI,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IAEb;AAAA,IACD,mBAAmB;AAAA,MACf,YAAY;AAAA,MACZ,MAAM;AAAA,IAAA;AAAA,EACT;CAES,CACrB,CACgB;;"}
|
|
@@ -8,7 +8,7 @@ import eslintPluginVueScopedCSS from "eslint-plugin-vue-scoped-css";
|
|
|
8
8
|
import globals from "globals";
|
|
9
9
|
import ts from "typescript-eslint";
|
|
10
10
|
import { b as postConfig, s as stylisticRules, a as cspell, i as importRules, c as core, p as preConfig } from "./stylistic-BzZCZ0ri.js";
|
|
11
|
-
import { t as typescript } from "./
|
|
11
|
+
import { r as removePluginsFromConfigs, t as typescript } from "./removePluginsFromConfigs-ByipAus1.js";
|
|
12
12
|
import { a as vue2Composition } from "./vue2-PRuaQ_vg.js";
|
|
13
13
|
import { mergeAll, merge } from "./main.js";
|
|
14
14
|
const vue2Typescript = {
|
|
@@ -21,7 +21,7 @@ const vue2Typescript = {
|
|
|
21
21
|
"@typescript-eslint/no-unsafe-member-access": "off"
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
|
-
const index = mergeAll(ts.config(js.configs.recommended, importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...ts.configs.recommendedTypeChecked
|
|
24
|
+
const index = mergeAll(ts.config(js.configs.recommended, importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...removePluginsFromConfigs(ts.configs.recommendedTypeChecked), ...pluginVue.configs["flat/vue2-recommended"].map((config) => {
|
|
25
25
|
delete config.files;
|
|
26
26
|
return config;
|
|
27
27
|
}), ...eslintPluginVueScopedCSS.configs["flat/vue2-recommended"], jsdocPlugin.configs["flat/recommended-typescript-error"], merge(preConfig(), core, importRules, cspell, { plugins: { "@stylistic": stylistic } }, stylisticRules, vue2Composition, typescript, vue2Typescript, postConfig(), {
|
|
@@ -51,4 +51,4 @@ const index = mergeAll(ts.config(js.configs.recommended, importX.flatConfigs.rec
|
|
|
51
51
|
export {
|
|
52
52
|
index as default
|
|
53
53
|
};
|
|
54
|
-
//# sourceMappingURL=index-
|
|
54
|
+
//# sourceMappingURL=index-DVcFuiMQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DVcFuiMQ.js","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((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\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(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as 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 } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["eslintPluginVue"],"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,MAAe,QAAA,SAAU,GAAG,OACxB,GAAG,QAAQ,aACX,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAG,yBAAyB,GAAG,QAAQ,sBAAsB,GAC7D,GAAGA,UAAgB,QAAQ,uBAAuB,EAAE,IAAI,CAAS,WAAA;AAC7D,SAAO,OAAO;AAEP,SAAA;AACX,CAAC,GACD,GAAG,yBAAyB,QAAQ,uBAAuB,GAC3D,YAAY,QAAQ,mCAAmC,GACvD,MACI,UACA,GAAA,MACA,aACA,QACA,EAAE,SAAS,EAAE,cAAc,UAAW,EAAA,GACtC,gBACA,iBACA,YACA,gBACA,WAAA,GACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IACd;AAAA,IACD,eAAe;AAAA,MACX,QAAQ,GAAG;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,EAEnC;AAAA,EACD,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IACT;AAAA,EACJ;CAES,CACrB,CACgB;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const globals = require("globals");
|
|
4
|
-
const index$1 = require("./index-
|
|
4
|
+
const index$1 = require("./index-DF6DZcge.cjs");
|
|
5
5
|
const main = require("./main.cjs");
|
|
6
6
|
const index = main.merge(index$1.default, {
|
|
7
7
|
languageOptions: {
|
|
@@ -14,4 +14,4 @@ const index = main.merge(index$1.default, {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
exports.default = index;
|
|
17
|
-
//# sourceMappingURL=index-
|
|
17
|
+
//# sourceMappingURL=index-DaNTQqCV.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-DaNTQqCV.cjs","sources":["../src/configs/typescript-dom/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport globals from 'globals';\nimport typescript from '../typescript';\nimport { merge } from '~/utils/merge';\n\nexport default merge(\n typescript,\n {\n languageOptions: {\n parserOptions: {\n extraFileExtensions: ['.vue'],\n },\n globals: {\n ...globals.browser,\n },\n },\n } as Linter.Config\n);\n"],"names":["merge","typescript"],"mappings":";;;;;AAKA,MAAeA,QAAAA,KAAAA,MACXC,QAAAA,SACA;AAAA,EACI,iBAAiB;AAAA,IACb,eAAe;AAAA,MACX,qBAAqB,CAAC,MAAM;AAAA,IAC/B;AAAA,IACD,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IAAA;AAAA,EACd;AAES,CAAA;;"}
|
|
@@ -10,7 +10,7 @@ const eslintPluginVueScopedCSS = require("eslint-plugin-vue-scoped-css");
|
|
|
10
10
|
const globals = require("globals");
|
|
11
11
|
const ts = require("typescript-eslint");
|
|
12
12
|
const stylistic = require("./stylistic-CFIZ-V78.cjs");
|
|
13
|
-
const
|
|
13
|
+
const removePluginsFromConfigs = require("./removePluginsFromConfigs-D8PUzDVg.cjs");
|
|
14
14
|
const vue2 = require("./vue2-R3Acomcd.cjs");
|
|
15
15
|
const main = require("./main.cjs");
|
|
16
16
|
const vue2Typescript = {
|
|
@@ -23,10 +23,10 @@ const vue2Typescript = {
|
|
|
23
23
|
"@typescript-eslint/no-unsafe-member-access": "off"
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
const index = main.mergeAll(ts.config(js.configs.recommended, eslintPluginImportX.importX.flatConfigs.recommended, airbnb.configs.base.all, ...ts.configs.recommended, ...ts.configs.recommendedTypeChecked
|
|
26
|
+
const index = main.mergeAll(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) => {
|
|
27
27
|
delete config.files;
|
|
28
28
|
return config;
|
|
29
|
-
}), ...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,
|
|
29
|
+
}), ...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(), {
|
|
30
30
|
languageOptions: {
|
|
31
31
|
globals: {
|
|
32
32
|
...globals.browser
|
|
@@ -51,4 +51,4 @@ const index = main.mergeAll(ts.config(js.configs.recommended, eslintPluginImport
|
|
|
51
51
|
}
|
|
52
52
|
})));
|
|
53
53
|
exports.default = index;
|
|
54
|
-
//# sourceMappingURL=index-
|
|
54
|
+
//# sourceMappingURL=index-So9bS5DL.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-So9bS5DL.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((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\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(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as 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 } as Linter.Config\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,MAAeA,QAAAA,KAAAA,SAAU,GAAG,OACxB,GAAG,QAAQ,aACXC,4BAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAGC,yBAAyB,yBAAA,GAAG,QAAQ,sBAAsB,GAC7D,GAAGC,UAAgB,QAAQ,uBAAuB,EAAE,IAAI,CAAS,WAAA;AAC7D,SAAO,OAAO;AAEP,SAAA;AACX,CAAC,GACD,GAAG,yBAAyB,QAAQ,uBAAuB,GAC3D,YAAY,QAAQ,mCAAmC,GACvDC,WACIC,UAAAA,UACA,GAAAC,UAAA,MACAC,uBACAC,UAAAA,QACA,EAAE,SAAS,EAAE,cAAcC,YAAW,EAAA,GACtCC,UAAA,gBACAC,sBACAC,yBAAAA,YACA,gBACAC,UAAA,WAAA,GACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IACd;AAAA,IACD,eAAe;AAAA,MACX,QAAQ,GAAG;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,EAEnC;AAAA,EACD,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IACT;AAAA,EACJ;CAES,CACrB,CACgB;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import sonarJS from "eslint-plugin-sonarjs";
|
|
2
|
+
import { merge } from "./main.js";
|
|
3
|
+
const index = merge(sonarJS.configs.recommended, {
|
|
4
|
+
rules: {
|
|
5
|
+
"sonarjs/void-use": "off",
|
|
6
|
+
"sonarjs/use-type-alias": "off",
|
|
7
|
+
"sonarjs/no-redundant-optional": "off",
|
|
8
|
+
"sonarjs/slow-regex": ["warn"],
|
|
9
|
+
"sonarjs/todo-tag": ["warn"],
|
|
10
|
+
"sonarjs/no-useless-intersection": ["error"],
|
|
11
|
+
"sonarjs/cognitive-complexity": ["error", 10],
|
|
12
|
+
complexity: ["error", 10],
|
|
13
|
+
"max-depth": ["error", { max: 3 }]
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
export {
|
|
17
|
+
index as default
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=index-WUeklnFb.js.map
|
|
@@ -0,0 +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;"}
|
package/dist/main.cjs
CHANGED
|
@@ -94,10 +94,7 @@ function silenceRules(rules) {
|
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
function silenceRule(config) {
|
|
97
|
-
|
|
98
|
-
return "warn";
|
|
99
|
-
}
|
|
100
|
-
const [, ...restConfig] = config;
|
|
97
|
+
const [, ...restConfig] = Array.isArray(config) ? config : [];
|
|
101
98
|
return ["warn", ...restConfig];
|
|
102
99
|
}
|
|
103
100
|
function filterSilencedRules(rules, silencedRules) {
|
|
@@ -140,31 +137,34 @@ const configMap = {
|
|
|
140
137
|
return Promise.resolve().then(() => require("./index-DQ6i_6fc.cjs"));
|
|
141
138
|
},
|
|
142
139
|
async typescript() {
|
|
143
|
-
return Promise.resolve().then(() => require("./index-
|
|
140
|
+
return Promise.resolve().then(() => require("./index-DF6DZcge.cjs"));
|
|
144
141
|
},
|
|
145
142
|
async "typescript-node"() {
|
|
146
|
-
return Promise.resolve().then(() => require("./index-
|
|
143
|
+
return Promise.resolve().then(() => require("./index-4TAamsUY.cjs"));
|
|
147
144
|
},
|
|
148
145
|
async "typescript-dom"() {
|
|
149
|
-
return Promise.resolve().then(() => require("./index-
|
|
146
|
+
return Promise.resolve().then(() => require("./index-DaNTQqCV.cjs"));
|
|
150
147
|
},
|
|
151
148
|
async vue3() {
|
|
152
149
|
return Promise.resolve().then(() => require("./index-D-rYWfeI.cjs"));
|
|
153
150
|
},
|
|
154
151
|
async "vue3-typescript"() {
|
|
155
|
-
return Promise.resolve().then(() => require("./index-
|
|
152
|
+
return Promise.resolve().then(() => require("./index-Buz3frqF.cjs"));
|
|
156
153
|
},
|
|
157
154
|
async vue2() {
|
|
158
155
|
return Promise.resolve().then(() => require("./index-ByJGX90X.cjs"));
|
|
159
156
|
},
|
|
160
157
|
async "vue2-typescript"() {
|
|
161
|
-
return Promise.resolve().then(() => require("./index-
|
|
158
|
+
return Promise.resolve().then(() => require("./index-So9bS5DL.cjs"));
|
|
162
159
|
},
|
|
163
160
|
async jest() {
|
|
164
161
|
return Promise.resolve().then(() => require("./index-DePBHdMb.cjs"));
|
|
165
162
|
},
|
|
166
163
|
async "jsdoc-based-ts"() {
|
|
167
164
|
return Promise.resolve().then(() => require("./index-D4MPQx8Q.cjs"));
|
|
165
|
+
},
|
|
166
|
+
async strict() {
|
|
167
|
+
return Promise.resolve().then(() => require("./index-CQpRB59U.cjs"));
|
|
168
168
|
}
|
|
169
169
|
};
|
|
170
170
|
async function useInsider(config) {
|
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 if (!Array.isArray(config)) {\n return 'warn';\n }\n\n const [, ...restConfig] = config;\n\n return ['warn', ...restConfig as Record<string, unknown>[]] as Linter.RuleEntry;\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} 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) 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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"}
|
package/dist/main.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ declare const configMap: {
|
|
|
13
13
|
'vue2-typescript'(): Promise<typeof import("./configs/vue2-typescript")>;
|
|
14
14
|
jest(): Promise<typeof import("./configs/jest")>;
|
|
15
15
|
'jsdoc-based-ts'(): Promise<typeof import("./configs/jsdoc-based-ts")>;
|
|
16
|
+
strict(): Promise<typeof import("./configs/strict")>;
|
|
16
17
|
};
|
|
17
18
|
interface Config {
|
|
18
19
|
/** Precedence order will affect how rules applied */
|
package/dist/main.js
CHANGED
|
@@ -91,10 +91,7 @@ function silenceRules(rules) {
|
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
function silenceRule(config) {
|
|
94
|
-
|
|
95
|
-
return "warn";
|
|
96
|
-
}
|
|
97
|
-
const [, ...restConfig] = config;
|
|
94
|
+
const [, ...restConfig] = Array.isArray(config) ? config : [];
|
|
98
95
|
return ["warn", ...restConfig];
|
|
99
96
|
}
|
|
100
97
|
function filterSilencedRules(rules, silencedRules) {
|
|
@@ -137,31 +134,34 @@ const configMap = {
|
|
|
137
134
|
return import("./index-DPshnyYz.js");
|
|
138
135
|
},
|
|
139
136
|
async typescript() {
|
|
140
|
-
return import("./index-
|
|
137
|
+
return import("./index-CYXJe_OW.js");
|
|
141
138
|
},
|
|
142
139
|
async "typescript-node"() {
|
|
143
|
-
return import("./index-
|
|
140
|
+
return import("./index-B5UryX4F.js");
|
|
144
141
|
},
|
|
145
142
|
async "typescript-dom"() {
|
|
146
|
-
return import("./index-
|
|
143
|
+
return import("./index-CdZ7r9PX.js");
|
|
147
144
|
},
|
|
148
145
|
async vue3() {
|
|
149
146
|
return import("./index-CDyyy483.js");
|
|
150
147
|
},
|
|
151
148
|
async "vue3-typescript"() {
|
|
152
|
-
return import("./index-
|
|
149
|
+
return import("./index-CgaSxBXT.js");
|
|
153
150
|
},
|
|
154
151
|
async vue2() {
|
|
155
152
|
return import("./index-g7AwuujJ.js");
|
|
156
153
|
},
|
|
157
154
|
async "vue2-typescript"() {
|
|
158
|
-
return import("./index-
|
|
155
|
+
return import("./index-DVcFuiMQ.js");
|
|
159
156
|
},
|
|
160
157
|
async jest() {
|
|
161
158
|
return import("./index-DJL4a_Kw.js");
|
|
162
159
|
},
|
|
163
160
|
async "jsdoc-based-ts"() {
|
|
164
161
|
return import("./index-FNO0uAiM.js");
|
|
162
|
+
},
|
|
163
|
+
async strict() {
|
|
164
|
+
return import("./index-WUeklnFb.js");
|
|
165
165
|
}
|
|
166
166
|
};
|
|
167
167
|
async function useInsider(config) {
|
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 if (!Array.isArray(config)) {\n return 'warn';\n }\n\n const [, ...restConfig] = config;\n\n return ['warn', ...restConfig as Record<string, unknown>[]] as Linter.RuleEntry;\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} 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) 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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"}
|
|
@@ -46,7 +46,14 @@ const typescript = {
|
|
|
46
46
|
}]
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
|
+
function removePluginsFromConfigs(configs) {
|
|
50
|
+
return configs.map((config) => {
|
|
51
|
+
const { plugins, ...rest } = config;
|
|
52
|
+
return rest;
|
|
53
|
+
});
|
|
54
|
+
}
|
|
49
55
|
export {
|
|
56
|
+
removePluginsFromConfigs as r,
|
|
50
57
|
typescript as t
|
|
51
58
|
};
|
|
52
|
-
//# sourceMappingURL=
|
|
59
|
+
//# sourceMappingURL=removePluginsFromConfigs-ByipAus1.js.map
|
|
@@ -0,0 +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;"}
|
|
@@ -47,5 +47,12 @@ const typescript = {
|
|
|
47
47
|
}]
|
|
48
48
|
}
|
|
49
49
|
};
|
|
50
|
+
function removePluginsFromConfigs(configs) {
|
|
51
|
+
return configs.map((config) => {
|
|
52
|
+
const { plugins, ...rest } = config;
|
|
53
|
+
return rest;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
exports.removePluginsFromConfigs = removePluginsFromConfigs;
|
|
50
57
|
exports.typescript = typescript;
|
|
51
|
-
//# sourceMappingURL=
|
|
58
|
+
//# sourceMappingURL=removePluginsFromConfigs-D8PUzDVg.cjs.map
|
|
@@ -0,0 +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;;;"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@useinsider/eslint-config",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.12.0-beta.1",
|
|
5
5
|
"description": "A collection of ESLint configurations provided by @useinsider, offering support for various environments including Vanilla JS, TypeScript, and framework-specific setups such as Vue 3.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"useinsider",
|
|
@@ -62,53 +62,54 @@
|
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
64
|
"@antfu/install-pkg": "1.1.0",
|
|
65
|
-
"@cspell/eslint-plugin": "9.
|
|
66
|
-
"@eslint/js": "9.
|
|
65
|
+
"@cspell/eslint-plugin": "9.2.0",
|
|
66
|
+
"@eslint/js": "9.33.0",
|
|
67
67
|
"@stylistic/eslint-plugin": "3.1.0",
|
|
68
68
|
"@types/eslint": "9.6.1",
|
|
69
|
-
"@typescript-eslint/eslint-plugin": "8.
|
|
70
|
-
"@typescript-eslint/parser": "8.
|
|
71
|
-
"eslint": "9.
|
|
72
|
-
"eslint-config-airbnb-extended": "2.1.
|
|
73
|
-
"eslint-import-resolver-typescript": "4.4.
|
|
74
|
-
"eslint-plugin-import-x": "4.
|
|
75
|
-
"eslint-plugin-jsdoc": "
|
|
76
|
-
"
|
|
69
|
+
"@typescript-eslint/eslint-plugin": "8.40.0",
|
|
70
|
+
"@typescript-eslint/parser": "8.40.0",
|
|
71
|
+
"eslint": "9.33.0",
|
|
72
|
+
"eslint-config-airbnb-extended": "2.1.2",
|
|
73
|
+
"eslint-import-resolver-typescript": "4.4.4",
|
|
74
|
+
"eslint-plugin-import-x": "4.16.1",
|
|
75
|
+
"eslint-plugin-jsdoc": "54.1.1",
|
|
76
|
+
"eslint-plugin-sonarjs": "3.0.4",
|
|
77
|
+
"globals": "16.3.0",
|
|
77
78
|
"semver": "7.7.2",
|
|
78
79
|
"ts-deepmerge": "7.0.2",
|
|
79
80
|
"typescript": "5.8.3",
|
|
80
|
-
"typescript-eslint": "8.
|
|
81
|
+
"typescript-eslint": "8.40.0"
|
|
81
82
|
},
|
|
82
83
|
"devDependencies": {
|
|
83
|
-
"@rollup/plugin-typescript": "12.1.
|
|
84
|
+
"@rollup/plugin-typescript": "12.1.4",
|
|
84
85
|
"@semantic-release/changelog": "6.0.3",
|
|
85
86
|
"@semantic-release/git": "10.0.1",
|
|
86
87
|
"@types/fs-extra": "11.0.4",
|
|
87
|
-
"@types/node": "24.0
|
|
88
|
+
"@types/node": "24.3.0",
|
|
88
89
|
"@types/semver": "7.7.0",
|
|
89
90
|
"@useinsider/release-config": "workspace:*",
|
|
90
91
|
"@vitest/coverage-v8": "3.2.4",
|
|
91
|
-
"@vue/eslint-config-typescript": "14.
|
|
92
|
+
"@vue/eslint-config-typescript": "14.6.0",
|
|
92
93
|
"eslint-plugin-jest": "29.0.1",
|
|
93
|
-
"eslint-plugin-vue": "10.
|
|
94
|
-
"eslint-plugin-vue-scoped-css": "2.
|
|
95
|
-
"fs-extra": "11.3.
|
|
94
|
+
"eslint-plugin-vue": "10.4.0",
|
|
95
|
+
"eslint-plugin-vue-scoped-css": "2.11.0",
|
|
96
|
+
"fs-extra": "11.3.1",
|
|
96
97
|
"rollup-plugin-typescript-paths": "1.5.0",
|
|
97
98
|
"rollup-plugin-visualizer": "6.0.3",
|
|
98
|
-
"semantic-release": "24.2.
|
|
99
|
+
"semantic-release": "24.2.7",
|
|
99
100
|
"semantic-release-monorepo": "8.0.2",
|
|
100
101
|
"tslib": "2.8.1",
|
|
101
102
|
"vite": "6.3.5",
|
|
102
103
|
"vite-tsconfig-paths": "5.1.4",
|
|
103
104
|
"vitest": "3.2.4",
|
|
104
|
-
"vue": "3.5.
|
|
105
|
-
"vue-eslint-parser": "10.
|
|
105
|
+
"vue": "3.5.18",
|
|
106
|
+
"vue-eslint-parser": "10.2.0"
|
|
106
107
|
},
|
|
107
108
|
"optionalDependencies": {
|
|
108
109
|
"@rushstack/eslint-patch": ">=1.10.5",
|
|
109
|
-
"@vue/eslint-config-typescript": "14.
|
|
110
|
-
"eslint-plugin-vue": "10.
|
|
111
|
-
"eslint-plugin-vue-scoped-css": "2.
|
|
112
|
-
"vue-eslint-parser": "10.
|
|
110
|
+
"@vue/eslint-config-typescript": "14.6.0",
|
|
111
|
+
"eslint-plugin-vue": "10.4.0",
|
|
112
|
+
"eslint-plugin-vue-scoped-css": "2.11.0",
|
|
113
|
+
"vue-eslint-parser": "10.2.0"
|
|
113
114
|
}
|
|
114
115
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-BhIppjjk.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';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...ts.configs.recommendedTypeChecked.filter(scope => !scope.plugins),\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(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as 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 } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["mergeAll","importX","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;;ACYtD,MAAA,QAAeA,KAAU,SAAA,GAAG,OACxB,GAAG,QAAQ,aACXC,oBAAA,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAG,GAAG,QAAQ,uBAAuB,OAAO,WAAS,CAAC,MAAM,OAAO,GACnE,GAAGC,UAAgB,QAAQ,uBAAuB,EAAE,IAAI,CAAS,WAAA;AAC7D,SAAO,OAAO;AAEP,SAAA;AACX,CAAC,GACD,GAAG,yBAAyB,QAAQ,uBAAuB,GAC3D,YAAY,QAAQ,mCAAmC,GACvDC,WACIC,UAAAA,UACA,GAAAC,UAAA,MACAC,uBACAC,UAAAA,QACA,EAAE,SAAS,EAAE,cAAcC,YAAW,EAAA,GACtCC,UAAA,gBACAC,sBACAC,WAAAA,YACA,gBACAC,UAAA,WAAA,GACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IACd;AAAA,IACD,eAAe;AAAA,MACX,QAAQ,GAAG;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,EAEnC;AAAA,EACD,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IACT;AAAA,EACJ;CAES,CACrB,CACgB;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Bkn0-edz.js","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';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...ts.configs.recommendedTypeChecked.filter(scope => !scope.plugins),\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(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as 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 } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["eslintPluginVue"],"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;;ACYtD,MAAA,QAAe,SAAU,GAAG,OACxB,GAAG,QAAQ,aACX,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAG,GAAG,QAAQ,uBAAuB,OAAO,WAAS,CAAC,MAAM,OAAO,GACnE,GAAGA,UAAgB,QAAQ,uBAAuB,EAAE,IAAI,CAAS,WAAA;AAC7D,SAAO,OAAO;AAEP,SAAA;AACX,CAAC,GACD,GAAG,yBAAyB,QAAQ,uBAAuB,GAC3D,YAAY,QAAQ,mCAAmC,GACvD,MACI,UACA,GAAA,MACA,aACA,QACA,EAAE,SAAS,EAAE,cAAc,UAAW,EAAA,GACtC,gBACA,iBACA,YACA,gBACA,WAAA,GACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IACd;AAAA,IACD,eAAe;AAAA,MACX,QAAQ,GAAG;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,EAEnC;AAAA,EACD,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IACT;AAAA,EACJ;CAES,CACrB,CACgB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-D84g26dl.js","sources":["../src/configs/vue3-typescript/index.ts"],"sourcesContent":["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 vue from '~/rules/vue';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...ts.configs.recommendedTypeChecked.filter(scope => !scope.plugins),\n ...eslintPluginVue.configs['flat/recommended'].map(config => {\n delete config.files;\n\n return config;\n }),\n ...eslintPluginVueScopedCSS.configs['flat/recommended'],\n jsdocPlugin.configs['flat/recommended-typescript-error'],\n merge(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n vue,\n typescript,\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 } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["eslintPluginVue"],"mappings":";;;;;;;;;;;;;AAoBA,MAAA,QAAe,SAAU,GAAG,OACxB,GAAG,QAAQ,aACX,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAG,GAAG,QAAQ,uBAAuB,OAAO,WAAS,CAAC,MAAM,OAAO,GACnE,GAAGA,UAAgB,QAAQ,kBAAkB,EAAE,IAAI,CAAS,WAAA;AACxD,SAAO,OAAO;AAEP,SAAA;AACX,CAAC,GACD,GAAG,yBAAyB,QAAQ,kBAAkB,GACtD,YAAY,QAAQ,mCAAmC,GACvD,MACI,UAAS,GACT,MACA,aACA,QACA,EAAE,SAAS,EAAE,cAAc,YAA8B,GACzD,gBACA,KACA,YACA,WAAA,GACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IACd;AAAA,IACD,eAAe;AAAA,MACX,QAAQ,GAAG;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,EAEnC;AAAA,EACD,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IACT;AAAA,EACJ;CAES,CACrB,CACgB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DGiWIDAp.cjs","sources":["../src/configs/typescript/index.ts"],"sourcesContent":["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 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 { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...ts.configs.recommendedTypeChecked.filter(scope => !scope.plugins),\n jsdocPlugin.configs['flat/recommended-typescript-error'],\n merge(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n typescript,\n postConfig(),\n {\n settings: {\n jsdoc: {\n mode: 'typescript',\n tagNamePreference: {\n callback: 'watch',\n desc: 'use',\n },\n },\n 'import/resolver': {\n typescript: true,\n node: true,\n },\n },\n } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["mergeAll","importX","merge","preConfig","core","importRules","cspell","stylistic","stylisticRules","typescript","postConfig"],"mappings":";;;;;;;;;;;AAgBA,MAAA,aAAeA,cAAU,GAAG,OACxB,GAAG,QAAQ,aACXC,oBAAA,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAG,GAAG,QAAQ,uBAAuB,OAAO,CAAA,UAAS,CAAC,MAAM,OAAO,GACnE,YAAY,QAAQ,mCAAmC,GACvDC,WACIC,UAAAA,aACAC,UAAAA,MACAC,UAAAA,aACAC,kBACA,EAAE,SAAS,EAAE,cAAcC,iBAC3BC,UAAA,gBACAC,yBACAC,UAAAA,cACA;AAAA,EACI,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IAEb;AAAA,IACD,mBAAmB;AAAA,MACf,YAAY;AAAA,MACZ,MAAM;AAAA,IAAA;AAAA,EACT;CAES,CACrB,CACgB;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-DIqcxV_k.js","sources":["../src/configs/typescript/index.ts"],"sourcesContent":["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 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 { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...ts.configs.recommendedTypeChecked.filter(scope => !scope.plugins),\n jsdocPlugin.configs['flat/recommended-typescript-error'],\n merge(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n typescript,\n postConfig(),\n {\n settings: {\n jsdoc: {\n mode: 'typescript',\n tagNamePreference: {\n callback: 'watch',\n desc: 'use',\n },\n },\n 'import/resolver': {\n typescript: true,\n node: true,\n },\n },\n } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["typescript"],"mappings":";;;;;;;;;AAgBA,MAAA,aAAe,SAAU,GAAG,OACxB,GAAG,QAAQ,aACX,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAG,GAAG,QAAQ,uBAAuB,OAAO,CAAA,UAAS,CAAC,MAAM,OAAO,GACnE,YAAY,QAAQ,mCAAmC,GACvD,MACI,aACA,MACA,aACA,QACA,EAAE,SAAS,EAAE,cAAc,eAC3B,gBACAA,cACA,cACA;AAAA,EACI,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IAEb;AAAA,IACD,mBAAmB;AAAA,MACf,YAAY;AAAA,MACZ,MAAM;AAAA,IAAA;AAAA,EACT;CAES,CACrB,CACgB;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-lL8X11Fl.cjs","sources":["../src/configs/vue3-typescript/index.ts"],"sourcesContent":["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 vue from '~/rules/vue';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default mergeAll((ts.config(\n js.configs.recommended,\n importX.flatConfigs.recommended as Linter.Config,\n airbnb.configs.base.all,\n ...ts.configs.recommended,\n ...ts.configs.recommendedTypeChecked.filter(scope => !scope.plugins),\n ...eslintPluginVue.configs['flat/recommended'].map(config => {\n delete config.files;\n\n return config;\n }),\n ...eslintPluginVueScopedCSS.configs['flat/recommended'],\n jsdocPlugin.configs['flat/recommended-typescript-error'],\n merge(\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } as Linter.Config,\n stylisticRules,\n vue,\n typescript,\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 } as Linter.Config\n )\n)) as Linter.Config[]);\n"],"names":["mergeAll","importX","eslintPluginVue","merge","preConfig","core","importRules","cspell","stylistic","stylisticRules","vue","typescript","postConfig"],"mappings":";;;;;;;;;;;;;;;AAoBA,MAAA,QAAeA,KAAU,SAAA,GAAG,OACxB,GAAG,QAAQ,aACXC,oBAAA,QAAQ,YAAY,aACpB,OAAO,QAAQ,KAAK,KACpB,GAAG,GAAG,QAAQ,aACd,GAAG,GAAG,QAAQ,uBAAuB,OAAO,WAAS,CAAC,MAAM,OAAO,GACnE,GAAGC,UAAgB,QAAQ,kBAAkB,EAAE,IAAI,CAAS,WAAA;AACxD,SAAO,OAAO;AAEP,SAAA;AACX,CAAC,GACD,GAAG,yBAAyB,QAAQ,kBAAkB,GACtD,YAAY,QAAQ,mCAAmC,GACvDC,KAAA,MACIC,UAAS,UAAA,GACTC,UAAAA,MACAC,UAAA,aACAC,kBACA,EAAE,SAAS,EAAE,cAAcC,cAA8B,GACzDC,0BACAC,IAAAA,KACAC,WACA,YAAAC,UAAA,WAAA,GACA;AAAA,EACI,iBAAiB;AAAA,IACb,SAAS;AAAA,MACL,GAAG,QAAQ;AAAA,IACd;AAAA,IACD,eAAe;AAAA,MACX,QAAQ,GAAG;AAAA,MACX,YAAY;AAAA,MACZ,cAAc;AAAA,QACV,KAAK;AAAA,MACR;AAAA,MACD,qBAAqB,CAAC,MAAM;AAAA,IAAA;AAAA,EAEnC;AAAA,EACD,UAAU;AAAA,IACN,OAAO;AAAA,MACH,MAAM;AAAA,MACN,mBAAmB;AAAA,QACf,UAAU;AAAA,QACV,MAAM;AAAA,MAAA;AAAA,IACT;AAAA,EACJ;CAES,CACrB,CACgB;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-Bh2dj5yT.js","sources":["../src/rules/typescript.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"],"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;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-JqNY1gXc.cjs","sources":["../src/rules/typescript.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"],"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;;;"}
|