@sarj/eslint-plugin 16.8.0 → 16.10.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 +36 -37
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +36 -37
- package/package.json +27 -26
package/dist/index.cjs
CHANGED
|
@@ -52,8 +52,8 @@ module.exports = __toCommonJS(src_exports);
|
|
|
52
52
|
// package.json
|
|
53
53
|
var package_default = {
|
|
54
54
|
name: "@sarj/eslint-plugin",
|
|
55
|
-
version: "16.
|
|
56
|
-
packageManager: "npm@12.
|
|
55
|
+
version: "16.10.0",
|
|
56
|
+
packageManager: "npm@12.2.0",
|
|
57
57
|
description: "Custom ESLint rules for hypermodern TypeScript / React / Next.js projects",
|
|
58
58
|
type: "module",
|
|
59
59
|
main: "./dist/index.cjs",
|
|
@@ -106,48 +106,49 @@ var package_default = {
|
|
|
106
106
|
author: "sarj-ai",
|
|
107
107
|
license: "MIT",
|
|
108
108
|
dependencies: {
|
|
109
|
-
"@typescript-eslint/typescript-estree": "^8.
|
|
110
|
-
"@typescript-eslint/utils": "^8.
|
|
109
|
+
"@typescript-eslint/typescript-estree": "^8.71.2",
|
|
110
|
+
"@typescript-eslint/utils": "^8.71.2",
|
|
111
111
|
"jsonc-parser": "^3.3.1"
|
|
112
112
|
},
|
|
113
113
|
devDependencies: {
|
|
114
114
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.8.1",
|
|
115
115
|
"@eslint/compat": "^2.1.1",
|
|
116
116
|
"@eslint/js": "10.0.1",
|
|
117
|
-
"@shadcn/lint": "0.2.
|
|
118
|
-
"@types/node": "26.6.
|
|
119
|
-
"@typescript-eslint/parser": "8.
|
|
120
|
-
"@typescript-eslint/rule-tester": "8.
|
|
121
|
-
"@typescript-eslint/utils": "8.
|
|
117
|
+
"@shadcn/lint": "0.2.1",
|
|
118
|
+
"@types/node": "26.6.5",
|
|
119
|
+
"@typescript-eslint/parser": "8.71.2",
|
|
120
|
+
"@typescript-eslint/rule-tester": "8.71.2",
|
|
121
|
+
"@typescript-eslint/utils": "8.71.2",
|
|
122
122
|
"@typescript/native": "npm:typescript@7.0.2",
|
|
123
123
|
"@vitest/eslint-plugin": "1.6.27",
|
|
124
|
-
eslint: "10.
|
|
125
|
-
"eslint-node-test": "0.
|
|
126
|
-
"eslint-plugin-better-tailwindcss": "^4.
|
|
127
|
-
"eslint-plugin-jest": "29.
|
|
128
|
-
"eslint-plugin-jsdoc": "
|
|
129
|
-
"eslint-plugin-n": "^18.
|
|
124
|
+
eslint: "10.12.0",
|
|
125
|
+
"eslint-node-test": "1.0.1",
|
|
126
|
+
"eslint-plugin-better-tailwindcss": "^4.9.0",
|
|
127
|
+
"eslint-plugin-jest": "29.17.0",
|
|
128
|
+
"eslint-plugin-jsdoc": "65.3.1",
|
|
129
|
+
"eslint-plugin-n": "^18.4.1",
|
|
130
130
|
"eslint-plugin-perfectionist": "5.12.1",
|
|
131
|
-
"eslint-plugin-playwright": "2.12.
|
|
131
|
+
"eslint-plugin-playwright": "2.12.1",
|
|
132
132
|
"eslint-plugin-promise": "^7.3.0",
|
|
133
133
|
"eslint-plugin-react": "^7.37.5",
|
|
134
134
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
135
135
|
"eslint-plugin-simple-import-sort": "^14.0.0",
|
|
136
136
|
"eslint-plugin-testing-library": "7.16.2",
|
|
137
|
-
"eslint-plugin-unicorn": "^
|
|
138
|
-
"eslint-plugin-zod": "^
|
|
139
|
-
globals: "
|
|
140
|
-
tsup: "
|
|
137
|
+
"eslint-plugin-unicorn": "^78.0.0",
|
|
138
|
+
"eslint-plugin-zod": "^5.0.1",
|
|
139
|
+
globals: "17.13.0",
|
|
140
|
+
tsup: "8.5.1",
|
|
141
141
|
typescript: "npm:@typescript/typescript6@6.0.2",
|
|
142
|
-
"typescript-eslint": "^8.
|
|
143
|
-
vitest: "5.0.
|
|
142
|
+
"typescript-eslint": "^8.71.2",
|
|
143
|
+
vitest: "5.0.4",
|
|
144
|
+
zod: "4.6.7"
|
|
144
145
|
},
|
|
145
146
|
peerDependencies: {
|
|
146
147
|
eslint: ">=9.39.4",
|
|
147
148
|
typescript: ">=5.0.0"
|
|
148
149
|
},
|
|
149
150
|
engines: {
|
|
150
|
-
node: "
|
|
151
|
+
node: "^22.22.2 || >=24.15.0"
|
|
151
152
|
},
|
|
152
153
|
allowScripts: {
|
|
153
154
|
"esbuild@0.28.2": true,
|
|
@@ -159,12 +160,12 @@ var package_default = {
|
|
|
159
160
|
}
|
|
160
161
|
},
|
|
161
162
|
overrides: {
|
|
162
|
-
"brace-expansion@^5.0.0": "5.0.
|
|
163
|
+
"brace-expansion@^5.0.0": "5.0.12",
|
|
163
164
|
esbuild: "0.28.2",
|
|
164
|
-
"nanoid@<3.3.18": "3.3.18",
|
|
165
165
|
"eslint-plugin-react": {
|
|
166
166
|
eslint: "$eslint"
|
|
167
|
-
}
|
|
167
|
+
},
|
|
168
|
+
"nanoid@<3.3.20": "3.3.20"
|
|
168
169
|
}
|
|
169
170
|
};
|
|
170
171
|
|
|
@@ -2326,7 +2327,7 @@ var require_button_accessible_name_default = createRule({
|
|
|
2326
2327
|
// src/rules/require-camelcase-properties.ts
|
|
2327
2328
|
var import_utils13 = require("@typescript-eslint/utils");
|
|
2328
2329
|
var REQUIRE_CAMELCASE_PROPERTIES_DOCUMENTATION = {
|
|
2329
|
-
defaultLevel: "
|
|
2330
|
+
defaultLevel: "error",
|
|
2330
2331
|
summary: "Require unquoted lower snake_case TypeScript properties and dot access to use camelCase.",
|
|
2331
2332
|
rationale: "Unquoted snake_case property syntax makes external wire naming indistinguishable from application-domain naming and lets inconsistent contracts spread through typed code.",
|
|
2332
2333
|
remediation: "Rename application properties to camelCase. At an external wire boundary, make the exception explicit with a quoted key and bracket access.",
|
|
@@ -17481,10 +17482,10 @@ var prefer_module_level_refined_schema_default = createRule({
|
|
|
17481
17482
|
// src/rules/prefer-multi-value-zod-literal.ts
|
|
17482
17483
|
var import_utils98 = require("@typescript-eslint/utils");
|
|
17483
17484
|
var PREFER_MULTI_VALUE_ZOD_LITERAL_DOCUMENTATION = {
|
|
17484
|
-
defaultLevel: "
|
|
17485
|
+
defaultLevel: "error",
|
|
17485
17486
|
summary: "Use the Zod 4 multi-value literal API instead of a union of literal schemas.",
|
|
17486
17487
|
rationale: "One multi-value literal expresses the same closed value domain without repeated schema wrappers.",
|
|
17487
|
-
remediation: "
|
|
17488
|
+
remediation: "Use z.literal([value1, value2, ...]) for a modern Zod 4 value-domain contract. Preserve required union introspection or error-shape contracts with an explained local exception.",
|
|
17488
17489
|
category: "maintainability",
|
|
17489
17490
|
autofix: "none",
|
|
17490
17491
|
limitations: [
|
|
@@ -21664,7 +21665,7 @@ var PREFER_ZOD_PARSE_OUTPUT_TYPE_DOCUMENTATION = {
|
|
|
21664
21665
|
focusPath: "src/row.ts",
|
|
21665
21666
|
expectedCount: 0,
|
|
21666
21667
|
public: true,
|
|
21667
|
-
installedDependencies: [{ module: "zod", version: "4.6.
|
|
21668
|
+
installedDependencies: [{ module: "zod", version: "4.6.7" }]
|
|
21668
21669
|
},
|
|
21669
21670
|
{
|
|
21670
21671
|
id: "hand-written-parsed-return",
|
|
@@ -21683,7 +21684,7 @@ var PREFER_ZOD_PARSE_OUTPUT_TYPE_DOCUMENTATION = {
|
|
|
21683
21684
|
focusPath: "src/row.ts",
|
|
21684
21685
|
expectedCount: 1,
|
|
21685
21686
|
public: true,
|
|
21686
|
-
installedDependencies: [{ module: "zod", version: "4.6.
|
|
21687
|
+
installedDependencies: [{ module: "zod", version: "4.6.7" }]
|
|
21687
21688
|
}
|
|
21688
21689
|
]
|
|
21689
21690
|
};
|
|
@@ -24972,12 +24973,10 @@ var ADVISORY_RULES = [
|
|
|
24972
24973
|
"@sarj/no-restated-jsdoc",
|
|
24973
24974
|
"@sarj/prefer-millisecond-control-duration-schema",
|
|
24974
24975
|
"@sarj/prefer-module-level-refined-schema",
|
|
24975
|
-
"@sarj/prefer-multi-value-zod-literal",
|
|
24976
24976
|
"@sarj/prefer-node-crypto-hash",
|
|
24977
24977
|
"@sarj/prefer-node-fs-promises",
|
|
24978
24978
|
"@sarj/prefer-shared-zod-enum",
|
|
24979
24979
|
"@sarj/prefer-whole-object-assertion",
|
|
24980
|
-
"@sarj/require-camelcase-properties",
|
|
24981
24980
|
"@sarj/require-sql-access-class"
|
|
24982
24981
|
];
|
|
24983
24982
|
var RECOMMENDED_RULES = {
|
|
@@ -24988,7 +24987,7 @@ var RECOMMENDED_RULES = {
|
|
|
24988
24987
|
"@sarj/no-reduce-accumulator-copy": "error",
|
|
24989
24988
|
"@sarj/no-known-value-widening": "error",
|
|
24990
24989
|
"@sarj/require-button-accessible-name": "error",
|
|
24991
|
-
"@sarj/require-camelcase-properties": "
|
|
24990
|
+
"@sarj/require-camelcase-properties": "error",
|
|
24992
24991
|
"@sarj/require-svg-accessible-name": "error",
|
|
24993
24992
|
"@sarj/prefer-logical-tailwind-utilities": ["error", { enabled: false }],
|
|
24994
24993
|
"@sarj/no-unlocalized-toast": ["error", { enabled: false }],
|
|
@@ -25062,7 +25061,7 @@ var RECOMMENDED_RULES = {
|
|
|
25062
25061
|
"@sarj/prefer-module-level-constant": "error",
|
|
25063
25062
|
"@sarj/prefer-module-level-schema": "error",
|
|
25064
25063
|
"@sarj/prefer-module-level-refined-schema": "warn",
|
|
25065
|
-
"@sarj/prefer-multi-value-zod-literal": ["
|
|
25064
|
+
"@sarj/prefer-multi-value-zod-literal": ["error", { zodMajorVersion: 4 }],
|
|
25066
25065
|
"@sarj/prefer-named-callback-domain": "error",
|
|
25067
25066
|
"@sarj/prefer-nominal-id-types": "error",
|
|
25068
25067
|
"@sarj/prefer-named-complex-return-type": "error",
|
|
@@ -25106,7 +25105,7 @@ var STRICT_RULES = {
|
|
|
25106
25105
|
"@sarj/no-reduce-accumulator-copy": "error",
|
|
25107
25106
|
"@sarj/no-known-value-widening": "error",
|
|
25108
25107
|
"@sarj/require-button-accessible-name": "error",
|
|
25109
|
-
"@sarj/require-camelcase-properties": "
|
|
25108
|
+
"@sarj/require-camelcase-properties": "error",
|
|
25110
25109
|
"@sarj/require-svg-accessible-name": "error",
|
|
25111
25110
|
"@sarj/prefer-logical-tailwind-utilities": ["error", { enabled: false }],
|
|
25112
25111
|
"@sarj/no-unlocalized-toast": ["error", { enabled: false }],
|
|
@@ -25184,7 +25183,7 @@ var STRICT_RULES = {
|
|
|
25184
25183
|
"@sarj/prefer-module-level-constant": "error",
|
|
25185
25184
|
"@sarj/prefer-module-level-schema": "error",
|
|
25186
25185
|
"@sarj/prefer-module-level-refined-schema": "warn",
|
|
25187
|
-
"@sarj/prefer-multi-value-zod-literal": ["
|
|
25186
|
+
"@sarj/prefer-multi-value-zod-literal": ["error", { zodMajorVersion: 4 }],
|
|
25188
25187
|
"@sarj/prefer-named-callback-domain": "error",
|
|
25189
25188
|
"@sarj/prefer-nominal-id-types": "error",
|
|
25190
25189
|
"@sarj/prefer-named-complex-return-type": "error",
|
package/dist/index.d.cts
CHANGED
|
@@ -291,7 +291,7 @@ declare const RULES: {
|
|
|
291
291
|
/** @deprecated All repositories use one policy; retained for import compatibility. */
|
|
292
292
|
declare const APPLICATION_ONLY_RULES: readonly [];
|
|
293
293
|
/** Rules staged as non-blocking warnings while corpus adoption evidence accumulates. */
|
|
294
|
-
declare const ADVISORY_RULES: readonly ["@sarj/excessive-commentary", "@sarj/no-bespoke-api-case-conversion", "@sarj/no-restated-comment", "@sarj/no-restated-jsdoc", "@sarj/prefer-millisecond-control-duration-schema", "@sarj/prefer-module-level-refined-schema", "@sarj/prefer-
|
|
294
|
+
declare const ADVISORY_RULES: readonly ["@sarj/excessive-commentary", "@sarj/no-bespoke-api-case-conversion", "@sarj/no-restated-comment", "@sarj/no-restated-jsdoc", "@sarj/prefer-millisecond-control-duration-schema", "@sarj/prefer-module-level-refined-schema", "@sarj/prefer-node-crypto-hash", "@sarj/prefer-node-fs-promises", "@sarj/prefer-shared-zod-enum", "@sarj/prefer-whole-object-assertion", "@sarj/require-sql-access-class"];
|
|
295
295
|
declare const RECOMMENDED_RULES: {
|
|
296
296
|
readonly "@sarj/named-child-schema-type": "error";
|
|
297
297
|
readonly "@sarj/no-conditional-empty-object-spread": "error";
|
|
@@ -300,7 +300,7 @@ declare const RECOMMENDED_RULES: {
|
|
|
300
300
|
readonly "@sarj/no-reduce-accumulator-copy": "error";
|
|
301
301
|
readonly "@sarj/no-known-value-widening": "error";
|
|
302
302
|
readonly "@sarj/require-button-accessible-name": "error";
|
|
303
|
-
readonly "@sarj/require-camelcase-properties": "
|
|
303
|
+
readonly "@sarj/require-camelcase-properties": "error";
|
|
304
304
|
readonly "@sarj/require-svg-accessible-name": "error";
|
|
305
305
|
readonly "@sarj/prefer-logical-tailwind-utilities": readonly ["error", {
|
|
306
306
|
readonly enabled: false;
|
|
@@ -565,7 +565,7 @@ declare const RECOMMENDED_RULES: {
|
|
|
565
565
|
readonly "@sarj/prefer-module-level-constant": "error";
|
|
566
566
|
readonly "@sarj/prefer-module-level-schema": "error";
|
|
567
567
|
readonly "@sarj/prefer-module-level-refined-schema": "warn";
|
|
568
|
-
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["
|
|
568
|
+
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["error", {
|
|
569
569
|
readonly zodMajorVersion: 4;
|
|
570
570
|
}];
|
|
571
571
|
readonly "@sarj/prefer-named-callback-domain": "error";
|
|
@@ -613,7 +613,7 @@ declare const STRICT_RULES: {
|
|
|
613
613
|
readonly "@sarj/no-reduce-accumulator-copy": "error";
|
|
614
614
|
readonly "@sarj/no-known-value-widening": "error";
|
|
615
615
|
readonly "@sarj/require-button-accessible-name": "error";
|
|
616
|
-
readonly "@sarj/require-camelcase-properties": "
|
|
616
|
+
readonly "@sarj/require-camelcase-properties": "error";
|
|
617
617
|
readonly "@sarj/require-svg-accessible-name": "error";
|
|
618
618
|
readonly "@sarj/prefer-logical-tailwind-utilities": readonly ["error", {
|
|
619
619
|
readonly enabled: false;
|
|
@@ -882,7 +882,7 @@ declare const STRICT_RULES: {
|
|
|
882
882
|
readonly "@sarj/prefer-module-level-constant": "error";
|
|
883
883
|
readonly "@sarj/prefer-module-level-schema": "error";
|
|
884
884
|
readonly "@sarj/prefer-module-level-refined-schema": "warn";
|
|
885
|
-
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["
|
|
885
|
+
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["error", {
|
|
886
886
|
readonly zodMajorVersion: 4;
|
|
887
887
|
}];
|
|
888
888
|
readonly "@sarj/prefer-named-callback-domain": "error";
|
package/dist/index.d.ts
CHANGED
|
@@ -291,7 +291,7 @@ declare const RULES: {
|
|
|
291
291
|
/** @deprecated All repositories use one policy; retained for import compatibility. */
|
|
292
292
|
declare const APPLICATION_ONLY_RULES: readonly [];
|
|
293
293
|
/** Rules staged as non-blocking warnings while corpus adoption evidence accumulates. */
|
|
294
|
-
declare const ADVISORY_RULES: readonly ["@sarj/excessive-commentary", "@sarj/no-bespoke-api-case-conversion", "@sarj/no-restated-comment", "@sarj/no-restated-jsdoc", "@sarj/prefer-millisecond-control-duration-schema", "@sarj/prefer-module-level-refined-schema", "@sarj/prefer-
|
|
294
|
+
declare const ADVISORY_RULES: readonly ["@sarj/excessive-commentary", "@sarj/no-bespoke-api-case-conversion", "@sarj/no-restated-comment", "@sarj/no-restated-jsdoc", "@sarj/prefer-millisecond-control-duration-schema", "@sarj/prefer-module-level-refined-schema", "@sarj/prefer-node-crypto-hash", "@sarj/prefer-node-fs-promises", "@sarj/prefer-shared-zod-enum", "@sarj/prefer-whole-object-assertion", "@sarj/require-sql-access-class"];
|
|
295
295
|
declare const RECOMMENDED_RULES: {
|
|
296
296
|
readonly "@sarj/named-child-schema-type": "error";
|
|
297
297
|
readonly "@sarj/no-conditional-empty-object-spread": "error";
|
|
@@ -300,7 +300,7 @@ declare const RECOMMENDED_RULES: {
|
|
|
300
300
|
readonly "@sarj/no-reduce-accumulator-copy": "error";
|
|
301
301
|
readonly "@sarj/no-known-value-widening": "error";
|
|
302
302
|
readonly "@sarj/require-button-accessible-name": "error";
|
|
303
|
-
readonly "@sarj/require-camelcase-properties": "
|
|
303
|
+
readonly "@sarj/require-camelcase-properties": "error";
|
|
304
304
|
readonly "@sarj/require-svg-accessible-name": "error";
|
|
305
305
|
readonly "@sarj/prefer-logical-tailwind-utilities": readonly ["error", {
|
|
306
306
|
readonly enabled: false;
|
|
@@ -565,7 +565,7 @@ declare const RECOMMENDED_RULES: {
|
|
|
565
565
|
readonly "@sarj/prefer-module-level-constant": "error";
|
|
566
566
|
readonly "@sarj/prefer-module-level-schema": "error";
|
|
567
567
|
readonly "@sarj/prefer-module-level-refined-schema": "warn";
|
|
568
|
-
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["
|
|
568
|
+
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["error", {
|
|
569
569
|
readonly zodMajorVersion: 4;
|
|
570
570
|
}];
|
|
571
571
|
readonly "@sarj/prefer-named-callback-domain": "error";
|
|
@@ -613,7 +613,7 @@ declare const STRICT_RULES: {
|
|
|
613
613
|
readonly "@sarj/no-reduce-accumulator-copy": "error";
|
|
614
614
|
readonly "@sarj/no-known-value-widening": "error";
|
|
615
615
|
readonly "@sarj/require-button-accessible-name": "error";
|
|
616
|
-
readonly "@sarj/require-camelcase-properties": "
|
|
616
|
+
readonly "@sarj/require-camelcase-properties": "error";
|
|
617
617
|
readonly "@sarj/require-svg-accessible-name": "error";
|
|
618
618
|
readonly "@sarj/prefer-logical-tailwind-utilities": readonly ["error", {
|
|
619
619
|
readonly enabled: false;
|
|
@@ -882,7 +882,7 @@ declare const STRICT_RULES: {
|
|
|
882
882
|
readonly "@sarj/prefer-module-level-constant": "error";
|
|
883
883
|
readonly "@sarj/prefer-module-level-schema": "error";
|
|
884
884
|
readonly "@sarj/prefer-module-level-refined-schema": "warn";
|
|
885
|
-
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["
|
|
885
|
+
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["error", {
|
|
886
886
|
readonly zodMajorVersion: 4;
|
|
887
887
|
}];
|
|
888
888
|
readonly "@sarj/prefer-named-callback-domain": "error";
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// package.json
|
|
2
2
|
var package_default = {
|
|
3
3
|
name: "@sarj/eslint-plugin",
|
|
4
|
-
version: "16.
|
|
5
|
-
packageManager: "npm@12.
|
|
4
|
+
version: "16.10.0",
|
|
5
|
+
packageManager: "npm@12.2.0",
|
|
6
6
|
description: "Custom ESLint rules for hypermodern TypeScript / React / Next.js projects",
|
|
7
7
|
type: "module",
|
|
8
8
|
main: "./dist/index.cjs",
|
|
@@ -55,48 +55,49 @@ var package_default = {
|
|
|
55
55
|
author: "sarj-ai",
|
|
56
56
|
license: "MIT",
|
|
57
57
|
dependencies: {
|
|
58
|
-
"@typescript-eslint/typescript-estree": "^8.
|
|
59
|
-
"@typescript-eslint/utils": "^8.
|
|
58
|
+
"@typescript-eslint/typescript-estree": "^8.71.2",
|
|
59
|
+
"@typescript-eslint/utils": "^8.71.2",
|
|
60
60
|
"jsonc-parser": "^3.3.1"
|
|
61
61
|
},
|
|
62
62
|
devDependencies: {
|
|
63
63
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.8.1",
|
|
64
64
|
"@eslint/compat": "^2.1.1",
|
|
65
65
|
"@eslint/js": "10.0.1",
|
|
66
|
-
"@shadcn/lint": "0.2.
|
|
67
|
-
"@types/node": "26.6.
|
|
68
|
-
"@typescript-eslint/parser": "8.
|
|
69
|
-
"@typescript-eslint/rule-tester": "8.
|
|
70
|
-
"@typescript-eslint/utils": "8.
|
|
66
|
+
"@shadcn/lint": "0.2.1",
|
|
67
|
+
"@types/node": "26.6.5",
|
|
68
|
+
"@typescript-eslint/parser": "8.71.2",
|
|
69
|
+
"@typescript-eslint/rule-tester": "8.71.2",
|
|
70
|
+
"@typescript-eslint/utils": "8.71.2",
|
|
71
71
|
"@typescript/native": "npm:typescript@7.0.2",
|
|
72
72
|
"@vitest/eslint-plugin": "1.6.27",
|
|
73
|
-
eslint: "10.
|
|
74
|
-
"eslint-node-test": "0.
|
|
75
|
-
"eslint-plugin-better-tailwindcss": "^4.
|
|
76
|
-
"eslint-plugin-jest": "29.
|
|
77
|
-
"eslint-plugin-jsdoc": "
|
|
78
|
-
"eslint-plugin-n": "^18.
|
|
73
|
+
eslint: "10.12.0",
|
|
74
|
+
"eslint-node-test": "1.0.1",
|
|
75
|
+
"eslint-plugin-better-tailwindcss": "^4.9.0",
|
|
76
|
+
"eslint-plugin-jest": "29.17.0",
|
|
77
|
+
"eslint-plugin-jsdoc": "65.3.1",
|
|
78
|
+
"eslint-plugin-n": "^18.4.1",
|
|
79
79
|
"eslint-plugin-perfectionist": "5.12.1",
|
|
80
|
-
"eslint-plugin-playwright": "2.12.
|
|
80
|
+
"eslint-plugin-playwright": "2.12.1",
|
|
81
81
|
"eslint-plugin-promise": "^7.3.0",
|
|
82
82
|
"eslint-plugin-react": "^7.37.5",
|
|
83
83
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
84
84
|
"eslint-plugin-simple-import-sort": "^14.0.0",
|
|
85
85
|
"eslint-plugin-testing-library": "7.16.2",
|
|
86
|
-
"eslint-plugin-unicorn": "^
|
|
87
|
-
"eslint-plugin-zod": "^
|
|
88
|
-
globals: "
|
|
89
|
-
tsup: "
|
|
86
|
+
"eslint-plugin-unicorn": "^78.0.0",
|
|
87
|
+
"eslint-plugin-zod": "^5.0.1",
|
|
88
|
+
globals: "17.13.0",
|
|
89
|
+
tsup: "8.5.1",
|
|
90
90
|
typescript: "npm:@typescript/typescript6@6.0.2",
|
|
91
|
-
"typescript-eslint": "^8.
|
|
92
|
-
vitest: "5.0.
|
|
91
|
+
"typescript-eslint": "^8.71.2",
|
|
92
|
+
vitest: "5.0.4",
|
|
93
|
+
zod: "4.6.7"
|
|
93
94
|
},
|
|
94
95
|
peerDependencies: {
|
|
95
96
|
eslint: ">=9.39.4",
|
|
96
97
|
typescript: ">=5.0.0"
|
|
97
98
|
},
|
|
98
99
|
engines: {
|
|
99
|
-
node: "
|
|
100
|
+
node: "^22.22.2 || >=24.15.0"
|
|
100
101
|
},
|
|
101
102
|
allowScripts: {
|
|
102
103
|
"esbuild@0.28.2": true,
|
|
@@ -108,12 +109,12 @@ var package_default = {
|
|
|
108
109
|
}
|
|
109
110
|
},
|
|
110
111
|
overrides: {
|
|
111
|
-
"brace-expansion@^5.0.0": "5.0.
|
|
112
|
+
"brace-expansion@^5.0.0": "5.0.12",
|
|
112
113
|
esbuild: "0.28.2",
|
|
113
|
-
"nanoid@<3.3.18": "3.3.18",
|
|
114
114
|
"eslint-plugin-react": {
|
|
115
115
|
eslint: "$eslint"
|
|
116
|
-
}
|
|
116
|
+
},
|
|
117
|
+
"nanoid@<3.3.20": "3.3.20"
|
|
117
118
|
}
|
|
118
119
|
};
|
|
119
120
|
|
|
@@ -2285,7 +2286,7 @@ var require_button_accessible_name_default = createRule({
|
|
|
2285
2286
|
// src/rules/require-camelcase-properties.ts
|
|
2286
2287
|
import { AST_NODE_TYPES as AST_NODE_TYPES11 } from "@typescript-eslint/utils";
|
|
2287
2288
|
var REQUIRE_CAMELCASE_PROPERTIES_DOCUMENTATION = {
|
|
2288
|
-
defaultLevel: "
|
|
2289
|
+
defaultLevel: "error",
|
|
2289
2290
|
summary: "Require unquoted lower snake_case TypeScript properties and dot access to use camelCase.",
|
|
2290
2291
|
rationale: "Unquoted snake_case property syntax makes external wire naming indistinguishable from application-domain naming and lets inconsistent contracts spread through typed code.",
|
|
2291
2292
|
remediation: "Rename application properties to camelCase. At an external wire boundary, make the exception explicit with a quoted key and bracket access.",
|
|
@@ -17484,10 +17485,10 @@ import {
|
|
|
17484
17485
|
ASTUtils as ASTUtils47
|
|
17485
17486
|
} from "@typescript-eslint/utils";
|
|
17486
17487
|
var PREFER_MULTI_VALUE_ZOD_LITERAL_DOCUMENTATION = {
|
|
17487
|
-
defaultLevel: "
|
|
17488
|
+
defaultLevel: "error",
|
|
17488
17489
|
summary: "Use the Zod 4 multi-value literal API instead of a union of literal schemas.",
|
|
17489
17490
|
rationale: "One multi-value literal expresses the same closed value domain without repeated schema wrappers.",
|
|
17490
|
-
remediation: "
|
|
17491
|
+
remediation: "Use z.literal([value1, value2, ...]) for a modern Zod 4 value-domain contract. Preserve required union introspection or error-shape contracts with an explained local exception.",
|
|
17491
17492
|
category: "maintainability",
|
|
17492
17493
|
autofix: "none",
|
|
17493
17494
|
limitations: [
|
|
@@ -21679,7 +21680,7 @@ var PREFER_ZOD_PARSE_OUTPUT_TYPE_DOCUMENTATION = {
|
|
|
21679
21680
|
focusPath: "src/row.ts",
|
|
21680
21681
|
expectedCount: 0,
|
|
21681
21682
|
public: true,
|
|
21682
|
-
installedDependencies: [{ module: "zod", version: "4.6.
|
|
21683
|
+
installedDependencies: [{ module: "zod", version: "4.6.7" }]
|
|
21683
21684
|
},
|
|
21684
21685
|
{
|
|
21685
21686
|
id: "hand-written-parsed-return",
|
|
@@ -21698,7 +21699,7 @@ var PREFER_ZOD_PARSE_OUTPUT_TYPE_DOCUMENTATION = {
|
|
|
21698
21699
|
focusPath: "src/row.ts",
|
|
21699
21700
|
expectedCount: 1,
|
|
21700
21701
|
public: true,
|
|
21701
|
-
installedDependencies: [{ module: "zod", version: "4.6.
|
|
21702
|
+
installedDependencies: [{ module: "zod", version: "4.6.7" }]
|
|
21702
21703
|
}
|
|
21703
21704
|
]
|
|
21704
21705
|
};
|
|
@@ -24996,12 +24997,10 @@ var ADVISORY_RULES = [
|
|
|
24996
24997
|
"@sarj/no-restated-jsdoc",
|
|
24997
24998
|
"@sarj/prefer-millisecond-control-duration-schema",
|
|
24998
24999
|
"@sarj/prefer-module-level-refined-schema",
|
|
24999
|
-
"@sarj/prefer-multi-value-zod-literal",
|
|
25000
25000
|
"@sarj/prefer-node-crypto-hash",
|
|
25001
25001
|
"@sarj/prefer-node-fs-promises",
|
|
25002
25002
|
"@sarj/prefer-shared-zod-enum",
|
|
25003
25003
|
"@sarj/prefer-whole-object-assertion",
|
|
25004
|
-
"@sarj/require-camelcase-properties",
|
|
25005
25004
|
"@sarj/require-sql-access-class"
|
|
25006
25005
|
];
|
|
25007
25006
|
var RECOMMENDED_RULES = {
|
|
@@ -25012,7 +25011,7 @@ var RECOMMENDED_RULES = {
|
|
|
25012
25011
|
"@sarj/no-reduce-accumulator-copy": "error",
|
|
25013
25012
|
"@sarj/no-known-value-widening": "error",
|
|
25014
25013
|
"@sarj/require-button-accessible-name": "error",
|
|
25015
|
-
"@sarj/require-camelcase-properties": "
|
|
25014
|
+
"@sarj/require-camelcase-properties": "error",
|
|
25016
25015
|
"@sarj/require-svg-accessible-name": "error",
|
|
25017
25016
|
"@sarj/prefer-logical-tailwind-utilities": ["error", { enabled: false }],
|
|
25018
25017
|
"@sarj/no-unlocalized-toast": ["error", { enabled: false }],
|
|
@@ -25086,7 +25085,7 @@ var RECOMMENDED_RULES = {
|
|
|
25086
25085
|
"@sarj/prefer-module-level-constant": "error",
|
|
25087
25086
|
"@sarj/prefer-module-level-schema": "error",
|
|
25088
25087
|
"@sarj/prefer-module-level-refined-schema": "warn",
|
|
25089
|
-
"@sarj/prefer-multi-value-zod-literal": ["
|
|
25088
|
+
"@sarj/prefer-multi-value-zod-literal": ["error", { zodMajorVersion: 4 }],
|
|
25090
25089
|
"@sarj/prefer-named-callback-domain": "error",
|
|
25091
25090
|
"@sarj/prefer-nominal-id-types": "error",
|
|
25092
25091
|
"@sarj/prefer-named-complex-return-type": "error",
|
|
@@ -25130,7 +25129,7 @@ var STRICT_RULES = {
|
|
|
25130
25129
|
"@sarj/no-reduce-accumulator-copy": "error",
|
|
25131
25130
|
"@sarj/no-known-value-widening": "error",
|
|
25132
25131
|
"@sarj/require-button-accessible-name": "error",
|
|
25133
|
-
"@sarj/require-camelcase-properties": "
|
|
25132
|
+
"@sarj/require-camelcase-properties": "error",
|
|
25134
25133
|
"@sarj/require-svg-accessible-name": "error",
|
|
25135
25134
|
"@sarj/prefer-logical-tailwind-utilities": ["error", { enabled: false }],
|
|
25136
25135
|
"@sarj/no-unlocalized-toast": ["error", { enabled: false }],
|
|
@@ -25208,7 +25207,7 @@ var STRICT_RULES = {
|
|
|
25208
25207
|
"@sarj/prefer-module-level-constant": "error",
|
|
25209
25208
|
"@sarj/prefer-module-level-schema": "error",
|
|
25210
25209
|
"@sarj/prefer-module-level-refined-schema": "warn",
|
|
25211
|
-
"@sarj/prefer-multi-value-zod-literal": ["
|
|
25210
|
+
"@sarj/prefer-multi-value-zod-literal": ["error", { zodMajorVersion: 4 }],
|
|
25212
25211
|
"@sarj/prefer-named-callback-domain": "error",
|
|
25213
25212
|
"@sarj/prefer-nominal-id-types": "error",
|
|
25214
25213
|
"@sarj/prefer-named-complex-return-type": "error",
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sarj/eslint-plugin",
|
|
3
|
-
"version": "16.
|
|
4
|
-
"packageManager": "npm@12.
|
|
3
|
+
"version": "16.10.0",
|
|
4
|
+
"packageManager": "npm@12.2.0",
|
|
5
5
|
"description": "Custom ESLint rules for hypermodern TypeScript / React / Next.js projects",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.cjs",
|
|
@@ -54,48 +54,49 @@
|
|
|
54
54
|
"author": "sarj-ai",
|
|
55
55
|
"license": "MIT",
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@typescript-eslint/typescript-estree": "^8.
|
|
58
|
-
"@typescript-eslint/utils": "^8.
|
|
57
|
+
"@typescript-eslint/typescript-estree": "^8.71.2",
|
|
58
|
+
"@typescript-eslint/utils": "^8.71.2",
|
|
59
59
|
"jsonc-parser": "^3.3.1"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.8.1",
|
|
63
63
|
"@eslint/compat": "^2.1.1",
|
|
64
64
|
"@eslint/js": "10.0.1",
|
|
65
|
-
"@shadcn/lint": "0.2.
|
|
66
|
-
"@types/node": "26.6.
|
|
67
|
-
"@typescript-eslint/parser": "8.
|
|
68
|
-
"@typescript-eslint/rule-tester": "8.
|
|
69
|
-
"@typescript-eslint/utils": "8.
|
|
65
|
+
"@shadcn/lint": "0.2.1",
|
|
66
|
+
"@types/node": "26.6.5",
|
|
67
|
+
"@typescript-eslint/parser": "8.71.2",
|
|
68
|
+
"@typescript-eslint/rule-tester": "8.71.2",
|
|
69
|
+
"@typescript-eslint/utils": "8.71.2",
|
|
70
70
|
"@typescript/native": "npm:typescript@7.0.2",
|
|
71
71
|
"@vitest/eslint-plugin": "1.6.27",
|
|
72
|
-
"eslint": "10.
|
|
73
|
-
"eslint-node-test": "0.
|
|
74
|
-
"eslint-plugin-better-tailwindcss": "^4.
|
|
75
|
-
"eslint-plugin-jest": "29.
|
|
76
|
-
"eslint-plugin-jsdoc": "
|
|
77
|
-
"eslint-plugin-n": "^18.
|
|
72
|
+
"eslint": "10.12.0",
|
|
73
|
+
"eslint-node-test": "1.0.1",
|
|
74
|
+
"eslint-plugin-better-tailwindcss": "^4.9.0",
|
|
75
|
+
"eslint-plugin-jest": "29.17.0",
|
|
76
|
+
"eslint-plugin-jsdoc": "65.3.1",
|
|
77
|
+
"eslint-plugin-n": "^18.4.1",
|
|
78
78
|
"eslint-plugin-perfectionist": "5.12.1",
|
|
79
|
-
"eslint-plugin-playwright": "2.12.
|
|
79
|
+
"eslint-plugin-playwright": "2.12.1",
|
|
80
80
|
"eslint-plugin-promise": "^7.3.0",
|
|
81
81
|
"eslint-plugin-react": "^7.37.5",
|
|
82
82
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
83
83
|
"eslint-plugin-simple-import-sort": "^14.0.0",
|
|
84
84
|
"eslint-plugin-testing-library": "7.16.2",
|
|
85
|
-
"eslint-plugin-unicorn": "^
|
|
86
|
-
"eslint-plugin-zod": "^
|
|
87
|
-
"globals": "
|
|
88
|
-
"tsup": "
|
|
85
|
+
"eslint-plugin-unicorn": "^78.0.0",
|
|
86
|
+
"eslint-plugin-zod": "^5.0.1",
|
|
87
|
+
"globals": "17.13.0",
|
|
88
|
+
"tsup": "8.5.1",
|
|
89
89
|
"typescript": "npm:@typescript/typescript6@6.0.2",
|
|
90
|
-
"typescript-eslint": "^8.
|
|
91
|
-
"vitest": "5.0.
|
|
90
|
+
"typescript-eslint": "^8.71.2",
|
|
91
|
+
"vitest": "5.0.4",
|
|
92
|
+
"zod": "4.6.7"
|
|
92
93
|
},
|
|
93
94
|
"peerDependencies": {
|
|
94
95
|
"eslint": ">=9.39.4",
|
|
95
96
|
"typescript": ">=5.0.0"
|
|
96
97
|
},
|
|
97
98
|
"engines": {
|
|
98
|
-
"node": "
|
|
99
|
+
"node": "^22.22.2 || >=24.15.0"
|
|
99
100
|
},
|
|
100
101
|
"allowScripts": {
|
|
101
102
|
"esbuild@0.28.2": true,
|
|
@@ -107,11 +108,11 @@
|
|
|
107
108
|
}
|
|
108
109
|
},
|
|
109
110
|
"overrides": {
|
|
110
|
-
"brace-expansion@^5.0.0": "5.0.
|
|
111
|
+
"brace-expansion@^5.0.0": "5.0.12",
|
|
111
112
|
"esbuild": "0.28.2",
|
|
112
|
-
"nanoid@<3.3.18": "3.3.18",
|
|
113
113
|
"eslint-plugin-react": {
|
|
114
114
|
"eslint": "$eslint"
|
|
115
|
-
}
|
|
115
|
+
},
|
|
116
|
+
"nanoid@<3.3.20": "3.3.20"
|
|
116
117
|
}
|
|
117
118
|
}
|