@useinsider/eslint-config 4.0.0-beta.3 → 4.0.0-beta.4
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/dist/cli.cjs +27 -8
- package/dist/cli.cjs.map +1 -1
- package/dist/{javascript-dom-CvtQ6_9W.cjs → javascript-dom-bySaQErv.cjs} +4 -4
- package/dist/{javascript-dom-CvtQ6_9W.cjs.map → javascript-dom-bySaQErv.cjs.map} +1 -1
- package/dist/{javascript-node-BNsy3loY.cjs → javascript-node-DZxexKer.cjs} +4 -4
- package/dist/{javascript-node-BNsy3loY.cjs.map → javascript-node-DZxexKer.cjs.map} +1 -1
- package/dist/{javascript-DH8-N38w.cjs → javascript-ycJ4W-e9.cjs} +5 -5
- package/dist/{javascript-DH8-N38w.cjs.map → javascript-ycJ4W-e9.cjs.map} +1 -1
- package/dist/{jest-4Es9Ggaa.cjs → jest-B2fpQmUB.cjs} +3 -3
- package/dist/{jest-4Es9Ggaa.cjs.map → jest-B2fpQmUB.cjs.map} +1 -1
- package/dist/main.cjs +30 -32
- package/dist/main.cjs.map +1 -1
- package/dist/main.js +4 -6
- package/dist/main.js.map +1 -1
- package/dist/{oxlintOwnership-7hpdB3d1.cjs → removedOptions-BYMW8w__.cjs} +29 -1
- package/dist/removedOptions-BYMW8w__.cjs.map +1 -0
- package/dist/{oxlintOwnership-Cx0hgA_J.js → removedOptions-Cb8SG8SI.js} +18 -2
- package/dist/removedOptions-Cb8SG8SI.js.map +1 -0
- package/dist/{stylistic-CoP3MT1Y.cjs → stylistic-B2hCwBRu.cjs} +4 -4
- package/dist/{stylistic-CoP3MT1Y.cjs.map → stylistic-B2hCwBRu.cjs.map} +1 -1
- package/dist/{typescript-D3VeLnpn.cjs → typescript-DdgbCNKI.cjs} +7 -7
- package/dist/{typescript-D3VeLnpn.cjs.map → typescript-DdgbCNKI.cjs.map} +1 -1
- package/dist/{typescript-dom-iB_xBTAD.cjs → typescript-dom-C0NNSGLd.cjs} +4 -4
- package/dist/{typescript-dom-iB_xBTAD.cjs.map → typescript-dom-C0NNSGLd.cjs.map} +1 -1
- package/dist/{typescript-node-Cq6qhj53.cjs → typescript-node-CjG8N83q.cjs} +4 -4
- package/dist/{typescript-node-Cq6qhj53.cjs.map → typescript-node-CjG8N83q.cjs.map} +1 -1
- package/dist/utils/removedOptions.d.ts +10 -0
- package/dist/{vitest-BlGQswK2.cjs → vitest-B3kOWOzo.cjs} +3 -3
- package/dist/{vitest-BlGQswK2.cjs.map → vitest-B3kOWOzo.cjs.map} +1 -1
- package/dist/{vue2-Da1i_oVn.cjs → vue2-DfL5FqeZ.cjs} +8 -8
- package/dist/{vue2-Da1i_oVn.cjs.map → vue2-DfL5FqeZ.cjs.map} +1 -1
- package/dist/{vue2-options-api-BSdrUm8H.cjs → vue2-options-api-sSrBV5Si.cjs} +8 -8
- package/dist/{vue2-options-api-BSdrUm8H.cjs.map → vue2-options-api-sSrBV5Si.cjs.map} +1 -1
- package/dist/{vue2-typescript-options-api-LM7U5dWq.cjs → vue2-typescript-options-api-CbRC2wf-.cjs} +10 -10
- package/dist/{vue2-typescript-options-api-LM7U5dWq.cjs.map → vue2-typescript-options-api-CbRC2wf-.cjs.map} +1 -1
- package/dist/{vue2-typescript-dXLRSGNP.cjs → vue2-typescript-rJIMzNUI.cjs} +10 -10
- package/dist/{vue2-typescript-dXLRSGNP.cjs.map → vue2-typescript-rJIMzNUI.cjs.map} +1 -1
- package/dist/{vue3-621EM2Ii.cjs → vue3-DmrGRHbo.cjs} +8 -8
- package/dist/{vue3-621EM2Ii.cjs.map → vue3-DmrGRHbo.cjs.map} +1 -1
- package/dist/{vue3-options-api-CC9_fAiq.cjs → vue3-options-api-DPEk8rBk.cjs} +8 -8
- package/dist/{vue3-options-api-CC9_fAiq.cjs.map → vue3-options-api-DPEk8rBk.cjs.map} +1 -1
- package/dist/{vue3-typescript-DONe-IKz.cjs → vue3-typescript-Dz5BM0LJ.cjs} +10 -10
- package/dist/{vue3-typescript-DONe-IKz.cjs.map → vue3-typescript-Dz5BM0LJ.cjs.map} +1 -1
- package/dist/{vue3-typescript-options-api-D4pqpDFs.cjs → vue3-typescript-options-api-DiYz_vVd.cjs} +10 -10
- package/dist/{vue3-typescript-options-api-D4pqpDFs.cjs.map → vue3-typescript-options-api-DiYz_vVd.cjs.map} +1 -1
- package/package.json +1 -1
- package/dist/oxlintOwnership-7hpdB3d1.cjs.map +0 -1
- package/dist/oxlintOwnership-Cx0hgA_J.js.map +0 -1
|
@@ -147,6 +147,22 @@ function isRuleDisabled(entry) {
|
|
|
147
147
|
return severity === "off" || severity === 0;
|
|
148
148
|
}
|
|
149
149
|
//#endregion
|
|
150
|
+
//#region src/utils/removedOptions.ts
|
|
151
|
+
var removedOptions = /* @__PURE__ */ new Map([["config", "use `configFiles: string[]` instead. Its block is emitted after every scope block, so the overrides actually win; the `config` scope was emitted before them and was silently overridden for any file a language scope also matched."]]);
|
|
152
|
+
/**
|
|
153
|
+
* Renders the bullet list naming every removed option among `keys`, or `null` when none of them was
|
|
154
|
+
* removed. Both the runtime rejection and the migration's refusal read this registry, so a consumer
|
|
155
|
+
* who hits one after the other is given the same replacement rather than two wordings of it.
|
|
156
|
+
* @example
|
|
157
|
+
* describeRemovedOptions(['config']); // ' - `config`: use `configFiles: string[]` instead. …'
|
|
158
|
+
* describeRemovedOptions(['strict']); // null
|
|
159
|
+
*/
|
|
160
|
+
function describeRemovedOptions(keys) {
|
|
161
|
+
const used = keys.filter((key) => removedOptions.has(key));
|
|
162
|
+
if (used.length === 0) return null;
|
|
163
|
+
return used.map((key) => ` - \`${key}\`: ${removedOptions.get(key)}`).join("\n");
|
|
164
|
+
}
|
|
165
|
+
//#endregion
|
|
150
166
|
Object.defineProperty(exports, "OXLINT_CATEGORIES", {
|
|
151
167
|
enumerable: true,
|
|
152
168
|
get: function() {
|
|
@@ -165,6 +181,12 @@ Object.defineProperty(exports, "__toESM", {
|
|
|
165
181
|
return __toESM;
|
|
166
182
|
}
|
|
167
183
|
});
|
|
184
|
+
Object.defineProperty(exports, "describeRemovedOptions", {
|
|
185
|
+
enumerable: true,
|
|
186
|
+
get: function() {
|
|
187
|
+
return describeRemovedOptions;
|
|
188
|
+
}
|
|
189
|
+
});
|
|
168
190
|
Object.defineProperty(exports, "isOxlintOwned", {
|
|
169
191
|
enumerable: true,
|
|
170
192
|
get: function() {
|
|
@@ -183,6 +205,12 @@ Object.defineProperty(exports, "isVueUnsafeRule", {
|
|
|
183
205
|
return isVueUnsafeRule;
|
|
184
206
|
}
|
|
185
207
|
});
|
|
208
|
+
Object.defineProperty(exports, "removedOptions", {
|
|
209
|
+
enumerable: true,
|
|
210
|
+
get: function() {
|
|
211
|
+
return removedOptions;
|
|
212
|
+
}
|
|
213
|
+
});
|
|
186
214
|
Object.defineProperty(exports, "toOxlintPluginName", {
|
|
187
215
|
enumerable: true,
|
|
188
216
|
get: function() {
|
|
@@ -196,4 +224,4 @@ Object.defineProperty(exports, "toOxlintRuleName", {
|
|
|
196
224
|
}
|
|
197
225
|
});
|
|
198
226
|
|
|
199
|
-
//# sourceMappingURL=
|
|
227
|
+
//# sourceMappingURL=removedOptions-BYMW8w__.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removedOptions-BYMW8w__.cjs","names":[],"sources":["../src/builders/oxlintOwnership.ts","../src/utils/removedOptions.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport oxlintPlugin from 'eslint-plugin-oxlint';\nimport * as rulesByCategory from 'eslint-plugin-oxlint/rules-by-category';\nimport * as rulesByScope from 'eslint-plugin-oxlint/rules-by-scope';\n\nconst ESLINT_IMPORT_PREFIX = 'import-x/';\nconst OXLINT_IMPORT_PREFIX = 'import/';\nconst ESLINT_TYPESCRIPT_PREFIX = '@typescript-eslint/';\nconst OXLINT_TYPESCRIPT_PREFIX = 'typescript/';\n\nexport const VUE_LIKE_GLOBS: readonly string[] = ['**/*.vue', '**/*.svelte', '**/*.astro'];\n\nexport const OXLINT_CATEGORIES: readonly string[] = [\n 'correctness',\n 'suspicious',\n 'pedantic',\n 'perf',\n 'style',\n 'restriction',\n 'nursery',\n];\n\n// oxlint has no equivalent of flat-config `settings`, so any rule whose ESLint behavior is driven\n// by a settings key stays on the ESLint side. `jsdoc/check-tag-names` reads\n// `settings.jsdoc.tagNamePreference`, which the TypeScript presets use to remap `@desc`/`@callback`\n// onto `@use`/`@watch`; oxlint rejects both of those tags outright.\nexport const SETTINGS_DEPENDENT_RULES: readonly string[] = ['jsdoc/check-tag-names'];\n\n// Rules both linters implement, but whose omitted options resolve to different defaults — a bare\n// `'error'` therefore means something stricter under oxlint. `no-inner-declarations` defaults\n// `blockScopedFunctions` to `'allow'` in ESLint 9 and to `'disallow'` in oxlint, so handing oxlint\n// the preset's `'error'` would reject every block-scoped function declaration ESLint accepts.\nexport const DEFAULT_DIVERGENT_RULES: readonly string[] = ['no-inner-declarations'];\n\n// `eslint-plugin-oxlint` re-enables these for SFC-like files because oxlint cannot parse their\n// templates. Kept as a floor under the value derived from the plugin at runtime so a shape change\n// upstream can never silently drop the exception.\nconst VUE_UNSAFE_FALLBACK: readonly string[] = [\n 'no-unused-vars',\n '@typescript-eslint/no-unused-vars',\n '@typescript-eslint/consistent-type-imports',\n 'react-hooks/rules-of-hooks',\n];\n\nconst eslintPrefixToOxlintPlugin: Readonly<Record<string, string>> = {\n 'import-x': 'import',\n import: 'import',\n '@typescript-eslint': 'typescript',\n n: 'node',\n '@next/next': 'nextjs',\n 'react-hooks': 'react',\n 'react-perf': 'react-perf',\n 'jsx-a11y': 'jsx-a11y',\n};\n\nfunction collectRuleNames (namespace: Record<string, unknown>): string[] {\n return Object.values(namespace).flatMap(value => {\n if (typeof value !== 'object' || value === null) {\n return [];\n }\n\n const entries = Object.entries(value as Record<string, unknown>);\n const isRuleRecord = entries.length > 0 && entries.every(([, severity]) => severity === 'off');\n\n return isRuleRecord ? entries.map(([rule]) => rule) : [];\n });\n}\n\nfunction pickNamespace (\n namespace: Record<string, unknown>,\n matches: (key: string) => boolean\n): Record<string, unknown> {\n return Object.fromEntries(Object.entries(namespace).filter(([key]) => matches(key)));\n}\n\nconst categoryNamespace = rulesByCategory as Record<string, unknown>;\nconst scopeNamespace = rulesByScope as Record<string, unknown>;\nconst implementedRules = new Set(collectRuleNames(scopeNamespace));\n\n// Type-aware rules need `oxlint-tsgolint`, which this stage does not wire up, and nursery rules are\n// exempt from oxlint's semver guarantees. Both stay with ESLint.\nconst excludedRules = new Set([\n ...collectRuleNames(pickNamespace(categoryNamespace, key => key.endsWith('TypeAwareRules'))),\n ...collectRuleNames(pickNamespace(scopeNamespace, key => key.endsWith('TypeAwareRules'))),\n ...collectRuleNames(pickNamespace(categoryNamespace, key => key.startsWith('nursery'))),\n ...SETTINGS_DEPENDENT_RULES,\n ...DEFAULT_DIVERGENT_RULES,\n]);\n\n/**\n * The rules `eslint-plugin-oxlint` re-enables for `.vue`/`.svelte`/`.astro`, read from the plugin's\n * own `flat/all` split so the list tracks upstream instead of being hand-maintained.\n * @example\n * readVueUnsafeRules().includes('@typescript-eslint/no-unused-vars'); // true\n */\nexport function readVueUnsafeRules (): string[] {\n const [, exceptions] = oxlintPlugin.configs['flat/all'];\n const derived = exceptions?.rules ? Object.keys(exceptions.rules) : [];\n\n return [...new Set([...derived, ...VUE_UNSAFE_FALLBACK])];\n}\n\nconst vueUnsafeRules = new Set(readVueUnsafeRules());\n\nfunction normalizeToOxlintNamespace (eslintRuleName: string): string {\n return eslintRuleName.startsWith(ESLINT_IMPORT_PREFIX)\n ? `${OXLINT_IMPORT_PREFIX}${eslintRuleName.slice(ESLINT_IMPORT_PREFIX.length)}`\n : eslintRuleName;\n}\n\n/**\n * Whether oxlint owns this ESLint rule in the current split — implemented natively, not type-aware,\n * not nursery, and not driven by a flat-config `settings` key oxlint cannot read.\n * @example\n * isOxlintOwned('import-x/no-duplicates'); // true — oxlint implements it as `import/no-duplicates`\n * isOxlintOwned('sonarjs/no-identical-functions'); // false\n */\nexport function isOxlintOwned (eslintRuleName: string): boolean {\n const normalized = normalizeToOxlintNamespace(eslintRuleName);\n\n return implementedRules.has(normalized) && !excludedRules.has(normalized);\n}\n\n/**\n * Whether ESLint must keep running this rule on SFC-like files because oxlint cannot parse their\n * templates. Callers must exclude `**\\/*.vue`, `**\\/*.svelte` and `**\\/*.astro` from its suppression.\n * @example\n * isVueUnsafeRule('@typescript-eslint/no-unused-vars'); // true\n */\nexport function isVueUnsafeRule (eslintRuleName: string): boolean {\n return vueUnsafeRules.has(normalizeToOxlintNamespace(eslintRuleName));\n}\n\n/**\n * Translates an ESLint rule name into the name oxlint accepts in its config.\n * @example\n * toOxlintRuleName('no-var'); // 'eslint/no-var'\n * toOxlintRuleName('import-x/first'); // 'import/first'\n * toOxlintRuleName('@typescript-eslint/array-type'); // 'typescript/array-type'\n */\nexport function toOxlintRuleName (eslintRuleName: string): string {\n if (!eslintRuleName.includes('/')) {\n return `eslint/${eslintRuleName}`;\n }\n\n if (eslintRuleName.startsWith(ESLINT_TYPESCRIPT_PREFIX)) {\n return `${OXLINT_TYPESCRIPT_PREFIX}${eslintRuleName.slice(ESLINT_TYPESCRIPT_PREFIX.length)}`;\n }\n\n return normalizeToOxlintNamespace(eslintRuleName);\n}\n\n/**\n * The oxlint plugin id that must appear in the config's `plugins` array for a rule to be loaded.\n * @example\n * toOxlintPluginName('import-x/first'); // 'import'\n * toOxlintPluginName('no-var'); // 'eslint'\n */\nexport function toOxlintPluginName (eslintRuleName: string): string {\n if (!eslintRuleName.includes('/')) {\n return 'eslint';\n }\n\n const prefix = eslintRuleName.slice(0, eslintRuleName.lastIndexOf('/'));\n\n return eslintPrefixToOxlintPlugin[prefix] ?? prefix;\n}\n\nexport function isRuleDisabled (entry: Linter.RuleEntry | undefined): boolean {\n if (entry === undefined) {\n return true;\n }\n\n const [severity] = Array.isArray(entry) ? entry : [entry];\n\n return severity === 'off' || severity === 0;\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest;\n\n describe('isOxlintOwned', () => {\n test('claims a natively implemented core rule', () => {\n expect(isOxlintOwned('no-var')).toBe(true);\n });\n\n test('claims an import-x rule through the import-x → import alias', () => {\n expect(isOxlintOwned('import-x/no-duplicates')).toBe(true);\n });\n\n test('leaves type-aware typescript rules with ESLint', () => {\n expect(isOxlintOwned('@typescript-eslint/no-floating-promises')).toBe(false);\n });\n\n test('leaves rules oxlint does not implement with ESLint', () => {\n expect(isOxlintOwned('sonarjs/no-identical-functions')).toBe(false);\n expect(isOxlintOwned('@stylistic/indent')).toBe(false);\n expect(isOxlintOwned('@cspell/spellchecker')).toBe(false);\n });\n\n test('leaves settings-dependent rules with ESLint', () => {\n expect(isOxlintOwned('jsdoc/check-tag-names')).toBe(false);\n });\n\n test('leaves rules whose omitted options resolve to different defaults with ESLint', () => {\n expect(DEFAULT_DIVERGENT_RULES.every(rule => !isOxlintOwned(rule))).toBe(true);\n expect(isOxlintOwned('no-inner-declarations')).toBe(false);\n });\n\n const nurseryRules = collectRuleNames(pickNamespace(categoryNamespace, key => key.startsWith('nursery')));\n\n test('reads a non-empty nursery namespace, so the exclusion below is not vacuous', () => {\n expect(nurseryRules.length).toBeGreaterThan(0);\n });\n\n test('leaves every nursery rule with ESLint, since nursery is exempt from oxlint semver', () => {\n expect(nurseryRules.filter(rule => isOxlintOwned(rule))).toStrictEqual([]);\n });\n });\n\n describe('isVueUnsafeRule', () => {\n test.each([...VUE_UNSAFE_FALLBACK])('keeps %s with ESLint inside single-file components', ruleName => {\n expect(isVueUnsafeRule(ruleName)).toBe(true);\n });\n\n test.each([\n 'no-var',\n 'no-console',\n 'sonarjs/no-identical-functions',\n ])('lets oxlint keep %s inside single-file components', ruleName => {\n expect(isVueUnsafeRule(ruleName)).toBe(false);\n });\n\n test('does not read an import-x rule as the bare ESLint rule of the same suffix', () => {\n expect(isVueUnsafeRule('import-x/no-unused-vars')).toBe(false);\n });\n });\n\n describe('toOxlintRuleName', () => {\n test.each([\n ['no-var', 'eslint/no-var'],\n ['import-x/first', 'import/first'],\n ['@typescript-eslint/array-type', 'typescript/array-type'],\n ['jsdoc/empty-tags', 'jsdoc/empty-tags'],\n ['vue/no-dupe-keys', 'vue/no-dupe-keys'],\n ])('%s → %s', (eslintName, expected) => {\n expect(toOxlintRuleName(eslintName)).toBe(expected);\n });\n });\n\n describe('toOxlintPluginName', () => {\n const expectedPluginByPrefix: Readonly<Record<string, string>> = {\n 'import-x': 'import',\n import: 'import',\n '@typescript-eslint': 'typescript',\n n: 'node',\n '@next/next': 'nextjs',\n 'react-hooks': 'react',\n 'react-perf': 'react-perf',\n 'jsx-a11y': 'jsx-a11y',\n };\n\n const byName = (left: string, right: string): number => left.localeCompare(right);\n\n test('names every prefix the remap table carries, so no entry goes unexercised', () => {\n expect(Object.keys(expectedPluginByPrefix).sort(byName))\n .toStrictEqual(Object.keys(eslintPrefixToOxlintPlugin).sort(byName));\n });\n\n test.each(Object.entries(expectedPluginByPrefix))(\n 'a %s rule loads the %s plugin',\n (prefix, plugin) => {\n expect(toOxlintPluginName(`${prefix}/some-rule`)).toBe(plugin);\n }\n );\n\n test.each([\n ['no-var', 'eslint'],\n ['jsdoc/empty-tags', 'jsdoc'],\n ['vitest/no-focused-tests', 'vitest'],\n ['vue/no-dupe-keys', 'vue'],\n ])('%s → %s', (eslintName, expected) => {\n expect(toOxlintPluginName(eslintName)).toBe(expected);\n });\n });\n\n describe('readVueUnsafeRules', () => {\n test('derives the upstream exception list rather than only the pinned fallback', () => {\n const [, exceptions] = oxlintPlugin.configs['flat/all'];\n\n expect(exceptions?.rules).toBeDefined();\n expect(Object.keys(exceptions?.rules ?? {}).length).toBeGreaterThan(0);\n });\n\n test('covers every rule oxlint cannot check inside an SFC', () => {\n expect(readVueUnsafeRules()).toEqual(expect.arrayContaining([...VUE_UNSAFE_FALLBACK]));\n });\n });\n\n describe('isRuleDisabled', () => {\n test.each([\n [undefined, true],\n ['off' as Linter.RuleEntry, true],\n [0 as Linter.RuleEntry, true],\n [['off'] as Linter.RuleEntry, true],\n ['error' as Linter.RuleEntry, false],\n [['error', { allow: [] }] as Linter.RuleEntry, false],\n [2 as Linter.RuleEntry, false],\n ])('%s → %s', (entry, expected) => {\n expect(isRuleDisabled(entry)).toBe(expected);\n });\n });\n}\n","export const removedOptions: ReadonlyMap<string, string> = new Map([\n [\n 'config',\n 'use `configFiles: string[]` instead. Its block is emitted after every scope block, so'\n + ' the overrides actually win; the `config` scope was emitted before them and was silently'\n + ' overridden for any file a language scope also matched.',\n ],\n]);\n\n/**\n * Renders the bullet list naming every removed option among `keys`, or `null` when none of them was\n * removed. Both the runtime rejection and the migration's refusal read this registry, so a consumer\n * who hits one after the other is given the same replacement rather than two wordings of it.\n * @example\n * describeRemovedOptions(['config']); // ' - `config`: use `configFiles: string[]` instead. …'\n * describeRemovedOptions(['strict']); // null\n */\nexport function describeRemovedOptions (keys: readonly string[]): string | null {\n const used = keys.filter(key => removedOptions.has(key));\n\n if (used.length === 0) {\n return null;\n }\n\n return used.map(key => ` - \\`${key}\\`: ${removedOptions.get(key)}`).join('\\n');\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest;\n\n describe('describeRemovedOptions', () => {\n test('returns null when no key was removed', () => {\n expect(describeRemovedOptions(['ignores', 'strict', 'typescriptNode'])).toBeNull();\n });\n\n test('names the replacement for every registered removal', () => {\n [...removedOptions.keys()].forEach(key => {\n const described = describeRemovedOptions([key]);\n\n expect(described).toContain(`\\`${key}\\``);\n expect(described).toBe(` - \\`${key}\\`: ${removedOptions.get(key)}`);\n });\n });\n\n test('points `config` at configFiles', () => {\n expect(describeRemovedOptions(['config'])).toContain('`configFiles: string[]`');\n });\n\n test('lists one bullet per line, in the order the keys were given', () => {\n const described = describeRemovedOptions(['strict', ...removedOptions.keys()]);\n\n expect(described?.split('\\n')).toHaveLength(removedOptions.size);\n });\n });\n}\n"],"mappings":"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"}
|
|
@@ -122,6 +122,22 @@ function isRuleDisabled(entry) {
|
|
|
122
122
|
return severity === "off" || severity === 0;
|
|
123
123
|
}
|
|
124
124
|
//#endregion
|
|
125
|
-
|
|
125
|
+
//#region src/utils/removedOptions.ts
|
|
126
|
+
var removedOptions = /* @__PURE__ */ new Map([["config", "use `configFiles: string[]` instead. Its block is emitted after every scope block, so the overrides actually win; the `config` scope was emitted before them and was silently overridden for any file a language scope also matched."]]);
|
|
127
|
+
/**
|
|
128
|
+
* Renders the bullet list naming every removed option among `keys`, or `null` when none of them was
|
|
129
|
+
* removed. Both the runtime rejection and the migration's refusal read this registry, so a consumer
|
|
130
|
+
* who hits one after the other is given the same replacement rather than two wordings of it.
|
|
131
|
+
* @example
|
|
132
|
+
* describeRemovedOptions(['config']); // ' - `config`: use `configFiles: string[]` instead. …'
|
|
133
|
+
* describeRemovedOptions(['strict']); // null
|
|
134
|
+
*/
|
|
135
|
+
function describeRemovedOptions(keys) {
|
|
136
|
+
const used = keys.filter((key) => removedOptions.has(key));
|
|
137
|
+
if (used.length === 0) return null;
|
|
138
|
+
return used.map((key) => ` - \`${key}\`: ${removedOptions.get(key)}`).join("\n");
|
|
139
|
+
}
|
|
140
|
+
//#endregion
|
|
141
|
+
export { isOxlintOwned as a, toOxlintPluginName as c, VUE_LIKE_GLOBS as i, toOxlintRuleName as l, removedOptions as n, isRuleDisabled as o, OXLINT_CATEGORIES as r, isVueUnsafeRule as s, describeRemovedOptions as t };
|
|
126
142
|
|
|
127
|
-
//# sourceMappingURL=
|
|
143
|
+
//# sourceMappingURL=removedOptions-Cb8SG8SI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"removedOptions-Cb8SG8SI.js","names":[],"sources":["../src/builders/oxlintOwnership.ts","../src/utils/removedOptions.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport oxlintPlugin from 'eslint-plugin-oxlint';\nimport * as rulesByCategory from 'eslint-plugin-oxlint/rules-by-category';\nimport * as rulesByScope from 'eslint-plugin-oxlint/rules-by-scope';\n\nconst ESLINT_IMPORT_PREFIX = 'import-x/';\nconst OXLINT_IMPORT_PREFIX = 'import/';\nconst ESLINT_TYPESCRIPT_PREFIX = '@typescript-eslint/';\nconst OXLINT_TYPESCRIPT_PREFIX = 'typescript/';\n\nexport const VUE_LIKE_GLOBS: readonly string[] = ['**/*.vue', '**/*.svelte', '**/*.astro'];\n\nexport const OXLINT_CATEGORIES: readonly string[] = [\n 'correctness',\n 'suspicious',\n 'pedantic',\n 'perf',\n 'style',\n 'restriction',\n 'nursery',\n];\n\n// oxlint has no equivalent of flat-config `settings`, so any rule whose ESLint behavior is driven\n// by a settings key stays on the ESLint side. `jsdoc/check-tag-names` reads\n// `settings.jsdoc.tagNamePreference`, which the TypeScript presets use to remap `@desc`/`@callback`\n// onto `@use`/`@watch`; oxlint rejects both of those tags outright.\nexport const SETTINGS_DEPENDENT_RULES: readonly string[] = ['jsdoc/check-tag-names'];\n\n// Rules both linters implement, but whose omitted options resolve to different defaults — a bare\n// `'error'` therefore means something stricter under oxlint. `no-inner-declarations` defaults\n// `blockScopedFunctions` to `'allow'` in ESLint 9 and to `'disallow'` in oxlint, so handing oxlint\n// the preset's `'error'` would reject every block-scoped function declaration ESLint accepts.\nexport const DEFAULT_DIVERGENT_RULES: readonly string[] = ['no-inner-declarations'];\n\n// `eslint-plugin-oxlint` re-enables these for SFC-like files because oxlint cannot parse their\n// templates. Kept as a floor under the value derived from the plugin at runtime so a shape change\n// upstream can never silently drop the exception.\nconst VUE_UNSAFE_FALLBACK: readonly string[] = [\n 'no-unused-vars',\n '@typescript-eslint/no-unused-vars',\n '@typescript-eslint/consistent-type-imports',\n 'react-hooks/rules-of-hooks',\n];\n\nconst eslintPrefixToOxlintPlugin: Readonly<Record<string, string>> = {\n 'import-x': 'import',\n import: 'import',\n '@typescript-eslint': 'typescript',\n n: 'node',\n '@next/next': 'nextjs',\n 'react-hooks': 'react',\n 'react-perf': 'react-perf',\n 'jsx-a11y': 'jsx-a11y',\n};\n\nfunction collectRuleNames (namespace: Record<string, unknown>): string[] {\n return Object.values(namespace).flatMap(value => {\n if (typeof value !== 'object' || value === null) {\n return [];\n }\n\n const entries = Object.entries(value as Record<string, unknown>);\n const isRuleRecord = entries.length > 0 && entries.every(([, severity]) => severity === 'off');\n\n return isRuleRecord ? entries.map(([rule]) => rule) : [];\n });\n}\n\nfunction pickNamespace (\n namespace: Record<string, unknown>,\n matches: (key: string) => boolean\n): Record<string, unknown> {\n return Object.fromEntries(Object.entries(namespace).filter(([key]) => matches(key)));\n}\n\nconst categoryNamespace = rulesByCategory as Record<string, unknown>;\nconst scopeNamespace = rulesByScope as Record<string, unknown>;\nconst implementedRules = new Set(collectRuleNames(scopeNamespace));\n\n// Type-aware rules need `oxlint-tsgolint`, which this stage does not wire up, and nursery rules are\n// exempt from oxlint's semver guarantees. Both stay with ESLint.\nconst excludedRules = new Set([\n ...collectRuleNames(pickNamespace(categoryNamespace, key => key.endsWith('TypeAwareRules'))),\n ...collectRuleNames(pickNamespace(scopeNamespace, key => key.endsWith('TypeAwareRules'))),\n ...collectRuleNames(pickNamespace(categoryNamespace, key => key.startsWith('nursery'))),\n ...SETTINGS_DEPENDENT_RULES,\n ...DEFAULT_DIVERGENT_RULES,\n]);\n\n/**\n * The rules `eslint-plugin-oxlint` re-enables for `.vue`/`.svelte`/`.astro`, read from the plugin's\n * own `flat/all` split so the list tracks upstream instead of being hand-maintained.\n * @example\n * readVueUnsafeRules().includes('@typescript-eslint/no-unused-vars'); // true\n */\nexport function readVueUnsafeRules (): string[] {\n const [, exceptions] = oxlintPlugin.configs['flat/all'];\n const derived = exceptions?.rules ? Object.keys(exceptions.rules) : [];\n\n return [...new Set([...derived, ...VUE_UNSAFE_FALLBACK])];\n}\n\nconst vueUnsafeRules = new Set(readVueUnsafeRules());\n\nfunction normalizeToOxlintNamespace (eslintRuleName: string): string {\n return eslintRuleName.startsWith(ESLINT_IMPORT_PREFIX)\n ? `${OXLINT_IMPORT_PREFIX}${eslintRuleName.slice(ESLINT_IMPORT_PREFIX.length)}`\n : eslintRuleName;\n}\n\n/**\n * Whether oxlint owns this ESLint rule in the current split — implemented natively, not type-aware,\n * not nursery, and not driven by a flat-config `settings` key oxlint cannot read.\n * @example\n * isOxlintOwned('import-x/no-duplicates'); // true — oxlint implements it as `import/no-duplicates`\n * isOxlintOwned('sonarjs/no-identical-functions'); // false\n */\nexport function isOxlintOwned (eslintRuleName: string): boolean {\n const normalized = normalizeToOxlintNamespace(eslintRuleName);\n\n return implementedRules.has(normalized) && !excludedRules.has(normalized);\n}\n\n/**\n * Whether ESLint must keep running this rule on SFC-like files because oxlint cannot parse their\n * templates. Callers must exclude `**\\/*.vue`, `**\\/*.svelte` and `**\\/*.astro` from its suppression.\n * @example\n * isVueUnsafeRule('@typescript-eslint/no-unused-vars'); // true\n */\nexport function isVueUnsafeRule (eslintRuleName: string): boolean {\n return vueUnsafeRules.has(normalizeToOxlintNamespace(eslintRuleName));\n}\n\n/**\n * Translates an ESLint rule name into the name oxlint accepts in its config.\n * @example\n * toOxlintRuleName('no-var'); // 'eslint/no-var'\n * toOxlintRuleName('import-x/first'); // 'import/first'\n * toOxlintRuleName('@typescript-eslint/array-type'); // 'typescript/array-type'\n */\nexport function toOxlintRuleName (eslintRuleName: string): string {\n if (!eslintRuleName.includes('/')) {\n return `eslint/${eslintRuleName}`;\n }\n\n if (eslintRuleName.startsWith(ESLINT_TYPESCRIPT_PREFIX)) {\n return `${OXLINT_TYPESCRIPT_PREFIX}${eslintRuleName.slice(ESLINT_TYPESCRIPT_PREFIX.length)}`;\n }\n\n return normalizeToOxlintNamespace(eslintRuleName);\n}\n\n/**\n * The oxlint plugin id that must appear in the config's `plugins` array for a rule to be loaded.\n * @example\n * toOxlintPluginName('import-x/first'); // 'import'\n * toOxlintPluginName('no-var'); // 'eslint'\n */\nexport function toOxlintPluginName (eslintRuleName: string): string {\n if (!eslintRuleName.includes('/')) {\n return 'eslint';\n }\n\n const prefix = eslintRuleName.slice(0, eslintRuleName.lastIndexOf('/'));\n\n return eslintPrefixToOxlintPlugin[prefix] ?? prefix;\n}\n\nexport function isRuleDisabled (entry: Linter.RuleEntry | undefined): boolean {\n if (entry === undefined) {\n return true;\n }\n\n const [severity] = Array.isArray(entry) ? entry : [entry];\n\n return severity === 'off' || severity === 0;\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest;\n\n describe('isOxlintOwned', () => {\n test('claims a natively implemented core rule', () => {\n expect(isOxlintOwned('no-var')).toBe(true);\n });\n\n test('claims an import-x rule through the import-x → import alias', () => {\n expect(isOxlintOwned('import-x/no-duplicates')).toBe(true);\n });\n\n test('leaves type-aware typescript rules with ESLint', () => {\n expect(isOxlintOwned('@typescript-eslint/no-floating-promises')).toBe(false);\n });\n\n test('leaves rules oxlint does not implement with ESLint', () => {\n expect(isOxlintOwned('sonarjs/no-identical-functions')).toBe(false);\n expect(isOxlintOwned('@stylistic/indent')).toBe(false);\n expect(isOxlintOwned('@cspell/spellchecker')).toBe(false);\n });\n\n test('leaves settings-dependent rules with ESLint', () => {\n expect(isOxlintOwned('jsdoc/check-tag-names')).toBe(false);\n });\n\n test('leaves rules whose omitted options resolve to different defaults with ESLint', () => {\n expect(DEFAULT_DIVERGENT_RULES.every(rule => !isOxlintOwned(rule))).toBe(true);\n expect(isOxlintOwned('no-inner-declarations')).toBe(false);\n });\n\n const nurseryRules = collectRuleNames(pickNamespace(categoryNamespace, key => key.startsWith('nursery')));\n\n test('reads a non-empty nursery namespace, so the exclusion below is not vacuous', () => {\n expect(nurseryRules.length).toBeGreaterThan(0);\n });\n\n test('leaves every nursery rule with ESLint, since nursery is exempt from oxlint semver', () => {\n expect(nurseryRules.filter(rule => isOxlintOwned(rule))).toStrictEqual([]);\n });\n });\n\n describe('isVueUnsafeRule', () => {\n test.each([...VUE_UNSAFE_FALLBACK])('keeps %s with ESLint inside single-file components', ruleName => {\n expect(isVueUnsafeRule(ruleName)).toBe(true);\n });\n\n test.each([\n 'no-var',\n 'no-console',\n 'sonarjs/no-identical-functions',\n ])('lets oxlint keep %s inside single-file components', ruleName => {\n expect(isVueUnsafeRule(ruleName)).toBe(false);\n });\n\n test('does not read an import-x rule as the bare ESLint rule of the same suffix', () => {\n expect(isVueUnsafeRule('import-x/no-unused-vars')).toBe(false);\n });\n });\n\n describe('toOxlintRuleName', () => {\n test.each([\n ['no-var', 'eslint/no-var'],\n ['import-x/first', 'import/first'],\n ['@typescript-eslint/array-type', 'typescript/array-type'],\n ['jsdoc/empty-tags', 'jsdoc/empty-tags'],\n ['vue/no-dupe-keys', 'vue/no-dupe-keys'],\n ])('%s → %s', (eslintName, expected) => {\n expect(toOxlintRuleName(eslintName)).toBe(expected);\n });\n });\n\n describe('toOxlintPluginName', () => {\n const expectedPluginByPrefix: Readonly<Record<string, string>> = {\n 'import-x': 'import',\n import: 'import',\n '@typescript-eslint': 'typescript',\n n: 'node',\n '@next/next': 'nextjs',\n 'react-hooks': 'react',\n 'react-perf': 'react-perf',\n 'jsx-a11y': 'jsx-a11y',\n };\n\n const byName = (left: string, right: string): number => left.localeCompare(right);\n\n test('names every prefix the remap table carries, so no entry goes unexercised', () => {\n expect(Object.keys(expectedPluginByPrefix).sort(byName))\n .toStrictEqual(Object.keys(eslintPrefixToOxlintPlugin).sort(byName));\n });\n\n test.each(Object.entries(expectedPluginByPrefix))(\n 'a %s rule loads the %s plugin',\n (prefix, plugin) => {\n expect(toOxlintPluginName(`${prefix}/some-rule`)).toBe(plugin);\n }\n );\n\n test.each([\n ['no-var', 'eslint'],\n ['jsdoc/empty-tags', 'jsdoc'],\n ['vitest/no-focused-tests', 'vitest'],\n ['vue/no-dupe-keys', 'vue'],\n ])('%s → %s', (eslintName, expected) => {\n expect(toOxlintPluginName(eslintName)).toBe(expected);\n });\n });\n\n describe('readVueUnsafeRules', () => {\n test('derives the upstream exception list rather than only the pinned fallback', () => {\n const [, exceptions] = oxlintPlugin.configs['flat/all'];\n\n expect(exceptions?.rules).toBeDefined();\n expect(Object.keys(exceptions?.rules ?? {}).length).toBeGreaterThan(0);\n });\n\n test('covers every rule oxlint cannot check inside an SFC', () => {\n expect(readVueUnsafeRules()).toEqual(expect.arrayContaining([...VUE_UNSAFE_FALLBACK]));\n });\n });\n\n describe('isRuleDisabled', () => {\n test.each([\n [undefined, true],\n ['off' as Linter.RuleEntry, true],\n [0 as Linter.RuleEntry, true],\n [['off'] as Linter.RuleEntry, true],\n ['error' as Linter.RuleEntry, false],\n [['error', { allow: [] }] as Linter.RuleEntry, false],\n [2 as Linter.RuleEntry, false],\n ])('%s → %s', (entry, expected) => {\n expect(isRuleDisabled(entry)).toBe(expected);\n });\n });\n}\n","export const removedOptions: ReadonlyMap<string, string> = new Map([\n [\n 'config',\n 'use `configFiles: string[]` instead. Its block is emitted after every scope block, so'\n + ' the overrides actually win; the `config` scope was emitted before them and was silently'\n + ' overridden for any file a language scope also matched.',\n ],\n]);\n\n/**\n * Renders the bullet list naming every removed option among `keys`, or `null` when none of them was\n * removed. Both the runtime rejection and the migration's refusal read this registry, so a consumer\n * who hits one after the other is given the same replacement rather than two wordings of it.\n * @example\n * describeRemovedOptions(['config']); // ' - `config`: use `configFiles: string[]` instead. …'\n * describeRemovedOptions(['strict']); // null\n */\nexport function describeRemovedOptions (keys: readonly string[]): string | null {\n const used = keys.filter(key => removedOptions.has(key));\n\n if (used.length === 0) {\n return null;\n }\n\n return used.map(key => ` - \\`${key}\\`: ${removedOptions.get(key)}`).join('\\n');\n}\n\n/* v8 ignore start */\nif (import.meta.vitest) {\n const { describe, test, expect } = import.meta.vitest;\n\n describe('describeRemovedOptions', () => {\n test('returns null when no key was removed', () => {\n expect(describeRemovedOptions(['ignores', 'strict', 'typescriptNode'])).toBeNull();\n });\n\n test('names the replacement for every registered removal', () => {\n [...removedOptions.keys()].forEach(key => {\n const described = describeRemovedOptions([key]);\n\n expect(described).toContain(`\\`${key}\\``);\n expect(described).toBe(` - \\`${key}\\`: ${removedOptions.get(key)}`);\n });\n });\n\n test('points `config` at configFiles', () => {\n expect(describeRemovedOptions(['config'])).toContain('`configFiles: string[]`');\n });\n\n test('lists one bullet per line, in the order the keys were given', () => {\n const described = describeRemovedOptions(['strict', ...removedOptions.keys()]);\n\n expect(described?.split('\\n')).toHaveLength(removedOptions.size);\n });\n });\n}\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_removedOptions = require("./removedOptions-BYMW8w__.cjs");
|
|
2
2
|
const require_merge = require("./merge-DJQU2y2U.cjs");
|
|
3
3
|
let _cspell_eslint_plugin_recommended = require("@cspell/eslint-plugin/recommended");
|
|
4
|
-
_cspell_eslint_plugin_recommended =
|
|
4
|
+
_cspell_eslint_plugin_recommended = require_removedOptions.__toESM(_cspell_eslint_plugin_recommended, 1);
|
|
5
5
|
let _eslint_js = require("@eslint/js");
|
|
6
|
-
_eslint_js =
|
|
6
|
+
_eslint_js = require_removedOptions.__toESM(_eslint_js, 1);
|
|
7
7
|
//#region src/rules/jsdoc.ts
|
|
8
8
|
var jsdoc_default = { rules: {
|
|
9
9
|
"jsdoc/check-param-names": ["error"],
|
|
@@ -517,4 +517,4 @@ Object.defineProperty(exports, "stylistic_default", {
|
|
|
517
517
|
}
|
|
518
518
|
});
|
|
519
519
|
|
|
520
|
-
//# sourceMappingURL=stylistic-
|
|
520
|
+
//# sourceMappingURL=stylistic-B2hCwBRu.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stylistic-CoP3MT1Y.cjs","names":[],"sources":["../src/rules/jsdoc.ts","../src/base.ts","../src/rules/core.ts","../src/rules/cspell.ts","../src/rules/importRules.ts","../src/rules/stylistic.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n 'jsdoc/check-param-names': ['error'],\n 'jsdoc/check-tag-names': ['error'],\n 'jsdoc/no-undefined-types': 'off',\n 'jsdoc/require-param': ['error', {\n enableRestElementFixer: false,\n enableRootFixer: false,\n }],\n 'jsdoc/require-jsdoc': ['off'],\n 'jsdoc/require-param-description': 'off',\n 'jsdoc/require-param-type': ['error'],\n 'jsdoc/require-property-description': 'off',\n 'jsdoc/require-returns': ['error', {\n contexts: ['TSInterfaceDeclaration', 'TSMethodSignature'],\n forceRequireReturn: true,\n exemptedBy: ['inheritdoc', 'watch'],\n }],\n 'jsdoc/require-returns-check': ['error'],\n 'jsdoc/require-returns-description': 'off',\n 'jsdoc/tag-lines': ['error'],\n 'jsdoc/valid-types': 'off',\n 'jsdoc/check-types': ['error'],\n 'jsdoc/no-multi-asterisks': ['error'],\n 'jsdoc/check-alignment': ['error'],\n 'jsdoc/sort-tags': ['error', {\n linesBetween: 1,\n tagSequence: [{\n tags: [\n 'todo',\n 'description',\n 'deprecated',\n 'namespace',\n 'private',\n 'protected',\n 'public',\n 'static',\n 'readonly',\n 'since',\n 'access',\n 'template',\n 'typedef',\n 'class',\n 'augments',\n 'mixes',\n 'extends',\n 'interface',\n 'this',\n 'constructor',\n 'alias',\n 'memberof',\n 'example',\n 'use',\n 'see',\n 'link',\n 'global',\n 'fires',\n 'listens',\n 'type',\n 'param',\n 'property',\n 'yields',\n 'returns',\n 'lends',\n 'override',\n 'todo',\n ],\n }],\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\nimport cspellESLintPluginRecommended from '@cspell/eslint-plugin/recommended';\nimport js from '@eslint/js';\nimport jsdoc from './rules/jsdoc';\nimport { merge } from './utils/merge';\n\nexport function preConfig () {\n return merge(\n js.configs.recommended as Linter.Config,\n cspellESLintPluginRecommended as Linter.Config\n );\n}\n\nexport function postConfig (): Linter.Config {\n return merge(\n jsdoc,\n {\n languageOptions: {\n ecmaVersion: 2022,\n parserOptions: {\n ecmaVersion: 2022,\n },\n },\n rules: {\n 'jsdoc/require-param': 'off',\n 'jsdoc/require-jsdoc': 'off',\n 'jsdoc/require-returns': 'off',\n 'jsdoc/require-param-type': 'off',\n 'jsdoc/check-param-names': 'off',\n },\n } satisfies Linter.Config\n );\n}\n","import type { Linter } from 'eslint';\nimport type { Entries } from 'type-fest';\n\n// InToasts is intentionally absent from DS_V1_TO_V2 — ToastV2 replacement not yet exported from DS v1.2.0.\nconst DS_V1_TO_V2_MAP = {\n InBox: 'InContainer',\n InButton: 'InButtonV2',\n InCheckBox: 'InCheckBoxV2',\n InCustomDropDown: 'InDropdownMenu',\n InDataTable: 'InDataTableV2',\n InDatePicker: 'InDatePickerV2',\n InDropDown: 'InSelect',\n InModals: 'InModalV2',\n InMultiDropDown: 'InMultiSelect',\n InSidebar: 'InSidebarV2',\n InSuperInput: 'InRichTextInput',\n InTagsText: 'InChips',\n InTextInput: 'InBasicTextInput',\n InTooltip: 'InTooltipV2',\n} as const;\n\nconst DS_V1_TO_V2 = (Object.entries(DS_V1_TO_V2_MAP) as Entries<typeof DS_V1_TO_V2_MAP>).map(([v1, v2]) => ({\n name: '@useinsider/design-system-vue',\n importNames: [v1],\n message: `It is marked as deprecated. Use '${v2}' instead.` as const,\n} as const));\n\nconst overriddenRules: Linter.RulesRecord = {\n // https://eslint.style/rules/js/function-call-spacing\n 'no-spaced-func': 'off',\n};\n\nexport default {\n rules: {\n ...overriddenRules,\n 'arrow-parens': 'off',\n camelcase: ['error', {\n allow: ['^\\\\$_'],\n properties: 'never',\n }],\n 'comma-dangle': 'off',\n 'consistent-return': ['error'],\n 'class-methods-use-this': 'off',\n curly: ['error', 'all'],\n 'dot-notation': ['error'],\n 'function-paren-newline': 'off',\n 'guard-for-in': 'error',\n 'handle-callback-err': ['error'],\n indent: 'off',\n 'max-len': 'off',\n 'new-cap': ['error'],\n 'no-alert': ['error'],\n 'no-bitwise': ['error', {\n allow: ['~'],\n }],\n 'no-caller': ['error'],\n 'no-case-declarations': ['error'],\n 'no-confusing-arrow': ['error', {\n allowParens: true,\n }],\n 'no-console': ['error'],\n 'no-debugger': ['error'],\n 'no-div-regex': ['error'],\n 'no-dupe-args': ['error'],\n 'no-dupe-keys': ['error'],\n 'no-duplicate-case': ['error'],\n 'no-else-return': ['error'],\n 'no-empty': ['error'],\n 'no-extra-bind': ['error'],\n 'no-extra-boolean-cast': 'error',\n 'no-fallthrough': ['error'],\n 'no-implicit-coercion': ['error', {\n boolean: true,\n number: true,\n string: true,\n }],\n 'implicit-arrow-linebreak': 'off',\n 'no-invalid-regexp': ['error'],\n 'no-iterator': ['error'],\n 'no-mixed-operators': 'off',\n 'no-multi-spaces': 'off',\n 'no-multi-str': ['error'],\n 'no-multiple-empty-lines': 'off',\n 'no-native-reassign': 'error',\n 'no-nested-ternary': ['error'],\n 'no-new': 'off',\n 'no-new-object': ['error'],\n 'no-new-require': ['error'],\n 'no-param-reassign': ['error', {\n props: false,\n }],\n 'no-plusplus': 'off',\n 'no-process-exit': ['error'],\n 'no-promise-executor-return': ['error', {\n allowVoid: true,\n }],\n 'no-return-assign': ['error', 'except-parens'],\n 'no-self-compare': ['error'],\n 'no-sequences': ['error'],\n 'no-shadow': ['error', {\n allow: ['state'],\n }],\n 'no-undef': ['error'],\n 'no-underscore-dangle': 'off',\n 'no-unexpected-multiline': ['error'],\n 'no-unreachable': ['error'],\n 'no-unused-vars': ['error'],\n 'no-use-before-define': 'error',\n 'no-useless-call': ['error'],\n 'no-void': 'off',\n 'no-with': ['error'],\n 'object-curly-newline': 'off',\n 'object-shorthand': ['error', 'always'],\n 'padded-blocks': 'off',\n 'prefer-const': ['error', {\n destructuring: 'all',\n }],\n 'prefer-destructuring': ['error'],\n radix: ['error', 'as-needed'],\n semi: 'off',\n 'space-before-function-paren': 'off',\n 'space-in-parens': 'off',\n strict: ['error', 'never'],\n 'use-isnan': ['error'],\n 'valid-typeof': ['error'],\n 'no-trailing-spaces': 'off',\n 'no-restricted-imports': ['error', {\n paths: DS_V1_TO_V2,\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n '@cspell/spellchecker': ['error', {\n customWordListFile: './cspell.json',\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n 'import-x/extensions': ['error', {\n css: 'always',\n js: 'never',\n json: 'always',\n jsx: 'never',\n sass: 'always',\n scss: 'always',\n svg: 'always',\n ts: 'never',\n tsx: 'never',\n vue: 'always',\n }],\n 'import-x/no-cycle': 'off',\n 'import-x/no-unresolved': 'off',\n 'import-x/order': ['error', {\n alphabetize: {\n caseInsensitive: true,\n order: 'asc',\n },\n groups: ['index', 'builtin', 'object', 'type', 'external', 'parent', 'internal', 'sibling'],\n pathGroups: [{\n group: 'internal',\n pattern: '@/**',\n }],\n }],\n 'import-x/prefer-default-export': 'off',\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n '@stylistic/array-bracket-newline': ['error', 'consistent'],\n '@stylistic/array-bracket-spacing': ['error', 'never'],\n '@stylistic/array-element-newline': ['error', 'consistent'],\n '@stylistic/arrow-parens': ['error', 'as-needed'],\n '@stylistic/arrow-spacing': ['error'],\n '@stylistic/brace-style': ['error', '1tbs'],\n '@stylistic/comma-dangle': ['error', {\n arrays: 'always-multiline',\n exports: 'always-multiline',\n functions: 'never',\n imports: 'always-multiline',\n objects: 'always-multiline',\n enums: 'always-multiline',\n generics: 'always-multiline',\n tuples: 'always-multiline',\n }],\n '@stylistic/comma-spacing': ['error'],\n '@stylistic/computed-property-spacing': ['error'],\n '@stylistic/dot-location': ['error', 'property'],\n '@stylistic/eol-last': ['error', 'always'],\n '@stylistic/function-call-argument-newline': ['error', 'consistent'],\n '@stylistic/function-call-spacing': ['error', 'never'],\n '@stylistic/function-paren-newline': ['error', 'consistent'],\n '@stylistic/implicit-arrow-linebreak': ['error', 'beside'],\n '@stylistic/indent': ['error', 4, {\n SwitchCase: 1,\n ignoredNodes: [\n 'PropertyDefinition[decorators]',\n 'TSUnionType',\n ],\n }],\n '@stylistic/key-spacing': ['error'],\n '@stylistic/keyword-spacing': ['error'],\n '@stylistic/linebreak-style': ['error', 'unix'],\n '@stylistic/lines-between-class-members': ['error', 'always', {\n exceptAfterSingleLine: true,\n }],\n '@stylistic/max-len': ['error', 120, {\n ignoreComments: true,\n ignoreRegExpLiterals: true,\n ignoreTrailingComments: true,\n ignoreUrls: true,\n }],\n '@stylistic/max-statements-per-line': ['error', {\n max: 2,\n }],\n '@stylistic/member-delimiter-style': ['error', {\n multiline: {\n requireLast: true,\n },\n singleline: {\n requireLast: false,\n },\n }],\n '@stylistic/multiline-ternary': ['error', 'always-multiline'],\n '@stylistic/new-parens': ['error', 'always'],\n '@stylistic/no-extra-parens': ['error', 'all', {\n allowParensAfterCommentPattern: '@type|@satisfies',\n ignoredNodes: [\n \"ArrowFunctionExpression[body.type='ConditionalExpression']\",\n 'TSUnionType',\n 'TSTypeAnnotation:has(> TSUnionType)',\n 'TSTypeAliasDeclaration:has(> TSUnionType)',\n 'TSIntersectionType',\n 'TSTypeAnnotation:has(> TSIntersectionType)',\n 'TSTypeAliasDeclaration:has(> TSIntersectionType)',\n ],\n nestedBinaryExpressions: false,\n returnAssign: false,\n }],\n '@stylistic/no-extra-semi': ['error'],\n '@stylistic/no-floating-decimal': 'error',\n '@stylistic/no-mixed-operators': ['error', {\n allowSamePrecedence: true,\n groups: [\n ['&', '|', '^', '~', '<<', '>>', '>>>'],\n ['==', '!=', '===', '!==', '>', '>=', '<', '<='],\n ['&&', '||'],\n ['in', 'instanceof'],\n ],\n }],\n '@stylistic/no-mixed-spaces-and-tabs': ['error'],\n '@stylistic/no-multi-spaces': ['error'],\n '@stylistic/no-multiple-empty-lines': ['error', {\n max: 1,\n maxEOF: 0,\n maxBOF: 0,\n }],\n '@stylistic/no-trailing-spaces': ['error'],\n '@stylistic/no-whitespace-before-property': ['error'],\n '@stylistic/object-curly-newline': ['error', {\n multiline: true,\n consistent: true,\n }],\n '@stylistic/object-curly-spacing': ['error', 'always'],\n '@stylistic/padded-blocks': ['error', 'never'],\n '@stylistic/quote-props': ['error', 'as-needed'],\n '@stylistic/quotes': ['error', 'single', {\n avoidEscape: true,\n }],\n '@stylistic/rest-spread-spacing': ['error', 'never'],\n '@stylistic/semi': ['error'],\n '@stylistic/semi-spacing': ['error', {\n after: true,\n before: false,\n }],\n '@stylistic/semi-style': ['error', 'last'],\n '@stylistic/space-before-blocks': ['error'],\n '@stylistic/space-before-function-paren': ['error', {\n anonymous: 'always',\n named: 'always',\n }],\n '@stylistic/space-in-parens': ['error', 'never'],\n '@stylistic/space-infix-ops': ['error'],\n '@stylistic/spaced-comment': ['error', 'always', {\n markers: ['/'],\n }],\n '@stylistic/template-curly-spacing': ['error', 'never'],\n '@stylistic/template-tag-spacing': ['error', 'never'],\n '@stylistic/type-annotation-spacing': ['error'],\n '@stylistic/type-generic-spacing': ['error'],\n '@stylistic/padding-line-between-statements': [\n 'error',\n {\n blankLine: 'always',\n next: '*',\n prev: ['const', 'let', 'var', 'if', 'block-like', 'directive'],\n },\n {\n blankLine: 'always',\n next: [\n 'const',\n 'let',\n 'var',\n 'if',\n 'while',\n 'directive',\n 'throw',\n 'return',\n 'break',\n 'default',\n 'cjs-export',\n 'export',\n 'continue',\n 'iife',\n ],\n prev: '*',\n },\n {\n blankLine: 'always',\n prev: ['*'],\n next: ['cjs-export', 'export'],\n },\n {\n blankLine: 'any',\n next: ['const', 'let', 'var', 'directive'],\n prev: ['const', 'let', 'var', 'directive'],\n },\n {\n blankLine: 'never',\n next: ['singleline-const', 'singleline-let', 'singleline-var'],\n prev: ['singleline-const', 'singleline-let', 'singleline-var'],\n },\n {\n blankLine: 'always',\n next: ['multiline-block-like'],\n prev: ['*'],\n },\n {\n blankLine: 'always',\n next: ['*'],\n prev: ['multiline-block-like'],\n },\n {\n blankLine: 'any',\n next: ['case'],\n prev: ['case'],\n },\n {\n blankLine: 'any',\n next: ['singleline-const', 'singleline-let', 'singleline-var'],\n prev: ['cjs-import'],\n },\n ],\n },\n} as Linter.Config;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"stylistic-B2hCwBRu.cjs","names":[],"sources":["../src/rules/jsdoc.ts","../src/base.ts","../src/rules/core.ts","../src/rules/cspell.ts","../src/rules/importRules.ts","../src/rules/stylistic.ts"],"sourcesContent":["import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n 'jsdoc/check-param-names': ['error'],\n 'jsdoc/check-tag-names': ['error'],\n 'jsdoc/no-undefined-types': 'off',\n 'jsdoc/require-param': ['error', {\n enableRestElementFixer: false,\n enableRootFixer: false,\n }],\n 'jsdoc/require-jsdoc': ['off'],\n 'jsdoc/require-param-description': 'off',\n 'jsdoc/require-param-type': ['error'],\n 'jsdoc/require-property-description': 'off',\n 'jsdoc/require-returns': ['error', {\n contexts: ['TSInterfaceDeclaration', 'TSMethodSignature'],\n forceRequireReturn: true,\n exemptedBy: ['inheritdoc', 'watch'],\n }],\n 'jsdoc/require-returns-check': ['error'],\n 'jsdoc/require-returns-description': 'off',\n 'jsdoc/tag-lines': ['error'],\n 'jsdoc/valid-types': 'off',\n 'jsdoc/check-types': ['error'],\n 'jsdoc/no-multi-asterisks': ['error'],\n 'jsdoc/check-alignment': ['error'],\n 'jsdoc/sort-tags': ['error', {\n linesBetween: 1,\n tagSequence: [{\n tags: [\n 'todo',\n 'description',\n 'deprecated',\n 'namespace',\n 'private',\n 'protected',\n 'public',\n 'static',\n 'readonly',\n 'since',\n 'access',\n 'template',\n 'typedef',\n 'class',\n 'augments',\n 'mixes',\n 'extends',\n 'interface',\n 'this',\n 'constructor',\n 'alias',\n 'memberof',\n 'example',\n 'use',\n 'see',\n 'link',\n 'global',\n 'fires',\n 'listens',\n 'type',\n 'param',\n 'property',\n 'yields',\n 'returns',\n 'lends',\n 'override',\n 'todo',\n ],\n }],\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\nimport cspellESLintPluginRecommended from '@cspell/eslint-plugin/recommended';\nimport js from '@eslint/js';\nimport jsdoc from './rules/jsdoc';\nimport { merge } from './utils/merge';\n\nexport function preConfig () {\n return merge(\n js.configs.recommended as Linter.Config,\n cspellESLintPluginRecommended as Linter.Config\n );\n}\n\nexport function postConfig (): Linter.Config {\n return merge(\n jsdoc,\n {\n languageOptions: {\n ecmaVersion: 2022,\n parserOptions: {\n ecmaVersion: 2022,\n },\n },\n rules: {\n 'jsdoc/require-param': 'off',\n 'jsdoc/require-jsdoc': 'off',\n 'jsdoc/require-returns': 'off',\n 'jsdoc/require-param-type': 'off',\n 'jsdoc/check-param-names': 'off',\n },\n } satisfies Linter.Config\n );\n}\n","import type { Linter } from 'eslint';\nimport type { Entries } from 'type-fest';\n\n// InToasts is intentionally absent from DS_V1_TO_V2 — ToastV2 replacement not yet exported from DS v1.2.0.\nconst DS_V1_TO_V2_MAP = {\n InBox: 'InContainer',\n InButton: 'InButtonV2',\n InCheckBox: 'InCheckBoxV2',\n InCustomDropDown: 'InDropdownMenu',\n InDataTable: 'InDataTableV2',\n InDatePicker: 'InDatePickerV2',\n InDropDown: 'InSelect',\n InModals: 'InModalV2',\n InMultiDropDown: 'InMultiSelect',\n InSidebar: 'InSidebarV2',\n InSuperInput: 'InRichTextInput',\n InTagsText: 'InChips',\n InTextInput: 'InBasicTextInput',\n InTooltip: 'InTooltipV2',\n} as const;\n\nconst DS_V1_TO_V2 = (Object.entries(DS_V1_TO_V2_MAP) as Entries<typeof DS_V1_TO_V2_MAP>).map(([v1, v2]) => ({\n name: '@useinsider/design-system-vue',\n importNames: [v1],\n message: `It is marked as deprecated. Use '${v2}' instead.` as const,\n} as const));\n\nconst overriddenRules: Linter.RulesRecord = {\n // https://eslint.style/rules/js/function-call-spacing\n 'no-spaced-func': 'off',\n};\n\nexport default {\n rules: {\n ...overriddenRules,\n 'arrow-parens': 'off',\n camelcase: ['error', {\n allow: ['^\\\\$_'],\n properties: 'never',\n }],\n 'comma-dangle': 'off',\n 'consistent-return': ['error'],\n 'class-methods-use-this': 'off',\n curly: ['error', 'all'],\n 'dot-notation': ['error'],\n 'function-paren-newline': 'off',\n 'guard-for-in': 'error',\n 'handle-callback-err': ['error'],\n indent: 'off',\n 'max-len': 'off',\n 'new-cap': ['error'],\n 'no-alert': ['error'],\n 'no-bitwise': ['error', {\n allow: ['~'],\n }],\n 'no-caller': ['error'],\n 'no-case-declarations': ['error'],\n 'no-confusing-arrow': ['error', {\n allowParens: true,\n }],\n 'no-console': ['error'],\n 'no-debugger': ['error'],\n 'no-div-regex': ['error'],\n 'no-dupe-args': ['error'],\n 'no-dupe-keys': ['error'],\n 'no-duplicate-case': ['error'],\n 'no-else-return': ['error'],\n 'no-empty': ['error'],\n 'no-extra-bind': ['error'],\n 'no-extra-boolean-cast': 'error',\n 'no-fallthrough': ['error'],\n 'no-implicit-coercion': ['error', {\n boolean: true,\n number: true,\n string: true,\n }],\n 'implicit-arrow-linebreak': 'off',\n 'no-invalid-regexp': ['error'],\n 'no-iterator': ['error'],\n 'no-mixed-operators': 'off',\n 'no-multi-spaces': 'off',\n 'no-multi-str': ['error'],\n 'no-multiple-empty-lines': 'off',\n 'no-native-reassign': 'error',\n 'no-nested-ternary': ['error'],\n 'no-new': 'off',\n 'no-new-object': ['error'],\n 'no-new-require': ['error'],\n 'no-param-reassign': ['error', {\n props: false,\n }],\n 'no-plusplus': 'off',\n 'no-process-exit': ['error'],\n 'no-promise-executor-return': ['error', {\n allowVoid: true,\n }],\n 'no-return-assign': ['error', 'except-parens'],\n 'no-self-compare': ['error'],\n 'no-sequences': ['error'],\n 'no-shadow': ['error', {\n allow: ['state'],\n }],\n 'no-undef': ['error'],\n 'no-underscore-dangle': 'off',\n 'no-unexpected-multiline': ['error'],\n 'no-unreachable': ['error'],\n 'no-unused-vars': ['error'],\n 'no-use-before-define': 'error',\n 'no-useless-call': ['error'],\n 'no-void': 'off',\n 'no-with': ['error'],\n 'object-curly-newline': 'off',\n 'object-shorthand': ['error', 'always'],\n 'padded-blocks': 'off',\n 'prefer-const': ['error', {\n destructuring: 'all',\n }],\n 'prefer-destructuring': ['error'],\n radix: ['error', 'as-needed'],\n semi: 'off',\n 'space-before-function-paren': 'off',\n 'space-in-parens': 'off',\n strict: ['error', 'never'],\n 'use-isnan': ['error'],\n 'valid-typeof': ['error'],\n 'no-trailing-spaces': 'off',\n 'no-restricted-imports': ['error', {\n paths: DS_V1_TO_V2,\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n '@cspell/spellchecker': ['error', {\n customWordListFile: './cspell.json',\n }],\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n 'import-x/extensions': ['error', {\n css: 'always',\n js: 'never',\n json: 'always',\n jsx: 'never',\n sass: 'always',\n scss: 'always',\n svg: 'always',\n ts: 'never',\n tsx: 'never',\n vue: 'always',\n }],\n 'import-x/no-cycle': 'off',\n 'import-x/no-unresolved': 'off',\n 'import-x/order': ['error', {\n alphabetize: {\n caseInsensitive: true,\n order: 'asc',\n },\n groups: ['index', 'builtin', 'object', 'type', 'external', 'parent', 'internal', 'sibling'],\n pathGroups: [{\n group: 'internal',\n pattern: '@/**',\n }],\n }],\n 'import-x/prefer-default-export': 'off',\n },\n} as Linter.Config;\n","import type { Linter } from 'eslint';\n\nexport default {\n rules: {\n '@stylistic/array-bracket-newline': ['error', 'consistent'],\n '@stylistic/array-bracket-spacing': ['error', 'never'],\n '@stylistic/array-element-newline': ['error', 'consistent'],\n '@stylistic/arrow-parens': ['error', 'as-needed'],\n '@stylistic/arrow-spacing': ['error'],\n '@stylistic/brace-style': ['error', '1tbs'],\n '@stylistic/comma-dangle': ['error', {\n arrays: 'always-multiline',\n exports: 'always-multiline',\n functions: 'never',\n imports: 'always-multiline',\n objects: 'always-multiline',\n enums: 'always-multiline',\n generics: 'always-multiline',\n tuples: 'always-multiline',\n }],\n '@stylistic/comma-spacing': ['error'],\n '@stylistic/computed-property-spacing': ['error'],\n '@stylistic/dot-location': ['error', 'property'],\n '@stylistic/eol-last': ['error', 'always'],\n '@stylistic/function-call-argument-newline': ['error', 'consistent'],\n '@stylistic/function-call-spacing': ['error', 'never'],\n '@stylistic/function-paren-newline': ['error', 'consistent'],\n '@stylistic/implicit-arrow-linebreak': ['error', 'beside'],\n '@stylistic/indent': ['error', 4, {\n SwitchCase: 1,\n ignoredNodes: [\n 'PropertyDefinition[decorators]',\n 'TSUnionType',\n ],\n }],\n '@stylistic/key-spacing': ['error'],\n '@stylistic/keyword-spacing': ['error'],\n '@stylistic/linebreak-style': ['error', 'unix'],\n '@stylistic/lines-between-class-members': ['error', 'always', {\n exceptAfterSingleLine: true,\n }],\n '@stylistic/max-len': ['error', 120, {\n ignoreComments: true,\n ignoreRegExpLiterals: true,\n ignoreTrailingComments: true,\n ignoreUrls: true,\n }],\n '@stylistic/max-statements-per-line': ['error', {\n max: 2,\n }],\n '@stylistic/member-delimiter-style': ['error', {\n multiline: {\n requireLast: true,\n },\n singleline: {\n requireLast: false,\n },\n }],\n '@stylistic/multiline-ternary': ['error', 'always-multiline'],\n '@stylistic/new-parens': ['error', 'always'],\n '@stylistic/no-extra-parens': ['error', 'all', {\n allowParensAfterCommentPattern: '@type|@satisfies',\n ignoredNodes: [\n \"ArrowFunctionExpression[body.type='ConditionalExpression']\",\n 'TSUnionType',\n 'TSTypeAnnotation:has(> TSUnionType)',\n 'TSTypeAliasDeclaration:has(> TSUnionType)',\n 'TSIntersectionType',\n 'TSTypeAnnotation:has(> TSIntersectionType)',\n 'TSTypeAliasDeclaration:has(> TSIntersectionType)',\n ],\n nestedBinaryExpressions: false,\n returnAssign: false,\n }],\n '@stylistic/no-extra-semi': ['error'],\n '@stylistic/no-floating-decimal': 'error',\n '@stylistic/no-mixed-operators': ['error', {\n allowSamePrecedence: true,\n groups: [\n ['&', '|', '^', '~', '<<', '>>', '>>>'],\n ['==', '!=', '===', '!==', '>', '>=', '<', '<='],\n ['&&', '||'],\n ['in', 'instanceof'],\n ],\n }],\n '@stylistic/no-mixed-spaces-and-tabs': ['error'],\n '@stylistic/no-multi-spaces': ['error'],\n '@stylistic/no-multiple-empty-lines': ['error', {\n max: 1,\n maxEOF: 0,\n maxBOF: 0,\n }],\n '@stylistic/no-trailing-spaces': ['error'],\n '@stylistic/no-whitespace-before-property': ['error'],\n '@stylistic/object-curly-newline': ['error', {\n multiline: true,\n consistent: true,\n }],\n '@stylistic/object-curly-spacing': ['error', 'always'],\n '@stylistic/padded-blocks': ['error', 'never'],\n '@stylistic/quote-props': ['error', 'as-needed'],\n '@stylistic/quotes': ['error', 'single', {\n avoidEscape: true,\n }],\n '@stylistic/rest-spread-spacing': ['error', 'never'],\n '@stylistic/semi': ['error'],\n '@stylistic/semi-spacing': ['error', {\n after: true,\n before: false,\n }],\n '@stylistic/semi-style': ['error', 'last'],\n '@stylistic/space-before-blocks': ['error'],\n '@stylistic/space-before-function-paren': ['error', {\n anonymous: 'always',\n named: 'always',\n }],\n '@stylistic/space-in-parens': ['error', 'never'],\n '@stylistic/space-infix-ops': ['error'],\n '@stylistic/spaced-comment': ['error', 'always', {\n markers: ['/'],\n }],\n '@stylistic/template-curly-spacing': ['error', 'never'],\n '@stylistic/template-tag-spacing': ['error', 'never'],\n '@stylistic/type-annotation-spacing': ['error'],\n '@stylistic/type-generic-spacing': ['error'],\n '@stylistic/padding-line-between-statements': [\n 'error',\n {\n blankLine: 'always',\n next: '*',\n prev: ['const', 'let', 'var', 'if', 'block-like', 'directive'],\n },\n {\n blankLine: 'always',\n next: [\n 'const',\n 'let',\n 'var',\n 'if',\n 'while',\n 'directive',\n 'throw',\n 'return',\n 'break',\n 'default',\n 'cjs-export',\n 'export',\n 'continue',\n 'iife',\n ],\n prev: '*',\n },\n {\n blankLine: 'always',\n prev: ['*'],\n next: ['cjs-export', 'export'],\n },\n {\n blankLine: 'any',\n next: ['const', 'let', 'var', 'directive'],\n prev: ['const', 'let', 'var', 'directive'],\n },\n {\n blankLine: 'never',\n next: ['singleline-const', 'singleline-let', 'singleline-var'],\n prev: ['singleline-const', 'singleline-let', 'singleline-var'],\n },\n {\n blankLine: 'always',\n next: ['multiline-block-like'],\n prev: ['*'],\n },\n {\n blankLine: 'always',\n next: ['*'],\n prev: ['multiline-block-like'],\n },\n {\n blankLine: 'any',\n next: ['case'],\n prev: ['case'],\n },\n {\n blankLine: 'any',\n next: ['singleline-const', 'singleline-let', 'singleline-var'],\n prev: ['cjs-import'],\n },\n ],\n },\n} as Linter.Config;\n"],"mappings":"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"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_removedOptions = require("./removedOptions-BYMW8w__.cjs");
|
|
2
2
|
const require_merge = require("./merge-DJQU2y2U.cjs");
|
|
3
3
|
const require_mergeAllConfig = require("./mergeAllConfig-DjMWjBNg.cjs");
|
|
4
|
-
const require_stylistic = require("./stylistic-
|
|
4
|
+
const require_stylistic = require("./stylistic-B2hCwBRu.cjs");
|
|
5
5
|
const require_removePluginsFromConfigs = require("./removePluginsFromConfigs-D0oSUj2C.cjs");
|
|
6
6
|
let eslint_config = require("eslint/config");
|
|
7
7
|
let _stylistic_eslint_plugin = require("@stylistic/eslint-plugin");
|
|
8
|
-
_stylistic_eslint_plugin =
|
|
8
|
+
_stylistic_eslint_plugin = require_removedOptions.__toESM(_stylistic_eslint_plugin, 1);
|
|
9
9
|
let eslint_config_airbnb_extended = require("eslint-config-airbnb-extended");
|
|
10
10
|
let eslint_plugin_import_x = require("eslint-plugin-import-x");
|
|
11
11
|
let eslint_plugin_jsdoc = require("eslint-plugin-jsdoc");
|
|
12
|
-
eslint_plugin_jsdoc =
|
|
12
|
+
eslint_plugin_jsdoc = require_removedOptions.__toESM(eslint_plugin_jsdoc, 1);
|
|
13
13
|
let _eslint_js = require("@eslint/js");
|
|
14
|
-
_eslint_js =
|
|
14
|
+
_eslint_js = require_removedOptions.__toESM(_eslint_js, 1);
|
|
15
15
|
let typescript_eslint = require("typescript-eslint");
|
|
16
|
-
typescript_eslint =
|
|
16
|
+
typescript_eslint = require_removedOptions.__toESM(typescript_eslint, 1);
|
|
17
17
|
//#region src/configs/typescript/index.ts
|
|
18
18
|
var typescript_default = require_mergeAllConfig.mergeAll((0, eslint_config.defineConfig)(_eslint_js.default.configs.recommended, eslint_plugin_import_x.importX.flatConfigs.recommended, ...eslint_config_airbnb_extended.configs.base.all, ...typescript_eslint.default.configs.recommended, ...require_removePluginsFromConfigs.removePluginsFromConfigs(typescript_eslint.default.configs.recommendedTypeChecked), eslint_plugin_jsdoc.default.configs["flat/recommended-typescript-error"], require_merge.merge(require_stylistic.preConfig(), require_stylistic.core_default, require_stylistic.importRules_default, require_stylistic.cspell_default, { plugins: { "@stylistic": _stylistic_eslint_plugin.default } }, require_stylistic.stylistic_default, require_removePluginsFromConfigs.typescript_default, require_stylistic.postConfig(), { settings: {
|
|
19
19
|
jsdoc: {
|
|
@@ -31,4 +31,4 @@ var typescript_default = require_mergeAllConfig.mergeAll((0, eslint_config.defin
|
|
|
31
31
|
//#endregion
|
|
32
32
|
exports.default = typescript_default;
|
|
33
33
|
|
|
34
|
-
//# sourceMappingURL=typescript-
|
|
34
|
+
//# sourceMappingURL=typescript-DdgbCNKI.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-
|
|
1
|
+
{"version":3,"file":"typescript-DdgbCNKI.cjs","names":[],"sources":["../src/configs/typescript/index.ts"],"sourcesContent":["import js from '@eslint/js';\nimport stylistic from '@stylistic/eslint-plugin';\nimport { defineConfig } from 'eslint/config';\nimport { configs as airbnbConfigs } 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(defineConfig(\n js.configs.recommended,\n importX.flatConfigs.recommended,\n ...airbnbConfigs.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 } },\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 }\n )\n));\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,IAAA,qBAAe,uBAAA,UAAA,GAAS,cAAA,aAAA,CACpB,WAAA,QAAG,QAAQ,aACX,uBAAA,QAAQ,YAAY,aACpB,GAAG,8BAAA,QAAc,KAAK,KACtB,GAAG,kBAAA,QAAG,QAAQ,aACd,GAAG,iCAAA,yBAAyB,kBAAA,QAAG,QAAQ,sBAAsB,GAC7D,oBAAA,QAAY,QAAQ,sCACpB,cAAA,MACI,kBAAA,UAAS,GACT,kBAAA,cACA,kBAAA,qBACA,kBAAA,gBACA,EAAE,SAAS,EAAE,cAAc,yBAAA,QAAS,EAAE,GACtC,kBAAA,mBACA,iCAAA,oBACA,kBAAA,WAAU,GACV,EACI,UAAU;CACN,OAAO;EACH,MAAM;EACN,mBAAmB;GACf,UAAU;GACV,MAAM;EACT;CACJ;CACD,mBAAmB;EACf,YAAY;EACZ,MAAM;CACT;AACJ,EACJ,CAAA,CACJ,CACJ"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_removedOptions = require("./removedOptions-BYMW8w__.cjs");
|
|
2
2
|
const require_merge = require("./merge-DJQU2y2U.cjs");
|
|
3
|
-
const require_typescript = require("./typescript-
|
|
3
|
+
const require_typescript = require("./typescript-DdgbCNKI.cjs");
|
|
4
4
|
let globals = require("globals");
|
|
5
|
-
globals =
|
|
5
|
+
globals = require_removedOptions.__toESM(globals, 1);
|
|
6
6
|
//#region src/configs/typescript-dom/index.ts
|
|
7
7
|
var typescript_dom_default = require_merge.merge(require_typescript.default, { languageOptions: {
|
|
8
8
|
parserOptions: { extraFileExtensions: [".vue"] },
|
|
@@ -11,4 +11,4 @@ var typescript_dom_default = require_merge.merge(require_typescript.default, { l
|
|
|
11
11
|
//#endregion
|
|
12
12
|
exports.default = typescript_dom_default;
|
|
13
13
|
|
|
14
|
-
//# sourceMappingURL=typescript-dom-
|
|
14
|
+
//# sourceMappingURL=typescript-dom-C0NNSGLd.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-dom-
|
|
1
|
+
{"version":3,"file":"typescript-dom-C0NNSGLd.cjs","names":[],"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 } satisfies Linter.Config\n);\n"],"mappings":";;;;;;AAKA,IAAA,yBAAe,cAAA,MACX,mBAAA,SACA,EACI,iBAAiB;CACb,eAAe,EACX,qBAAqB,CAAC,MAAM,EAC/B;CACD,SAAS,EACL,GAAG,QAAA,QAAQ,QACd;AACJ,EACoB,CAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_removedOptions = require("./removedOptions-BYMW8w__.cjs");
|
|
2
2
|
const require_merge = require("./merge-DJQU2y2U.cjs");
|
|
3
|
-
const require_typescript = require("./typescript-
|
|
3
|
+
const require_typescript = require("./typescript-DdgbCNKI.cjs");
|
|
4
4
|
let globals = require("globals");
|
|
5
|
-
globals =
|
|
5
|
+
globals = require_removedOptions.__toESM(globals, 1);
|
|
6
6
|
//#region src/configs/typescript-node/index.ts
|
|
7
7
|
var scope = require_merge.merge(require_typescript.default, { languageOptions: { globals: { ...globals.default.node } } });
|
|
8
8
|
//#endregion
|
|
9
9
|
exports.default = scope;
|
|
10
10
|
|
|
11
|
-
//# sourceMappingURL=typescript-node-
|
|
11
|
+
//# sourceMappingURL=typescript-node-CjG8N83q.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript-node-
|
|
1
|
+
{"version":3,"file":"typescript-node-CjG8N83q.cjs","names":[],"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"],"mappings":";;;;;;AAKA,IAAM,QAAQ,cAAA,MACV,mBAAA,SACA,EACI,iBAAiB,EACb,SAAS,EACL,GAAG,QAAA,QAAQ,KACd,EACJ,EACJ,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare const removedOptions: ReadonlyMap<string, string>;
|
|
2
|
+
/**
|
|
3
|
+
* Renders the bullet list naming every removed option among `keys`, or `null` when none of them was
|
|
4
|
+
* removed. Both the runtime rejection and the migration's refusal read this registry, so a consumer
|
|
5
|
+
* who hits one after the other is given the same replacement rather than two wordings of it.
|
|
6
|
+
* @example
|
|
7
|
+
* describeRemovedOptions(['config']); // ' - `config`: use `configFiles: string[]` instead. …'
|
|
8
|
+
* describeRemovedOptions(['strict']); // null
|
|
9
|
+
*/
|
|
10
|
+
export declare function describeRemovedOptions(keys: readonly string[]): string | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_removedOptions = require("./removedOptions-BYMW8w__.cjs");
|
|
2
2
|
let _vitest_eslint_plugin = require("@vitest/eslint-plugin");
|
|
3
|
-
_vitest_eslint_plugin =
|
|
3
|
+
_vitest_eslint_plugin = require_removedOptions.__toESM(_vitest_eslint_plugin, 1);
|
|
4
4
|
//#region src/configs/vitest/index.ts
|
|
5
5
|
var vitest_default = {
|
|
6
6
|
plugins: { vitest: _vitest_eslint_plugin.default },
|
|
@@ -14,4 +14,4 @@ var vitest_default = {
|
|
|
14
14
|
//#endregion
|
|
15
15
|
exports.default = vitest_default;
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=vitest-
|
|
17
|
+
//# sourceMappingURL=vitest-B3kOWOzo.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vitest-
|
|
1
|
+
{"version":3,"file":"vitest-B3kOWOzo.cjs","names":[],"sources":["../src/configs/vitest/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport vitest from '@vitest/eslint-plugin';\n\nexport default {\n plugins: { vitest },\n rules: {\n ...vitest.configs.recommended.rules,\n 'vitest/no-disabled-tests': ['error'],\n 'vitest/prefer-expect-resolves': ['error'],\n 'vitest/prefer-hooks-in-order': ['error'],\n },\n} as Linter.Config;\n"],"mappings":";;;;AAGA,IAAA,iBAAe;CACX,SAAS,EAAE,QAAA,sBAAA,QAAM;CACjB,OAAO;EACH,GAAG,sBAAA,QAAO,QAAQ,YAAY;EAC9B,4BAA4B,CAAC,OAAO;EACpC,iCAAiC,CAAC,OAAO;EACzC,gCAAgC,CAAC,OAAO;CAC3C;AACa"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_removedOptions = require("./removedOptions-BYMW8w__.cjs");
|
|
2
2
|
const require_merge = require("./merge-DJQU2y2U.cjs");
|
|
3
3
|
const require_mergeAllConfig = require("./mergeAllConfig-DjMWjBNg.cjs");
|
|
4
|
-
const require_stylistic = require("./stylistic-
|
|
4
|
+
const require_stylistic = require("./stylistic-B2hCwBRu.cjs");
|
|
5
5
|
const require_vue2 = require("./vue2-CwpD2fD-.cjs");
|
|
6
6
|
let globals = require("globals");
|
|
7
|
-
globals =
|
|
7
|
+
globals = require_removedOptions.__toESM(globals, 1);
|
|
8
8
|
let _stylistic_eslint_plugin = require("@stylistic/eslint-plugin");
|
|
9
|
-
_stylistic_eslint_plugin =
|
|
9
|
+
_stylistic_eslint_plugin = require_removedOptions.__toESM(_stylistic_eslint_plugin, 1);
|
|
10
10
|
let eslint_config_airbnb_extended = require("eslint-config-airbnb-extended");
|
|
11
11
|
let eslint_plugin_import_x = require("eslint-plugin-import-x");
|
|
12
12
|
let eslint_plugin_jsdoc = require("eslint-plugin-jsdoc");
|
|
13
|
-
eslint_plugin_jsdoc =
|
|
13
|
+
eslint_plugin_jsdoc = require_removedOptions.__toESM(eslint_plugin_jsdoc, 1);
|
|
14
14
|
let eslint_plugin_vue = require("eslint-plugin-vue");
|
|
15
|
-
eslint_plugin_vue =
|
|
15
|
+
eslint_plugin_vue = require_removedOptions.__toESM(eslint_plugin_vue, 1);
|
|
16
16
|
let eslint_plugin_vue_scoped_css = require("eslint-plugin-vue-scoped-css");
|
|
17
|
-
eslint_plugin_vue_scoped_css =
|
|
17
|
+
eslint_plugin_vue_scoped_css = require_removedOptions.__toESM(eslint_plugin_vue_scoped_css, 1);
|
|
18
18
|
//#region src/configs/vue2/index.ts
|
|
19
19
|
var vue2_default = require_merge.merge(require_mergeAllConfig.mergeAll(eslint_plugin_vue.default.configs["flat/vue2-recommended"], eslint_plugin_vue_scoped_css.default.configs["flat/vue2-recommended"]), eslint_plugin_import_x.importX.flatConfigs.recommended, require_mergeAllConfig.mergeAll(eslint_config_airbnb_extended.configs.base.recommended), eslint_plugin_jsdoc.default.configs["flat/recommended"], require_stylistic.preConfig(), require_stylistic.core_default, require_stylistic.importRules_default, require_stylistic.cspell_default, { plugins: { "@stylistic": _stylistic_eslint_plugin.default } }, require_stylistic.stylistic_default, require_vue2.vue2Options, require_stylistic.postConfig(), { languageOptions: {
|
|
20
20
|
parserOptions: {
|
|
@@ -27,4 +27,4 @@ var vue2_default = require_merge.merge(require_mergeAllConfig.mergeAll(eslint_pl
|
|
|
27
27
|
//#endregion
|
|
28
28
|
exports.default = vue2_default;
|
|
29
29
|
|
|
30
|
-
//# sourceMappingURL=vue2-
|
|
30
|
+
//# sourceMappingURL=vue2-DfL5FqeZ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue2-
|
|
1
|
+
{"version":3,"file":"vue2-DfL5FqeZ.cjs","names":[],"sources":["../src/configs/vue2/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport stylistic from '@stylistic/eslint-plugin';\nimport { configs as airbnbConfigs } from 'eslint-config-airbnb-extended';\nimport { importX } from 'eslint-plugin-import-x';\nimport jsdocPlugin from 'eslint-plugin-jsdoc';\nimport pluginVue from 'eslint-plugin-vue';\nimport eslintPluginVueScopedCSS from 'eslint-plugin-vue-scoped-css';\nimport globals from 'globals';\nimport { postConfig, preConfig } from '~/base';\nimport core from '~/rules/core';\nimport cspell from '~/rules/cspell';\nimport importRules from '~/rules/importRules';\nimport stylisticRules from '~/rules/stylistic';\nimport { vue2Options } from '~/rules/vue2';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default merge(\n mergeAll(\n pluginVue.configs['flat/vue2-recommended'],\n eslintPluginVueScopedCSS.configs['flat/vue2-recommended'] as Linter.Config[]\n ),\n importX.flatConfigs.recommended as Linter.Config,\n mergeAll(airbnbConfigs.base.recommended),\n jsdocPlugin.configs['flat/recommended'],\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } satisfies Linter.Config,\n stylisticRules,\n vue2Options,\n postConfig(),\n {\n languageOptions: {\n parserOptions: {\n sourceType: 'module',\n ecmaFeatures: {\n jsx: true,\n },\n extraFileExtensions: ['.vue'],\n },\n globals: {\n ...globals.browser,\n },\n },\n } satisfies Linter.Config\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,IAAA,eAAe,cAAA,MACX,uBAAA,SACI,kBAAA,QAAU,QAAQ,0BAClB,6BAAA,QAAyB,QAAQ,wBAA2C,GAEhF,uBAAA,QAAQ,YAAY,aACpB,uBAAA,SAAS,8BAAA,QAAc,KAAK,WAAW,GACvC,oBAAA,QAAY,QAAQ,qBACpB,kBAAA,UAAS,GACT,kBAAA,cACA,kBAAA,qBACA,kBAAA,gBACA,EAAE,SAAS,EAAE,cAAc,yBAAA,QAAS,EAAE,GACtC,kBAAA,mBACA,aAAA,aACA,kBAAA,WAAU,GACV,EACI,iBAAiB;CACb,eAAe;EACX,YAAY;EACZ,cAAc,EACV,KAAK,KACR;EACD,qBAAqB,CAAC,MAAM;CAC/B;CACD,SAAS,EACL,GAAG,QAAA,QAAQ,QACd;AACJ,EACoB,CAAA"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_removedOptions = require("./removedOptions-BYMW8w__.cjs");
|
|
2
2
|
const require_merge = require("./merge-DJQU2y2U.cjs");
|
|
3
3
|
const require_mergeAllConfig = require("./mergeAllConfig-DjMWjBNg.cjs");
|
|
4
|
-
const require_stylistic = require("./stylistic-
|
|
4
|
+
const require_stylistic = require("./stylistic-B2hCwBRu.cjs");
|
|
5
5
|
const require_vue_options_api = require("./vue-options-api-9KoVvBkF.cjs");
|
|
6
6
|
const require_vue2 = require("./vue2-CwpD2fD-.cjs");
|
|
7
7
|
let globals = require("globals");
|
|
8
|
-
globals =
|
|
8
|
+
globals = require_removedOptions.__toESM(globals, 1);
|
|
9
9
|
let _stylistic_eslint_plugin = require("@stylistic/eslint-plugin");
|
|
10
|
-
_stylistic_eslint_plugin =
|
|
10
|
+
_stylistic_eslint_plugin = require_removedOptions.__toESM(_stylistic_eslint_plugin, 1);
|
|
11
11
|
let eslint_config_airbnb_extended = require("eslint-config-airbnb-extended");
|
|
12
12
|
let eslint_plugin_import_x = require("eslint-plugin-import-x");
|
|
13
13
|
let eslint_plugin_jsdoc = require("eslint-plugin-jsdoc");
|
|
14
|
-
eslint_plugin_jsdoc =
|
|
14
|
+
eslint_plugin_jsdoc = require_removedOptions.__toESM(eslint_plugin_jsdoc, 1);
|
|
15
15
|
let eslint_plugin_vue = require("eslint-plugin-vue");
|
|
16
|
-
eslint_plugin_vue =
|
|
16
|
+
eslint_plugin_vue = require_removedOptions.__toESM(eslint_plugin_vue, 1);
|
|
17
17
|
let eslint_plugin_vue_scoped_css = require("eslint-plugin-vue-scoped-css");
|
|
18
|
-
eslint_plugin_vue_scoped_css =
|
|
18
|
+
eslint_plugin_vue_scoped_css = require_removedOptions.__toESM(eslint_plugin_vue_scoped_css, 1);
|
|
19
19
|
//#region src/configs/vue2-options-api/index.ts
|
|
20
20
|
var vue2_options_api_default = require_merge.merge(require_mergeAllConfig.mergeAll(eslint_plugin_vue.default.configs["flat/vue2-recommended"], eslint_plugin_vue_scoped_css.default.configs["flat/vue2-recommended"]), eslint_plugin_import_x.importX.flatConfigs.recommended, require_mergeAllConfig.mergeAll(eslint_config_airbnb_extended.configs.base.recommended), eslint_plugin_jsdoc.default.configs["flat/recommended"], require_stylistic.preConfig(), require_stylistic.core_default, require_stylistic.importRules_default, require_stylistic.cspell_default, { plugins: { "@stylistic": _stylistic_eslint_plugin.default } }, require_stylistic.stylistic_default, require_vue2.vue2Options, require_vue_options_api.vueOptionsApi, require_stylistic.postConfig(), { languageOptions: {
|
|
21
21
|
parserOptions: {
|
|
@@ -28,4 +28,4 @@ var vue2_options_api_default = require_merge.merge(require_mergeAllConfig.mergeA
|
|
|
28
28
|
//#endregion
|
|
29
29
|
exports.default = vue2_options_api_default;
|
|
30
30
|
|
|
31
|
-
//# sourceMappingURL=vue2-options-api-
|
|
31
|
+
//# sourceMappingURL=vue2-options-api-sSrBV5Si.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue2-options-api-
|
|
1
|
+
{"version":3,"file":"vue2-options-api-sSrBV5Si.cjs","names":[],"sources":["../src/configs/vue2-options-api/index.ts"],"sourcesContent":["import type { Linter } from 'eslint';\nimport stylistic from '@stylistic/eslint-plugin';\nimport { configs as airbnbConfigs } from 'eslint-config-airbnb-extended';\nimport { importX } from 'eslint-plugin-import-x';\nimport jsdocPlugin from 'eslint-plugin-jsdoc';\nimport pluginVue from 'eslint-plugin-vue';\nimport eslintPluginVueScopedCSS from 'eslint-plugin-vue-scoped-css';\nimport globals from 'globals';\nimport { postConfig, preConfig } from '~/base';\nimport core from '~/rules/core';\nimport cspell from '~/rules/cspell';\nimport importRules from '~/rules/importRules';\nimport stylisticRules from '~/rules/stylistic';\nimport { vueOptionsApi } from '~/rules/vue-options-api';\nimport { vue2Options } from '~/rules/vue2';\nimport { merge } from '~/utils/merge';\nimport { mergeAll } from '~/utils/mergeAllConfig';\n\nexport default merge(\n mergeAll(\n pluginVue.configs['flat/vue2-recommended'],\n eslintPluginVueScopedCSS.configs['flat/vue2-recommended'] as Linter.Config[]\n ),\n importX.flatConfigs.recommended as Linter.Config,\n mergeAll(airbnbConfigs.base.recommended),\n jsdocPlugin.configs['flat/recommended'],\n preConfig(),\n core,\n importRules,\n cspell,\n { plugins: { '@stylistic': stylistic } } satisfies Linter.Config,\n stylisticRules,\n vue2Options,\n vueOptionsApi,\n postConfig(),\n {\n languageOptions: {\n parserOptions: {\n sourceType: 'module',\n ecmaFeatures: {\n jsx: true,\n },\n extraFileExtensions: ['.vue'],\n },\n globals: {\n ...globals.browser,\n },\n },\n } satisfies Linter.Config\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,IAAA,2BAAe,cAAA,MACX,uBAAA,SACI,kBAAA,QAAU,QAAQ,0BAClB,6BAAA,QAAyB,QAAQ,wBAA2C,GAEhF,uBAAA,QAAQ,YAAY,aACpB,uBAAA,SAAS,8BAAA,QAAc,KAAK,WAAW,GACvC,oBAAA,QAAY,QAAQ,qBACpB,kBAAA,UAAS,GACT,kBAAA,cACA,kBAAA,qBACA,kBAAA,gBACA,EAAE,SAAS,EAAE,cAAc,yBAAA,QAAS,EAAE,GACtC,kBAAA,mBACA,aAAA,aACA,wBAAA,eACA,kBAAA,WAAU,GACV,EACI,iBAAiB;CACb,eAAe;EACX,YAAY;EACZ,cAAc,EACV,KAAK,KACR;EACD,qBAAqB,CAAC,MAAM;CAC/B;CACD,SAAS,EACL,GAAG,QAAA,QAAQ,QACd;AACJ,EACoB,CAAA"}
|