@sarj/eslint-plugin 9.1.0 → 9.2.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.cjs +24 -88
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +24 -88
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1581,12 +1581,6 @@ var no_dynamic_sql_default = createRule({
|
|
|
1581
1581
|
|
|
1582
1582
|
// src/rules/no-enum.ts
|
|
1583
1583
|
var import_utils11 = require("@typescript-eslint/utils");
|
|
1584
|
-
var DEFAULT_IGNORE_PATTERNS = [
|
|
1585
|
-
/[\\/]generated[\\/]/,
|
|
1586
|
-
/[\\/]openapi-gen[\\/]/,
|
|
1587
|
-
/\.gen\.tsx?$/,
|
|
1588
|
-
/\.generated\.tsx?$/
|
|
1589
|
-
];
|
|
1590
1584
|
function matchesAnyPattern(filename, patterns) {
|
|
1591
1585
|
for (const pattern of patterns) {
|
|
1592
1586
|
const regexSource = pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&").replace(/\*\*/g, "::DOUBLESTAR::").replace(/\*/g, "[^/\\\\]*").replace(/::DOUBLESTAR::/g, ".*");
|
|
@@ -1596,10 +1590,6 @@ function matchesAnyPattern(filename, patterns) {
|
|
|
1596
1590
|
}
|
|
1597
1591
|
return false;
|
|
1598
1592
|
}
|
|
1599
|
-
function hasGeneratedMarker(sourceText) {
|
|
1600
|
-
const head = sourceText.slice(0, 1024);
|
|
1601
|
-
return /@generated\b/.test(head);
|
|
1602
|
-
}
|
|
1603
1593
|
var no_enum_default = createRule({
|
|
1604
1594
|
name: "no-enum",
|
|
1605
1595
|
meta: {
|
|
@@ -1629,12 +1619,8 @@ var no_enum_default = createRule({
|
|
|
1629
1619
|
const ignoreFiles = options.ignoreFiles ?? [];
|
|
1630
1620
|
const filename = context.filename;
|
|
1631
1621
|
const sourceText = context.sourceCode.getText();
|
|
1632
|
-
const isIgnoredByDefault = DEFAULT_IGNORE_PATTERNS.some(
|
|
1633
|
-
(re) => re.test(filename)
|
|
1634
|
-
);
|
|
1635
1622
|
const isIgnoredByOption = ignoreFiles.length > 0 && matchesAnyPattern(filename, ignoreFiles);
|
|
1636
|
-
|
|
1637
|
-
if (isIgnoredByDefault || isIgnoredByOption || isGenerated) {
|
|
1623
|
+
if (isIgnoredByOption || isGeneratedFile(filename, sourceText)) {
|
|
1638
1624
|
return {};
|
|
1639
1625
|
}
|
|
1640
1626
|
return {
|
|
@@ -3382,35 +3368,6 @@ var no_restated_comment_default = createRule({
|
|
|
3382
3368
|
|
|
3383
3369
|
// src/rules/no-restated-jsdoc.ts
|
|
3384
3370
|
var import_utils24 = require("@typescript-eslint/utils");
|
|
3385
|
-
var VALUE_TAGS = /* @__PURE__ */ new Set([
|
|
3386
|
-
"alpha",
|
|
3387
|
-
"author",
|
|
3388
|
-
"beta",
|
|
3389
|
-
"category",
|
|
3390
|
-
"copyright",
|
|
3391
|
-
"default",
|
|
3392
|
-
"defaultvalue",
|
|
3393
|
-
"deprecated",
|
|
3394
|
-
"example",
|
|
3395
|
-
"experimental",
|
|
3396
|
-
"fileoverview",
|
|
3397
|
-
"fixme",
|
|
3398
|
-
"group",
|
|
3399
|
-
"inheritdoc",
|
|
3400
|
-
"internal",
|
|
3401
|
-
"license",
|
|
3402
|
-
"link",
|
|
3403
|
-
"module",
|
|
3404
|
-
"override",
|
|
3405
|
-
"packagedocumentation",
|
|
3406
|
-
"remarks",
|
|
3407
|
-
"see",
|
|
3408
|
-
"since",
|
|
3409
|
-
"template",
|
|
3410
|
-
"throws",
|
|
3411
|
-
"todo",
|
|
3412
|
-
"typeparam"
|
|
3413
|
-
]);
|
|
3414
3371
|
var MODELLED_TAGS = /* @__PURE__ */ new Set([
|
|
3415
3372
|
"arg",
|
|
3416
3373
|
"argument",
|
|
@@ -3535,7 +3492,6 @@ var no_restated_jsdoc_default = createRule({
|
|
|
3535
3492
|
const { description, tags } = parseJsDoc(comment.value);
|
|
3536
3493
|
if (DIRECTIVE_RE3.test(description)) continue;
|
|
3537
3494
|
const tagNames = new Set(tags.map((tag) => tag.name));
|
|
3538
|
-
if ([...tagNames].some((name) => VALUE_TAGS.has(name))) continue;
|
|
3539
3495
|
if ([...tagNames].some((name) => !MODELLED_TAGS.has(name))) continue;
|
|
3540
3496
|
if (isProtected(description)) continue;
|
|
3541
3497
|
const token = sourceCode.getTokenAfter(comment, { includeComments: false });
|
|
@@ -7013,25 +6969,32 @@ var STYLE_COLOR_PROPS = /* @__PURE__ */ new Set([
|
|
|
7013
6969
|
var RAW_COLOR_VALUE_RE = new RegExp(`#[0-9a-fA-F]{3,8}\\b|\\b(?:${COLOR_FN})\\s*\\(`, "i");
|
|
7014
6970
|
var CSS_VAR_REFERENCE_RE = /var\(\s*--/;
|
|
7015
6971
|
var STORIES_FILE_RE = /\.stories\.[cm]?[jt]sx?$/i;
|
|
7016
|
-
var
|
|
7017
|
-
var
|
|
7018
|
-
|
|
7019
|
-
|
|
7020
|
-
|
|
7021
|
-
|
|
7022
|
-
"tailwind.config.ts"
|
|
7023
|
-
]);
|
|
7024
|
-
var DETECTION_FILES = [
|
|
6972
|
+
var TOKEN_ROLES = "background|foreground|primary|secondary|muted|accent|destructive|danger|success|warning|info|border|card|popover|surface|content|base|subtle|default|ring|input|fg|bg";
|
|
6973
|
+
var SEMANTIC_TOKEN_RE = new RegExp(
|
|
6974
|
+
`--(?:color-)?(?:${TOKEN_ROLES})\\b|(?:bg|text|border|ring|fill|stroke)-(?:ui-)?(?:${TOKEN_ROLES})\\b`
|
|
6975
|
+
);
|
|
6976
|
+
var THEME_BLOCK_RE = /@theme\b/;
|
|
6977
|
+
var PRESENCE_MARKERS = [
|
|
7025
6978
|
"components.json",
|
|
7026
6979
|
"tailwind.config.js",
|
|
7027
6980
|
"tailwind.config.cjs",
|
|
7028
6981
|
"tailwind.config.mjs",
|
|
7029
6982
|
"tailwind.config.ts",
|
|
6983
|
+
"tailwind.config.mts",
|
|
6984
|
+
"tailwind.config.cts"
|
|
6985
|
+
];
|
|
6986
|
+
var CSS_DETECTION_FILES = [
|
|
7030
6987
|
"app/globals.css",
|
|
6988
|
+
"app/global.css",
|
|
6989
|
+
"app/styles/globals.css",
|
|
7031
6990
|
"src/app/globals.css",
|
|
6991
|
+
"src/app/global.css",
|
|
6992
|
+
"src/global.css",
|
|
7032
6993
|
"src/index.css",
|
|
7033
6994
|
"src/styles/globals.css",
|
|
7034
|
-
"styles/
|
|
6995
|
+
"src/styles/index.css",
|
|
6996
|
+
"styles/globals.css",
|
|
6997
|
+
"styles/index.css"
|
|
7035
6998
|
];
|
|
7036
6999
|
var WORKSPACE_ROOT_FILES = [
|
|
7037
7000
|
"pnpm-workspace.yaml",
|
|
@@ -7110,12 +7073,13 @@ var isInsideIconFactoryPath = (node) => {
|
|
|
7110
7073
|
return false;
|
|
7111
7074
|
};
|
|
7112
7075
|
var hasMarkerAt = (dir) => {
|
|
7113
|
-
|
|
7076
|
+
if (PRESENCE_MARKERS.some((rel) => (0, import_fs.existsSync)((0, import_path.join)(dir, rel)))) return true;
|
|
7077
|
+
for (const rel of CSS_DETECTION_FILES) {
|
|
7114
7078
|
const candidate = (0, import_path.join)(dir, rel);
|
|
7115
7079
|
if (!(0, import_fs.existsSync)(candidate)) continue;
|
|
7116
|
-
if (CONFIG_IS_SUFFICIENT.has(rel)) return true;
|
|
7117
7080
|
try {
|
|
7118
|
-
|
|
7081
|
+
const css = (0, import_fs.readFileSync)(candidate, "utf8");
|
|
7082
|
+
if (SEMANTIC_TOKEN_RE.test(css) || THEME_BLOCK_RE.test(css)) return true;
|
|
7119
7083
|
} catch {
|
|
7120
7084
|
}
|
|
7121
7085
|
}
|
|
@@ -8577,32 +8541,6 @@ var prefer_zod_infer_default = createRule({
|
|
|
8577
8541
|
|
|
8578
8542
|
// src/rules/require-assert-never.ts
|
|
8579
8543
|
var import_utils54 = require("@typescript-eslint/utils");
|
|
8580
|
-
var isAssertNeverCall = (expression) => {
|
|
8581
|
-
if (expression.type !== import_utils54.AST_NODE_TYPES.CallExpression) return false;
|
|
8582
|
-
const callee = expression.callee;
|
|
8583
|
-
if (callee.type === import_utils54.AST_NODE_TYPES.Identifier) {
|
|
8584
|
-
return callee.name === "assertNever";
|
|
8585
|
-
}
|
|
8586
|
-
if (callee.type === import_utils54.AST_NODE_TYPES.MemberExpression && !callee.computed && callee.property.type === import_utils54.AST_NODE_TYPES.Identifier) {
|
|
8587
|
-
return callee.property.name === "assertNever";
|
|
8588
|
-
}
|
|
8589
|
-
return false;
|
|
8590
|
-
};
|
|
8591
|
-
var statementContainsAssertNever = (statement) => {
|
|
8592
|
-
if (statement.type === import_utils54.AST_NODE_TYPES.ExpressionStatement) {
|
|
8593
|
-
return isAssertNeverCall(statement.expression);
|
|
8594
|
-
}
|
|
8595
|
-
if (statement.type === import_utils54.AST_NODE_TYPES.ThrowStatement) {
|
|
8596
|
-
return isAssertNeverCall(statement.argument);
|
|
8597
|
-
}
|
|
8598
|
-
if (statement.type === import_utils54.AST_NODE_TYPES.ReturnStatement) {
|
|
8599
|
-
return statement.argument !== null && isAssertNeverCall(statement.argument);
|
|
8600
|
-
}
|
|
8601
|
-
if (statement.type === import_utils54.AST_NODE_TYPES.BlockStatement) {
|
|
8602
|
-
return statement.body.some(statementContainsAssertNever);
|
|
8603
|
-
}
|
|
8604
|
-
return false;
|
|
8605
|
-
};
|
|
8606
8544
|
var isRuntimeHandlingStatement = (statement) => {
|
|
8607
8545
|
if (statement.type === import_utils54.AST_NODE_TYPES.EmptyStatement) return false;
|
|
8608
8546
|
if (statement.type === import_utils54.AST_NODE_TYPES.BlockStatement) {
|
|
@@ -8648,7 +8586,6 @@ var require_assert_never_default = createRule({
|
|
|
8648
8586
|
if (defaultIndex === -1) return;
|
|
8649
8587
|
const defaultCase = node.cases[defaultIndex];
|
|
8650
8588
|
if (defaultCase === void 0) return;
|
|
8651
|
-
if (defaultCase.consequent.some(statementContainsAssertNever)) return;
|
|
8652
8589
|
if (defaultCase.consequent.some(isRuntimeHandlingStatement)) return;
|
|
8653
8590
|
if (isFallthroughDefault(node, defaultIndex)) return;
|
|
8654
8591
|
if (isCommentOnlyNoopDefault(defaultCase, context.sourceCode)) return;
|
|
@@ -8663,7 +8600,6 @@ var require_assert_never_default = createRule({
|
|
|
8663
8600
|
|
|
8664
8601
|
// src/rules/require-fetch-timeout.ts
|
|
8665
8602
|
var import_utils55 = require("@typescript-eslint/utils");
|
|
8666
|
-
var CODEMOD_FIXTURE_RE = /[\\/]__testfixtures__[\\/]/;
|
|
8667
8603
|
var GLOBAL_OBJECTS2 = /* @__PURE__ */ new Set([
|
|
8668
8604
|
"globalThis",
|
|
8669
8605
|
"window",
|
|
@@ -8724,7 +8660,7 @@ var require_fetch_timeout_default = createRule({
|
|
|
8724
8660
|
},
|
|
8725
8661
|
defaultOptions: [{}],
|
|
8726
8662
|
create(context, [optionsArg]) {
|
|
8727
|
-
if (isTestFile(context.filename) || isScriptFile(context.filename)
|
|
8663
|
+
if (isTestFile(context.filename) || isScriptFile(context.filename)) {
|
|
8728
8664
|
return {};
|
|
8729
8665
|
}
|
|
8730
8666
|
const allowIn = optionsArg?.allowIn ?? [];
|
|
@@ -9383,7 +9319,7 @@ var rules = {
|
|
|
9383
9319
|
};
|
|
9384
9320
|
var meta = {
|
|
9385
9321
|
name: "@sarj/eslint-plugin",
|
|
9386
|
-
version: "9.
|
|
9322
|
+
version: "9.2.0"
|
|
9387
9323
|
};
|
|
9388
9324
|
var recommendedRules = {
|
|
9389
9325
|
"@sarj/enforce-file-structure": "warn",
|