@sarj/eslint-plugin 16.35.1 → 16.36.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/{_docs-Bq5OCcWF.d.cts → _docs-IZjowAEc.d.cts} +21 -1
- package/dist/{_docs-Bq5OCcWF.d.ts → _docs-IZjowAEc.d.ts} +21 -1
- package/dist/index.cjs +338 -334
- package/dist/index.d.cts +175 -502
- package/dist/index.d.ts +175 -502
- package/dist/index.js +338 -334
- package/dist/rule-examples.cjs +49 -0
- package/dist/rule-examples.js +49 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as DocumentedRule } from './_docs-
|
|
2
|
-
export { p as publicDocumentation } from './_docs-
|
|
1
|
+
import { D as DocumentedRule } from './_docs-IZjowAEc.js';
|
|
2
|
+
export { p as publicDocumentation } from './_docs-IZjowAEc.js';
|
|
3
3
|
import '@typescript-eslint/utils';
|
|
4
4
|
|
|
5
5
|
/** @fileoverview _retired-rules — burned rule names and their migration action. */
|
|
@@ -320,40 +320,39 @@ declare const RULES: {
|
|
|
320
320
|
};
|
|
321
321
|
/** @deprecated All repositories use one policy; retained for import compatibility. */
|
|
322
322
|
declare const APPLICATION_ONLY_RULES: readonly [];
|
|
323
|
-
|
|
324
|
-
declare const
|
|
325
|
-
|
|
326
|
-
readonly "@sarj/no-
|
|
327
|
-
readonly "@sarj/
|
|
328
|
-
readonly "@sarj/
|
|
329
|
-
readonly "@sarj/
|
|
330
|
-
readonly "@sarj/
|
|
331
|
-
readonly "@sarj/
|
|
332
|
-
readonly "@sarj/no-
|
|
333
|
-
readonly "@sarj/no-
|
|
334
|
-
readonly "@sarj/no-
|
|
335
|
-
readonly "@sarj/no-
|
|
336
|
-
readonly "@sarj/no-
|
|
337
|
-
readonly "@sarj/no-
|
|
338
|
-
readonly "@sarj/no-
|
|
339
|
-
readonly "@sarj/no-
|
|
340
|
-
readonly "@sarj/
|
|
341
|
-
readonly "@sarj/require-
|
|
342
|
-
readonly "@sarj/require-
|
|
343
|
-
readonly "@sarj/
|
|
344
|
-
readonly "@sarj/prefer-logical-tailwind-utilities": readonly ["error", {
|
|
323
|
+
type PresetMembership = "both" | "strict";
|
|
324
|
+
declare const RULE_POLICY: {
|
|
325
|
+
readonly "@sarj/no-excess-jsx-props": readonly ["warn", "both"];
|
|
326
|
+
readonly "@sarj/no-redundant-consumer-union": readonly ["warn", "both"];
|
|
327
|
+
readonly "@sarj/prefer-minimal-parameter-contract": readonly ["warn", "both"];
|
|
328
|
+
readonly "@sarj/named-child-schema-type": readonly ["error", "both"];
|
|
329
|
+
readonly "@sarj/no-conditional-empty-object-spread": readonly ["error", "both"];
|
|
330
|
+
readonly "@sarj/prefer-typed-reflection": readonly ["error", "both"];
|
|
331
|
+
readonly "@sarj/no-broad-return-type": readonly ["error", "both"];
|
|
332
|
+
readonly "@sarj/no-reduce-accumulator-copy": readonly ["error", "both"];
|
|
333
|
+
readonly "@sarj/no-known-value-widening": readonly ["error", "both"];
|
|
334
|
+
readonly "@sarj/no-invalid-typed-mutation": readonly ["error", "both"];
|
|
335
|
+
readonly "@sarj/no-contradictory-type-predicate": readonly ["error", "both"];
|
|
336
|
+
readonly "@sarj/no-partial-type-predicate": readonly ["error", "both"];
|
|
337
|
+
readonly "@sarj/no-boolean-selector-parameter": readonly ["warn", "both"];
|
|
338
|
+
readonly "@sarj/no-invalid-zod-custom-parse": readonly ["error", "both"];
|
|
339
|
+
readonly "@sarj/no-contradictory-overload-return": readonly ["error", "both"];
|
|
340
|
+
readonly "@sarj/require-button-accessible-name": readonly ["error", "both"];
|
|
341
|
+
readonly "@sarj/require-camelcase-properties": readonly ["error", "both"];
|
|
342
|
+
readonly "@sarj/require-svg-accessible-name": readonly ["error", "both"];
|
|
343
|
+
readonly "@sarj/prefer-logical-tailwind-utilities": readonly ["error", "both", () => readonly [{
|
|
345
344
|
readonly enabled: false;
|
|
346
|
-
}];
|
|
347
|
-
readonly "@sarj/no-unlocalized-toast": readonly ["error", {
|
|
345
|
+
}]];
|
|
346
|
+
readonly "@sarj/no-unlocalized-toast": readonly ["error", "both", () => readonly [{
|
|
348
347
|
readonly enabled: false;
|
|
349
|
-
}];
|
|
350
|
-
readonly "@sarj/no-unlocalized-jsx-attributes": readonly ["error", {
|
|
348
|
+
}]];
|
|
349
|
+
readonly "@sarj/no-unlocalized-jsx-attributes": readonly ["error", "both", () => readonly [{
|
|
351
350
|
readonly enabled: false;
|
|
352
|
-
}];
|
|
353
|
-
readonly "@sarj/no-unlocalized-jsx-text": readonly ["error", {
|
|
351
|
+
}]];
|
|
352
|
+
readonly "@sarj/no-unlocalized-jsx-text": readonly ["error", "both", () => readonly [{
|
|
354
353
|
readonly enabled: false;
|
|
355
|
-
}];
|
|
356
|
-
readonly "no-restricted-imports": readonly ["error", {
|
|
354
|
+
}]];
|
|
355
|
+
readonly "no-restricted-imports": readonly ["shared", "both", readonly ["error", {
|
|
357
356
|
readonly paths: {
|
|
358
357
|
name: "axios" | "request" | "node-fetch" | "cross-fetch" | "isomorphic-fetch" | "moment" | "dayjs" | "lodash" | "lodash-es" | "underscore" | "classnames" | "joi" | "yup" | "superstruct" | "io-ts" | "runtypes" | "jsonwebtoken" | "express" | "koa" | "jest" | "mocha" | "sinon" | "commander" | "yargs" | "bluebird" | "rimraf" | "fs-extra" | "abort-controller" | "querystring" | "dotenv" | "chalk" | "faker" | "node-sass" | "tslint";
|
|
359
358
|
message: "Use the platform-native fetch API; review errors, timeouts, retries, and response parsing during migration." | "Standards standardizes date utilities on date-fns; migration is not API-compatible." | "Standards standardizes collection utilities on Remeda and native APIs." | "Use clsx for conditional class-name composition." | "Standards standardizes runtime validation on Zod; schemas are not drop-in compatible." | "Use jose; review key formats and async signing and verification APIs." | "Standards standardizes servers on Hono; Node deployments also need @hono/node-server." | "Standards standardizes tests on Vitest; review globals, timers, mocks, and environment setup." | "Use Vitest spies, mocks, and fake timers instead of Sinon." | "Standards standardizes command-line interfaces on citty." | "Use native Promise, adding p-limit or p-map only for the extensions actually needed." | "Prefer node:fs/promises; verify recursive removal, copy, path, and error semantics." | "Node 22 provides global AbortController." | "Use URLSearchParams and explicitly review repeated keys, escaping, arrays, and object coercion." | "Standards standardizes environment loading on @dotenvx/dotenvx." | "Use picocolors for terminal colors." | "The original faker package is abandoned; use @faker-js/faker." | "node-sass is end-of-life; use Dart Sass." | "TSLint is deprecated; use ESLint with typescript-eslint.";
|
|
@@ -362,8 +361,8 @@ declare const RECOMMENDED_RULES: {
|
|
|
362
361
|
group: string[];
|
|
363
362
|
message: "Use the platform-native fetch API; review errors, timeouts, retries, and response parsing during migration." | "Standards standardizes date utilities on date-fns; migration is not API-compatible." | "Standards standardizes collection utilities on Remeda and native APIs." | "Use clsx for conditional class-name composition." | "Standards standardizes runtime validation on Zod; schemas are not drop-in compatible." | "Use jose; review key formats and async signing and verification APIs." | "Standards standardizes servers on Hono; Node deployments also need @hono/node-server." | "Standards standardizes tests on Vitest; review globals, timers, mocks, and environment setup." | "Use Vitest spies, mocks, and fake timers instead of Sinon." | "Standards standardizes command-line interfaces on citty." | "Use native Promise, adding p-limit or p-map only for the extensions actually needed." | "Prefer node:fs/promises; verify recursive removal, copy, path, and error semantics." | "Node 22 provides global AbortController." | "Use URLSearchParams and explicitly review repeated keys, escaping, arrays, and object coercion." | "Standards standardizes environment loading on @dotenvx/dotenvx." | "Use picocolors for terminal colors." | "The original faker package is abandoned; use @faker-js/faker." | "node-sass is end-of-life; use Dart Sass." | "TSLint is deprecated; use ESLint with typescript-eslint.";
|
|
364
363
|
}[];
|
|
365
|
-
}];
|
|
366
|
-
readonly "@sarj/no-restricted-library-load": readonly ["error", {
|
|
364
|
+
}]];
|
|
365
|
+
readonly "@sarj/no-restricted-library-load": readonly ["error", "both", () => readonly [{
|
|
367
366
|
readonly libraries: readonly [{
|
|
368
367
|
readonly id: "LIB101";
|
|
369
368
|
readonly module: "request";
|
|
@@ -535,479 +534,153 @@ declare const RECOMMENDED_RULES: {
|
|
|
535
534
|
readonly note: "TSLint is deprecated; use ESLint with typescript-eslint.";
|
|
536
535
|
readonly replacement: "eslint";
|
|
537
536
|
}];
|
|
538
|
-
}];
|
|
539
|
-
readonly "@sarj/no-redundant-local-alias": "warn";
|
|
540
|
-
readonly "@sarj/prefer-test-fixture-reuse": "warn";
|
|
541
|
-
readonly "@sarj/no-negative-only-http-status-assertion": "warn";
|
|
542
|
-
readonly "@sarj/no-mutating-input-with-result": "warn";
|
|
543
|
-
readonly "@sarj/no-return-disposed-resource": "warn";
|
|
544
|
-
readonly "@sarj/no-discarded-validation-result": "warn";
|
|
545
|
-
readonly "@sarj/require-jwt-lifetime": "warn";
|
|
546
|
-
readonly "@sarj/prefer-dependency-interface": "warn";
|
|
547
|
-
readonly "@sarj/no-generic-json-parser": "warn";
|
|
548
|
-
readonly "@sarj/require-constrained-schema-integer": "warn";
|
|
549
|
-
readonly "@sarj/production-derived-test-cases": "warn";
|
|
550
|
-
readonly "@sarj/no-test-comments": "warn";
|
|
551
|
-
readonly "@sarj/no-mutating-container-transform": "warn";
|
|
552
|
-
readonly "@sarj/prefer-native-random-uuid": "error";
|
|
553
|
-
readonly "@sarj/prefer-shadcn-primitives": "error";
|
|
554
|
-
readonly "@sarj/excessive-commentary": "warn";
|
|
555
|
-
readonly "@sarj/no-excessive-cognitive-complexity": "error";
|
|
556
|
-
readonly "@sarj/interface-contract-members-private": "error";
|
|
557
|
-
readonly "@sarj/iac-source-coupled-test": "error";
|
|
558
|
-
readonly "@sarj/duplicate-test-body": "error";
|
|
559
|
-
readonly "@sarj/enforce-file-structure": "error";
|
|
560
|
-
readonly "@sarj/no-client-side-data-fetching": "error";
|
|
561
|
-
readonly "@sarj/no-comment-cruft": "error";
|
|
562
|
-
readonly "@sarj/no-cors-wildcard-with-credentials": "warn";
|
|
563
|
-
readonly "@sarj/no-dynamic-sql": "error";
|
|
564
|
-
readonly "@sarj/no-
|
|
537
|
+
}]];
|
|
538
|
+
readonly "@sarj/no-redundant-local-alias": readonly ["warn", "both", "strict-order", 5];
|
|
539
|
+
readonly "@sarj/prefer-test-fixture-reuse": readonly ["warn", "both", "strict-order", 9];
|
|
540
|
+
readonly "@sarj/no-negative-only-http-status-assertion": readonly ["warn", "both", "strict-order", 4];
|
|
541
|
+
readonly "@sarj/no-mutating-input-with-result": readonly ["warn", "both", "strict-order", 3];
|
|
542
|
+
readonly "@sarj/no-return-disposed-resource": readonly ["warn", "both", "strict-order", 6];
|
|
543
|
+
readonly "@sarj/no-discarded-validation-result": readonly ["warn", "both", "strict-order", 0];
|
|
544
|
+
readonly "@sarj/require-jwt-lifetime": readonly ["warn", "both", "strict-order", 12];
|
|
545
|
+
readonly "@sarj/prefer-dependency-interface": readonly ["warn", "both", "strict-order", 8];
|
|
546
|
+
readonly "@sarj/no-generic-json-parser": readonly ["warn", "both", "strict-order", 1];
|
|
547
|
+
readonly "@sarj/require-constrained-schema-integer": readonly ["warn", "both", "strict-order", 11];
|
|
548
|
+
readonly "@sarj/production-derived-test-cases": readonly ["warn", "both", "strict-order", 10];
|
|
549
|
+
readonly "@sarj/no-test-comments": readonly ["warn", "both", "strict-order", 7];
|
|
550
|
+
readonly "@sarj/no-mutating-container-transform": readonly ["warn", "both", "strict-order", 2];
|
|
551
|
+
readonly "@sarj/prefer-native-random-uuid": readonly ["error", "both"];
|
|
552
|
+
readonly "@sarj/prefer-shadcn-primitives": readonly ["error", "both"];
|
|
553
|
+
readonly "@sarj/excessive-commentary": readonly ["warn", "both"];
|
|
554
|
+
readonly "@sarj/no-excessive-cognitive-complexity": readonly ["error", "both"];
|
|
555
|
+
readonly "@sarj/interface-contract-members-private": readonly ["error", "both"];
|
|
556
|
+
readonly "@sarj/iac-source-coupled-test": readonly ["error", "both"];
|
|
557
|
+
readonly "@sarj/duplicate-test-body": readonly ["error", "both"];
|
|
558
|
+
readonly "@sarj/enforce-file-structure": readonly ["error", "both"];
|
|
559
|
+
readonly "@sarj/no-client-side-data-fetching": readonly ["error", "both"];
|
|
560
|
+
readonly "@sarj/no-comment-cruft": readonly ["error", "both"];
|
|
561
|
+
readonly "@sarj/no-cors-wildcard-with-credentials": readonly ["warn", "both"];
|
|
562
|
+
readonly "@sarj/no-dynamic-sql": readonly ["error", "both"];
|
|
563
|
+
readonly "@sarj/no-enum": readonly ["error", "strict"];
|
|
564
|
+
readonly "@sarj/no-fat-try-blocks": readonly ["error", "both", () => readonly [{
|
|
565
565
|
readonly max: 5;
|
|
566
|
-
}];
|
|
567
|
-
readonly "@sarj/no-hand-rolled-sleep": "error";
|
|
568
|
-
readonly "@sarj/no-hand-rolled-spinner": "error";
|
|
569
|
-
readonly "@sarj/no-insecure-random-id": "error";
|
|
570
|
-
readonly "@sarj/no-exception-text-in-5xx-response": "warn";
|
|
571
|
-
readonly "@sarj/no-json-stringify-error": "error";
|
|
572
|
-
readonly "@sarj/no-impossible-zod-literal-bounds": "error";
|
|
573
|
-
readonly "@sarj/no-in-operator-on-built-in-collections": "error";
|
|
574
|
-
readonly "@sarj/no-log-only-catch": "error";
|
|
575
|
-
readonly "@sarj/no-bare-return-from-test-catch": "error";
|
|
576
|
-
readonly "@sarj/no-bespoke-api-case-conversion": "warn";
|
|
577
|
-
readonly "@sarj/no-detached-global-fetch": "error";
|
|
578
|
-
readonly "@sarj/no-json-stringify-object-equality": "error";
|
|
579
|
-
readonly "@sarj/no-dangerously-allow-svg": "error";
|
|
580
|
-
readonly "@sarj/no-credential-in-browser-storage": "warn";
|
|
581
|
-
readonly "@sarj/no-numeric-search-param-coercion": "warn";
|
|
582
|
-
readonly "@sarj/prefer-native-fetch-in-server-actions": "warn";
|
|
583
|
-
readonly "@sarj/no-duplicate-lifecycle-refresh-listeners": "error";
|
|
584
|
-
readonly "@sarj/no-long-comment": "error";
|
|
585
|
-
readonly "@sarj/no-vague-suppression-description": "error";
|
|
586
|
-
readonly "@sarj/no-generic-single-export-module": "error";
|
|
587
|
-
readonly "@sarj/no-offset-pagination": "error";
|
|
588
|
-
readonly "@sarj/no-positional-tuple-return": "error";
|
|
589
|
-
readonly "@sarj/no-production-browser-source-maps": "error";
|
|
590
|
-
readonly "@sarj/no-
|
|
591
|
-
readonly "@sarj/no-
|
|
592
|
-
readonly "@sarj/no-
|
|
593
|
-
readonly "@sarj/no-
|
|
594
|
-
readonly "@sarj/no-
|
|
595
|
-
readonly "@sarj/no-
|
|
596
|
-
readonly "@sarj/no-
|
|
597
|
-
readonly "@sarj/no-
|
|
598
|
-
readonly "@sarj/no-
|
|
599
|
-
readonly "@sarj/no-
|
|
600
|
-
readonly "@sarj/no-
|
|
601
|
-
readonly "@sarj/no-
|
|
602
|
-
readonly "@sarj/no-
|
|
603
|
-
readonly "@sarj/no-
|
|
604
|
-
readonly "@sarj/no-
|
|
605
|
-
readonly "@sarj/no-
|
|
606
|
-
readonly "@sarj/no-
|
|
607
|
-
readonly "@sarj/no-
|
|
608
|
-
readonly "@sarj/no-
|
|
609
|
-
readonly "@sarj/no-
|
|
610
|
-
readonly "@sarj/no-
|
|
611
|
-
readonly "@sarj/no-
|
|
612
|
-
readonly "@sarj/no-
|
|
613
|
-
readonly "@sarj/no-
|
|
614
|
-
readonly "@sarj/
|
|
615
|
-
readonly "@sarj/
|
|
616
|
-
readonly "@sarj/
|
|
617
|
-
readonly "@sarj/
|
|
618
|
-
readonly "@sarj/prefer-
|
|
619
|
-
readonly "@sarj/prefer-
|
|
620
|
-
readonly "@sarj/prefer-
|
|
621
|
-
readonly "@sarj/prefer-
|
|
622
|
-
readonly "@sarj/prefer-
|
|
623
|
-
readonly "@sarj/prefer-module-
|
|
624
|
-
readonly "@sarj/prefer-
|
|
566
|
+
}]];
|
|
567
|
+
readonly "@sarj/no-hand-rolled-sleep": readonly ["error", "both"];
|
|
568
|
+
readonly "@sarj/no-hand-rolled-spinner": readonly ["error", "both"];
|
|
569
|
+
readonly "@sarj/no-insecure-random-id": readonly ["error", "both"];
|
|
570
|
+
readonly "@sarj/no-exception-text-in-5xx-response": readonly ["warn", "both"];
|
|
571
|
+
readonly "@sarj/no-json-stringify-error": readonly ["error", "both"];
|
|
572
|
+
readonly "@sarj/no-impossible-zod-literal-bounds": readonly ["error", "both"];
|
|
573
|
+
readonly "@sarj/no-in-operator-on-built-in-collections": readonly ["error", "both"];
|
|
574
|
+
readonly "@sarj/no-log-only-catch": readonly ["error", "both"];
|
|
575
|
+
readonly "@sarj/no-bare-return-from-test-catch": readonly ["error", "both"];
|
|
576
|
+
readonly "@sarj/no-bespoke-api-case-conversion": readonly ["warn", "both"];
|
|
577
|
+
readonly "@sarj/no-detached-global-fetch": readonly ["error", "both"];
|
|
578
|
+
readonly "@sarj/no-json-stringify-object-equality": readonly ["error", "both"];
|
|
579
|
+
readonly "@sarj/no-dangerously-allow-svg": readonly ["error", "both"];
|
|
580
|
+
readonly "@sarj/no-credential-in-browser-storage": readonly ["warn", "both"];
|
|
581
|
+
readonly "@sarj/no-numeric-search-param-coercion": readonly ["warn", "both"];
|
|
582
|
+
readonly "@sarj/prefer-native-fetch-in-server-actions": readonly ["warn", "both"];
|
|
583
|
+
readonly "@sarj/no-duplicate-lifecycle-refresh-listeners": readonly ["error", "both"];
|
|
584
|
+
readonly "@sarj/no-long-comment": readonly ["error", "both"];
|
|
585
|
+
readonly "@sarj/no-vague-suppression-description": readonly ["error", "both"];
|
|
586
|
+
readonly "@sarj/no-generic-single-export-module": readonly ["error", "both"];
|
|
587
|
+
readonly "@sarj/no-offset-pagination": readonly ["error", "both"];
|
|
588
|
+
readonly "@sarj/no-positional-tuple-return": readonly ["error", "both"];
|
|
589
|
+
readonly "@sarj/no-production-browser-source-maps": readonly ["error", "both"];
|
|
590
|
+
readonly "@sarj/no-raw-env": readonly ["error", "strict"];
|
|
591
|
+
readonly "@sarj/no-raw-fetch-outside-clients": readonly ["error", "strict"];
|
|
592
|
+
readonly "@sarj/no-repeated-string-literal": readonly ["error", "both"];
|
|
593
|
+
readonly "@sarj/no-redundant-optional-array-default": readonly ["error", "both"];
|
|
594
|
+
readonly "@sarj/no-router-refresh-polling": readonly ["error", "both"];
|
|
595
|
+
readonly "@sarj/no-restated-comment": readonly ["warn", "both"];
|
|
596
|
+
readonly "@sarj/no-restated-jsdoc": readonly ["warn", "both"];
|
|
597
|
+
readonly "@sarj/no-secret-in-log": readonly ["error", "both"];
|
|
598
|
+
readonly "@sarj/no-server-env-in-client-component": readonly ["error", "both"];
|
|
599
|
+
readonly "@sarj/no-select-star": readonly ["error", "both"];
|
|
600
|
+
readonly "@sarj/no-sentinel-return-on-catch": readonly ["error", "both"];
|
|
601
|
+
readonly "@sarj/no-silent-promise-catch": readonly ["error", "both"];
|
|
602
|
+
readonly "@sarj/no-sleep-in-test-body": readonly ["error", "both"];
|
|
603
|
+
readonly "@sarj/no-storage-in-stateless-modules": readonly ["error", "strict"];
|
|
604
|
+
readonly "@sarj/no-string-concat-in-loop": readonly ["error", "both"];
|
|
605
|
+
readonly "@sarj/no-tautological-expect": readonly ["error", "both"];
|
|
606
|
+
readonly "@sarj/no-duplicate-test-case": readonly ["error", "both"];
|
|
607
|
+
readonly "@sarj/no-typed-doc-sections": readonly ["error", "both"];
|
|
608
|
+
readonly "@sarj/no-trailing-value-narration": readonly ["error", "both"];
|
|
609
|
+
readonly "@sarj/no-declaration-comment-wall": readonly ["error", "both"];
|
|
610
|
+
readonly "@sarj/no-union-in-comment": readonly ["error", "both"];
|
|
611
|
+
readonly "@sarj/no-type-member-comment-wall": readonly ["error", "both"];
|
|
612
|
+
readonly "@sarj/no-unnecessary-use-client": readonly ["error", "both"];
|
|
613
|
+
readonly "@sarj/no-unsafe-mock-casting": readonly ["error", "both"];
|
|
614
|
+
readonly "@sarj/no-unsafe-test-double-cast": readonly ["error", "both"];
|
|
615
|
+
readonly "@sarj/no-first-party-module-mock": readonly ["error", "both"];
|
|
616
|
+
readonly "@sarj/no-zod-native-enum": readonly ["error", "both"];
|
|
617
|
+
readonly "@sarj/test-loops-over-literal-cases": readonly ["error", "both"];
|
|
618
|
+
readonly "@sarj/prefer-constant-time-secret-compare": readonly ["error", "both"];
|
|
619
|
+
readonly "@sarj/prefer-ecmascript-private-members": readonly ["error", "both"];
|
|
620
|
+
readonly "@sarj/prefer-discriminated-union": readonly ["warn", "both"];
|
|
621
|
+
readonly "@sarj/prefer-input-group-search": readonly ["error", "both"];
|
|
622
|
+
readonly "@sarj/prefer-millisecond-control-duration-schema": readonly ["warn", "both"];
|
|
623
|
+
readonly "@sarj/prefer-immutable-module-constant": readonly ["error", "both"];
|
|
624
|
+
readonly "@sarj/prefer-module-level-constant": readonly ["error", "both"];
|
|
625
|
+
readonly "@sarj/prefer-module-level-schema": readonly ["error", "both"];
|
|
626
|
+
readonly "@sarj/prefer-module-level-refined-schema": readonly ["warn", "both"];
|
|
627
|
+
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["error", "both", () => readonly [{
|
|
625
628
|
readonly zodMajorVersion: 4;
|
|
626
|
-
}];
|
|
627
|
-
readonly "@sarj/prefer-named-callback-domain": "error";
|
|
628
|
-
readonly "@sarj/prefer-nominal-id-types": "error";
|
|
629
|
-
readonly "@sarj/prefer-named-complex-return-type": "error";
|
|
630
|
-
readonly "@sarj/prefer-node-crypto-hash": "warn";
|
|
631
|
-
readonly "@sarj/prefer-node-fs-promises": "warn";
|
|
632
|
-
readonly "@sarj/prefer-non-nullable-collection": "error";
|
|
633
|
-
readonly "@sarj/prefer-nullish-filter-predicate": "error";
|
|
634
|
-
readonly "@sarj/prefer-await-in-async-return": "error";
|
|
635
|
-
readonly "@sarj/prefer-schema-for-api-payload": "error";
|
|
636
|
-
readonly "@sarj/prefer-shared-zod-enum": "warn";
|
|
637
|
-
readonly "@sarj/prefer-switch-for-repeated-equality": "error";
|
|
638
|
-
readonly "@sarj/prefer-semantic-colors": readonly ["error", {
|
|
629
|
+
}]];
|
|
630
|
+
readonly "@sarj/prefer-named-callback-domain": readonly ["error", "both"];
|
|
631
|
+
readonly "@sarj/prefer-nominal-id-types": readonly ["error", "both"];
|
|
632
|
+
readonly "@sarj/prefer-named-complex-return-type": readonly ["error", "both"];
|
|
633
|
+
readonly "@sarj/prefer-node-crypto-hash": readonly ["warn", "both"];
|
|
634
|
+
readonly "@sarj/prefer-node-fs-promises": readonly ["warn", "both"];
|
|
635
|
+
readonly "@sarj/prefer-non-nullable-collection": readonly ["error", "both"];
|
|
636
|
+
readonly "@sarj/prefer-nullish-filter-predicate": readonly ["error", "both"];
|
|
637
|
+
readonly "@sarj/prefer-await-in-async-return": readonly ["error", "both"];
|
|
638
|
+
readonly "@sarj/prefer-schema-for-api-payload": readonly ["error", "both"];
|
|
639
|
+
readonly "@sarj/prefer-shared-zod-enum": readonly ["warn", "both"];
|
|
640
|
+
readonly "@sarj/prefer-switch-for-repeated-equality": readonly ["error", "both"];
|
|
641
|
+
readonly "@sarj/prefer-semantic-colors": readonly ["error", "both", () => readonly [{
|
|
639
642
|
readonly requireSemanticTokens: true;
|
|
640
|
-
}];
|
|
641
|
-
readonly "@sarj/prefer-server-actions": "error";
|
|
642
|
-
readonly "@sarj/prefer-whole-object-assertion": "warn";
|
|
643
|
-
readonly "@sarj/repeated-static-call-cases": "error";
|
|
644
|
-
readonly "@sarj/prefer-zod-infer": "error";
|
|
645
|
-
readonly "@sarj/prefer-zod-parse-output-type": "warn";
|
|
646
|
-
readonly "@sarj/require-assert-never": "error";
|
|
647
|
-
readonly "@sarj/require-fetch-timeout": "error";
|
|
648
|
-
readonly "@sarj/require-explicit-contract-implementation": "error";
|
|
649
|
-
readonly "@sarj/require-explicit-service-contract": "error";
|
|
650
|
-
readonly "@sarj/require-interface-for-exported-class": "error";
|
|
651
|
-
readonly "@sarj/require-port-for-service": "error";
|
|
652
|
-
readonly "@sarj/require-sql-access-class": "warn";
|
|
653
|
-
readonly "@sarj/require-static-next-matcher": "error";
|
|
654
|
-
readonly "@sarj/require-use-form-default-values": "error";
|
|
655
|
-
readonly "@sarj/require-use-server-in-actions-file": "error";
|
|
656
|
-
readonly "@sarj/require-zod-form-validation": "error";
|
|
657
|
-
readonly "@sarj/store-insert-requires-on-conflict": "error";
|
|
658
|
-
readonly "@sarj/stepdown": "error";
|
|
659
|
-
readonly "@sarj/source-coupled-test": "error";
|
|
660
|
-
readonly "@sarj/sole-export-matches-filename": "error";
|
|
661
|
-
readonly "@sarj/test-phase-label-comment": "error";
|
|
662
|
-
readonly "@sarj/require-pascal-case-zod-schema-name": "error";
|
|
643
|
+
}]];
|
|
644
|
+
readonly "@sarj/prefer-server-actions": readonly ["error", "both"];
|
|
645
|
+
readonly "@sarj/prefer-whole-object-assertion": readonly ["warn", "both"];
|
|
646
|
+
readonly "@sarj/repeated-static-call-cases": readonly ["error", "both"];
|
|
647
|
+
readonly "@sarj/prefer-zod-infer": readonly ["error", "both"];
|
|
648
|
+
readonly "@sarj/prefer-zod-parse-output-type": readonly ["warn", "both"];
|
|
649
|
+
readonly "@sarj/require-assert-never": readonly ["error", "both"];
|
|
650
|
+
readonly "@sarj/require-fetch-timeout": readonly ["error", "both"];
|
|
651
|
+
readonly "@sarj/require-explicit-contract-implementation": readonly ["error", "both"];
|
|
652
|
+
readonly "@sarj/require-explicit-service-contract": readonly ["error", "both"];
|
|
653
|
+
readonly "@sarj/require-interface-for-exported-class": readonly ["error", "both"];
|
|
654
|
+
readonly "@sarj/require-port-for-service": readonly ["error", "both"];
|
|
655
|
+
readonly "@sarj/require-sql-access-class": readonly ["warn", "both"];
|
|
656
|
+
readonly "@sarj/require-static-next-matcher": readonly ["error", "both"];
|
|
657
|
+
readonly "@sarj/require-use-form-default-values": readonly ["error", "both"];
|
|
658
|
+
readonly "@sarj/require-use-server-in-actions-file": readonly ["error", "both"];
|
|
659
|
+
readonly "@sarj/require-zod-form-validation": readonly ["error", "both"];
|
|
660
|
+
readonly "@sarj/store-insert-requires-on-conflict": readonly ["error", "both"];
|
|
661
|
+
readonly "@sarj/stepdown": readonly ["error", "both"];
|
|
662
|
+
readonly "@sarj/source-coupled-test": readonly ["error", "both"];
|
|
663
|
+
readonly "@sarj/sole-export-matches-filename": readonly ["error", "both"];
|
|
664
|
+
readonly "@sarj/test-phase-label-comment": readonly ["error", "both"];
|
|
665
|
+
readonly "@sarj/require-pascal-case-zod-schema-name": readonly ["error", "both"];
|
|
663
666
|
};
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
readonly "
|
|
669
|
-
readonly "@sarj/no-negative-only-http-status-assertion": "warn";
|
|
670
|
-
readonly "@sarj/no-redundant-local-alias": "warn";
|
|
671
|
-
readonly "@sarj/no-return-disposed-resource": "warn";
|
|
672
|
-
readonly "@sarj/no-test-comments": "warn";
|
|
673
|
-
readonly "@sarj/prefer-dependency-interface": "warn";
|
|
674
|
-
readonly "@sarj/prefer-test-fixture-reuse": "warn";
|
|
675
|
-
readonly "@sarj/production-derived-test-cases": "warn";
|
|
676
|
-
readonly "@sarj/require-constrained-schema-integer": "warn";
|
|
677
|
-
readonly "@sarj/require-jwt-lifetime": "warn";
|
|
678
|
-
readonly "@sarj/no-excess-jsx-props": "warn";
|
|
679
|
-
readonly "@sarj/no-redundant-consumer-union": "warn";
|
|
680
|
-
readonly "@sarj/prefer-minimal-parameter-contract": "warn";
|
|
681
|
-
readonly "@sarj/named-child-schema-type": "error";
|
|
682
|
-
readonly "@sarj/no-conditional-empty-object-spread": "error";
|
|
683
|
-
readonly "@sarj/prefer-typed-reflection": "error";
|
|
684
|
-
readonly "@sarj/no-broad-return-type": "error";
|
|
685
|
-
readonly "@sarj/no-reduce-accumulator-copy": "error";
|
|
686
|
-
readonly "@sarj/no-known-value-widening": "error";
|
|
687
|
-
readonly "@sarj/no-invalid-typed-mutation": "error";
|
|
688
|
-
readonly "@sarj/no-contradictory-type-predicate": "error";
|
|
689
|
-
readonly "@sarj/no-partial-type-predicate": "error";
|
|
690
|
-
readonly "@sarj/no-boolean-selector-parameter": "warn";
|
|
691
|
-
readonly "@sarj/no-invalid-zod-custom-parse": "error";
|
|
692
|
-
readonly "@sarj/no-contradictory-overload-return": "error";
|
|
693
|
-
readonly "@sarj/require-button-accessible-name": "error";
|
|
694
|
-
readonly "@sarj/require-camelcase-properties": "error";
|
|
695
|
-
readonly "@sarj/require-svg-accessible-name": "error";
|
|
696
|
-
readonly "@sarj/prefer-logical-tailwind-utilities": readonly ["error", {
|
|
697
|
-
readonly enabled: false;
|
|
698
|
-
}];
|
|
699
|
-
readonly "@sarj/no-unlocalized-toast": readonly ["error", {
|
|
700
|
-
readonly enabled: false;
|
|
701
|
-
}];
|
|
702
|
-
readonly "@sarj/no-unlocalized-jsx-attributes": readonly ["error", {
|
|
703
|
-
readonly enabled: false;
|
|
704
|
-
}];
|
|
705
|
-
readonly "@sarj/no-unlocalized-jsx-text": readonly ["error", {
|
|
706
|
-
readonly enabled: false;
|
|
707
|
-
}];
|
|
708
|
-
readonly "no-restricted-imports": readonly ["error", {
|
|
709
|
-
readonly paths: {
|
|
710
|
-
name: "axios" | "request" | "node-fetch" | "cross-fetch" | "isomorphic-fetch" | "moment" | "dayjs" | "lodash" | "lodash-es" | "underscore" | "classnames" | "joi" | "yup" | "superstruct" | "io-ts" | "runtypes" | "jsonwebtoken" | "express" | "koa" | "jest" | "mocha" | "sinon" | "commander" | "yargs" | "bluebird" | "rimraf" | "fs-extra" | "abort-controller" | "querystring" | "dotenv" | "chalk" | "faker" | "node-sass" | "tslint";
|
|
711
|
-
message: "Use the platform-native fetch API; review errors, timeouts, retries, and response parsing during migration." | "Standards standardizes date utilities on date-fns; migration is not API-compatible." | "Standards standardizes collection utilities on Remeda and native APIs." | "Use clsx for conditional class-name composition." | "Standards standardizes runtime validation on Zod; schemas are not drop-in compatible." | "Use jose; review key formats and async signing and verification APIs." | "Standards standardizes servers on Hono; Node deployments also need @hono/node-server." | "Standards standardizes tests on Vitest; review globals, timers, mocks, and environment setup." | "Use Vitest spies, mocks, and fake timers instead of Sinon." | "Standards standardizes command-line interfaces on citty." | "Use native Promise, adding p-limit or p-map only for the extensions actually needed." | "Prefer node:fs/promises; verify recursive removal, copy, path, and error semantics." | "Node 22 provides global AbortController." | "Use URLSearchParams and explicitly review repeated keys, escaping, arrays, and object coercion." | "Standards standardizes environment loading on @dotenvx/dotenvx." | "Use picocolors for terminal colors." | "The original faker package is abandoned; use @faker-js/faker." | "node-sass is end-of-life; use Dart Sass." | "TSLint is deprecated; use ESLint with typescript-eslint.";
|
|
712
|
-
}[];
|
|
713
|
-
readonly patterns: {
|
|
714
|
-
group: string[];
|
|
715
|
-
message: "Use the platform-native fetch API; review errors, timeouts, retries, and response parsing during migration." | "Standards standardizes date utilities on date-fns; migration is not API-compatible." | "Standards standardizes collection utilities on Remeda and native APIs." | "Use clsx for conditional class-name composition." | "Standards standardizes runtime validation on Zod; schemas are not drop-in compatible." | "Use jose; review key formats and async signing and verification APIs." | "Standards standardizes servers on Hono; Node deployments also need @hono/node-server." | "Standards standardizes tests on Vitest; review globals, timers, mocks, and environment setup." | "Use Vitest spies, mocks, and fake timers instead of Sinon." | "Standards standardizes command-line interfaces on citty." | "Use native Promise, adding p-limit or p-map only for the extensions actually needed." | "Prefer node:fs/promises; verify recursive removal, copy, path, and error semantics." | "Node 22 provides global AbortController." | "Use URLSearchParams and explicitly review repeated keys, escaping, arrays, and object coercion." | "Standards standardizes environment loading on @dotenvx/dotenvx." | "Use picocolors for terminal colors." | "The original faker package is abandoned; use @faker-js/faker." | "node-sass is end-of-life; use Dart Sass." | "TSLint is deprecated; use ESLint with typescript-eslint.";
|
|
716
|
-
}[];
|
|
717
|
-
}];
|
|
718
|
-
readonly "@sarj/no-restricted-library-load": readonly ["error", {
|
|
719
|
-
readonly libraries: readonly [{
|
|
720
|
-
readonly id: "LIB101";
|
|
721
|
-
readonly module: "request";
|
|
722
|
-
readonly note: "Use the platform-native fetch API; review errors, timeouts, retries, and response parsing during migration.";
|
|
723
|
-
readonly replacement: "native fetch";
|
|
724
|
-
}, {
|
|
725
|
-
readonly id: "LIB101";
|
|
726
|
-
readonly module: "node-fetch";
|
|
727
|
-
readonly note: "Use the platform-native fetch API; review errors, timeouts, retries, and response parsing during migration.";
|
|
728
|
-
readonly replacement: "native fetch";
|
|
729
|
-
}, {
|
|
730
|
-
readonly id: "LIB101";
|
|
731
|
-
readonly module: "cross-fetch";
|
|
732
|
-
readonly note: "Use the platform-native fetch API; review errors, timeouts, retries, and response parsing during migration.";
|
|
733
|
-
readonly replacement: "native fetch";
|
|
734
|
-
}, {
|
|
735
|
-
readonly id: "LIB101";
|
|
736
|
-
readonly module: "isomorphic-fetch";
|
|
737
|
-
readonly note: "Use the platform-native fetch API; review errors, timeouts, retries, and response parsing during migration.";
|
|
738
|
-
readonly replacement: "native fetch";
|
|
739
|
-
}, {
|
|
740
|
-
readonly id: "LIB101";
|
|
741
|
-
readonly module: "axios";
|
|
742
|
-
readonly note: "Use the platform-native fetch API; review errors, timeouts, retries, and response parsing during migration.";
|
|
743
|
-
readonly replacement: "native fetch";
|
|
744
|
-
}, {
|
|
745
|
-
readonly id: "LIB102";
|
|
746
|
-
readonly module: "moment";
|
|
747
|
-
readonly note: "Standards standardizes date utilities on date-fns; migration is not API-compatible.";
|
|
748
|
-
readonly replacement: "date-fns";
|
|
749
|
-
}, {
|
|
750
|
-
readonly id: "LIB102";
|
|
751
|
-
readonly module: "dayjs";
|
|
752
|
-
readonly note: "Standards standardizes date utilities on date-fns; migration is not API-compatible.";
|
|
753
|
-
readonly replacement: "date-fns";
|
|
754
|
-
}, {
|
|
755
|
-
readonly id: "LIB103";
|
|
756
|
-
readonly module: "lodash";
|
|
757
|
-
readonly note: "Standards standardizes collection utilities on Remeda and native APIs.";
|
|
758
|
-
readonly replacement: "remeda";
|
|
759
|
-
}, {
|
|
760
|
-
readonly id: "LIB103";
|
|
761
|
-
readonly module: "lodash-es";
|
|
762
|
-
readonly note: "Standards standardizes collection utilities on Remeda and native APIs.";
|
|
763
|
-
readonly replacement: "remeda";
|
|
764
|
-
}, {
|
|
765
|
-
readonly id: "LIB103";
|
|
766
|
-
readonly module: "underscore";
|
|
767
|
-
readonly note: "Standards standardizes collection utilities on Remeda and native APIs.";
|
|
768
|
-
readonly replacement: "remeda";
|
|
769
|
-
}, {
|
|
770
|
-
readonly id: "LIB104";
|
|
771
|
-
readonly module: "classnames";
|
|
772
|
-
readonly note: "Use clsx for conditional class-name composition.";
|
|
773
|
-
readonly replacement: "clsx";
|
|
774
|
-
}, {
|
|
775
|
-
readonly id: "LIB105";
|
|
776
|
-
readonly module: "joi";
|
|
777
|
-
readonly note: "Standards standardizes runtime validation on Zod; schemas are not drop-in compatible.";
|
|
778
|
-
readonly replacement: "zod";
|
|
779
|
-
}, {
|
|
780
|
-
readonly id: "LIB105";
|
|
781
|
-
readonly module: "yup";
|
|
782
|
-
readonly note: "Standards standardizes runtime validation on Zod; schemas are not drop-in compatible.";
|
|
783
|
-
readonly replacement: "zod";
|
|
784
|
-
}, {
|
|
785
|
-
readonly id: "LIB105";
|
|
786
|
-
readonly module: "superstruct";
|
|
787
|
-
readonly note: "Standards standardizes runtime validation on Zod; schemas are not drop-in compatible.";
|
|
788
|
-
readonly replacement: "zod";
|
|
789
|
-
}, {
|
|
790
|
-
readonly id: "LIB105";
|
|
791
|
-
readonly module: "io-ts";
|
|
792
|
-
readonly note: "Standards standardizes runtime validation on Zod; schemas are not drop-in compatible.";
|
|
793
|
-
readonly replacement: "zod";
|
|
794
|
-
}, {
|
|
795
|
-
readonly id: "LIB105";
|
|
796
|
-
readonly module: "runtypes";
|
|
797
|
-
readonly note: "Standards standardizes runtime validation on Zod; schemas are not drop-in compatible.";
|
|
798
|
-
readonly replacement: "zod";
|
|
799
|
-
}, {
|
|
800
|
-
readonly id: "LIB106";
|
|
801
|
-
readonly module: "jsonwebtoken";
|
|
802
|
-
readonly note: "Use jose; review key formats and async signing and verification APIs.";
|
|
803
|
-
readonly replacement: "jose";
|
|
804
|
-
}, {
|
|
805
|
-
readonly id: "LIB107";
|
|
806
|
-
readonly module: "express";
|
|
807
|
-
readonly note: "Standards standardizes servers on Hono; Node deployments also need @hono/node-server.";
|
|
808
|
-
readonly replacement: "hono";
|
|
809
|
-
}, {
|
|
810
|
-
readonly id: "LIB107";
|
|
811
|
-
readonly module: "koa";
|
|
812
|
-
readonly note: "Standards standardizes servers on Hono; Node deployments also need @hono/node-server.";
|
|
813
|
-
readonly replacement: "hono";
|
|
814
|
-
}, {
|
|
815
|
-
readonly id: "LIB108";
|
|
816
|
-
readonly module: "jest";
|
|
817
|
-
readonly note: "Standards standardizes tests on Vitest; review globals, timers, mocks, and environment setup.";
|
|
818
|
-
readonly replacement: "vitest";
|
|
819
|
-
}, {
|
|
820
|
-
readonly id: "LIB108";
|
|
821
|
-
readonly module: "mocha";
|
|
822
|
-
readonly note: "Standards standardizes tests on Vitest; review globals, timers, mocks, and environment setup.";
|
|
823
|
-
readonly replacement: "vitest";
|
|
824
|
-
}, {
|
|
825
|
-
readonly id: "LIB109";
|
|
826
|
-
readonly module: "sinon";
|
|
827
|
-
readonly note: "Use Vitest spies, mocks, and fake timers instead of Sinon.";
|
|
828
|
-
readonly replacement: "Vitest mocks";
|
|
829
|
-
}, {
|
|
830
|
-
readonly id: "LIB110";
|
|
831
|
-
readonly module: "commander";
|
|
832
|
-
readonly note: "Standards standardizes command-line interfaces on citty.";
|
|
833
|
-
readonly replacement: "citty";
|
|
834
|
-
}, {
|
|
835
|
-
readonly id: "LIB110";
|
|
836
|
-
readonly module: "yargs";
|
|
837
|
-
readonly note: "Standards standardizes command-line interfaces on citty.";
|
|
838
|
-
readonly replacement: "citty";
|
|
839
|
-
}, {
|
|
840
|
-
readonly id: "LIB111";
|
|
841
|
-
readonly module: "bluebird";
|
|
842
|
-
readonly note: "Use native Promise, adding p-limit or p-map only for the extensions actually needed.";
|
|
843
|
-
readonly replacement: "native Promise";
|
|
844
|
-
}, {
|
|
845
|
-
readonly id: "LIB112";
|
|
846
|
-
readonly module: "rimraf";
|
|
847
|
-
readonly note: "Prefer node:fs/promises; verify recursive removal, copy, path, and error semantics.";
|
|
848
|
-
readonly replacement: "node:fs/promises";
|
|
849
|
-
}, {
|
|
850
|
-
readonly id: "LIB112";
|
|
851
|
-
readonly module: "fs-extra";
|
|
852
|
-
readonly note: "Prefer node:fs/promises; verify recursive removal, copy, path, and error semantics.";
|
|
853
|
-
readonly replacement: "node:fs/promises";
|
|
854
|
-
}, {
|
|
855
|
-
readonly id: "LIB113";
|
|
856
|
-
readonly module: "abort-controller";
|
|
857
|
-
readonly note: "Node 22 provides global AbortController.";
|
|
858
|
-
readonly replacement: "AbortController";
|
|
859
|
-
}, {
|
|
860
|
-
readonly id: "LIB114";
|
|
861
|
-
readonly module: "querystring";
|
|
862
|
-
readonly note: "Use URLSearchParams and explicitly review repeated keys, escaping, arrays, and object coercion.";
|
|
863
|
-
readonly replacement: "URLSearchParams";
|
|
864
|
-
}, {
|
|
865
|
-
readonly id: "LIB115";
|
|
866
|
-
readonly module: "dotenv";
|
|
867
|
-
readonly note: "Standards standardizes environment loading on @dotenvx/dotenvx.";
|
|
868
|
-
readonly replacement: "@dotenvx/dotenvx";
|
|
869
|
-
}, {
|
|
870
|
-
readonly id: "LIB116";
|
|
871
|
-
readonly module: "chalk";
|
|
872
|
-
readonly note: "Use picocolors for terminal colors.";
|
|
873
|
-
readonly replacement: "picocolors";
|
|
874
|
-
}, {
|
|
875
|
-
readonly id: "LIB117";
|
|
876
|
-
readonly module: "faker";
|
|
877
|
-
readonly note: "The original faker package is abandoned; use @faker-js/faker.";
|
|
878
|
-
readonly replacement: "@faker-js/faker";
|
|
879
|
-
}, {
|
|
880
|
-
readonly id: "LIB118";
|
|
881
|
-
readonly module: "node-sass";
|
|
882
|
-
readonly note: "node-sass is end-of-life; use Dart Sass.";
|
|
883
|
-
readonly replacement: "sass";
|
|
884
|
-
}, {
|
|
885
|
-
readonly id: "LIB119";
|
|
886
|
-
readonly module: "tslint";
|
|
887
|
-
readonly note: "TSLint is deprecated; use ESLint with typescript-eslint.";
|
|
888
|
-
readonly replacement: "eslint";
|
|
889
|
-
}];
|
|
890
|
-
}];
|
|
891
|
-
readonly "@sarj/prefer-native-random-uuid": "error";
|
|
892
|
-
readonly "@sarj/prefer-shadcn-primitives": "error";
|
|
893
|
-
readonly "@sarj/excessive-commentary": "warn";
|
|
894
|
-
readonly "@sarj/no-excessive-cognitive-complexity": "error";
|
|
895
|
-
readonly "@sarj/interface-contract-members-private": "error";
|
|
896
|
-
readonly "@sarj/iac-source-coupled-test": "error";
|
|
897
|
-
readonly "@sarj/duplicate-test-body": "error";
|
|
898
|
-
readonly "@sarj/enforce-file-structure": "error";
|
|
899
|
-
readonly "@sarj/no-client-side-data-fetching": "error";
|
|
900
|
-
readonly "@sarj/no-comment-cruft": "error";
|
|
901
|
-
readonly "@sarj/no-cors-wildcard-with-credentials": "warn";
|
|
902
|
-
readonly "@sarj/no-dynamic-sql": "error";
|
|
903
|
-
readonly "@sarj/no-enum": "error";
|
|
904
|
-
readonly "@sarj/no-fat-try-blocks": readonly ["error", {
|
|
905
|
-
readonly max: 5;
|
|
906
|
-
}];
|
|
907
|
-
readonly "@sarj/no-hand-rolled-sleep": "error";
|
|
908
|
-
readonly "@sarj/no-hand-rolled-spinner": "error";
|
|
909
|
-
readonly "@sarj/no-insecure-random-id": "error";
|
|
910
|
-
readonly "@sarj/no-exception-text-in-5xx-response": "warn";
|
|
911
|
-
readonly "@sarj/no-json-stringify-error": "error";
|
|
912
|
-
readonly "@sarj/no-impossible-zod-literal-bounds": "error";
|
|
913
|
-
readonly "@sarj/no-in-operator-on-built-in-collections": "error";
|
|
914
|
-
readonly "@sarj/no-log-only-catch": "error";
|
|
915
|
-
readonly "@sarj/no-bare-return-from-test-catch": "error";
|
|
916
|
-
readonly "@sarj/no-bespoke-api-case-conversion": "warn";
|
|
917
|
-
readonly "@sarj/no-detached-global-fetch": "error";
|
|
918
|
-
readonly "@sarj/no-json-stringify-object-equality": "error";
|
|
919
|
-
readonly "@sarj/no-dangerously-allow-svg": "error";
|
|
920
|
-
readonly "@sarj/no-credential-in-browser-storage": "warn";
|
|
921
|
-
readonly "@sarj/no-numeric-search-param-coercion": "warn";
|
|
922
|
-
readonly "@sarj/prefer-native-fetch-in-server-actions": "warn";
|
|
923
|
-
readonly "@sarj/no-duplicate-lifecycle-refresh-listeners": "error";
|
|
924
|
-
readonly "@sarj/no-long-comment": "error";
|
|
925
|
-
readonly "@sarj/no-vague-suppression-description": "error";
|
|
926
|
-
readonly "@sarj/no-generic-single-export-module": "error";
|
|
927
|
-
readonly "@sarj/no-offset-pagination": "error";
|
|
928
|
-
readonly "@sarj/no-positional-tuple-return": "error";
|
|
929
|
-
readonly "@sarj/no-production-browser-source-maps": "error";
|
|
930
|
-
readonly "@sarj/no-raw-env": "error";
|
|
931
|
-
readonly "@sarj/no-raw-fetch-outside-clients": "error";
|
|
932
|
-
readonly "@sarj/no-repeated-string-literal": "error";
|
|
933
|
-
readonly "@sarj/no-redundant-optional-array-default": "error";
|
|
934
|
-
readonly "@sarj/no-router-refresh-polling": "error";
|
|
935
|
-
readonly "@sarj/no-restated-comment": "warn";
|
|
936
|
-
readonly "@sarj/no-restated-jsdoc": "warn";
|
|
937
|
-
readonly "@sarj/no-secret-in-log": "error";
|
|
938
|
-
readonly "@sarj/no-server-env-in-client-component": "error";
|
|
939
|
-
readonly "@sarj/no-select-star": "error";
|
|
940
|
-
readonly "@sarj/no-sentinel-return-on-catch": "error";
|
|
941
|
-
readonly "@sarj/no-silent-promise-catch": "error";
|
|
942
|
-
readonly "@sarj/no-sleep-in-test-body": "error";
|
|
943
|
-
readonly "@sarj/no-storage-in-stateless-modules": "error";
|
|
944
|
-
readonly "@sarj/no-string-concat-in-loop": "error";
|
|
945
|
-
readonly "@sarj/no-tautological-expect": "error";
|
|
946
|
-
readonly "@sarj/no-duplicate-test-case": "error";
|
|
947
|
-
readonly "@sarj/no-typed-doc-sections": "error";
|
|
948
|
-
readonly "@sarj/no-trailing-value-narration": "error";
|
|
949
|
-
readonly "@sarj/no-declaration-comment-wall": "error";
|
|
950
|
-
readonly "@sarj/no-union-in-comment": "error";
|
|
951
|
-
readonly "@sarj/no-type-member-comment-wall": "error";
|
|
952
|
-
readonly "@sarj/no-unnecessary-use-client": "error";
|
|
953
|
-
readonly "@sarj/no-unsafe-mock-casting": "error";
|
|
954
|
-
readonly "@sarj/no-unsafe-test-double-cast": "error";
|
|
955
|
-
readonly "@sarj/no-first-party-module-mock": "error";
|
|
956
|
-
readonly "@sarj/no-zod-native-enum": "error";
|
|
957
|
-
readonly "@sarj/test-loops-over-literal-cases": "error";
|
|
958
|
-
readonly "@sarj/prefer-constant-time-secret-compare": "error";
|
|
959
|
-
readonly "@sarj/prefer-ecmascript-private-members": "error";
|
|
960
|
-
readonly "@sarj/prefer-discriminated-union": "warn";
|
|
961
|
-
readonly "@sarj/prefer-input-group-search": "error";
|
|
962
|
-
readonly "@sarj/prefer-millisecond-control-duration-schema": "warn";
|
|
963
|
-
readonly "@sarj/prefer-immutable-module-constant": "error";
|
|
964
|
-
readonly "@sarj/prefer-module-level-constant": "error";
|
|
965
|
-
readonly "@sarj/prefer-module-level-schema": "error";
|
|
966
|
-
readonly "@sarj/prefer-module-level-refined-schema": "warn";
|
|
967
|
-
readonly "@sarj/prefer-multi-value-zod-literal": readonly ["error", {
|
|
968
|
-
readonly zodMajorVersion: 4;
|
|
969
|
-
}];
|
|
970
|
-
readonly "@sarj/prefer-named-callback-domain": "error";
|
|
971
|
-
readonly "@sarj/prefer-nominal-id-types": "error";
|
|
972
|
-
readonly "@sarj/prefer-named-complex-return-type": "error";
|
|
973
|
-
readonly "@sarj/prefer-node-crypto-hash": "warn";
|
|
974
|
-
readonly "@sarj/prefer-node-fs-promises": "warn";
|
|
975
|
-
readonly "@sarj/prefer-non-nullable-collection": "error";
|
|
976
|
-
readonly "@sarj/prefer-nullish-filter-predicate": "error";
|
|
977
|
-
readonly "@sarj/prefer-await-in-async-return": "error";
|
|
978
|
-
readonly "@sarj/prefer-schema-for-api-payload": "error";
|
|
979
|
-
readonly "@sarj/prefer-shared-zod-enum": "warn";
|
|
980
|
-
readonly "@sarj/prefer-switch-for-repeated-equality": "error";
|
|
981
|
-
readonly "@sarj/prefer-semantic-colors": readonly ["error", {
|
|
982
|
-
readonly requireSemanticTokens: true;
|
|
983
|
-
}];
|
|
984
|
-
readonly "@sarj/prefer-server-actions": "error";
|
|
985
|
-
readonly "@sarj/prefer-whole-object-assertion": "warn";
|
|
986
|
-
readonly "@sarj/repeated-static-call-cases": "error";
|
|
987
|
-
readonly "@sarj/prefer-zod-infer": "error";
|
|
988
|
-
readonly "@sarj/prefer-zod-parse-output-type": "warn";
|
|
989
|
-
readonly "@sarj/require-assert-never": "error";
|
|
990
|
-
readonly "@sarj/require-fetch-timeout": "error";
|
|
991
|
-
readonly "@sarj/require-explicit-contract-implementation": "error";
|
|
992
|
-
readonly "@sarj/require-explicit-service-contract": "error";
|
|
993
|
-
readonly "@sarj/require-interface-for-exported-class": "error";
|
|
994
|
-
readonly "@sarj/require-port-for-service": "error";
|
|
995
|
-
readonly "@sarj/require-sql-access-class": "warn";
|
|
996
|
-
readonly "@sarj/require-static-next-matcher": "error";
|
|
997
|
-
readonly "@sarj/require-use-form-default-values": "error";
|
|
998
|
-
readonly "@sarj/require-use-server-in-actions-file": "error";
|
|
999
|
-
readonly "@sarj/require-zod-form-validation": "error";
|
|
1000
|
-
readonly "@sarj/store-insert-requires-on-conflict": "error";
|
|
1001
|
-
readonly "@sarj/stepdown": "error";
|
|
1002
|
-
readonly "@sarj/source-coupled-test": "error";
|
|
1003
|
-
readonly "@sarj/sole-export-matches-filename": "error";
|
|
1004
|
-
readonly "@sarj/test-phase-label-comment": "error";
|
|
1005
|
-
readonly "@sarj/require-pascal-case-zod-schema-name": "error";
|
|
667
|
+
type PolicyName = keyof typeof RULE_POLICY;
|
|
668
|
+
type PolicyRow = (typeof RULE_POLICY)[PolicyName];
|
|
669
|
+
type RuleSetting<Row extends PolicyRow> = Row extends readonly ["shared", "both", infer Shared] ? Shared : Row extends readonly [infer Level, PresetMembership, infer Options extends () => readonly unknown[]] ? readonly [Level, ...ReturnType<Options>] : Row extends readonly [infer Level, PresetMembership, "strict-order", number] ? Level : Row extends readonly [infer Level, PresetMembership] ? Level : never;
|
|
670
|
+
type PresetRules<Preset extends "recommended" | "strict"> = {
|
|
671
|
+
readonly [Name in PolicyName as Preset extends "recommended" ? (typeof RULE_POLICY)[Name][1] extends "both" ? Name : never : Name]: RuleSetting<(typeof RULE_POLICY)[Name]>;
|
|
1006
672
|
};
|
|
1007
|
-
type
|
|
673
|
+
type AdvisoryRuleName = {
|
|
674
|
+
[Name in PolicyName]: (typeof RULE_POLICY)[Name][0] extends "warn" ? Name : never;
|
|
675
|
+
}[PolicyName];
|
|
676
|
+
/** Rules staged as non-blocking warnings while corpus adoption evidence accumulates. */
|
|
677
|
+
declare const ADVISORY_RULES: readonly AdvisoryRuleName[];
|
|
678
|
+
declare const RECOMMENDED_RULES: PresetRules<"recommended">;
|
|
679
|
+
declare const STRICT_RULES: PresetRules<"strict">;
|
|
680
|
+
type FlatPreset<Settings> = {
|
|
1008
681
|
readonly name: string;
|
|
1009
682
|
readonly plugins: Record<string, unknown>;
|
|
1010
|
-
readonly rules:
|
|
683
|
+
readonly rules: Settings;
|
|
1011
684
|
};
|
|
1012
685
|
declare const PLUGIN: {
|
|
1013
686
|
readonly meta: {
|
|
@@ -1209,8 +882,8 @@ declare const PLUGIN: {
|
|
|
1209
882
|
};
|
|
1210
883
|
readonly retiredRules: Readonly<Record<string, RetiredRule>>;
|
|
1211
884
|
readonly configs: {
|
|
1212
|
-
readonly recommended: FlatPreset
|
|
1213
|
-
readonly strict: FlatPreset
|
|
885
|
+
readonly recommended: FlatPreset<typeof RECOMMENDED_RULES>;
|
|
886
|
+
readonly strict: FlatPreset<typeof STRICT_RULES>;
|
|
1214
887
|
};
|
|
1215
888
|
};
|
|
1216
889
|
|