@so1ve/eslint-config 3.24.0 → 3.26.0
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/index.d.mts +15 -2
- package/dist/index.mjs +490 -32
- package/package.json +4 -3
package/dist/index.d.mts
CHANGED
|
@@ -436,6 +436,16 @@ interface RuleOptions {
|
|
|
436
436
|
* @see https://eslint.org/docs/latest/rules/curly
|
|
437
437
|
*/
|
|
438
438
|
'curly'?: Linter.RuleEntry<Curly>;
|
|
439
|
+
/**
|
|
440
|
+
* Transforms the negation of a conjunction !(A && B) into the equivalent !A || !B according to De Morgan’s law
|
|
441
|
+
* @see https://github.com/azat-io/eslint-plugin-de-morgan/blob/main/docs/no-negated-conjunction.md
|
|
442
|
+
*/
|
|
443
|
+
'de-morgan/no-negated-conjunction'?: Linter.RuleEntry<[]>;
|
|
444
|
+
/**
|
|
445
|
+
* Transforms the negation of a disjunction !(A || B) into the equivalent !A && !B according to De Morgan’s law
|
|
446
|
+
* @see https://github.com/azat-io/eslint-plugin-de-morgan/blob/main/docs/no-negated-disjunction.md
|
|
447
|
+
*/
|
|
448
|
+
'de-morgan/no-negated-disjunction'?: Linter.RuleEntry<[]>;
|
|
439
449
|
/**
|
|
440
450
|
* Require `default` cases in `switch` statements
|
|
441
451
|
* @see https://eslint.org/docs/latest/rules/default-case
|
|
@@ -16293,7 +16303,7 @@ type Yoda = [] | [("always" | "never")] | [("always" | "never"), {
|
|
|
16293
16303
|
onlyEquality?: boolean;
|
|
16294
16304
|
}];
|
|
16295
16305
|
// Names of all the configs
|
|
16296
|
-
type ConfigNames = 'so1ve/ignores' | 'so1ve/javascript/setup' | 'so1ve/javascript/rules' | 'so1ve/javascript/regexp' | 'so1ve/javascript/cli' | 'so1ve/comments/setup' | 'so1ve/comments/rules' | 'so1ve/node/setup' | 'so1ve/node/rules' | 'so1ve/only-error' | 'so1ve/promise/setup' | 'so1ve/promise/rules' | 'so1ve/sort-imports/setup' | 'so1ve/sort-imports/rules' | 'so1ve/imports/setup' | 'so1ve/imports/rules' | 'so1ve/imports/rules/dts' | 'so1ve/unicorn/setup' | 'so1ve/unicorn/rules' | 'so1ve/command/
|
|
16306
|
+
type ConfigNames = 'so1ve/ignores' | 'so1ve/javascript/setup' | 'so1ve/javascript/rules' | 'so1ve/javascript/regexp' | 'so1ve/javascript/cli' | 'so1ve/comments/setup' | 'so1ve/comments/rules' | 'so1ve/node/setup' | 'so1ve/node/rules' | 'so1ve/only-error' | 'so1ve/promise/setup' | 'so1ve/promise/rules' | 'so1ve/sort-imports/setup' | 'so1ve/sort-imports/rules' | 'so1ve/imports/setup' | 'so1ve/imports/rules' | 'so1ve/imports/rules/dts' | 'so1ve/unicorn/setup' | 'so1ve/unicorn/rules' | 'so1ve/command' | 'so1ve/de-morgan' | 'so1ve/pnpm/package-json' | 'so1ve/pnpm/pnpm-workspace-yaml' | 'so1ve/yaml/pnpm-workspace-yaml-sort' | 'so1ve/html/setup' | 'so1ve/html/rules' | 'so1ve/typescript/setup' | 'so1ve/typescript/rules' | 'so1ve/typescript/rules/type-aware' | 'so1ve/typescript/rules/dts' | 'so1ve/typescript/rules/js' | 'so1ve/test/setup' | 'so1ve/test/rules' | 'antfu/astro/setup' | 'antfu/astro/rules' | 'so1ve/vue/setup' | 'so1ve/vue/rules' | 'so1ve/solid/setup' | 'so1ve/solid/rules' | 'so1ve/formatting/setup' | 'so1ve/formatting/rules' | 'so1ve/formatting/rules/sort-package-json' | 'so1ve/formatting/rules/sort-tsconfig' | 'so1ve/formatting/rules/test' | 'so1ve/perfectionist/setup' | 'so1ve/perfectionist/rules' | 'so1ve/jsonc/setup' | 'so1ve/jsonc/rules' | 'so1ve/toml/setup' | 'so1ve/toml/rules' | 'so1ve/yaml/setup' | 'so1ve/yaml/rules' | 'so1ve/mdx/setup' | 'so1ve/mdx/rules';
|
|
16297
16307
|
//#endregion
|
|
16298
16308
|
//#region src/types.d.ts
|
|
16299
16309
|
type MaybePromise<T> = T | Promise<T>;
|
|
@@ -16475,6 +16485,9 @@ declare const command: () => Promise<TypedFlatConfigItem[]>;
|
|
|
16475
16485
|
//#region src/configs/comments.d.ts
|
|
16476
16486
|
declare const comments: () => TypedFlatConfigItem[];
|
|
16477
16487
|
//#endregion
|
|
16488
|
+
//#region src/configs/de-morgan.d.ts
|
|
16489
|
+
declare const deMorgan: () => TypedFlatConfigItem[];
|
|
16490
|
+
//#endregion
|
|
16478
16491
|
//#region src/configs/formatting.d.ts
|
|
16479
16492
|
declare function formatting(options?: Options): Promise<TypedFlatConfigItem[]>;
|
|
16480
16493
|
//#endregion
|
|
@@ -16628,4 +16641,4 @@ declare function interopDefault<T>(m: MaybePromise<T>): Promise<T extends {
|
|
|
16628
16641
|
default: infer U;
|
|
16629
16642
|
} ? U : T>;
|
|
16630
16643
|
//#endregion
|
|
16631
|
-
export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DTS, GLOB_ESLINTRC, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_PACKAGEJSON, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_VUE, GLOB_YAML, MaybeArray, MaybePromise, Options, OptionsComponentExts, OptionsHasTypeScript, OptionsOverrides, OptionsPnpm, OptionsTypeScriptParserOptions, ResolvedOptions, Rules, TypedFlatConfigItem, astro, command, comments, defaultPluginRenaming, formatting, getOverrides, html, ignores, imports, interopDefault, javascript, jsonc, mdx, node, onlyError, perfectionist, pnpm, promise, renameRules, so1ve, solid, sortImports, test, toml, typescript$1 as typescript, unicorn, vue, yaml };
|
|
16644
|
+
export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DTS, GLOB_ESLINTRC, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_PACKAGEJSON, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_VUE, GLOB_YAML, MaybeArray, MaybePromise, Options, OptionsComponentExts, OptionsHasTypeScript, OptionsOverrides, OptionsPnpm, OptionsTypeScriptParserOptions, ResolvedOptions, Rules, TypedFlatConfigItem, astro, command, comments, deMorgan, defaultPluginRenaming, formatting, getOverrides, html, ignores, imports, interopDefault, javascript, jsonc, mdx, node, onlyError, perfectionist, pnpm, promise, renameRules, so1ve, solid, sortImports, test, toml, typescript$1 as typescript, unicorn, vue, yaml };
|
package/dist/index.mjs
CHANGED
|
@@ -122,7 +122,7 @@ const GLOB_EXCLUDE = [
|
|
|
122
122
|
* ];
|
|
123
123
|
* ```
|
|
124
124
|
*/
|
|
125
|
-
const renameRules = (rules, map) => Object.fromEntries(Object.entries(rules).map(([key, value]) => {
|
|
125
|
+
const renameRules = (rules$1, map) => Object.fromEntries(Object.entries(rules$1).map(([key, value]) => {
|
|
126
126
|
for (const [from, to] of Object.entries(map)) if (key.startsWith(`${from}/`)) return [to + key.slice(from.length), value];
|
|
127
127
|
return [key, value];
|
|
128
128
|
}));
|
|
@@ -176,9 +176,459 @@ async function astro({ overrides = {} } = {}) {
|
|
|
176
176
|
//#region src/configs/command.ts
|
|
177
177
|
const command = async () => [{
|
|
178
178
|
...createCommand(),
|
|
179
|
-
name: "so1ve/command
|
|
179
|
+
name: "so1ve/command"
|
|
180
180
|
}];
|
|
181
181
|
|
|
182
|
+
//#endregion
|
|
183
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/package.json.js
|
|
184
|
+
const name = "eslint-plugin-de-morgan";
|
|
185
|
+
const version = "2.0.0";
|
|
186
|
+
const repository = "azat-io/eslint-plugin-de-morgan";
|
|
187
|
+
|
|
188
|
+
//#endregion
|
|
189
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/create-test-with-parameters.js
|
|
190
|
+
function createTestWithParameters(...parameters) {
|
|
191
|
+
return (...predicates) => predicates.every((predicate) => predicate(...parameters));
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
//#endregion
|
|
195
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/is-logical-expression.js
|
|
196
|
+
function isLogicalExpression(node$1) {
|
|
197
|
+
return node$1.type === "LogicalExpression";
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
//#endregion
|
|
201
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/find-outermost-parenthesized-node.js
|
|
202
|
+
function findOutermostParenthesizedNode(node$1, sourceCode) {
|
|
203
|
+
let current = node$1;
|
|
204
|
+
let [start, end] = current.range;
|
|
205
|
+
if (isInParentheses(start, end, sourceCode)) return current;
|
|
206
|
+
while (current.parent && isLogicalExpression(current)) {
|
|
207
|
+
current = current.parent;
|
|
208
|
+
[start, end] = current.range;
|
|
209
|
+
if (isInParentheses(start, end, sourceCode)) return current;
|
|
210
|
+
}
|
|
211
|
+
return current;
|
|
212
|
+
}
|
|
213
|
+
function isInParentheses(start, end, sourceCode) {
|
|
214
|
+
return sourceCode[start - 1] === "(" && sourceCode[end] === ")";
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
//#endregion
|
|
218
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/is-unary-expression.js
|
|
219
|
+
function isUnaryExpression(node$1) {
|
|
220
|
+
return node$1.type === "UnaryExpression";
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
//#endregion
|
|
224
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/has-operator.js
|
|
225
|
+
function hasOperator(operator) {
|
|
226
|
+
return (node$1) => node$1.operator === operator;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
//#endregion
|
|
230
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/has-negation-operator.js
|
|
231
|
+
function hasNegationOperator(node$1) {
|
|
232
|
+
return createTestWithParameters(node$1)(isUnaryExpression, hasOperator("!"));
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
//#endregion
|
|
236
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/has-negation-inside-parens.js
|
|
237
|
+
function hasNegationInsideParens(node$1, context) {
|
|
238
|
+
let outermostNode = findOutermostParenthesizedNode(node$1, context.sourceCode.getText(node$1));
|
|
239
|
+
if (!isUnaryExpression(outermostNode)) return false;
|
|
240
|
+
return hasNegationInside(outermostNode.argument);
|
|
241
|
+
}
|
|
242
|
+
function hasNegationInside(node$1) {
|
|
243
|
+
if (isUnaryExpression(node$1) && node$1.operator === "!" && isUnaryExpression(node$1.argument) && node$1.argument.operator === "!") return hasNegationInside(node$1.argument.argument);
|
|
244
|
+
if (hasNegationOperator(node$1)) return true;
|
|
245
|
+
if (isLogicalExpression(node$1)) return hasNegationInside(node$1.left) || hasNegationInside(node$1.right);
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
//#endregion
|
|
250
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/is-binary-expression.js
|
|
251
|
+
function isBinaryExpression(node$1) {
|
|
252
|
+
return node$1.type === "BinaryExpression";
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
//#endregion
|
|
256
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/has-boolean-context.js
|
|
257
|
+
function hasBooleanContext(node$1, _context) {
|
|
258
|
+
return node$1.parent ? isControlFlowBooleanContext(node$1.parent) || isBooleanOperation(node$1.parent) || isBooleanFunction(node$1.parent) : false;
|
|
259
|
+
}
|
|
260
|
+
function isControlFlowBooleanContext(parent) {
|
|
261
|
+
return booleanControlFlowNodes.has(parent.type);
|
|
262
|
+
}
|
|
263
|
+
let booleanControlFlowNodes = /* @__PURE__ */ new Set([
|
|
264
|
+
"ConditionalExpression",
|
|
265
|
+
"LogicalExpression",
|
|
266
|
+
"DoWhileStatement",
|
|
267
|
+
"UnaryExpression",
|
|
268
|
+
"WhileStatement",
|
|
269
|
+
"ForStatement",
|
|
270
|
+
"IfStatement"
|
|
271
|
+
]);
|
|
272
|
+
function isBooleanOperation(parent) {
|
|
273
|
+
return isBinaryExpression(parent) && booleanOperators.has(parent.operator);
|
|
274
|
+
}
|
|
275
|
+
let booleanOperators = /* @__PURE__ */ new Set([
|
|
276
|
+
"instanceof",
|
|
277
|
+
"===",
|
|
278
|
+
"!==",
|
|
279
|
+
"==",
|
|
280
|
+
"!=",
|
|
281
|
+
"<=",
|
|
282
|
+
">=",
|
|
283
|
+
"in",
|
|
284
|
+
"<",
|
|
285
|
+
">"
|
|
286
|
+
]);
|
|
287
|
+
function isBooleanFunction(parent) {
|
|
288
|
+
return parent.type === "CallExpression" && parent.callee.type === "Identifier" && parent.callee.name === "Boolean";
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
//#endregion
|
|
292
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/apply-to-property.js
|
|
293
|
+
function applyToProperty(property, predicate) {
|
|
294
|
+
return (object) => predicate(object[property]);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
//#endregion
|
|
298
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/is-conjunction.js
|
|
299
|
+
function isConjunction(node$1) {
|
|
300
|
+
return createTestWithParameters(node$1)(isLogicalExpression, hasOperator("&&"));
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
//#endregion
|
|
304
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/sanitize-code.js
|
|
305
|
+
function sanitizeCode(code) {
|
|
306
|
+
let stringLiterals = [];
|
|
307
|
+
let normalized = code.replaceAll(/(?<quote>["'`])(?:\\.|(?!\k<quote>)[^\\])*\k<quote>/gu, (match) => {
|
|
308
|
+
let placeholder = `__STRING_LITERAL_${stringLiterals.length}__`;
|
|
309
|
+
stringLiterals.push(match);
|
|
310
|
+
return placeholder;
|
|
311
|
+
}).replaceAll(/\/\/.*$/gmu, "").replaceAll(/\/\*[\s\S]*?\*\//gu, "").replaceAll(/\s+/gu, " ").replaceAll(/\(\s+/gu, "(").replaceAll(/\s+\)/gu, ")").trim();
|
|
312
|
+
for (let [index$1, string_] of stringLiterals.entries()) normalized = normalized.replace(`__STRING_LITERAL_${index$1}__`, string_);
|
|
313
|
+
return normalized;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
//#endregion
|
|
317
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/is-pure-group.js
|
|
318
|
+
function isPureGroup(node$1, context) {
|
|
319
|
+
let outermostNode = findOutermostParenthesizedNode(node$1, context.sourceCode.getText());
|
|
320
|
+
return !hasMixedOperators(getCodeInsideParentheses(context.sourceCode.getText(outermostNode)));
|
|
321
|
+
}
|
|
322
|
+
function hasMixedOperators(code) {
|
|
323
|
+
let depth = 0;
|
|
324
|
+
let operatorFound = null;
|
|
325
|
+
for (let i = 0; i < code.length; i++) {
|
|
326
|
+
let char = code[i];
|
|
327
|
+
if (char === "(") {
|
|
328
|
+
depth++;
|
|
329
|
+
continue;
|
|
330
|
+
}
|
|
331
|
+
if (char === ")") {
|
|
332
|
+
depth--;
|
|
333
|
+
continue;
|
|
334
|
+
}
|
|
335
|
+
if (depth !== 0) continue;
|
|
336
|
+
let twoChars = code.slice(i, i + 2);
|
|
337
|
+
if (twoChars === "&&" || twoChars === "||") {
|
|
338
|
+
if (operatorFound === null) operatorFound = twoChars;
|
|
339
|
+
else if (operatorFound !== twoChars) return true;
|
|
340
|
+
i++;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
return false;
|
|
344
|
+
}
|
|
345
|
+
function getCodeInsideParentheses(code) {
|
|
346
|
+
if (code.startsWith("!(")) return code.slice(2, -1);
|
|
347
|
+
if (code.startsWith("(")) return code.slice(1, -1);
|
|
348
|
+
return code;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
//#endregion
|
|
352
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/is-negated.js
|
|
353
|
+
function isNegated(node$1) {
|
|
354
|
+
return hasNegationOperator(node$1) && !hasNegationOperator(node$1.argument) && (!node$1.parent || !hasNegationOperator(node$1.parent));
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
//#endregion
|
|
358
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/parenthesize.js
|
|
359
|
+
function parenthesize(text, condition = true) {
|
|
360
|
+
return condition ? `(${text})` : text;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
//#endregion
|
|
364
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/is-boolean.js
|
|
365
|
+
function isBoolean(node$1) {
|
|
366
|
+
return node$1.type === "Literal" && typeof node$1.value === "boolean";
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
//#endregion
|
|
370
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/toggle-negation.js
|
|
371
|
+
function toggleNegation(node$1, context) {
|
|
372
|
+
let toggleStrategies = [
|
|
373
|
+
{
|
|
374
|
+
transformer: toggleBinaryExpression,
|
|
375
|
+
predicate: isBinaryExpression
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
transformer: toggleBooleanLiteral,
|
|
379
|
+
predicate: isBoolean
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
transformer: toggleLogicalExpression,
|
|
383
|
+
predicate: isLogicalExpression
|
|
384
|
+
}
|
|
385
|
+
];
|
|
386
|
+
for (let { transformer, predicate } of toggleStrategies) if (predicate(node$1)) return transformer(node$1, context);
|
|
387
|
+
return toggleUnaryExpression(node$1, context);
|
|
388
|
+
}
|
|
389
|
+
function toggleBinaryExpression(node$1, context) {
|
|
390
|
+
let left = context.sourceCode.getText(node$1.left).trim();
|
|
391
|
+
let right = context.sourceCode.getText(node$1.right).trim();
|
|
392
|
+
if ([
|
|
393
|
+
"<<",
|
|
394
|
+
">>",
|
|
395
|
+
">>>",
|
|
396
|
+
"+",
|
|
397
|
+
"-",
|
|
398
|
+
"*",
|
|
399
|
+
"/",
|
|
400
|
+
"%",
|
|
401
|
+
"**",
|
|
402
|
+
"|",
|
|
403
|
+
"^",
|
|
404
|
+
"&",
|
|
405
|
+
"in",
|
|
406
|
+
"instanceof"
|
|
407
|
+
].includes(node$1.operator)) return `!(${left} ${node$1.operator} ${right})`;
|
|
408
|
+
return `${left} ${{
|
|
409
|
+
"===": "!==",
|
|
410
|
+
"!==": "===",
|
|
411
|
+
"==": "!=",
|
|
412
|
+
"!=": "==",
|
|
413
|
+
"<": ">=",
|
|
414
|
+
">": "<=",
|
|
415
|
+
"<=": ">",
|
|
416
|
+
">=": "<"
|
|
417
|
+
}[node$1.operator]} ${right}`;
|
|
418
|
+
}
|
|
419
|
+
function toggleLogicalExpression(node$1, context) {
|
|
420
|
+
return toggleCode(parenthesize(context.sourceCode.getText(node$1).trim()));
|
|
421
|
+
}
|
|
422
|
+
function toggleUnaryExpression(node$1, context) {
|
|
423
|
+
return toggleCode(context.sourceCode.getText(node$1).trim());
|
|
424
|
+
}
|
|
425
|
+
function toggleCode(code) {
|
|
426
|
+
return code.startsWith("!") ? code.replace(/^!/u, "") : `!${code}`;
|
|
427
|
+
}
|
|
428
|
+
function toggleBooleanLiteral(node$1) {
|
|
429
|
+
return node$1.value ? "false" : "true";
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
//#endregion
|
|
433
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/is-disjunction.js
|
|
434
|
+
function isDisjunction(node$1) {
|
|
435
|
+
return createTestWithParameters(node$1)(isLogicalExpression, hasOperator("||"));
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
//#endregion
|
|
439
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/transform.js
|
|
440
|
+
const MAX_DEPTH = 10;
|
|
441
|
+
const OPERATOR_MAPPING = {
|
|
442
|
+
"&&": "||",
|
|
443
|
+
"||": "&&"
|
|
444
|
+
};
|
|
445
|
+
function transform({ shouldWrapInParens, expressionType, context, node: node$1 }) {
|
|
446
|
+
let argument = node$1.argument;
|
|
447
|
+
let sourceOperator = expressionType === "conjunction" ? "&&" : "||";
|
|
448
|
+
if (argument.operator !== sourceOperator) return null;
|
|
449
|
+
let originalText = context.sourceCode.getText(argument);
|
|
450
|
+
let transformUtilityOptions = {
|
|
451
|
+
expression: argument,
|
|
452
|
+
expressionType,
|
|
453
|
+
sourceOperator,
|
|
454
|
+
targetOperator: OPERATOR_MAPPING[sourceOperator],
|
|
455
|
+
context
|
|
456
|
+
};
|
|
457
|
+
return parenthesize(hasSpecialFormatting(originalText) ? transformWithFormatting(transformUtilityOptions) : transformSimple(transformUtilityOptions), shouldWrapInParens);
|
|
458
|
+
}
|
|
459
|
+
function transformWithFormatting({ sourceOperator, targetOperator, expression, context }) {
|
|
460
|
+
let { sourceCode } = context;
|
|
461
|
+
let leftText = toggleNegation(expression.left, context);
|
|
462
|
+
let rightText = toggleNegation(expression.right, context);
|
|
463
|
+
if (!expression.left.range || !expression.right.range) return `${leftText} ${targetOperator} ${rightText}`;
|
|
464
|
+
let [, leftEnd] = expression.left.range;
|
|
465
|
+
let [rightStart] = expression.right.range;
|
|
466
|
+
let textBetween = sourceCode.text.slice(leftEnd, rightStart);
|
|
467
|
+
if (/\(\s*$/u.test(textBetween)) textBetween = textBetween.replace(/\(\s*$/u, "");
|
|
468
|
+
return `${leftText}${textBetween.replaceAll(new RegExp(sourceOperator.replaceAll(/[$()*+.?[\\\]^{|}]/gu, String.raw`\$&`), "gu"), targetOperator)}${rightText}`;
|
|
469
|
+
}
|
|
470
|
+
function flattenOperands({ expressionType, expression, context }) {
|
|
471
|
+
let result = [];
|
|
472
|
+
let stack = [{
|
|
473
|
+
expr: expression,
|
|
474
|
+
depth: 0
|
|
475
|
+
}];
|
|
476
|
+
while (stack.length > 0) {
|
|
477
|
+
let { depth, expr } = stack.pop();
|
|
478
|
+
if (depth > MAX_DEPTH || !matchesExpressionType(expr, expressionType)) {
|
|
479
|
+
result.push(toggleNegation(expr, context));
|
|
480
|
+
continue;
|
|
481
|
+
}
|
|
482
|
+
let logicalExpr = expr;
|
|
483
|
+
stack.push({
|
|
484
|
+
expr: logicalExpr.right,
|
|
485
|
+
depth: depth + 1
|
|
486
|
+
}, {
|
|
487
|
+
expr: logicalExpr.left,
|
|
488
|
+
depth: depth + 1
|
|
489
|
+
});
|
|
490
|
+
}
|
|
491
|
+
return result;
|
|
492
|
+
}
|
|
493
|
+
function transformSimple({ expressionType, targetOperator, expression, context }) {
|
|
494
|
+
return flattenOperands({
|
|
495
|
+
expressionType,
|
|
496
|
+
expression,
|
|
497
|
+
context
|
|
498
|
+
}).join(` ${targetOperator} `);
|
|
499
|
+
}
|
|
500
|
+
function matchesExpressionType(expression, type) {
|
|
501
|
+
return type === "conjunction" ? isConjunction(expression) : isDisjunction(expression);
|
|
502
|
+
}
|
|
503
|
+
function hasSpecialFormatting(text) {
|
|
504
|
+
return text.includes("//") || text.includes("/*") || text.includes("\n") || /\s{2,}/u.test(text);
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
//#endregion
|
|
508
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/not.js
|
|
509
|
+
function not(predicate) {
|
|
510
|
+
return (...arguments_) => !predicate(...arguments_);
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
//#endregion
|
|
514
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/utils/or.js
|
|
515
|
+
function or(...predicates) {
|
|
516
|
+
return (...arguments_) => predicates.some((predicate) => predicate(...arguments_));
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
//#endregion
|
|
520
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/rules/no-negated-conjunction.js
|
|
521
|
+
const noNegatedConjunction = {
|
|
522
|
+
create: (context) => ({ UnaryExpression: (node$1) => {
|
|
523
|
+
if (createTestWithParameters(node$1, context)(isNegated, applyToProperty("argument", isConjunction), isPureGroup, or(hasBooleanContext, not(hasNegationInsideParens)))) {
|
|
524
|
+
let fixedExpression = transform({
|
|
525
|
+
expressionType: "conjunction",
|
|
526
|
+
shouldWrapInParens: isConjunction(node$1.parent),
|
|
527
|
+
context,
|
|
528
|
+
node: node$1
|
|
529
|
+
});
|
|
530
|
+
if (fixedExpression) {
|
|
531
|
+
let originalExpression = context.sourceCode.getText(node$1);
|
|
532
|
+
context.report({
|
|
533
|
+
data: {
|
|
534
|
+
original: sanitizeCode(originalExpression),
|
|
535
|
+
fixed: sanitizeCode(fixedExpression)
|
|
536
|
+
},
|
|
537
|
+
fix: (fixer) => fixer.replaceText(node$1, fixedExpression),
|
|
538
|
+
messageId: "convertNegatedConjunction",
|
|
539
|
+
node: node$1
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
} }),
|
|
544
|
+
meta: {
|
|
545
|
+
docs: {
|
|
546
|
+
description: "Transforms the negation of a conjunction !(A && B) into the equivalent !A || !B according to De Morgan’s law",
|
|
547
|
+
url: `https://github.com/${repository}/blob/main/docs/no-negated-conjunction.md`,
|
|
548
|
+
category: "Best Practices",
|
|
549
|
+
recommended: true
|
|
550
|
+
},
|
|
551
|
+
messages: { convertNegatedConjunction: "Replace negated conjunction `{{ original }}` with `{{ fixed }}`" },
|
|
552
|
+
type: "suggestion",
|
|
553
|
+
fixable: "code",
|
|
554
|
+
schema: []
|
|
555
|
+
}
|
|
556
|
+
};
|
|
557
|
+
|
|
558
|
+
//#endregion
|
|
559
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/rules/no-negated-disjunction.js
|
|
560
|
+
const noNegatedDisjunction = {
|
|
561
|
+
create: (context) => ({ UnaryExpression: (node$1) => {
|
|
562
|
+
if (createTestWithParameters(node$1, context)(isNegated, applyToProperty("argument", isDisjunction), isPureGroup, or(hasBooleanContext, not(hasNegationInsideParens)))) {
|
|
563
|
+
let fixedExpression = transform({
|
|
564
|
+
expressionType: "disjunction",
|
|
565
|
+
shouldWrapInParens: false,
|
|
566
|
+
context,
|
|
567
|
+
node: node$1
|
|
568
|
+
});
|
|
569
|
+
if (fixedExpression) {
|
|
570
|
+
let originalExpression = context.sourceCode.getText(node$1);
|
|
571
|
+
context.report({
|
|
572
|
+
data: {
|
|
573
|
+
original: sanitizeCode(originalExpression),
|
|
574
|
+
fixed: sanitizeCode(fixedExpression)
|
|
575
|
+
},
|
|
576
|
+
fix: (fixer) => fixer.replaceText(node$1, fixedExpression),
|
|
577
|
+
messageId: "convertNegatedDisjunction",
|
|
578
|
+
node: node$1
|
|
579
|
+
});
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
} }),
|
|
583
|
+
meta: {
|
|
584
|
+
docs: {
|
|
585
|
+
description: "Transforms the negation of a disjunction !(A || B) into the equivalent !A && !B according to De Morgan’s law",
|
|
586
|
+
url: `https://github.com/${repository}/blob/main/docs/no-negated-disjunction.md`,
|
|
587
|
+
category: "Best Practices",
|
|
588
|
+
recommended: true
|
|
589
|
+
},
|
|
590
|
+
messages: { convertNegatedDisjunction: "Replace negated disjunction `{{ original }}` with `{{ fixed }}`" },
|
|
591
|
+
type: "suggestion",
|
|
592
|
+
fixable: "code",
|
|
593
|
+
schema: []
|
|
594
|
+
}
|
|
595
|
+
};
|
|
596
|
+
|
|
597
|
+
//#endregion
|
|
598
|
+
//#region ../../node_modules/.pnpm/eslint-plugin-de-morgan@2.0.0_eslint@9.39.2_jiti@2.6.1_/node_modules/eslint-plugin-de-morgan/dist/index.js
|
|
599
|
+
let pluginName = "de-morgan";
|
|
600
|
+
let rules = {
|
|
601
|
+
"no-negated-conjunction": noNegatedConjunction,
|
|
602
|
+
"no-negated-disjunction": noNegatedDisjunction
|
|
603
|
+
};
|
|
604
|
+
function getRules() {
|
|
605
|
+
return Object.fromEntries(Object.keys(rules).map((ruleName) => [`${pluginName}/${ruleName}`, "error"]));
|
|
606
|
+
}
|
|
607
|
+
function createConfig() {
|
|
608
|
+
return {
|
|
609
|
+
plugins: { [pluginName]: { rules } },
|
|
610
|
+
rules: getRules()
|
|
611
|
+
};
|
|
612
|
+
}
|
|
613
|
+
function createLegacyConfig() {
|
|
614
|
+
return {
|
|
615
|
+
plugins: [pluginName],
|
|
616
|
+
rules: getRules()
|
|
617
|
+
};
|
|
618
|
+
}
|
|
619
|
+
let configs = {
|
|
620
|
+
"recommended-legacy": createLegacyConfig(),
|
|
621
|
+
recommended: createConfig()
|
|
622
|
+
};
|
|
623
|
+
const index = {
|
|
624
|
+
meta: {
|
|
625
|
+
version,
|
|
626
|
+
name
|
|
627
|
+
},
|
|
628
|
+
configs,
|
|
629
|
+
rules
|
|
630
|
+
};
|
|
631
|
+
|
|
182
632
|
//#endregion
|
|
183
633
|
//#region src/configs/comments.ts
|
|
184
634
|
const comments = () => [{
|
|
@@ -195,6 +645,13 @@ const comments = () => [{
|
|
|
195
645
|
}
|
|
196
646
|
}];
|
|
197
647
|
|
|
648
|
+
//#endregion
|
|
649
|
+
//#region src/configs/de-morgan.ts
|
|
650
|
+
const deMorgan = () => [{
|
|
651
|
+
...index.configs.recommended,
|
|
652
|
+
name: "so1ve/de-morgan"
|
|
653
|
+
}];
|
|
654
|
+
|
|
198
655
|
//#endregion
|
|
199
656
|
//#region src/configs/formatting.ts
|
|
200
657
|
async function formatting(options) {
|
|
@@ -424,6 +881,7 @@ async function formatting(options) {
|
|
|
424
881
|
"allowUnreachableCode",
|
|
425
882
|
"allowUnusedLabels",
|
|
426
883
|
"alwaysStrict",
|
|
884
|
+
"erasableSyntaxOnly",
|
|
427
885
|
"exactOptionalPropertyTypes",
|
|
428
886
|
"noFallthroughCasesInSwitch",
|
|
429
887
|
"noImplicitAny",
|
|
@@ -1047,13 +1505,13 @@ async function perfectionist() {
|
|
|
1047
1505
|
//#endregion
|
|
1048
1506
|
//#region ../../node_modules/.pnpm/find-up-simple@1.0.1/node_modules/find-up-simple/index.js
|
|
1049
1507
|
const toPath = (urlOrPath) => urlOrPath instanceof URL ? fileURLToPath(urlOrPath) : urlOrPath;
|
|
1050
|
-
async function findUp(name, { cwd = process$1.cwd(), type = "file", stopAt } = {}) {
|
|
1508
|
+
async function findUp(name$1, { cwd = process$1.cwd(), type = "file", stopAt } = {}) {
|
|
1051
1509
|
let directory = path.resolve(toPath(cwd) ?? "");
|
|
1052
1510
|
const { root } = path.parse(directory);
|
|
1053
1511
|
stopAt = path.resolve(directory, toPath(stopAt ?? root));
|
|
1054
|
-
const isAbsoluteName = path.isAbsolute(name);
|
|
1512
|
+
const isAbsoluteName = path.isAbsolute(name$1);
|
|
1055
1513
|
while (directory) {
|
|
1056
|
-
const filePath = isAbsoluteName ? name : path.join(directory, name);
|
|
1514
|
+
const filePath = isAbsoluteName ? name$1 : path.join(directory, name$1);
|
|
1057
1515
|
try {
|
|
1058
1516
|
const stats = await fsPromises.stat(filePath);
|
|
1059
1517
|
if (type === "file" && stats.isFile() || type === "directory" && stats.isDirectory()) return filePath;
|
|
@@ -1062,13 +1520,13 @@ async function findUp(name, { cwd = process$1.cwd(), type = "file", stopAt } = {
|
|
|
1062
1520
|
directory = path.dirname(directory);
|
|
1063
1521
|
}
|
|
1064
1522
|
}
|
|
1065
|
-
function findUpSync(name, { cwd = process$1.cwd(), type = "file", stopAt } = {}) {
|
|
1523
|
+
function findUpSync(name$1, { cwd = process$1.cwd(), type = "file", stopAt } = {}) {
|
|
1066
1524
|
let directory = path.resolve(toPath(cwd) ?? "");
|
|
1067
1525
|
const { root } = path.parse(directory);
|
|
1068
1526
|
stopAt = path.resolve(directory, toPath(stopAt) ?? root);
|
|
1069
|
-
const isAbsoluteName = path.isAbsolute(name);
|
|
1527
|
+
const isAbsoluteName = path.isAbsolute(name$1);
|
|
1070
1528
|
while (directory) {
|
|
1071
|
-
const filePath = isAbsoluteName ? name : path.join(directory, name);
|
|
1529
|
+
const filePath = isAbsoluteName ? name$1 : path.join(directory, name$1);
|
|
1072
1530
|
try {
|
|
1073
1531
|
const stats = fs.statSync(filePath, { throwIfNoEntry: false });
|
|
1074
1532
|
if (type === "file" && stats?.isFile() || type === "directory" && stats?.isDirectory()) return filePath;
|
|
@@ -1093,8 +1551,8 @@ async function pnpm(options) {
|
|
|
1093
1551
|
yaml$1 ? interopDefault(import("yaml-eslint-parser")) : void 0,
|
|
1094
1552
|
json ? interopDefault(import("jsonc-eslint-parser")) : void 0
|
|
1095
1553
|
]);
|
|
1096
|
-
const configs = [];
|
|
1097
|
-
if (json) configs.push({
|
|
1554
|
+
const configs$1 = [];
|
|
1555
|
+
if (json) configs$1.push({
|
|
1098
1556
|
files: ["package.json", "**/package.json"],
|
|
1099
1557
|
languageOptions: { parser: jsoncParser },
|
|
1100
1558
|
name: "so1ve/pnpm/package-json",
|
|
@@ -1105,7 +1563,7 @@ async function pnpm(options) {
|
|
|
1105
1563
|
"pnpm/json-valid-catalog": "error"
|
|
1106
1564
|
}
|
|
1107
1565
|
});
|
|
1108
|
-
if (yaml$1) configs.push({
|
|
1566
|
+
if (yaml$1) configs$1.push({
|
|
1109
1567
|
files: ["pnpm-workspace.yaml"],
|
|
1110
1568
|
languageOptions: { parser: yamlParser },
|
|
1111
1569
|
name: "so1ve/pnpm/pnpm-workspace-yaml",
|
|
@@ -1190,7 +1648,7 @@ async function pnpm(options) {
|
|
|
1190
1648
|
}
|
|
1191
1649
|
] }
|
|
1192
1650
|
});
|
|
1193
|
-
return configs;
|
|
1651
|
+
return configs$1;
|
|
1194
1652
|
}
|
|
1195
1653
|
|
|
1196
1654
|
//#endregion
|
|
@@ -1828,38 +2286,38 @@ const defaultPluginRenaming = {
|
|
|
1828
2286
|
*/
|
|
1829
2287
|
function so1ve(options = {}, ...userConfigs) {
|
|
1830
2288
|
const { astro: enableAstro = isPackageExists("astro"), componentExts = [], gitignore: enableGitignore = true, ignores: userIgnores = [], pnpm: enablePnpm = !!findUpSync("pnpm-workspace.yaml"), solid: enableSolid = isPackageExists("solid-js"), typescript: enableTypeScript = isPackageExists("typescript"), vue: enableVue = VuePackages.some((i) => isPackageExists(i)) } = options;
|
|
1831
|
-
const configs = [];
|
|
2289
|
+
const configs$1 = [];
|
|
1832
2290
|
if (enableGitignore) if (typeof enableGitignore === "boolean") {
|
|
1833
|
-
if (fs.existsSync(".gitignore")) configs.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r()]));
|
|
1834
|
-
} else configs.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r(enableGitignore)]));
|
|
1835
|
-
configs.push(ignores(userIgnores), javascript({ overrides: getOverrides(options, "javascript") }), comments(), node(), onlyError(), promise(), sortImports(), imports(), unicorn(), command());
|
|
1836
|
-
if (enablePnpm) configs.push(pnpm({
|
|
2291
|
+
if (fs.existsSync(".gitignore")) configs$1.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r()]));
|
|
2292
|
+
} else configs$1.push(interopDefault(import("eslint-config-flat-gitignore")).then((r) => [r(enableGitignore)]));
|
|
2293
|
+
configs$1.push(ignores(userIgnores), javascript({ overrides: getOverrides(options, "javascript") }), comments(), node(), onlyError(), promise(), sortImports(), imports(), unicorn(), command(), deMorgan());
|
|
2294
|
+
if (enablePnpm) configs$1.push(pnpm({
|
|
1837
2295
|
json: options.jsonc !== false,
|
|
1838
2296
|
yaml: options.yaml !== false,
|
|
1839
2297
|
...typeof enablePnpm === "boolean" ? {} : enablePnpm
|
|
1840
2298
|
}));
|
|
1841
2299
|
if (enableVue) componentExts.push("vue");
|
|
1842
|
-
if (options.html ?? true) configs.push(html());
|
|
1843
|
-
if (enableTypeScript) configs.push(typescript({
|
|
2300
|
+
if (options.html ?? true) configs$1.push(html());
|
|
2301
|
+
if (enableTypeScript) configs$1.push(typescript({
|
|
1844
2302
|
componentExts,
|
|
1845
2303
|
overrides: getOverrides(options, "typescript")
|
|
1846
2304
|
}));
|
|
1847
|
-
if (options.test ?? true) configs.push(test({ overrides: getOverrides(options, "test") }));
|
|
1848
|
-
if (enableAstro) configs.push(astro({ overrides: getOverrides(options, "astro") }));
|
|
1849
|
-
if (enableVue) configs.push(vue({
|
|
2305
|
+
if (options.test ?? true) configs$1.push(test({ overrides: getOverrides(options, "test") }));
|
|
2306
|
+
if (enableAstro) configs$1.push(astro({ overrides: getOverrides(options, "astro") }));
|
|
2307
|
+
if (enableVue) configs$1.push(vue({
|
|
1850
2308
|
overrides: getOverrides(options, "vue"),
|
|
1851
2309
|
typescript: !!enableTypeScript
|
|
1852
2310
|
}));
|
|
1853
|
-
if (enableSolid) configs.push(solid({
|
|
2311
|
+
if (enableSolid) configs$1.push(solid({
|
|
1854
2312
|
overrides: getOverrides(options, "solid"),
|
|
1855
2313
|
typescript: !!enableTypeScript
|
|
1856
2314
|
}));
|
|
1857
|
-
if (options.formatting ?? true) configs.push(formatting(options));
|
|
1858
|
-
if (options.perfectionist ?? true) configs.push(perfectionist());
|
|
1859
|
-
if (options.jsonc ?? true) configs.push(jsonc());
|
|
1860
|
-
if (options.toml ?? true) configs.push(toml({ overrides: getOverrides(options, "toml") }));
|
|
1861
|
-
if (options.yaml ?? true) configs.push(yaml({ overrides: getOverrides(options, "yaml") }));
|
|
1862
|
-
if (options.mdx ?? true) configs.push(mdx({
|
|
2315
|
+
if (options.formatting ?? true) configs$1.push(formatting(options));
|
|
2316
|
+
if (options.perfectionist ?? true) configs$1.push(perfectionist());
|
|
2317
|
+
if (options.jsonc ?? true) configs$1.push(jsonc());
|
|
2318
|
+
if (options.toml ?? true) configs$1.push(toml({ overrides: getOverrides(options, "toml") }));
|
|
2319
|
+
if (options.yaml ?? true) configs$1.push(yaml({ overrides: getOverrides(options, "yaml") }));
|
|
2320
|
+
if (options.mdx ?? true) configs$1.push(mdx({
|
|
1863
2321
|
componentExts,
|
|
1864
2322
|
overrides: getOverrides(options, "mdx")
|
|
1865
2323
|
}));
|
|
@@ -1867,8 +2325,8 @@ function so1ve(options = {}, ...userConfigs) {
|
|
|
1867
2325
|
if (key in options) acc[key] = options[key];
|
|
1868
2326
|
return acc;
|
|
1869
2327
|
}, {});
|
|
1870
|
-
if (Object.keys(fusedConfig).length > 0) configs.push([fusedConfig]);
|
|
1871
|
-
return new FlatConfigComposer().append(...configs, ...userConfigs).renamePlugins(defaultPluginRenaming);
|
|
2328
|
+
if (Object.keys(fusedConfig).length > 0) configs$1.push([fusedConfig]);
|
|
2329
|
+
return new FlatConfigComposer().append(...configs$1, ...userConfigs).renamePlugins(defaultPluginRenaming);
|
|
1872
2330
|
}
|
|
1873
2331
|
function getOverrides(options, key) {
|
|
1874
2332
|
const sub = typeof options[key] === "boolean" ? {} : options[key] ?? {};
|
|
@@ -1879,4 +2337,4 @@ function getOverrides(options, key) {
|
|
|
1879
2337
|
}
|
|
1880
2338
|
|
|
1881
2339
|
//#endregion
|
|
1882
|
-
export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DTS, GLOB_ESLINTRC, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_PACKAGEJSON, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_VUE, GLOB_YAML, astro, command, comments, defaultPluginRenaming, formatting, getOverrides, html, ignores, imports, interopDefault, javascript, jsonc, mdx, node, onlyError, perfectionist, pnpm, promise, renameRules, so1ve, solid, sortImports, test, toml, typescript, unicorn, vue, yaml };
|
|
2340
|
+
export { GLOB_ALL_SRC, GLOB_ASTRO, GLOB_ASTRO_TS, GLOB_CSS, GLOB_DTS, GLOB_ESLINTRC, GLOB_EXCLUDE, GLOB_HTML, GLOB_JS, GLOB_JSON, GLOB_JSON5, GLOB_JSONC, GLOB_JSX, GLOB_LESS, GLOB_MARKDOWN, GLOB_MARKDOWN_CODE, GLOB_PACKAGEJSON, GLOB_SCSS, GLOB_SRC, GLOB_SRC_EXT, GLOB_STYLE, GLOB_TESTS, GLOB_TOML, GLOB_TS, GLOB_TSCONFIG, GLOB_TSX, GLOB_VUE, GLOB_YAML, astro, command, comments, deMorgan, defaultPluginRenaming, formatting, getOverrides, html, ignores, imports, interopDefault, javascript, jsonc, mdx, node, onlyError, perfectionist, pnpm, promise, renameRules, so1ve, solid, sortImports, test, toml, typescript, unicorn, vue, yaml };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@so1ve/eslint-config",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.26.0",
|
|
4
4
|
"author": "Ray <i@mk1.io> (https://github.com/so1ve/)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Ray's eslint config.",
|
|
@@ -76,10 +76,11 @@
|
|
|
76
76
|
"typescript-eslint": "^8.50.1",
|
|
77
77
|
"vue-eslint-parser": "^10.2.0",
|
|
78
78
|
"yaml-eslint-parser": "^1.3.2",
|
|
79
|
-
"@so1ve/eslint-plugin": "3.
|
|
80
|
-
"@so1ve/eslint-plugin-sort-imports": "3.
|
|
79
|
+
"@so1ve/eslint-plugin": "3.26.0",
|
|
80
|
+
"@so1ve/eslint-plugin-sort-imports": "3.26.0"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
|
+
"eslint-plugin-de-morgan": "^2.0.0",
|
|
83
84
|
"find-up-simple": "^1.0.1"
|
|
84
85
|
},
|
|
85
86
|
"peerDependencies": {
|