@sarj/eslint-plugin 16.23.0 → 16.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +162 -145
- package/dist/index.d.cts +6 -2
- package/dist/index.d.ts +6 -2
- package/dist/index.js +162 -145
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -303,7 +303,7 @@ var TEST_INTEGRATION_BASENAME_RE = /\.integration\.[cm]?[jt]sx?$/;
|
|
|
303
303
|
var TEST_DIR_RE = /(^|\/)(tests?|__tests__|__mocks__|fixtures|__fixtures__|__testfixtures__|e2e|integration)\//;
|
|
304
304
|
var FIXTURE_TREE_RE = /(^|\/)fixture\//;
|
|
305
305
|
function isTestFile(filename, gates = []) {
|
|
306
|
-
const normalized = filename
|
|
306
|
+
const normalized = scopedFilename(filename);
|
|
307
307
|
const base = normalized.slice(normalized.lastIndexOf("/") + 1);
|
|
308
308
|
if (TEST_BASENAME_RE.test(base) || TEST_INTEGRATION_BASENAME_RE.test(base)) {
|
|
309
309
|
return true;
|
|
@@ -314,14 +314,14 @@ function isTestFile(filename, gates = []) {
|
|
|
314
314
|
return gates.includes("fixtureTree") && FIXTURE_TREE_RE.test(normalized);
|
|
315
315
|
}
|
|
316
316
|
function isStoryFile(filename, gates = []) {
|
|
317
|
-
const normalized = filename
|
|
317
|
+
const normalized = scopedFilename(filename);
|
|
318
318
|
if (STORY_FILE_RE.test(normalized)) {
|
|
319
319
|
return true;
|
|
320
320
|
}
|
|
321
321
|
return gates.includes("storyTree") && STORY_TREE_RE.test(normalized);
|
|
322
322
|
}
|
|
323
323
|
function isGeneratedFile(filename, sourceText = "", gates = []) {
|
|
324
|
-
const normalized = filename
|
|
324
|
+
const normalized = scopedFilename(filename);
|
|
325
325
|
if (GENERATED_FILE_RE.test(normalized)) {
|
|
326
326
|
return true;
|
|
327
327
|
}
|
|
@@ -370,7 +370,10 @@ function leadingCommentBodies(sourceText) {
|
|
|
370
370
|
return bodies;
|
|
371
371
|
}
|
|
372
372
|
function isScriptFile(filename) {
|
|
373
|
-
return SCRIPT_FILE_RE.test(filename);
|
|
373
|
+
return SCRIPT_FILE_RE.test(scopedFilename(filename));
|
|
374
|
+
}
|
|
375
|
+
function scopedFilename(input) {
|
|
376
|
+
return (typeof input === "string" ? input : input.filename).replaceAll("\\", "/");
|
|
374
377
|
}
|
|
375
378
|
function matchesAnyPattern(filename, patterns) {
|
|
376
379
|
const normalized = filename.replaceAll("\\", "/");
|
|
@@ -641,7 +644,7 @@ var no_credential_in_browser_storage_default = createRule({
|
|
|
641
644
|
},
|
|
642
645
|
defaultOptions: [],
|
|
643
646
|
create(context) {
|
|
644
|
-
if (isGeneratedFile(context
|
|
647
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
645
648
|
const { sourceCode } = context;
|
|
646
649
|
const report2 = (node, key) => {
|
|
647
650
|
if (key !== null && isAuthSecretName(key) && !tokenize(key).some((word) => METADATA_WORDS.has(word))) {
|
|
@@ -762,7 +765,7 @@ var no_numeric_search_param_coercion_default = createRule({
|
|
|
762
765
|
},
|
|
763
766
|
defaultOptions: [],
|
|
764
767
|
create(context) {
|
|
765
|
-
if (isGeneratedFile(context
|
|
768
|
+
if (isGeneratedFile(context, context.sourceCode.text) || isTestFile(context)) return {};
|
|
766
769
|
let services;
|
|
767
770
|
try {
|
|
768
771
|
services = ESLintUtils2.getParserServices(context);
|
|
@@ -819,7 +822,7 @@ function isSearchParamReceiver(call, services) {
|
|
|
819
822
|
// package.json
|
|
820
823
|
var package_default = {
|
|
821
824
|
name: "@sarj/eslint-plugin",
|
|
822
|
-
version: "16.23.
|
|
825
|
+
version: "16.23.2",
|
|
823
826
|
packageManager: "npm@12.2.0",
|
|
824
827
|
description: "Custom ESLint rules for hypermodern TypeScript / React / Next.js projects",
|
|
825
828
|
type: "module",
|
|
@@ -991,49 +994,52 @@ function memberName(node) {
|
|
|
991
994
|
if (ts.isElementAccessExpression(node) && ts.isStringLiteralLike(node.argumentExpression)) return node.argumentExpression.text;
|
|
992
995
|
return null;
|
|
993
996
|
}
|
|
994
|
-
function ownedSource(source) {
|
|
995
|
-
|
|
997
|
+
function ownedSource(source, cwd) {
|
|
998
|
+
const path = { filename: source.fileName, cwd };
|
|
999
|
+
return !source.isDeclarationFile && !/(?:^|[/\\])(?:node_modules|vendor|vendored|generated|dist)(?:[/\\])/u.test(scopedFilename(path)) && !isGeneratedFile(path, source.text);
|
|
996
1000
|
}
|
|
997
|
-
function escapedClasses(program, checker) {
|
|
998
|
-
const
|
|
1001
|
+
function escapedClasses(program, checker, cwd) {
|
|
1002
|
+
const scopes = ESCAPED_CLASSES.get(program) ?? /* @__PURE__ */ new Map();
|
|
1003
|
+
const cached = scopes.get(cwd);
|
|
999
1004
|
if (cached !== void 0) return cached;
|
|
1000
1005
|
const escaped = /* @__PURE__ */ new Set();
|
|
1001
1006
|
const namespaceValues = /* @__PURE__ */ new Map();
|
|
1002
1007
|
function visit(node) {
|
|
1003
1008
|
if (ts.isTypeNode(node) || ts.isImportDeclaration(node)) return;
|
|
1004
1009
|
if (ts.isIdentifier(node) || ts.isPropertyAccessExpression(node) || ts.isElementAccessExpression(node)) {
|
|
1005
|
-
recordEscapedReference(checker, node, escaped, namespaceValues);
|
|
1010
|
+
recordEscapedReference(checker, node, escaped, namespaceValues, cwd);
|
|
1006
1011
|
}
|
|
1007
1012
|
ts.forEachChild(node, visit);
|
|
1008
1013
|
}
|
|
1009
|
-
for (const source of program.getSourceFiles()) if (ownedSource(source)) visit(source);
|
|
1010
|
-
|
|
1014
|
+
for (const source of program.getSourceFiles()) if (ownedSource(source, cwd)) visit(source);
|
|
1015
|
+
scopes.set(cwd, escaped);
|
|
1016
|
+
ESCAPED_CLASSES.set(program, scopes);
|
|
1011
1017
|
return escaped;
|
|
1012
1018
|
}
|
|
1013
|
-
function recordEscapedReference(checker, node, escaped, namespaceValues) {
|
|
1019
|
+
function recordEscapedReference(checker, node, escaped, namespaceValues, cwd) {
|
|
1014
1020
|
const symbol = canonicalSymbol(checker, node);
|
|
1015
1021
|
if (symbol !== void 0) {
|
|
1016
1022
|
let values = namespaceValues.get(symbol);
|
|
1017
1023
|
if (values === void 0) {
|
|
1018
|
-
values = ownedClassValues(checker, symbol);
|
|
1024
|
+
values = ownedClassValues(checker, symbol, cwd);
|
|
1019
1025
|
namespaceValues.set(symbol, values);
|
|
1020
1026
|
}
|
|
1021
1027
|
if (!namespacePrefix(symbol, node) && !safeClassReference(node)) for (const value of values) escaped.add(value);
|
|
1022
1028
|
}
|
|
1023
1029
|
if (ts.isElementAccessExpression(node) && !safeClassReference(node)) {
|
|
1024
1030
|
const receiver = canonicalSymbol(checker, node.expression) ?? checker.getTypeAtLocation(node.expression).getSymbol();
|
|
1025
|
-
if (receiver !== void 0) for (const value of ownedClassValues(checker, receiver)) escaped.add(value);
|
|
1031
|
+
if (receiver !== void 0) for (const value of ownedClassValues(checker, receiver, cwd)) escaped.add(value);
|
|
1026
1032
|
}
|
|
1027
1033
|
}
|
|
1028
|
-
function ownedClassValues(checker, original, seen = /* @__PURE__ */ new Set()) {
|
|
1034
|
+
function ownedClassValues(checker, original, cwd, seen = /* @__PURE__ */ new Set()) {
|
|
1029
1035
|
const symbol = original.flags & ts.SymbolFlags.Alias ? checker.getAliasedSymbol(original) : original;
|
|
1030
1036
|
const values = /* @__PURE__ */ new Set();
|
|
1031
1037
|
if (seen.has(symbol)) return values;
|
|
1032
1038
|
seen.add(symbol);
|
|
1033
|
-
if (symbol.declarations?.some((declaration) => ts.isClassDeclaration(declaration) && ownedSource(declaration.getSourceFile()))) values.add(symbol);
|
|
1034
|
-
if (symbol.declarations?.some((declaration) => (ts.isSourceFile(declaration) || ts.isModuleDeclaration(declaration)) && ownedSource(declaration.getSourceFile()))) {
|
|
1039
|
+
if (symbol.declarations?.some((declaration) => ts.isClassDeclaration(declaration) && ownedSource(declaration.getSourceFile(), cwd))) values.add(symbol);
|
|
1040
|
+
if (symbol.declarations?.some((declaration) => (ts.isSourceFile(declaration) || ts.isModuleDeclaration(declaration)) && ownedSource(declaration.getSourceFile(), cwd))) {
|
|
1035
1041
|
for (const exported of checker.getExportsOfModule(symbol)) {
|
|
1036
|
-
for (const value of ownedClassValues(checker, exported, seen)) values.add(value);
|
|
1042
|
+
for (const value of ownedClassValues(checker, exported, cwd, seen)) values.add(value);
|
|
1037
1043
|
}
|
|
1038
1044
|
}
|
|
1039
1045
|
return values;
|
|
@@ -1049,7 +1055,7 @@ function namespacePrefix(symbol, node) {
|
|
|
1049
1055
|
const memberCall = (ts.isPropertyAccessExpression(parent) || ts.isElementAccessExpression(parent)) && ts.isCallExpression(parent.parent) && parent.parent.expression === parent;
|
|
1050
1056
|
return !symbol.declarations?.some(ts.isClassDeclaration) && (ts.isPropertyAccessExpression(parent) || ts.isElementAccessExpression(parent)) && parent.expression === node && !memberCall;
|
|
1051
1057
|
}
|
|
1052
|
-
function closedNominalBoundary(program, checker, call, consumer, missing) {
|
|
1058
|
+
function closedNominalBoundary(program, checker, call, consumer, missing, cwd) {
|
|
1053
1059
|
const { implementation, contractSymbol } = missing;
|
|
1054
1060
|
const implementationSymbol = implementation.name === void 0 ? void 0 : canonicalSymbol(checker, implementation.name);
|
|
1055
1061
|
const consumerSymbol = consumer.name === void 0 ? void 0 : canonicalSymbol(checker, consumer.name);
|
|
@@ -1058,7 +1064,7 @@ function closedNominalBoundary(program, checker, call, consumer, missing) {
|
|
|
1058
1064
|
if (contract === void 0) return false;
|
|
1059
1065
|
const targets = /* @__PURE__ */ new Set([consumerSymbol, ...classHierarchySymbols(checker, contract), ...classHierarchySymbols(checker, implementation)]);
|
|
1060
1066
|
const sources = /* @__PURE__ */ new Set([call.getSourceFile(), consumer.getSourceFile(), implementation.getSourceFile(), ...contractSymbol.declarations?.map((item) => item.getSourceFile()) ?? []]);
|
|
1061
|
-
return ![...sources].some(hasPrototypeMutation) && ![...targets].some((target) => escapedClasses(program, checker).has(target));
|
|
1067
|
+
return ![...sources].some(hasPrototypeMutation) && ![...targets].some((target) => escapedClasses(program, checker, cwd).has(target));
|
|
1062
1068
|
}
|
|
1063
1069
|
function classHierarchySymbols(checker, declaration, seen = /* @__PURE__ */ new Set()) {
|
|
1064
1070
|
const symbol = declaration.name === void 0 ? void 0 : canonicalSymbol(checker, declaration.name);
|
|
@@ -1181,7 +1187,7 @@ var require_explicit_contract_implementation_default = createRule({
|
|
|
1181
1187
|
},
|
|
1182
1188
|
defaultOptions: [],
|
|
1183
1189
|
create(context) {
|
|
1184
|
-
if (isGeneratedFile(context
|
|
1190
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
1185
1191
|
if (!context.sourceCode.parserServices?.program || !context.sourceCode.parserServices.esTreeNodeToTSNodeMap) return {};
|
|
1186
1192
|
const services = ESLintUtils3.getParserServices(context);
|
|
1187
1193
|
const checker = services.program.getTypeChecker();
|
|
@@ -1199,7 +1205,7 @@ var require_explicit_contract_implementation_default = createRule({
|
|
|
1199
1205
|
if (parameter === void 0) continue;
|
|
1200
1206
|
const tsArgument = services.esTreeNodeToTSNodeMap.get(argument);
|
|
1201
1207
|
const missing = missingImplementation(checker, signature, parameter, tsNode, tsArgument);
|
|
1202
|
-
if (missing === null || !closedNominalBoundary(services.program, checker, tsNode, consumer, missing)) continue;
|
|
1208
|
+
if (missing === null || !closedNominalBoundary(services.program, checker, tsNode, consumer, missing, context.cwd)) continue;
|
|
1203
1209
|
context.report({
|
|
1204
1210
|
node: argument,
|
|
1205
1211
|
messageId: "declareActualContract",
|
|
@@ -1798,9 +1804,8 @@ var require_port_for_service_default = createRule({
|
|
|
1798
1804
|
},
|
|
1799
1805
|
defaultOptions: [],
|
|
1800
1806
|
create(context) {
|
|
1801
|
-
|
|
1802
|
-
if (
|
|
1803
|
-
if (isGeneratedFile(filename, context.sourceCode.getText())) return {};
|
|
1807
|
+
if (isTestFile(context) || isStoryFile(context) || isScriptFile(context)) return {};
|
|
1808
|
+
if (isGeneratedFile(context, context.sourceCode.getText())) return {};
|
|
1804
1809
|
let declaredTypes = null;
|
|
1805
1810
|
const detachedExports = detachedValueExports(context.sourceCode.ast);
|
|
1806
1811
|
const localClasses = localClassAbstractness(context.sourceCode.ast);
|
|
@@ -2075,14 +2080,14 @@ var require_explicit_service_contract_default = createRule({
|
|
|
2075
2080
|
},
|
|
2076
2081
|
defaultOptions: [],
|
|
2077
2082
|
create(context) {
|
|
2078
|
-
if (/\.(?:js|jsx|mjs|cjs)$/iu.test(context.filename) || isGeneratedFile(context
|
|
2083
|
+
if (/\.(?:js|jsx|mjs|cjs)$/iu.test(context.filename) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
2079
2084
|
const program = context.sourceCode.ast;
|
|
2080
2085
|
const operationsFor = createServiceOperationResolver(program);
|
|
2081
2086
|
const isExportedServiceClass = createExportedServiceClassResolver(program);
|
|
2082
2087
|
return {
|
|
2083
2088
|
ClassDeclaration(node) {
|
|
2084
2089
|
if (node.id === null || node.abstract || node.decorators.length > 0 || !isServiceRole(node.id.name, context.filename)) return;
|
|
2085
|
-
if (isExportedServiceClass(node) && !isTestFile(context
|
|
2090
|
+
if (isExportedServiceClass(node) && !isTestFile(context) && !isStoryFile(context) && !isScriptFile(context)) return;
|
|
2086
2091
|
const operations = operationsFor(node);
|
|
2087
2092
|
if (operations.length === 0 || hasDeclaredServiceContract(node, operations, program) !== false) return;
|
|
2088
2093
|
context.report({
|
|
@@ -2164,7 +2169,7 @@ var no_conditional_empty_object_spread_default = createRule({
|
|
|
2164
2169
|
},
|
|
2165
2170
|
defaultOptions: [],
|
|
2166
2171
|
create(context) {
|
|
2167
|
-
if (isGeneratedFile(context
|
|
2172
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
2168
2173
|
return {
|
|
2169
2174
|
SpreadElement(node) {
|
|
2170
2175
|
if (node.parent.type !== AST_NODE_TYPES8.ObjectExpression || node.argument.type !== AST_NODE_TYPES8.ConditionalExpression)
|
|
@@ -2240,7 +2245,7 @@ var prefer_typed_reflection_default = createRule({
|
|
|
2240
2245
|
},
|
|
2241
2246
|
defaultOptions: [],
|
|
2242
2247
|
create(context) {
|
|
2243
|
-
if (isGeneratedFile(context
|
|
2248
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
2244
2249
|
if (!context.sourceCode.parserServices?.program || !context.sourceCode.parserServices.esTreeNodeToTSNodeMap)
|
|
2245
2250
|
return {};
|
|
2246
2251
|
const services = ESLintUtils4.getParserServices(context);
|
|
@@ -2360,7 +2365,7 @@ var no_broad_return_type_default = createRule({
|
|
|
2360
2365
|
},
|
|
2361
2366
|
defaultOptions: [],
|
|
2362
2367
|
create(context) {
|
|
2363
|
-
if (isGeneratedFile(context
|
|
2368
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
2364
2369
|
if (!context.sourceCode.parserServices?.program || !context.sourceCode.parserServices.esTreeNodeToTSNodeMap)
|
|
2365
2370
|
return {};
|
|
2366
2371
|
const services = ESLintUtils5.getParserServices(context);
|
|
@@ -2436,7 +2441,7 @@ var no_reduce_accumulator_copy_default = createRule({
|
|
|
2436
2441
|
} },
|
|
2437
2442
|
defaultOptions: [],
|
|
2438
2443
|
create(context) {
|
|
2439
|
-
if (isGeneratedFile(context
|
|
2444
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
2440
2445
|
if (!context.sourceCode.parserServices?.program || !context.sourceCode.parserServices.esTreeNodeToTSNodeMap) return {};
|
|
2441
2446
|
const services = ESLintUtils6.getParserServices(context);
|
|
2442
2447
|
const program = services.program;
|
|
@@ -2523,7 +2528,7 @@ var no_known_value_widening_default = createRule({
|
|
|
2523
2528
|
},
|
|
2524
2529
|
defaultOptions: [],
|
|
2525
2530
|
create(context) {
|
|
2526
|
-
if (isGeneratedFile(context
|
|
2531
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
2527
2532
|
if (!context.sourceCode.parserServices?.program || !context.sourceCode.parserServices.esTreeNodeToTSNodeMap) return {};
|
|
2528
2533
|
const services = ESLintUtils7.getParserServices(context);
|
|
2529
2534
|
if (services.program === null) return {};
|
|
@@ -2577,7 +2582,7 @@ var no_invalid_typed_mutation_default = createRule({
|
|
|
2577
2582
|
},
|
|
2578
2583
|
defaultOptions: [],
|
|
2579
2584
|
create(context) {
|
|
2580
|
-
if (isGeneratedFile(context
|
|
2585
|
+
if (isGeneratedFile(context, context.sourceCode.text) || !context.sourceCode.parserServices?.program) return {};
|
|
2581
2586
|
const services = ESLintUtils8.getParserServices(context);
|
|
2582
2587
|
const checker = services.program.getTypeChecker();
|
|
2583
2588
|
const candidates = [];
|
|
@@ -2982,7 +2987,7 @@ var no_contradictory_type_predicate_default = createRule({
|
|
|
2982
2987
|
},
|
|
2983
2988
|
defaultOptions: [],
|
|
2984
2989
|
create(context) {
|
|
2985
|
-
if (isGeneratedFile(context
|
|
2990
|
+
if (isGeneratedFile(context, context.sourceCode.text) || !context.sourceCode.parserServices?.program) return {};
|
|
2986
2991
|
const services = ESLintUtils9.getParserServices(context);
|
|
2987
2992
|
const checker = services.program.getTypeChecker();
|
|
2988
2993
|
const uncheckedArray = contradictoryArrayPredicate(context.sourceCode, services);
|
|
@@ -3143,7 +3148,7 @@ var no_partial_type_predicate_default = createRule({
|
|
|
3143
3148
|
},
|
|
3144
3149
|
defaultOptions: [],
|
|
3145
3150
|
create(context) {
|
|
3146
|
-
if (isGeneratedFile(context
|
|
3151
|
+
if (isGeneratedFile(context, context.sourceCode.text) || !context.sourceCode.parserServices?.program) return {};
|
|
3147
3152
|
const services = ESLintUtils10.getParserServices(context);
|
|
3148
3153
|
function inspect(node) {
|
|
3149
3154
|
const predicate = primitivePredicate(node, services);
|
|
@@ -3580,7 +3585,7 @@ var no_boolean_selector_parameter_default = createRule({
|
|
|
3580
3585
|
},
|
|
3581
3586
|
defaultOptions: [],
|
|
3582
3587
|
create(context) {
|
|
3583
|
-
if (isGeneratedFile(context
|
|
3588
|
+
if (isGeneratedFile(context, context.sourceCode.text) || !context.sourceCode.parserServices?.program) return {};
|
|
3584
3589
|
const services = ESLintUtils11.getParserServices(context);
|
|
3585
3590
|
const reported = /* @__PURE__ */ new Set();
|
|
3586
3591
|
function report2(identifier) {
|
|
@@ -3670,7 +3675,7 @@ var no_invalid_zod_custom_parse_default = createRule({
|
|
|
3670
3675
|
},
|
|
3671
3676
|
defaultOptions: [],
|
|
3672
3677
|
create(context) {
|
|
3673
|
-
if (isGeneratedFile(context
|
|
3678
|
+
if (isGeneratedFile(context, context.sourceCode.text) || !context.sourceCode.parserServices?.program) return {};
|
|
3674
3679
|
const services = ESLintUtils12.getParserServices(context);
|
|
3675
3680
|
const checker = services.program.getTypeChecker();
|
|
3676
3681
|
const options = services.program.getCompilerOptions();
|
|
@@ -3787,7 +3792,7 @@ var no_contradictory_overload_return_default = createRule({
|
|
|
3787
3792
|
},
|
|
3788
3793
|
defaultOptions: [],
|
|
3789
3794
|
create(context) {
|
|
3790
|
-
if (isGeneratedFile(context
|
|
3795
|
+
if (isGeneratedFile(context, context.sourceCode.text) || !context.sourceCode.parserServices?.program) return {};
|
|
3791
3796
|
const services = ESLintUtils13.getParserServices(context);
|
|
3792
3797
|
const checker = services.program.getTypeChecker();
|
|
3793
3798
|
const options = services.program.getCompilerOptions();
|
|
@@ -4141,7 +4146,7 @@ var require_button_accessible_name_default = createRule({
|
|
|
4141
4146
|
},
|
|
4142
4147
|
defaultOptions: [{}],
|
|
4143
4148
|
create(context, [options]) {
|
|
4144
|
-
if (isGeneratedFile(context
|
|
4149
|
+
if (isGeneratedFile(context, context.sourceCode.text) || isTestFile(context) || isStoryFile(context))
|
|
4145
4150
|
return {};
|
|
4146
4151
|
const iconModules = options?.iconModules ?? ["lucide-react"];
|
|
4147
4152
|
return {
|
|
@@ -4219,7 +4224,7 @@ var require_camelcase_properties_default = createRule({
|
|
|
4219
4224
|
},
|
|
4220
4225
|
defaultOptions: [],
|
|
4221
4226
|
create(context) {
|
|
4222
|
-
if (isGeneratedFile(context
|
|
4227
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
4223
4228
|
const checkProperty = (node) => {
|
|
4224
4229
|
if (node.computed === true || node.key.type !== AST_NODE_TYPES23.Identifier) return;
|
|
4225
4230
|
if (!SNAKE_CASE_RE.test(node.key.name)) return;
|
|
@@ -4298,7 +4303,7 @@ var require_svg_accessible_name_default = createRule({
|
|
|
4298
4303
|
},
|
|
4299
4304
|
defaultOptions: [],
|
|
4300
4305
|
create(context) {
|
|
4301
|
-
if (isGeneratedFile(context
|
|
4306
|
+
if (isGeneratedFile(context, context.sourceCode.text) || isTestFile(context) || isStoryFile(context))
|
|
4302
4307
|
return {};
|
|
4303
4308
|
return {
|
|
4304
4309
|
JSXElement(node) {
|
|
@@ -4459,7 +4464,7 @@ var prefer_logical_tailwind_utilities_default = createRule({
|
|
|
4459
4464
|
},
|
|
4460
4465
|
defaultOptions: [{ enabled: true, checkInsets: false, allowUtilities: [] }],
|
|
4461
4466
|
create(context, [options]) {
|
|
4462
|
-
if (options?.enabled === false || isGeneratedFile(context
|
|
4467
|
+
if (options?.enabled === false || isGeneratedFile(context, context.sourceCode.text) || isTestFile(context) || isStoryFile(context))
|
|
4463
4468
|
return {};
|
|
4464
4469
|
return {
|
|
4465
4470
|
JSXOpeningElement(node) {
|
|
@@ -4610,7 +4615,7 @@ var no_unlocalized_toast_default = createRule({
|
|
|
4610
4615
|
},
|
|
4611
4616
|
defaultOptions: [{ enabled: true }],
|
|
4612
4617
|
create(context, [options]) {
|
|
4613
|
-
if (localizationExcluded(context
|
|
4618
|
+
if (localizationExcluded(context, context.sourceCode.text, options))
|
|
4614
4619
|
return {};
|
|
4615
4620
|
const functions = options?.functions ?? [
|
|
4616
4621
|
{ module: "sonner", export: "toast" },
|
|
@@ -4722,7 +4727,7 @@ var no_unlocalized_jsx_attributes_default = createRule({
|
|
|
4722
4727
|
},
|
|
4723
4728
|
defaultOptions: [{ enabled: true }],
|
|
4724
4729
|
create(context, [options]) {
|
|
4725
|
-
if (localizationExcluded(context
|
|
4730
|
+
if (localizationExcluded(context, context.sourceCode.text, options))
|
|
4726
4731
|
return {};
|
|
4727
4732
|
const attributes = options?.attributes ?? [
|
|
4728
4733
|
"title",
|
|
@@ -4800,7 +4805,7 @@ var no_unlocalized_jsx_text_default = createRule({
|
|
|
4800
4805
|
},
|
|
4801
4806
|
defaultOptions: [{ enabled: true }],
|
|
4802
4807
|
create(context, [options]) {
|
|
4803
|
-
if (localizationExcluded(context
|
|
4808
|
+
if (localizationExcluded(context, context.sourceCode.text, options))
|
|
4804
4809
|
return {};
|
|
4805
4810
|
return {
|
|
4806
4811
|
JSXText(node) {
|
|
@@ -5092,7 +5097,7 @@ var enforce_file_structure_default = createRule({
|
|
|
5092
5097
|
},
|
|
5093
5098
|
defaultOptions: [],
|
|
5094
5099
|
create(context) {
|
|
5095
|
-
if (isTestFile(context
|
|
5100
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
5096
5101
|
return {};
|
|
5097
5102
|
}
|
|
5098
5103
|
return {
|
|
@@ -5474,7 +5479,7 @@ var duplicate_test_body_default = createRule({
|
|
|
5474
5479
|
},
|
|
5475
5480
|
defaultOptions: [],
|
|
5476
5481
|
create(context) {
|
|
5477
|
-
if (!isTestFile(context
|
|
5482
|
+
if (!isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
5478
5483
|
return {};
|
|
5479
5484
|
}
|
|
5480
5485
|
const siblings = /* @__PURE__ */ new Map();
|
|
@@ -5716,7 +5721,7 @@ var excessive_commentary_default = createRule({
|
|
|
5716
5721
|
create(context) {
|
|
5717
5722
|
return {
|
|
5718
5723
|
Program() {
|
|
5719
|
-
for (const group of proseGroups(context
|
|
5724
|
+
for (const group of proseGroups(context, context.sourceCode)) {
|
|
5720
5725
|
const lines = lineCount(group.text);
|
|
5721
5726
|
const words2 = wordCount(group.text);
|
|
5722
5727
|
if (isJSDoc(group.comment)) {
|
|
@@ -6507,7 +6512,7 @@ var no_comment_cruft_default = createRule({
|
|
|
6507
6512
|
},
|
|
6508
6513
|
defaultOptions: [],
|
|
6509
6514
|
create(context) {
|
|
6510
|
-
if (isGeneratedFile(context
|
|
6515
|
+
if (isGeneratedFile(context, context.sourceCode.text)) {
|
|
6511
6516
|
return {};
|
|
6512
6517
|
}
|
|
6513
6518
|
const sourceCode = context.sourceCode;
|
|
@@ -6606,7 +6611,7 @@ var no_comment_cruft_default = createRule({
|
|
|
6606
6611
|
return {
|
|
6607
6612
|
Program() {
|
|
6608
6613
|
const comments = sourceCode.getAllComments();
|
|
6609
|
-
const callMatrixStems = isTestFile(context
|
|
6614
|
+
const callMatrixStems = isTestFile(context) ? testCallMatrixStems(comments) : /* @__PURE__ */ new Set();
|
|
6610
6615
|
const walls = findCommentWalls(comments);
|
|
6611
6616
|
const wallByLeader = new Map(walls.map((wall) => [wall.leader, wall]));
|
|
6612
6617
|
const wallMembers = new Set(walls.flatMap((wall) => [...wall.members]));
|
|
@@ -7055,7 +7060,7 @@ var no_duplicate_lifecycle_refresh_listeners_default = createRule({
|
|
|
7055
7060
|
},
|
|
7056
7061
|
defaultOptions: [],
|
|
7057
7062
|
create(context) {
|
|
7058
|
-
if (isTestFile(context
|
|
7063
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
7059
7064
|
const routerHooks = /* @__PURE__ */ new Set();
|
|
7060
7065
|
const routers = /* @__PURE__ */ new Set();
|
|
7061
7066
|
const functionCallbacks = /* @__PURE__ */ new Map();
|
|
@@ -7726,7 +7731,7 @@ var no_enum_default = createRule({
|
|
|
7726
7731
|
const filename = context.filename;
|
|
7727
7732
|
const sourceText = context.sourceCode.getText();
|
|
7728
7733
|
const isIgnoredByOption = ignoreFiles.length > 0 && matchesAnyPattern(filename, ignoreFiles);
|
|
7729
|
-
if (isIgnoredByOption || isGeneratedFile(
|
|
7734
|
+
if (isIgnoredByOption || isGeneratedFile(context, sourceText)) {
|
|
7730
7735
|
return {};
|
|
7731
7736
|
}
|
|
7732
7737
|
return {
|
|
@@ -7880,7 +7885,7 @@ var no_excessive_cognitive_complexity_default = createRule({
|
|
|
7880
7885
|
},
|
|
7881
7886
|
defaultOptions: [],
|
|
7882
7887
|
create(context) {
|
|
7883
|
-
if (isGeneratedFile(context
|
|
7888
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
7884
7889
|
function check(node) {
|
|
7885
7890
|
const points = functionComplexity(node, context.sourceCode.visitorKeys);
|
|
7886
7891
|
const score = points.reduce((sum, point) => sum + point.amount, 0);
|
|
@@ -8281,7 +8286,7 @@ var no_fat_try_blocks_default = createRule({
|
|
|
8281
8286
|
},
|
|
8282
8287
|
defaultOptions: [{ max: MAX_TRY_BODY_STATEMENTS }],
|
|
8283
8288
|
create(context, [options]) {
|
|
8284
|
-
if (isGeneratedFile(context
|
|
8289
|
+
if (isGeneratedFile(context, context.sourceCode.text)) {
|
|
8285
8290
|
return {};
|
|
8286
8291
|
}
|
|
8287
8292
|
const sourceCode = context.sourceCode;
|
|
@@ -8459,7 +8464,7 @@ var no_hand_rolled_sleep_default = createRule({
|
|
|
8459
8464
|
defaultOptions: [{}],
|
|
8460
8465
|
create(context, [optionsArg]) {
|
|
8461
8466
|
const { filename, sourceCode } = context;
|
|
8462
|
-
if (isTestFile(
|
|
8467
|
+
if (isTestFile(context) || isScriptFile(context) || isGeneratedFile(context, sourceCode.getText())) {
|
|
8463
8468
|
return {};
|
|
8464
8469
|
}
|
|
8465
8470
|
const allowIn = optionsArg?.allowIn ?? [];
|
|
@@ -8606,7 +8611,7 @@ var no_hand_rolled_spinner_default = createRule({
|
|
|
8606
8611
|
},
|
|
8607
8612
|
defaultOptions: [],
|
|
8608
8613
|
create(context) {
|
|
8609
|
-
if (DESIGN_SYSTEM_PATH.test(context.filename) || isTestFile(context
|
|
8614
|
+
if (DESIGN_SYSTEM_PATH.test(context.filename) || isTestFile(context) || isStoryFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
8610
8615
|
return {};
|
|
8611
8616
|
}
|
|
8612
8617
|
return {
|
|
@@ -8727,7 +8732,7 @@ var no_insecure_random_id_default = createRule({
|
|
|
8727
8732
|
},
|
|
8728
8733
|
defaultOptions: [],
|
|
8729
8734
|
create(context) {
|
|
8730
|
-
if (isTestFile(context
|
|
8735
|
+
if (isTestFile(context)) {
|
|
8731
8736
|
return {};
|
|
8732
8737
|
}
|
|
8733
8738
|
return {
|
|
@@ -8820,7 +8825,7 @@ var no_detached_global_fetch_default = createRule({
|
|
|
8820
8825
|
defaultOptions: [],
|
|
8821
8826
|
create(context) {
|
|
8822
8827
|
const sourceCode = context.sourceCode;
|
|
8823
|
-
if (isTestFile(context
|
|
8828
|
+
if (isTestFile(context) || isScriptFile(context) || isGeneratedFile(context, sourceCode.text)) return {};
|
|
8824
8829
|
const aliases = /* @__PURE__ */ new Set();
|
|
8825
8830
|
function bindingOf(identifier) {
|
|
8826
8831
|
return ASTUtils24.findVariable(sourceCode.getScope(identifier), identifier.name);
|
|
@@ -8978,7 +8983,7 @@ var no_exception_text_in_5xx_response_default = createRule({
|
|
|
8978
8983
|
defaultOptions: [],
|
|
8979
8984
|
create(context) {
|
|
8980
8985
|
const sourceCode = context.sourceCode;
|
|
8981
|
-
if (isTestFile(context
|
|
8986
|
+
if (isTestFile(context) || isGeneratedFile(context, sourceCode.text)) return {};
|
|
8982
8987
|
const candidates = [];
|
|
8983
8988
|
const changedErrors = /* @__PURE__ */ new Set();
|
|
8984
8989
|
const stableBindings = /* @__PURE__ */ new WeakMap();
|
|
@@ -9710,7 +9715,7 @@ var no_json_stringify_object_equality_default = createRule({
|
|
|
9710
9715
|
defaultOptions: [],
|
|
9711
9716
|
create(context) {
|
|
9712
9717
|
const sourceCode = context.sourceCode;
|
|
9713
|
-
if (isTestFile(context
|
|
9718
|
+
if (isTestFile(context) || isGeneratedFile(context, sourceCode.text)) {
|
|
9714
9719
|
return {};
|
|
9715
9720
|
}
|
|
9716
9721
|
let services;
|
|
@@ -9907,7 +9912,7 @@ var no_impossible_zod_literal_bounds_default = createRule({
|
|
|
9907
9912
|
defaultOptions: [{}],
|
|
9908
9913
|
create(context, [options]) {
|
|
9909
9914
|
const sourceCode = context.sourceCode;
|
|
9910
|
-
if (isTestFile(context
|
|
9915
|
+
if (isTestFile(context) || isGeneratedFile(context, sourceCode.getText())) {
|
|
9911
9916
|
return {};
|
|
9912
9917
|
}
|
|
9913
9918
|
const namespaces = /* @__PURE__ */ new Set();
|
|
@@ -10188,7 +10193,7 @@ var no_in_operator_on_built_in_collections_default = createRule({
|
|
|
10188
10193
|
},
|
|
10189
10194
|
defaultOptions: [],
|
|
10190
10195
|
create(context) {
|
|
10191
|
-
if (isGeneratedFile(context
|
|
10196
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
10192
10197
|
let services;
|
|
10193
10198
|
try {
|
|
10194
10199
|
services = ESLintUtils15.getParserServices(context);
|
|
@@ -10320,7 +10325,7 @@ var no_redundant_optional_array_default_default = createRule({
|
|
|
10320
10325
|
defaultOptions: [],
|
|
10321
10326
|
create(context) {
|
|
10322
10327
|
const sourceCode = context.sourceCode;
|
|
10323
|
-
if (isTestFile(context
|
|
10328
|
+
if (isTestFile(context) || isGeneratedFile(context, sourceCode.getText())) {
|
|
10324
10329
|
return {};
|
|
10325
10330
|
}
|
|
10326
10331
|
const namespaces = /* @__PURE__ */ new Set();
|
|
@@ -10519,7 +10524,7 @@ var interface_contract_members_private_default = createRule({
|
|
|
10519
10524
|
},
|
|
10520
10525
|
defaultOptions: [],
|
|
10521
10526
|
create(context) {
|
|
10522
|
-
if (isGeneratedFile(context
|
|
10527
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
10523
10528
|
let services;
|
|
10524
10529
|
try {
|
|
10525
10530
|
services = ESLintUtils16.getParserServices(context);
|
|
@@ -10815,7 +10820,7 @@ var no_log_only_catch_default = createRule({
|
|
|
10815
10820
|
const above = sourceCode.getCommentsBefore(node).at(-1);
|
|
10816
10821
|
return above !== void 0 && above.loc.end.line === node.loc.start.line - 1;
|
|
10817
10822
|
}
|
|
10818
|
-
if (isTestFile(
|
|
10823
|
+
if (isTestFile(context) || BENCHMARK_DIR_RE.test(filename.replaceAll("\\", "/"))) {
|
|
10819
10824
|
return {};
|
|
10820
10825
|
}
|
|
10821
10826
|
return {
|
|
@@ -10987,7 +10992,7 @@ var no_bare_return_from_test_catch_default = createRule({
|
|
|
10987
10992
|
},
|
|
10988
10993
|
defaultOptions: [],
|
|
10989
10994
|
create(context) {
|
|
10990
|
-
if (!isTestFile(context
|
|
10995
|
+
if (!isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
10991
10996
|
return {
|
|
10992
10997
|
ReturnStatement(node) {
|
|
10993
10998
|
if (node.argument !== null) return;
|
|
@@ -11114,7 +11119,7 @@ var no_bespoke_api_case_conversion_default = createRule({
|
|
|
11114
11119
|
create(context) {
|
|
11115
11120
|
const filename = context.filename.replaceAll("\\", "/");
|
|
11116
11121
|
const basename = filename.slice(filename.lastIndexOf("/") + 1);
|
|
11117
|
-
if (!ADAPTER_BASENAME_RE.test(basename) || isGeneratedFile(
|
|
11122
|
+
if (!ADAPTER_BASENAME_RE.test(basename) || isGeneratedFile(context, context.sourceCode.text) || isTestFile(context, ["fixtureTree"])) {
|
|
11118
11123
|
return {};
|
|
11119
11124
|
}
|
|
11120
11125
|
const hasApiReceiver = (value) => {
|
|
@@ -11246,7 +11251,7 @@ var no_long_comment_default = createRule({
|
|
|
11246
11251
|
if (VERSIONED_DEPENDENCY_TREE_RE.test(normalizedFilename)) return {};
|
|
11247
11252
|
return {
|
|
11248
11253
|
Program() {
|
|
11249
|
-
for (const group of proseGroups(context
|
|
11254
|
+
for (const group of proseGroups(context, context.sourceCode)) {
|
|
11250
11255
|
if (group.comment.type !== "Block" || !group.comment.value.startsWith("*") || group.hasTypedTags || hasDocumentationStructure(group.text) || hasTechnicalAnchor(group.text) || documentsTypedFunction(context.sourceCode, group.comment) || documentsTypeOrMember2(context.sourceCode, group.comment) || sentenceUnits(group.text) < EXCESSIVE_SENTENCE_COUNT && wordUnits(group.text) < EXCESSIVE_WORD_COUNT) continue;
|
|
11251
11256
|
context.report({ node: group.comment, messageId: "tooLong" });
|
|
11252
11257
|
}
|
|
@@ -11510,7 +11515,7 @@ var no_generic_single_export_module_default = createRule({
|
|
|
11510
11515
|
create(context) {
|
|
11511
11516
|
const file = fileParts(context.filename);
|
|
11512
11517
|
const { stem: stem4 } = file;
|
|
11513
|
-
if (!GENERIC_MODULE_STEMS.has(stem4) || isTestFile(context
|
|
11518
|
+
if (!GENERIC_MODULE_STEMS.has(stem4) || isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
11514
11519
|
let hasCommonJsExport = false;
|
|
11515
11520
|
return {
|
|
11516
11521
|
"CallExpression, MemberExpression"(node) {
|
|
@@ -11569,7 +11574,7 @@ var no_offset_pagination_default = createRule({
|
|
|
11569
11574
|
},
|
|
11570
11575
|
defaultOptions: [],
|
|
11571
11576
|
create(context) {
|
|
11572
|
-
if (isTestFile(context
|
|
11577
|
+
if (isTestFile(context)) {
|
|
11573
11578
|
return {};
|
|
11574
11579
|
}
|
|
11575
11580
|
return createSqlListener((sql, node) => {
|
|
@@ -11838,7 +11843,7 @@ var no_positional_tuple_return_default = createRule({
|
|
|
11838
11843
|
},
|
|
11839
11844
|
defaultOptions: [],
|
|
11840
11845
|
create(context) {
|
|
11841
|
-
if (isGeneratedFile(context
|
|
11846
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
11842
11847
|
const specifierExports = specifierExportedNames(context.sourceCode.ast);
|
|
11843
11848
|
const typeExports = publiclyReachableTypeNames(
|
|
11844
11849
|
context.sourceCode.ast,
|
|
@@ -12106,7 +12111,7 @@ var no_raw_env_default = createRule({
|
|
|
12106
12111
|
defaultOptions: [],
|
|
12107
12112
|
create(context) {
|
|
12108
12113
|
const filename = context.filename;
|
|
12109
|
-
if (isTestFile(
|
|
12114
|
+
if (isTestFile(context) || isScriptFile(context) || CONFIG_FILE_RE.test(filename.replaceAll("\\", "/"))) {
|
|
12110
12115
|
return {};
|
|
12111
12116
|
}
|
|
12112
12117
|
const reads = [];
|
|
@@ -12307,7 +12312,7 @@ var no_raw_fetch_outside_clients_default = createRule({
|
|
|
12307
12312
|
defaultOptions: [{}],
|
|
12308
12313
|
create(context, [options]) {
|
|
12309
12314
|
const filename = context.filename;
|
|
12310
|
-
if (isTestFile(
|
|
12315
|
+
if (isTestFile(context) || isScriptFile(context) || NON_PRODUCTION_TREE_RE.test(filename)) {
|
|
12311
12316
|
return {};
|
|
12312
12317
|
}
|
|
12313
12318
|
const patterns = options?.allow ?? DEFAULT_ALLOW;
|
|
@@ -12584,7 +12589,7 @@ var no_router_refresh_polling_default = createRule({
|
|
|
12584
12589
|
},
|
|
12585
12590
|
defaultOptions: [],
|
|
12586
12591
|
create(context) {
|
|
12587
|
-
if (isTestFile(context
|
|
12592
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
12588
12593
|
const routerHooks = /* @__PURE__ */ new Set();
|
|
12589
12594
|
const routers = /* @__PURE__ */ new Set();
|
|
12590
12595
|
const reportedCallbacks = /* @__PURE__ */ new WeakSet();
|
|
@@ -12690,7 +12695,7 @@ var no_repeated_string_literal_default = createRule({
|
|
|
12690
12695
|
},
|
|
12691
12696
|
defaultOptions: [],
|
|
12692
12697
|
create(context) {
|
|
12693
|
-
if (isTestFile(context
|
|
12698
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
12694
12699
|
return {};
|
|
12695
12700
|
}
|
|
12696
12701
|
const occurrences = /* @__PURE__ */ new Map();
|
|
@@ -12843,7 +12848,7 @@ var no_restated_comment_default = createRule({
|
|
|
12843
12848
|
},
|
|
12844
12849
|
defaultOptions: [],
|
|
12845
12850
|
create(context) {
|
|
12846
|
-
if (isGeneratedFile(context
|
|
12851
|
+
if (isGeneratedFile(context, context.sourceCode.text)) {
|
|
12847
12852
|
return {};
|
|
12848
12853
|
}
|
|
12849
12854
|
const sourceCode = context.sourceCode;
|
|
@@ -13029,7 +13034,7 @@ var no_restated_jsdoc_default = createRule({
|
|
|
13029
13034
|
},
|
|
13030
13035
|
defaultOptions: [],
|
|
13031
13036
|
create(context) {
|
|
13032
|
-
if (isGeneratedFile(context
|
|
13037
|
+
if (isGeneratedFile(context, context.sourceCode.text)) {
|
|
13033
13038
|
return {};
|
|
13034
13039
|
}
|
|
13035
13040
|
const sourceCode = context.sourceCode;
|
|
@@ -13364,7 +13369,7 @@ var no_secret_in_log_default = createRule({
|
|
|
13364
13369
|
defaultOptions: [{}],
|
|
13365
13370
|
create(context, [loggingOptions]) {
|
|
13366
13371
|
const matcher = createLogMatcher(loggingOptions);
|
|
13367
|
-
const blobArmApplies = !isTestFile(context
|
|
13372
|
+
const blobArmApplies = !isTestFile(context);
|
|
13368
13373
|
function resolvesToGlobal(identifier) {
|
|
13369
13374
|
const variable = ASTUtils40.findVariable(context.sourceCode.getScope(identifier), identifier.name);
|
|
13370
13375
|
return variable === null || variable.defs.length === 0;
|
|
@@ -13636,7 +13641,7 @@ var no_select_star_default = createRule({
|
|
|
13636
13641
|
},
|
|
13637
13642
|
defaultOptions: [],
|
|
13638
13643
|
create(context) {
|
|
13639
|
-
if (isTestFile(context
|
|
13644
|
+
if (isTestFile(context)) {
|
|
13640
13645
|
return {};
|
|
13641
13646
|
}
|
|
13642
13647
|
return createSqlListener((sql, node) => {
|
|
@@ -14014,7 +14019,7 @@ var no_sentinel_return_on_catch_default = createRule({
|
|
|
14014
14019
|
},
|
|
14015
14020
|
defaultOptions: [{}],
|
|
14016
14021
|
create(context, [loggingOptions]) {
|
|
14017
|
-
if (isGeneratedFile(context
|
|
14022
|
+
if (isGeneratedFile(context, context.sourceCode.text)) {
|
|
14018
14023
|
return {};
|
|
14019
14024
|
}
|
|
14020
14025
|
const matcher = createLogMatcher(loggingOptions);
|
|
@@ -14254,7 +14259,7 @@ var no_silent_promise_catch_default = createRule({
|
|
|
14254
14259
|
},
|
|
14255
14260
|
defaultOptions: [],
|
|
14256
14261
|
create(context) {
|
|
14257
|
-
if (isTestFile(context
|
|
14262
|
+
if (isTestFile(context) || isScriptFile(context)) {
|
|
14258
14263
|
return {};
|
|
14259
14264
|
}
|
|
14260
14265
|
function isZodSchema(node, seen = /* @__PURE__ */ new Set()) {
|
|
@@ -14449,7 +14454,7 @@ var no_sleep_in_test_body_default = createRule({
|
|
|
14449
14454
|
},
|
|
14450
14455
|
defaultOptions: [],
|
|
14451
14456
|
create(context) {
|
|
14452
|
-
if (!isTestFile(context
|
|
14457
|
+
if (!isTestFile(context)) {
|
|
14453
14458
|
return {};
|
|
14454
14459
|
}
|
|
14455
14460
|
const report2 = (node) => {
|
|
@@ -14587,7 +14592,7 @@ var no_storage_in_stateless_modules_default = createRule({
|
|
|
14587
14592
|
},
|
|
14588
14593
|
defaultOptions: [{}],
|
|
14589
14594
|
create(context, [options]) {
|
|
14590
|
-
if (isTestFile(context
|
|
14595
|
+
if (isTestFile(context)) {
|
|
14591
14596
|
return {};
|
|
14592
14597
|
}
|
|
14593
14598
|
const modules = options?.modules ?? [];
|
|
@@ -14827,7 +14832,7 @@ var no_string_concat_in_loop_default = createRule({
|
|
|
14827
14832
|
},
|
|
14828
14833
|
defaultOptions: [],
|
|
14829
14834
|
create(context) {
|
|
14830
|
-
if (isGeneratedFile(context
|
|
14835
|
+
if (isGeneratedFile(context, context.sourceCode.text)) {
|
|
14831
14836
|
return {};
|
|
14832
14837
|
}
|
|
14833
14838
|
const reported = /* @__PURE__ */ new WeakMap();
|
|
@@ -14988,7 +14993,7 @@ var no_duplicate_test_case_default = createRule({
|
|
|
14988
14993
|
},
|
|
14989
14994
|
defaultOptions: [],
|
|
14990
14995
|
create(context) {
|
|
14991
|
-
if (!isTestFile(context
|
|
14996
|
+
if (!isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
14992
14997
|
const inspected = /* @__PURE__ */ new Set();
|
|
14993
14998
|
return {
|
|
14994
14999
|
CallExpression(node) {
|
|
@@ -15341,7 +15346,7 @@ var no_tautological_expect_default = createRule({
|
|
|
15341
15346
|
},
|
|
15342
15347
|
defaultOptions: [],
|
|
15343
15348
|
create(context) {
|
|
15344
|
-
if (!isTestFile(context
|
|
15349
|
+
if (!isTestFile(context)) {
|
|
15345
15350
|
return {};
|
|
15346
15351
|
}
|
|
15347
15352
|
const customized = customizedMatchers(context.sourceCode);
|
|
@@ -15567,7 +15572,7 @@ var no_typed_doc_sections_default = createRule({
|
|
|
15567
15572
|
create(context) {
|
|
15568
15573
|
return {
|
|
15569
15574
|
Program() {
|
|
15570
|
-
for (const group of proseGroups(context
|
|
15575
|
+
for (const group of proseGroups(context, context.sourceCode, true)) {
|
|
15571
15576
|
const signature = documentedSignature(context.sourceCode, group.comment);
|
|
15572
15577
|
if (group.hasTypedTags && signature !== null && typedTags(group.text).some((tag) => isVacuousTag(tag, signature, context.sourceCode))) {
|
|
15573
15578
|
context.report({ node: group.comment, messageId: "typedSection" });
|
|
@@ -15743,7 +15748,7 @@ var no_trailing_value_narration_default = createRule({
|
|
|
15743
15748
|
},
|
|
15744
15749
|
defaultOptions: [],
|
|
15745
15750
|
create(context) {
|
|
15746
|
-
if (isGeneratedFile(context
|
|
15751
|
+
if (isGeneratedFile(context, context.sourceCode.text)) {
|
|
15747
15752
|
return {};
|
|
15748
15753
|
}
|
|
15749
15754
|
const sourceCode = context.sourceCode;
|
|
@@ -16017,7 +16022,7 @@ var no_declaration_comment_wall_default = createRule({
|
|
|
16017
16022
|
create(context, [provided]) {
|
|
16018
16023
|
const options = { ...WALL_DEFAULTS, ...provided };
|
|
16019
16024
|
const sourceCode = context.sourceCode;
|
|
16020
|
-
if (isGeneratedFile(context
|
|
16025
|
+
if (isGeneratedFile(context, sourceCode.text) || isTestFile(context) || isStoryFile(context)) {
|
|
16021
16026
|
return {};
|
|
16022
16027
|
}
|
|
16023
16028
|
const endingOn = /* @__PURE__ */ new Map();
|
|
@@ -16197,7 +16202,7 @@ var no_union_in_comment_default = createRule({
|
|
|
16197
16202
|
defaultOptions: [],
|
|
16198
16203
|
create(context) {
|
|
16199
16204
|
const sourceCode = context.sourceCode;
|
|
16200
|
-
if (isGeneratedFile(context
|
|
16205
|
+
if (isGeneratedFile(context, sourceCode.text)) {
|
|
16201
16206
|
return {};
|
|
16202
16207
|
}
|
|
16203
16208
|
function annotated(comment) {
|
|
@@ -16298,7 +16303,7 @@ var no_type_member_comment_wall_default = createRule({
|
|
|
16298
16303
|
create(context, [provided]) {
|
|
16299
16304
|
const options = { ...WALL_DEFAULTS, ...provided };
|
|
16300
16305
|
const sourceCode = context.sourceCode;
|
|
16301
|
-
if (isGeneratedFile(context
|
|
16306
|
+
if (isGeneratedFile(context, sourceCode.text, ["externalTree"]) || isTestFile(context, ["fixtureTree"]) || isStoryFile(context, ["storyTree"])) {
|
|
16302
16307
|
return {};
|
|
16303
16308
|
}
|
|
16304
16309
|
const endingOn = /* @__PURE__ */ new Map();
|
|
@@ -16685,7 +16690,7 @@ var no_unsafe_mock_casting_default = createRule({
|
|
|
16685
16690
|
},
|
|
16686
16691
|
defaultOptions: [],
|
|
16687
16692
|
create(context) {
|
|
16688
|
-
if (isGeneratedFile(context
|
|
16693
|
+
if (isGeneratedFile(context, context.sourceCode.text)) {
|
|
16689
16694
|
return {};
|
|
16690
16695
|
}
|
|
16691
16696
|
const directBindings = /* @__PURE__ */ new Set();
|
|
@@ -16778,7 +16783,7 @@ var no_unsafe_test_double_cast_default = createRule({
|
|
|
16778
16783
|
},
|
|
16779
16784
|
defaultOptions: [],
|
|
16780
16785
|
create(context) {
|
|
16781
|
-
if (!isTestFile(context
|
|
16786
|
+
if (!isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
16782
16787
|
return {
|
|
16783
16788
|
TSAsExpression(node) {
|
|
16784
16789
|
if ((node.expression.type === AST_NODE_TYPES78.TSAsExpression || node.expression.type === AST_NODE_TYPES78.TSTypeAssertion) && isUnknown(node.expression.typeAnnotation) && containsMockFactory(node.expression.expression, context.sourceCode)) context.report({ node, messageId: "noUnsafeTestDoubleCast" });
|
|
@@ -16817,7 +16822,7 @@ var no_first_party_module_mock_default = createRule({
|
|
|
16817
16822
|
},
|
|
16818
16823
|
defaultOptions: [{ additionalModulePrefixes: [] }],
|
|
16819
16824
|
create(context, [options]) {
|
|
16820
|
-
if (!isTestFile(context
|
|
16825
|
+
if (!isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
16821
16826
|
return {
|
|
16822
16827
|
CallExpression(node) {
|
|
16823
16828
|
const unwrappedNodeCallee = unwrapExpression(node.callee);
|
|
@@ -16953,10 +16958,10 @@ var no_zod_native_enum_default = createRule({
|
|
|
16953
16958
|
defaultOptions: [],
|
|
16954
16959
|
create(context) {
|
|
16955
16960
|
const sourceCode = context.sourceCode;
|
|
16956
|
-
if (isGeneratedFile(context
|
|
16961
|
+
if (isGeneratedFile(context, sourceCode.getText())) {
|
|
16957
16962
|
return {};
|
|
16958
16963
|
}
|
|
16959
|
-
if (isTestFile(context
|
|
16964
|
+
if (isTestFile(context)) {
|
|
16960
16965
|
return {};
|
|
16961
16966
|
}
|
|
16962
16967
|
let services;
|
|
@@ -17163,7 +17168,7 @@ var test_loops_over_literal_cases_default = createRule({
|
|
|
17163
17168
|
},
|
|
17164
17169
|
defaultOptions: [],
|
|
17165
17170
|
create(context) {
|
|
17166
|
-
if (!isTestFile(context
|
|
17171
|
+
if (!isTestFile(context)) {
|
|
17167
17172
|
return {};
|
|
17168
17173
|
}
|
|
17169
17174
|
const isFrameworkTest = (identifier) => TEST_CALLERS3.has(runtimeTestFrameworkName(context.sourceCode, identifier, "test") ?? "");
|
|
@@ -17275,7 +17280,7 @@ var test_phase_label_comment_default = createRule({
|
|
|
17275
17280
|
},
|
|
17276
17281
|
defaultOptions: [],
|
|
17277
17282
|
create(context) {
|
|
17278
|
-
if (!isTestFile(context
|
|
17283
|
+
if (!isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
17279
17284
|
return {
|
|
17280
17285
|
Program() {
|
|
17281
17286
|
const comments = context.sourceCode.getAllComments();
|
|
@@ -17379,7 +17384,7 @@ var prefer_constant_time_secret_compare_default = createRule({
|
|
|
17379
17384
|
},
|
|
17380
17385
|
defaultOptions: [],
|
|
17381
17386
|
create(context) {
|
|
17382
|
-
if (isTestFile(context
|
|
17387
|
+
if (isTestFile(context)) {
|
|
17383
17388
|
return {};
|
|
17384
17389
|
}
|
|
17385
17390
|
const sourceCode = context.sourceCode;
|
|
@@ -17519,7 +17524,7 @@ var prefer_ecmascript_private_members_default = createRule({
|
|
|
17519
17524
|
},
|
|
17520
17525
|
defaultOptions: [],
|
|
17521
17526
|
create(context) {
|
|
17522
|
-
if (isGeneratedFile(context
|
|
17527
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
17523
17528
|
let services;
|
|
17524
17529
|
try {
|
|
17525
17530
|
services = ESLintUtils18.getParserServices(context);
|
|
@@ -17924,7 +17929,7 @@ var prefer_discriminated_union_default = createRule({
|
|
|
17924
17929
|
},
|
|
17925
17930
|
defaultOptions: [],
|
|
17926
17931
|
create(context) {
|
|
17927
|
-
if (isTestFile(context
|
|
17932
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
17928
17933
|
return {};
|
|
17929
17934
|
}
|
|
17930
17935
|
const reportedContracts = /* @__PURE__ */ new Set();
|
|
@@ -18205,7 +18210,7 @@ var prefer_millisecond_control_duration_schema_default = createRule({
|
|
|
18205
18210
|
},
|
|
18206
18211
|
defaultOptions: [],
|
|
18207
18212
|
create(context) {
|
|
18208
|
-
if (isGeneratedFile(context
|
|
18213
|
+
if (isGeneratedFile(context, context.sourceCode.text) || isTestFile(context, ["fixtureTree"])) {
|
|
18209
18214
|
return {};
|
|
18210
18215
|
}
|
|
18211
18216
|
const zodNamespaces = /* @__PURE__ */ new Set();
|
|
@@ -18510,7 +18515,7 @@ var prefer_immutable_module_constant_default = createRule({
|
|
|
18510
18515
|
const declaration = definitions2.length === 1 ? definitions2[0]?.node : void 0;
|
|
18511
18516
|
return declaration?.type === AST_NODE_TYPES89.TSTypeAliasDeclaration || declaration?.type === AST_NODE_TYPES89.TSTypeParameter ? declaration : void 0;
|
|
18512
18517
|
};
|
|
18513
|
-
if (JAVASCRIPT_FILE_RE.test(context.filename) || isTestFile(context
|
|
18518
|
+
if (JAVASCRIPT_FILE_RE.test(context.filename) || isTestFile(context) || isGeneratedFile(context, sourceCode.getText())) {
|
|
18514
18519
|
return {};
|
|
18515
18520
|
}
|
|
18516
18521
|
const exportedNames2 = /* @__PURE__ */ new Set();
|
|
@@ -18924,7 +18929,7 @@ var prefer_shadcn_primitives_default = createRule({
|
|
|
18924
18929
|
defaultOptions: [{}],
|
|
18925
18930
|
create(context, [options]) {
|
|
18926
18931
|
const filename = context.filename.replaceAll("\\", "/");
|
|
18927
|
-
if (isTestFile(
|
|
18932
|
+
if (isTestFile(context) || isStoryFile(context) || isGeneratedFile(context, context.sourceCode.text) || SHARED_PRIMITIVE_IMPLEMENTATION_RE.test(filename)) {
|
|
18928
18933
|
return {};
|
|
18929
18934
|
}
|
|
18930
18935
|
const detectsProject = options?.detectProjectPrimitives === true;
|
|
@@ -19236,7 +19241,7 @@ var prefer_module_level_constant_default = createRule({
|
|
|
19236
19241
|
if (isIgnoredFile(filename, sourceCode.getText())) {
|
|
19237
19242
|
return {};
|
|
19238
19243
|
}
|
|
19239
|
-
if (ignoreTestFiles && isLocalFixtureFile(
|
|
19244
|
+
if (ignoreTestFiles && isLocalFixtureFile(context)) {
|
|
19240
19245
|
return {};
|
|
19241
19246
|
}
|
|
19242
19247
|
function allReferencesAreSafeReads(declarator) {
|
|
@@ -19570,11 +19575,10 @@ var prefer_module_level_schema_default = createRule({
|
|
|
19570
19575
|
const memoCallees = new Set(options?.memoCallees ?? MEMO_CALLEES);
|
|
19571
19576
|
const minProperties = options?.minProperties ?? DEFAULT_MIN_PROPERTIES;
|
|
19572
19577
|
const sourceCode = context.sourceCode;
|
|
19573
|
-
|
|
19574
|
-
if (isGeneratedFile(filename, sourceCode.getText())) {
|
|
19578
|
+
if (isGeneratedFile(context, sourceCode.getText())) {
|
|
19575
19579
|
return {};
|
|
19576
19580
|
}
|
|
19577
|
-
if (ignoreTestFiles && isTestFile(
|
|
19581
|
+
if (ignoreTestFiles && isTestFile(context)) {
|
|
19578
19582
|
return {};
|
|
19579
19583
|
}
|
|
19580
19584
|
const zodNamespaces = /* @__PURE__ */ new Set();
|
|
@@ -20021,7 +20025,7 @@ var prefer_module_level_refined_schema_default = createRule({
|
|
|
20021
20025
|
},
|
|
20022
20026
|
defaultOptions: [],
|
|
20023
20027
|
create(context) {
|
|
20024
|
-
if (isTestFile(context
|
|
20028
|
+
if (isTestFile(context) || BENCHMARK_PATH_RE.test(context.filename) || isGeneratedFile(context, context.sourceCode.text))
|
|
20025
20029
|
return {};
|
|
20026
20030
|
const zodBindings = /* @__PURE__ */ new Set();
|
|
20027
20031
|
function resolvedBinding(identifier) {
|
|
@@ -20223,7 +20227,7 @@ var prefer_multi_value_zod_literal_default = createRule({
|
|
|
20223
20227
|
},
|
|
20224
20228
|
defaultOptions: [{}],
|
|
20225
20229
|
create(context, [options]) {
|
|
20226
|
-
if (isTestFile(context
|
|
20230
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text))
|
|
20227
20231
|
return {};
|
|
20228
20232
|
const zodBindings = /* @__PURE__ */ new Set();
|
|
20229
20233
|
const zod4Bindings = /* @__PURE__ */ new Set();
|
|
@@ -20408,7 +20412,7 @@ var prefer_nominal_id_types_default = createRule({
|
|
|
20408
20412
|
},
|
|
20409
20413
|
defaultOptions: [],
|
|
20410
20414
|
create(context) {
|
|
20411
|
-
if (isGeneratedFile(context
|
|
20415
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
20412
20416
|
return {
|
|
20413
20417
|
ArrowFunctionExpression: (node) => checkBoundary(node, context),
|
|
20414
20418
|
FunctionDeclaration: (node) => checkBoundary(node, context),
|
|
@@ -20460,7 +20464,7 @@ var prefer_named_callback_domain_default = createRule({
|
|
|
20460
20464
|
},
|
|
20461
20465
|
defaultOptions: [],
|
|
20462
20466
|
create(context) {
|
|
20463
|
-
if (isTestFile(context
|
|
20467
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
20464
20468
|
return {
|
|
20465
20469
|
TSFunctionType(node) {
|
|
20466
20470
|
if (!exportedContract(node)) return;
|
|
@@ -20526,7 +20530,7 @@ var prefer_named_complex_return_type_default = createRule({
|
|
|
20526
20530
|
},
|
|
20527
20531
|
defaultOptions: [],
|
|
20528
20532
|
create(context) {
|
|
20529
|
-
if (isTestFile(context
|
|
20533
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
20530
20534
|
return {
|
|
20531
20535
|
ArrowFunctionExpression: (node) => report(context, node),
|
|
20532
20536
|
FunctionDeclaration: (node) => report(context, node),
|
|
@@ -20832,7 +20836,7 @@ var prefer_node_fs_promises_default = createRule({
|
|
|
20832
20836
|
defaultOptions: [],
|
|
20833
20837
|
create(context) {
|
|
20834
20838
|
const normalizedFilename = context.filename.replaceAll("\\", "/");
|
|
20835
|
-
if (isTestFile(context
|
|
20839
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text) || normalizedFilename.includes("src/rules/"))
|
|
20836
20840
|
return {};
|
|
20837
20841
|
const namespaces = /* @__PURE__ */ new Set();
|
|
20838
20842
|
const bindingOf = (node) => ASTUtils62.findVariable(context.sourceCode.getScope(node), node.name);
|
|
@@ -21253,7 +21257,7 @@ var prefer_non_nullable_collection_default = createRule({
|
|
|
21253
21257
|
},
|
|
21254
21258
|
defaultOptions: [],
|
|
21255
21259
|
create(context) {
|
|
21256
|
-
if (isTestFile(context
|
|
21260
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
21257
21261
|
return {};
|
|
21258
21262
|
}
|
|
21259
21263
|
let shapes = /* @__PURE__ */ new Map();
|
|
@@ -21475,7 +21479,7 @@ var prefer_nullish_filter_predicate_default = createRule({
|
|
|
21475
21479
|
},
|
|
21476
21480
|
defaultOptions: [],
|
|
21477
21481
|
create(context) {
|
|
21478
|
-
if (isGeneratedFile(context
|
|
21482
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
21479
21483
|
let services;
|
|
21480
21484
|
try {
|
|
21481
21485
|
services = ESLintUtils19.getParserServices(context);
|
|
@@ -22041,7 +22045,7 @@ var prefer_schema_for_api_payload_default = createRule({
|
|
|
22041
22045
|
},
|
|
22042
22046
|
defaultOptions: [],
|
|
22043
22047
|
create(context) {
|
|
22044
|
-
if (isTestFile(context
|
|
22048
|
+
if (isTestFile(context) || isScriptFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
22045
22049
|
return {};
|
|
22046
22050
|
}
|
|
22047
22051
|
const unvalidatedVariables = /* @__PURE__ */ new Set();
|
|
@@ -22348,7 +22352,7 @@ var prefer_shared_zod_enum_default = createRule({
|
|
|
22348
22352
|
},
|
|
22349
22353
|
defaultOptions: [],
|
|
22350
22354
|
create(context) {
|
|
22351
|
-
if (isTestFile(context
|
|
22355
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
22352
22356
|
const zodBindings = /* @__PURE__ */ new Set();
|
|
22353
22357
|
const bindingOf = (node) => ASTUtils68.findVariable(context.sourceCode.getScope(node), node.name);
|
|
22354
22358
|
const candidates = /* @__PURE__ */ new Map();
|
|
@@ -22436,7 +22440,7 @@ var prefer_switch_for_repeated_equality_default = createRule({
|
|
|
22436
22440
|
},
|
|
22437
22441
|
defaultOptions: [],
|
|
22438
22442
|
create(context) {
|
|
22439
|
-
if (isGeneratedFile(context
|
|
22443
|
+
if (isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
22440
22444
|
return {
|
|
22441
22445
|
IfStatement(node) {
|
|
22442
22446
|
if (node.parent.type === AST_NODE_TYPES107.IfStatement && node.parent.alternate === node) return;
|
|
@@ -23332,7 +23336,7 @@ var prefer_whole_object_assertion_default = createRule({
|
|
|
23332
23336
|
},
|
|
23333
23337
|
defaultOptions: [],
|
|
23334
23338
|
create(context) {
|
|
23335
|
-
if (!isTestFile(context
|
|
23339
|
+
if (!isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
23336
23340
|
return {};
|
|
23337
23341
|
}
|
|
23338
23342
|
const { sourceCode } = context;
|
|
@@ -23674,7 +23678,7 @@ var repeated_static_call_cases_default = createRule({
|
|
|
23674
23678
|
defaultOptions: [],
|
|
23675
23679
|
create(context) {
|
|
23676
23680
|
const sourceCode = context.sourceCode;
|
|
23677
|
-
if (!isTestFile(context
|
|
23681
|
+
if (!isTestFile(context) || isGeneratedFile(context, sourceCode.text)) return {};
|
|
23678
23682
|
const duplicateGroups = /* @__PURE__ */ new Map();
|
|
23679
23683
|
const pending = [];
|
|
23680
23684
|
return {
|
|
@@ -24183,7 +24187,7 @@ var prefer_zod_infer_default = createRule({
|
|
|
24183
24187
|
(source) => new RegExp(source, "u")
|
|
24184
24188
|
);
|
|
24185
24189
|
const requireIdenticalShape = optionsArg?.requireIdenticalShape ?? true;
|
|
24186
|
-
if (isTestFile(context
|
|
24190
|
+
if (isTestFile(context) || isStoryFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
24187
24191
|
return {};
|
|
24188
24192
|
}
|
|
24189
24193
|
const zodNamespaces = /* @__PURE__ */ new Set();
|
|
@@ -24503,7 +24507,7 @@ var named_child_schema_type_default = createRule({
|
|
|
24503
24507
|
defaultOptions: [],
|
|
24504
24508
|
create(context) {
|
|
24505
24509
|
const source = context.sourceCode;
|
|
24506
|
-
if (isGeneratedFile(context
|
|
24510
|
+
if (isGeneratedFile(context, source.text)) return {};
|
|
24507
24511
|
const namespaces = /* @__PURE__ */ new Set();
|
|
24508
24512
|
const bindingOf = (node) => ASTUtils74.findVariable(source.getScope(node), node.name);
|
|
24509
24513
|
function namespaceOf(type) {
|
|
@@ -24982,7 +24986,7 @@ function reportCandidates(context, services, schemas, candidates, zodNamespaces,
|
|
|
24982
24986
|
const declaration = handWrittenObjectDeclaration(contractSymbol);
|
|
24983
24987
|
if (declaration === null || declaration.getSourceFile().isDeclarationFile) return;
|
|
24984
24988
|
const source = declaration.getSourceFile();
|
|
24985
|
-
if (isGeneratedFile(source.fileName, source.text)) return;
|
|
24989
|
+
if (isGeneratedFile({ filename: source.fileName, cwd: context.cwd }, source.text)) return;
|
|
24986
24990
|
const tsOutput = services.esTreeNodeToTSNodeMap.get(candidate2.output);
|
|
24987
24991
|
const parsed = checker.getTypeAtLocation(tsOutput);
|
|
24988
24992
|
if (hasAuthoritativeOutputContract(checker, tsOutput, contractSymbol)) return;
|
|
@@ -25064,7 +25068,7 @@ var prefer_zod_parse_output_type_default = createRule({
|
|
|
25064
25068
|
},
|
|
25065
25069
|
defaultOptions: [],
|
|
25066
25070
|
create(context) {
|
|
25067
|
-
if (isTestFile(context
|
|
25071
|
+
if (isTestFile(context) || isStoryFile(context) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
25068
25072
|
return {};
|
|
25069
25073
|
}
|
|
25070
25074
|
let services;
|
|
@@ -25364,7 +25368,7 @@ var require_fetch_timeout_default = createRule({
|
|
|
25364
25368
|
},
|
|
25365
25369
|
defaultOptions: [{}],
|
|
25366
25370
|
create(context, [optionsArg]) {
|
|
25367
|
-
if (isTestFile(context
|
|
25371
|
+
if (isTestFile(context) || isScriptFile(context)) {
|
|
25368
25372
|
return {};
|
|
25369
25373
|
}
|
|
25370
25374
|
const allowIn = optionsArg?.allowIn ?? [];
|
|
@@ -25516,7 +25520,7 @@ var require_interface_for_exported_class_default = createRule({
|
|
|
25516
25520
|
},
|
|
25517
25521
|
defaultOptions: [],
|
|
25518
25522
|
create(context) {
|
|
25519
|
-
if (/\.(?:js|jsx|mjs|cjs)$/iu.test(context.filename) || isTestFile(context
|
|
25523
|
+
if (/\.(?:js|jsx|mjs|cjs)$/iu.test(context.filename) || isTestFile(context) || isStoryFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
25520
25524
|
return {
|
|
25521
25525
|
"Program:exit"(program) {
|
|
25522
25526
|
const classes = /* @__PURE__ */ new Map();
|
|
@@ -25837,7 +25841,7 @@ var require_sql_access_class_default = createRule({
|
|
|
25837
25841
|
},
|
|
25838
25842
|
defaultOptions: [],
|
|
25839
25843
|
create(context) {
|
|
25840
|
-
if (isTestFile(context
|
|
25844
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text))
|
|
25841
25845
|
return {};
|
|
25842
25846
|
function knownNonDatabase(node, seen = /* @__PURE__ */ new Set()) {
|
|
25843
25847
|
const unwrappedNodeCallee = node.type === "CallExpression" || node.type === "NewExpression" ? unwrapExpression(node.callee) : null;
|
|
@@ -26267,7 +26271,7 @@ var require_zod_form_validation_default = createRule({
|
|
|
26267
26271
|
},
|
|
26268
26272
|
defaultOptions: [],
|
|
26269
26273
|
create(context) {
|
|
26270
|
-
if (isTestFile(context
|
|
26274
|
+
if (isTestFile(context)) {
|
|
26271
26275
|
return {};
|
|
26272
26276
|
}
|
|
26273
26277
|
const zodBindings = /* @__PURE__ */ new Set();
|
|
@@ -26562,7 +26566,7 @@ var store_insert_requires_on_conflict_default = createRule({
|
|
|
26562
26566
|
},
|
|
26563
26567
|
defaultOptions: [],
|
|
26564
26568
|
create(context) {
|
|
26565
|
-
if (isTestFile(context
|
|
26569
|
+
if (isTestFile(context)) {
|
|
26566
26570
|
return {};
|
|
26567
26571
|
}
|
|
26568
26572
|
return createSqlListener((sql, node) => {
|
|
@@ -26593,7 +26597,7 @@ var STEPDOWN_DOCUMENTATION = {
|
|
|
26593
26597
|
category: "maintainability",
|
|
26594
26598
|
limitations: [
|
|
26595
26599
|
"Generated and test files, cycles, dynamic or escaped references, overload targets, and helpers with multiple callers are excluded; immutable local callable aliases are followed only when every use stays in the caller. Function bodies include nested sibling helpers.",
|
|
26596
|
-
"Class helpers must be private; their sole caller may be public, protected, or private.",
|
|
26600
|
+
"Class helpers must be private; their sole caller may be public, protected, or private by default. Set privateBandOnly alongside accessibility ordering to restrict class reports to private callers; module and nested function ordering is unchanged.",
|
|
26597
26601
|
"Runtime class-field, static-block, computed-member, and decorator barriers are never crossed; non-hoisted module helpers also cannot cross eager execution or unrelated initialization.",
|
|
26598
26602
|
"This rule is report-only: reordering methods can change reflective property order, and moving module declarations can change initialization behavior or introduce temporal-dead-zone failures. Review module cycles and eager callers manually."
|
|
26599
26603
|
],
|
|
@@ -26914,7 +26918,7 @@ function walk(node, visitorKeys, visit, nestedFunction = false) {
|
|
|
26914
26918
|
const nested = nestedFunction || isFunction(node) || node.type === AST_NODE_TYPES121.ClassDeclaration || node.type === AST_NODE_TYPES121.ClassExpression;
|
|
26915
26919
|
forEachAstChild(node, visitorKeys, (child) => walk(child, visitorKeys, visit, nested));
|
|
26916
26920
|
}
|
|
26917
|
-
function classScope(context, node, computedReferences) {
|
|
26921
|
+
function classScope(context, node, computedReferences, privateBandOnly) {
|
|
26918
26922
|
const methods = node.body.body.filter(
|
|
26919
26923
|
(member) => member.type === AST_NODE_TYPES121.MethodDefinition
|
|
26920
26924
|
);
|
|
@@ -26927,7 +26931,7 @@ function classScope(context, node, computedReferences) {
|
|
|
26927
26931
|
return name !== null && key !== null && implementationCounts.get(key) === 1 ? [{ key, name, node: method }] : [];
|
|
26928
26932
|
});
|
|
26929
26933
|
const definitions2 = scopeDefinitions.filter(
|
|
26930
|
-
({ key, node: method }) => (method
|
|
26934
|
+
({ key, node: method }) => isPrivateMethod(method) && counts.get(key) === 1 && method.decorators.length === 0 && !method.computed && method.kind === "method"
|
|
26931
26935
|
);
|
|
26932
26936
|
if (definitions2.length === 0) return;
|
|
26933
26937
|
const methodKeys = new Set(scopeDefinitions.map((definition) => definition.key));
|
|
@@ -27056,6 +27060,7 @@ function classScope(context, node, computedReferences) {
|
|
|
27056
27060
|
runtimeBarrierPrefix.push((runtimeBarrierPrefix.at(-1) ?? 0) + (isClassRuntimeBarrier(member) ? 1 : 0));
|
|
27057
27061
|
}
|
|
27058
27062
|
const canMove = (helper, caller) => {
|
|
27063
|
+
if (privateBandOnly && !isPrivateMethod(caller.node)) return false;
|
|
27059
27064
|
const helperIndex = memberIndexes.get(helper.node);
|
|
27060
27065
|
const callerIndex = memberIndexes.get(caller.node);
|
|
27061
27066
|
if (helperIndex === void 0 || callerIndex === void 0) return false;
|
|
@@ -27063,6 +27068,9 @@ function classScope(context, node, computedReferences) {
|
|
|
27063
27068
|
};
|
|
27064
27069
|
reportMisordered(context, definitions2, scopeDefinitions, calls, pinned, canMove);
|
|
27065
27070
|
}
|
|
27071
|
+
function isPrivateMethod(node) {
|
|
27072
|
+
return node.type === AST_NODE_TYPES121.MethodDefinition && (node.accessibility === "private" || node.key.type === AST_NODE_TYPES121.PrivateIdentifier);
|
|
27073
|
+
}
|
|
27066
27074
|
function classReceiverBindings(context, node) {
|
|
27067
27075
|
const classReceivers = /* @__PURE__ */ new Map();
|
|
27068
27076
|
if (node.id !== null) {
|
|
@@ -27103,14 +27111,23 @@ var stepdown_default = createRule({
|
|
|
27103
27111
|
meta: {
|
|
27104
27112
|
type: "suggestion",
|
|
27105
27113
|
docs: { description: "Place a private helper below its sole direct same-scope caller." },
|
|
27106
|
-
schema: [
|
|
27114
|
+
schema: [{
|
|
27115
|
+
type: "object",
|
|
27116
|
+
additionalProperties: false,
|
|
27117
|
+
properties: {
|
|
27118
|
+
privateBandOnly: {
|
|
27119
|
+
type: "boolean",
|
|
27120
|
+
description: "Restrict class reports to private callers when another rule owns accessibility-band ordering."
|
|
27121
|
+
}
|
|
27122
|
+
}
|
|
27123
|
+
}],
|
|
27107
27124
|
messages: {
|
|
27108
27125
|
helperAboveOnlyCaller: "Private helper `{{helper}}` is defined above its only caller `{{caller}}`; move it below the caller."
|
|
27109
27126
|
}
|
|
27110
27127
|
},
|
|
27111
|
-
defaultOptions: [],
|
|
27112
|
-
create(context) {
|
|
27113
|
-
if (isTestFile(context
|
|
27128
|
+
defaultOptions: [{}],
|
|
27129
|
+
create(context, [options]) {
|
|
27130
|
+
if (isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
27114
27131
|
const classes = [];
|
|
27115
27132
|
const functionBodies = [];
|
|
27116
27133
|
return {
|
|
@@ -27130,7 +27147,7 @@ var stepdown_default = createRule({
|
|
|
27130
27147
|
walk(program, context.sourceCode.visitorKeys, (node) => {
|
|
27131
27148
|
if (node.type === AST_NODE_TYPES121.MemberExpression && node.computed) computedReferences.push(node);
|
|
27132
27149
|
});
|
|
27133
|
-
for (const node of classes) classScope(context, node, computedReferences);
|
|
27150
|
+
for (const node of classes) classScope(context, node, computedReferences, options.privateBandOnly === true);
|
|
27134
27151
|
}
|
|
27135
27152
|
};
|
|
27136
27153
|
}
|
|
@@ -27285,7 +27302,7 @@ function createSourceCoupledRule(name, documentation, sourceSuffixRe) {
|
|
|
27285
27302
|
},
|
|
27286
27303
|
defaultOptions: [],
|
|
27287
27304
|
create(context) {
|
|
27288
|
-
if (!isTestFile(context
|
|
27305
|
+
if (!isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
27289
27306
|
const scopes = [newScope()];
|
|
27290
27307
|
const reportedOrigins = /* @__PURE__ */ new Set();
|
|
27291
27308
|
const currentScope = () => scopes.at(-1) ?? scopes[0];
|
|
@@ -27385,7 +27402,7 @@ function createSourceCoupledRule(name, documentation, sourceSuffixRe) {
|
|
|
27385
27402
|
};
|
|
27386
27403
|
const sourcePathValue = (value) => {
|
|
27387
27404
|
const normalized = posix2.normalize(value.replaceAll("\\", "/"));
|
|
27388
|
-
return sourceSuffixRe.test(normalized) && !REPRESENTATION_DIR_RE.test(normalized) && !isGeneratedFile(normalized);
|
|
27405
|
+
return sourceSuffixRe.test(normalized) && !REPRESENTATION_DIR_RE.test(normalized) && !isGeneratedFile({ filename: normalized, cwd: context.cwd });
|
|
27389
27406
|
};
|
|
27390
27407
|
const rawRead = (node) => {
|
|
27391
27408
|
const current = unwrap6(node);
|
|
@@ -27677,7 +27694,7 @@ var sole_export_matches_filename_default = createRule({
|
|
|
27677
27694
|
create(context) {
|
|
27678
27695
|
const fileStem = stem3(context.filename);
|
|
27679
27696
|
const normalizedFilename = context.filename.replaceAll("\\", "/");
|
|
27680
|
-
if (EXCLUDED_STEMS.has(fileStem) || GENERIC_MODULE_STEMS.has(fileStem) || context.filename.endsWith(".d.ts") || isTestFile(context
|
|
27697
|
+
if (EXCLUDED_STEMS.has(fileStem) || GENERIC_MODULE_STEMS.has(fileStem) || context.filename.endsWith(".d.ts") || isTestFile(context) || isGeneratedFile(context, context.sourceCode.text)) return {};
|
|
27681
27698
|
let hasCommonJsExport = false;
|
|
27682
27699
|
return {
|
|
27683
27700
|
"CallExpression, MemberExpression"(node) {
|
|
@@ -27977,7 +27994,7 @@ var require_pascal_case_zod_schema_name_default = createRule({
|
|
|
27977
27994
|
const binding = resolvedBinding(root);
|
|
27978
27995
|
return binding !== null && zodBindings.has(binding);
|
|
27979
27996
|
}
|
|
27980
|
-
if (isTestFile(context
|
|
27997
|
+
if (isTestFile(context) || BENCHMARK_PATH_RE2.test(context.filename.replaceAll("\\", "/")) || isGeneratedFile(context, context.sourceCode.text)) {
|
|
27981
27998
|
return {};
|
|
27982
27999
|
}
|
|
27983
28000
|
return {
|