@sarj/eslint-plugin 15.26.8 → 15.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,4 +1,6 @@
1
- import { ESLintUtils } from '@typescript-eslint/utils';
1
+ import { D as DocumentedRule } from './_docs-XCw_6XV9.cjs';
2
+ export { p as publicDocumentation } from './_docs-XCw_6XV9.cjs';
3
+ import '@typescript-eslint/utils';
2
4
 
3
5
  /** @fileoverview _retired — burned rule names and their migration action. */
4
6
  /** Why a name was withdrawn, and in which release. */
@@ -10,91 +12,6 @@ interface RetiredRule {
10
12
  }
11
13
  declare const RETIRED_RULES: Readonly<Record<string, RetiredRule>>;
12
14
 
13
- /**
14
- * @fileoverview _docs — typed source-owned rule documentation and executable examples.
15
- *
16
- */
17
-
18
- type RuleCategory = "architecture" | "correctness" | "maintainability" | "performance" | "security" | "style" | "testing";
19
- type AutofixPolicy = "none" | "safe" | "suggestion";
20
- type DefaultLevel = "error" | "warning";
21
- type ExampleOutcome = "match" | "no-match";
22
- interface ExampleFile {
23
- readonly path: string;
24
- readonly source: string;
25
- }
26
- /** A reviewed example. It remains private unless `public: true` is explicit. */
27
- interface RuleExample {
28
- readonly id: string;
29
- readonly scenarioId?: string;
30
- readonly title: string;
31
- readonly outcome: ExampleOutcome;
32
- readonly files: readonly ExampleFile[];
33
- readonly focusPath: string;
34
- readonly expectedCount: number;
35
- readonly public?: boolean;
36
- readonly fixedFiles?: readonly ExampleFile[];
37
- }
38
- /** Human-authored fields that cannot be derived from the ESLint rule module. */
39
- interface RuleDocumentation {
40
- readonly summary: string;
41
- readonly rationale: string;
42
- readonly remediation: string;
43
- readonly category: RuleCategory;
44
- readonly defaultLevel?: DefaultLevel;
45
- readonly languages?: readonly "typescript"[];
46
- readonly autofix?: AutofixPolicy;
47
- readonly aliases?: readonly string[];
48
- readonly limitations?: readonly string[];
49
- readonly filePatterns?: readonly string[];
50
- readonly references?: readonly string[];
51
- readonly since?: string;
52
- readonly examples?: readonly RuleExample[];
53
- }
54
- /** Complete native record exposed to catalog generation without changing ESLint metadata. */
55
- interface NativeRuleSpec extends Required<Omit<RuleDocumentation, "since">> {
56
- readonly engine: "eslint";
57
- readonly ruleId: string;
58
- readonly code: null;
59
- readonly messageIds: readonly string[];
60
- readonly optionsSchema: object | null;
61
- readonly since: string | null;
62
- readonly key: string;
63
- readonly publicExamples: readonly RuleExample[];
64
- }
65
- /** The explicit allowlist projection consumed by generated public documentation. */
66
- interface PublicRuleSpec {
67
- readonly engine: "eslint";
68
- readonly ruleId: string;
69
- readonly code: null;
70
- readonly summary: string;
71
- readonly rationale: string;
72
- readonly remediation: string;
73
- readonly category: RuleCategory;
74
- readonly defaultLevel: DefaultLevel;
75
- readonly languages: readonly "typescript"[];
76
- readonly autofix: AutofixPolicy;
77
- readonly aliases: readonly string[];
78
- readonly limitations: readonly string[];
79
- readonly filePatterns: readonly string[];
80
- readonly references: readonly string[];
81
- readonly since: string | null;
82
- readonly messageIds: readonly string[];
83
- readonly optionsSchema: object | null;
84
- readonly examples: readonly RuleExample[];
85
- }
86
- declare const eslintCreateRule: <Options extends readonly unknown[], MessageIds extends string>({ meta, name, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<Options, MessageIds, unknown>>) => ESLintUtils.RuleModule<MessageIds, Options, unknown, ESLintUtils.RuleListener> & {
87
- name: string;
88
- };
89
- type DocumentedRule<Options extends readonly unknown[], MessageIds extends string> = ReturnType<typeof eslintCreateRule<Options, MessageIds>> & {
90
- /** Non-enumerable so the public ESLint rule shape remains unchanged. */
91
- readonly documentation?: NativeRuleSpec;
92
- };
93
- /** Serialize only reviewed fields; test-only examples never cross this boundary. */
94
- declare function publicDocumentation(rules: Readonly<Record<string, {
95
- readonly documentation?: NativeRuleSpec;
96
- }>>): readonly PublicRuleSpec[];
97
-
98
15
  interface RuleOptions$5 {
99
16
  readonly basePath?: string;
100
17
  }
@@ -327,6 +244,7 @@ declare const RULES: {
327
244
  zodMajorVersion?: 4;
328
245
  }], "useMultiValueLiteral">;
329
246
  readonly "prefer-named-callback-domain": DocumentedRule<[], "nameCallbackDomain">;
247
+ readonly "prefer-nominal-id-types": DocumentedRule<[], "preferNominalIds">;
330
248
  readonly "prefer-named-complex-return-type": DocumentedRule<[], "nameComplexReturnType">;
331
249
  readonly "prefer-native-random-uuid": DocumentedRule<readonly [], "preferNative" | "replaceWithNative">;
332
250
  readonly "prefer-node-crypto-hash": DocumentedRule<readonly [], "preferNodeCryptoHash">;
@@ -367,7 +285,7 @@ declare const RULES: {
367
285
  /** @deprecated All repositories use one policy; retained for import compatibility. */
368
286
  declare const APPLICATION_ONLY_RULES: readonly [];
369
287
  /** Rules staged as non-blocking warnings while corpus adoption evidence accumulates. */
370
- declare const ADVISORY_RULES: readonly ["@sarj/excessive-commentary", "@sarj/no-bespoke-api-case-conversion", "@sarj/no-json-stringify-object-equality", "@sarj/no-restated-comment", "@sarj/no-restated-jsdoc", "@sarj/prefer-millisecond-control-duration-schema", "@sarj/prefer-module-level-refined-schema", "@sarj/prefer-multi-value-zod-literal", "@sarj/prefer-named-complex-return-type", "@sarj/prefer-node-crypto-hash", "@sarj/prefer-node-fs-promises", "@sarj/prefer-shared-zod-enum", "@sarj/prefer-switch-for-repeated-equality", "@sarj/prefer-whole-object-assertion", "@sarj/require-camelcase-properties", "@sarj/require-interface-for-exported-class", "@sarj/require-sql-access-class", "@sarj/sole-export-matches-filename"];
288
+ declare const ADVISORY_RULES: readonly ["@sarj/excessive-commentary", "@sarj/no-bespoke-api-case-conversion", "@sarj/no-json-stringify-object-equality", "@sarj/no-restated-comment", "@sarj/no-restated-jsdoc", "@sarj/prefer-millisecond-control-duration-schema", "@sarj/prefer-module-level-refined-schema", "@sarj/prefer-multi-value-zod-literal", "@sarj/prefer-named-complex-return-type", "@sarj/prefer-node-crypto-hash", "@sarj/prefer-node-fs-promises", "@sarj/prefer-nominal-id-types", "@sarj/prefer-shared-zod-enum", "@sarj/prefer-switch-for-repeated-equality", "@sarj/prefer-whole-object-assertion", "@sarj/require-camelcase-properties", "@sarj/require-interface-for-exported-class", "@sarj/require-sql-access-class", "@sarj/sole-export-matches-filename"];
371
289
  declare const RECOMMENDED_RULES: {
372
290
  readonly "@sarj/no-conditional-empty-object-spread": "error";
373
291
  readonly "@sarj/prefer-typed-reflection": "error";
@@ -643,6 +561,7 @@ declare const RECOMMENDED_RULES: {
643
561
  readonly zodMajorVersion: 4;
644
562
  }];
645
563
  readonly "@sarj/prefer-named-callback-domain": "error";
564
+ readonly "@sarj/prefer-nominal-id-types": "warn";
646
565
  readonly "@sarj/prefer-named-complex-return-type": "warn";
647
566
  readonly "@sarj/prefer-node-crypto-hash": "warn";
648
567
  readonly "@sarj/prefer-node-fs-promises": "warn";
@@ -955,6 +874,7 @@ declare const STRICT_RULES: {
955
874
  readonly zodMajorVersion: 4;
956
875
  }];
957
876
  readonly "@sarj/prefer-named-callback-domain": "error";
877
+ readonly "@sarj/prefer-nominal-id-types": "warn";
958
878
  readonly "@sarj/prefer-named-complex-return-type": "warn";
959
879
  readonly "@sarj/prefer-node-crypto-hash": "warn";
960
880
  readonly "@sarj/prefer-node-fs-promises": "warn";
@@ -996,7 +916,7 @@ type FlatPreset = {
996
916
  declare const PLUGIN: {
997
917
  readonly meta: {
998
918
  readonly name: "@sarj/eslint-plugin";
999
- readonly version: "15.26.8";
919
+ readonly version: "15.28.0";
1000
920
  };
1001
921
  readonly rules: {
1002
922
  readonly "no-conditional-empty-object-spread": DocumentedRule<[], "avoid">;
@@ -1117,6 +1037,7 @@ declare const PLUGIN: {
1117
1037
  zodMajorVersion?: 4;
1118
1038
  }], "useMultiValueLiteral">;
1119
1039
  readonly "prefer-named-callback-domain": DocumentedRule<[], "nameCallbackDomain">;
1040
+ readonly "prefer-nominal-id-types": DocumentedRule<[], "preferNominalIds">;
1120
1041
  readonly "prefer-named-complex-return-type": DocumentedRule<[], "nameComplexReturnType">;
1121
1042
  readonly "prefer-native-random-uuid": DocumentedRule<readonly [], "preferNative" | "replaceWithNative">;
1122
1043
  readonly "prefer-node-crypto-hash": DocumentedRule<readonly [], "preferNodeCryptoHash">;
@@ -1161,4 +1082,4 @@ declare const PLUGIN: {
1161
1082
  };
1162
1083
  };
1163
1084
 
1164
- export { ADVISORY_RULES, APPLICATION_ONLY_RULES, RECOMMENDED_RULES, RENAMED_RULES, RETIRED_RULES, RULES, type RetiredRule, STRICT_RULES, ADVISORY_RULES as advisoryRules, APPLICATION_ONLY_RULES as applicationOnlyRules, PLUGIN as default, publicDocumentation, RECOMMENDED_RULES as recommendedRules, RENAMED_RULES as renamedRules, RETIRED_RULES as retiredRules, RULES as rules, STRICT_RULES as strictRules };
1085
+ export { ADVISORY_RULES, APPLICATION_ONLY_RULES, RECOMMENDED_RULES, RENAMED_RULES, RETIRED_RULES, RULES, type RetiredRule, STRICT_RULES, ADVISORY_RULES as advisoryRules, APPLICATION_ONLY_RULES as applicationOnlyRules, PLUGIN as default, RECOMMENDED_RULES as recommendedRules, RENAMED_RULES as renamedRules, RETIRED_RULES as retiredRules, RULES as rules, STRICT_RULES as strictRules };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
- import { ESLintUtils } from '@typescript-eslint/utils';
1
+ import { D as DocumentedRule } from './_docs-XCw_6XV9.js';
2
+ export { p as publicDocumentation } from './_docs-XCw_6XV9.js';
3
+ import '@typescript-eslint/utils';
2
4
 
3
5
  /** @fileoverview _retired — burned rule names and their migration action. */
4
6
  /** Why a name was withdrawn, and in which release. */
@@ -10,91 +12,6 @@ interface RetiredRule {
10
12
  }
11
13
  declare const RETIRED_RULES: Readonly<Record<string, RetiredRule>>;
12
14
 
13
- /**
14
- * @fileoverview _docs — typed source-owned rule documentation and executable examples.
15
- *
16
- */
17
-
18
- type RuleCategory = "architecture" | "correctness" | "maintainability" | "performance" | "security" | "style" | "testing";
19
- type AutofixPolicy = "none" | "safe" | "suggestion";
20
- type DefaultLevel = "error" | "warning";
21
- type ExampleOutcome = "match" | "no-match";
22
- interface ExampleFile {
23
- readonly path: string;
24
- readonly source: string;
25
- }
26
- /** A reviewed example. It remains private unless `public: true` is explicit. */
27
- interface RuleExample {
28
- readonly id: string;
29
- readonly scenarioId?: string;
30
- readonly title: string;
31
- readonly outcome: ExampleOutcome;
32
- readonly files: readonly ExampleFile[];
33
- readonly focusPath: string;
34
- readonly expectedCount: number;
35
- readonly public?: boolean;
36
- readonly fixedFiles?: readonly ExampleFile[];
37
- }
38
- /** Human-authored fields that cannot be derived from the ESLint rule module. */
39
- interface RuleDocumentation {
40
- readonly summary: string;
41
- readonly rationale: string;
42
- readonly remediation: string;
43
- readonly category: RuleCategory;
44
- readonly defaultLevel?: DefaultLevel;
45
- readonly languages?: readonly "typescript"[];
46
- readonly autofix?: AutofixPolicy;
47
- readonly aliases?: readonly string[];
48
- readonly limitations?: readonly string[];
49
- readonly filePatterns?: readonly string[];
50
- readonly references?: readonly string[];
51
- readonly since?: string;
52
- readonly examples?: readonly RuleExample[];
53
- }
54
- /** Complete native record exposed to catalog generation without changing ESLint metadata. */
55
- interface NativeRuleSpec extends Required<Omit<RuleDocumentation, "since">> {
56
- readonly engine: "eslint";
57
- readonly ruleId: string;
58
- readonly code: null;
59
- readonly messageIds: readonly string[];
60
- readonly optionsSchema: object | null;
61
- readonly since: string | null;
62
- readonly key: string;
63
- readonly publicExamples: readonly RuleExample[];
64
- }
65
- /** The explicit allowlist projection consumed by generated public documentation. */
66
- interface PublicRuleSpec {
67
- readonly engine: "eslint";
68
- readonly ruleId: string;
69
- readonly code: null;
70
- readonly summary: string;
71
- readonly rationale: string;
72
- readonly remediation: string;
73
- readonly category: RuleCategory;
74
- readonly defaultLevel: DefaultLevel;
75
- readonly languages: readonly "typescript"[];
76
- readonly autofix: AutofixPolicy;
77
- readonly aliases: readonly string[];
78
- readonly limitations: readonly string[];
79
- readonly filePatterns: readonly string[];
80
- readonly references: readonly string[];
81
- readonly since: string | null;
82
- readonly messageIds: readonly string[];
83
- readonly optionsSchema: object | null;
84
- readonly examples: readonly RuleExample[];
85
- }
86
- declare const eslintCreateRule: <Options extends readonly unknown[], MessageIds extends string>({ meta, name, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<Options, MessageIds, unknown>>) => ESLintUtils.RuleModule<MessageIds, Options, unknown, ESLintUtils.RuleListener> & {
87
- name: string;
88
- };
89
- type DocumentedRule<Options extends readonly unknown[], MessageIds extends string> = ReturnType<typeof eslintCreateRule<Options, MessageIds>> & {
90
- /** Non-enumerable so the public ESLint rule shape remains unchanged. */
91
- readonly documentation?: NativeRuleSpec;
92
- };
93
- /** Serialize only reviewed fields; test-only examples never cross this boundary. */
94
- declare function publicDocumentation(rules: Readonly<Record<string, {
95
- readonly documentation?: NativeRuleSpec;
96
- }>>): readonly PublicRuleSpec[];
97
-
98
15
  interface RuleOptions$5 {
99
16
  readonly basePath?: string;
100
17
  }
@@ -327,6 +244,7 @@ declare const RULES: {
327
244
  zodMajorVersion?: 4;
328
245
  }], "useMultiValueLiteral">;
329
246
  readonly "prefer-named-callback-domain": DocumentedRule<[], "nameCallbackDomain">;
247
+ readonly "prefer-nominal-id-types": DocumentedRule<[], "preferNominalIds">;
330
248
  readonly "prefer-named-complex-return-type": DocumentedRule<[], "nameComplexReturnType">;
331
249
  readonly "prefer-native-random-uuid": DocumentedRule<readonly [], "preferNative" | "replaceWithNative">;
332
250
  readonly "prefer-node-crypto-hash": DocumentedRule<readonly [], "preferNodeCryptoHash">;
@@ -367,7 +285,7 @@ declare const RULES: {
367
285
  /** @deprecated All repositories use one policy; retained for import compatibility. */
368
286
  declare const APPLICATION_ONLY_RULES: readonly [];
369
287
  /** Rules staged as non-blocking warnings while corpus adoption evidence accumulates. */
370
- declare const ADVISORY_RULES: readonly ["@sarj/excessive-commentary", "@sarj/no-bespoke-api-case-conversion", "@sarj/no-json-stringify-object-equality", "@sarj/no-restated-comment", "@sarj/no-restated-jsdoc", "@sarj/prefer-millisecond-control-duration-schema", "@sarj/prefer-module-level-refined-schema", "@sarj/prefer-multi-value-zod-literal", "@sarj/prefer-named-complex-return-type", "@sarj/prefer-node-crypto-hash", "@sarj/prefer-node-fs-promises", "@sarj/prefer-shared-zod-enum", "@sarj/prefer-switch-for-repeated-equality", "@sarj/prefer-whole-object-assertion", "@sarj/require-camelcase-properties", "@sarj/require-interface-for-exported-class", "@sarj/require-sql-access-class", "@sarj/sole-export-matches-filename"];
288
+ declare const ADVISORY_RULES: readonly ["@sarj/excessive-commentary", "@sarj/no-bespoke-api-case-conversion", "@sarj/no-json-stringify-object-equality", "@sarj/no-restated-comment", "@sarj/no-restated-jsdoc", "@sarj/prefer-millisecond-control-duration-schema", "@sarj/prefer-module-level-refined-schema", "@sarj/prefer-multi-value-zod-literal", "@sarj/prefer-named-complex-return-type", "@sarj/prefer-node-crypto-hash", "@sarj/prefer-node-fs-promises", "@sarj/prefer-nominal-id-types", "@sarj/prefer-shared-zod-enum", "@sarj/prefer-switch-for-repeated-equality", "@sarj/prefer-whole-object-assertion", "@sarj/require-camelcase-properties", "@sarj/require-interface-for-exported-class", "@sarj/require-sql-access-class", "@sarj/sole-export-matches-filename"];
371
289
  declare const RECOMMENDED_RULES: {
372
290
  readonly "@sarj/no-conditional-empty-object-spread": "error";
373
291
  readonly "@sarj/prefer-typed-reflection": "error";
@@ -643,6 +561,7 @@ declare const RECOMMENDED_RULES: {
643
561
  readonly zodMajorVersion: 4;
644
562
  }];
645
563
  readonly "@sarj/prefer-named-callback-domain": "error";
564
+ readonly "@sarj/prefer-nominal-id-types": "warn";
646
565
  readonly "@sarj/prefer-named-complex-return-type": "warn";
647
566
  readonly "@sarj/prefer-node-crypto-hash": "warn";
648
567
  readonly "@sarj/prefer-node-fs-promises": "warn";
@@ -955,6 +874,7 @@ declare const STRICT_RULES: {
955
874
  readonly zodMajorVersion: 4;
956
875
  }];
957
876
  readonly "@sarj/prefer-named-callback-domain": "error";
877
+ readonly "@sarj/prefer-nominal-id-types": "warn";
958
878
  readonly "@sarj/prefer-named-complex-return-type": "warn";
959
879
  readonly "@sarj/prefer-node-crypto-hash": "warn";
960
880
  readonly "@sarj/prefer-node-fs-promises": "warn";
@@ -996,7 +916,7 @@ type FlatPreset = {
996
916
  declare const PLUGIN: {
997
917
  readonly meta: {
998
918
  readonly name: "@sarj/eslint-plugin";
999
- readonly version: "15.26.8";
919
+ readonly version: "15.28.0";
1000
920
  };
1001
921
  readonly rules: {
1002
922
  readonly "no-conditional-empty-object-spread": DocumentedRule<[], "avoid">;
@@ -1117,6 +1037,7 @@ declare const PLUGIN: {
1117
1037
  zodMajorVersion?: 4;
1118
1038
  }], "useMultiValueLiteral">;
1119
1039
  readonly "prefer-named-callback-domain": DocumentedRule<[], "nameCallbackDomain">;
1040
+ readonly "prefer-nominal-id-types": DocumentedRule<[], "preferNominalIds">;
1120
1041
  readonly "prefer-named-complex-return-type": DocumentedRule<[], "nameComplexReturnType">;
1121
1042
  readonly "prefer-native-random-uuid": DocumentedRule<readonly [], "preferNative" | "replaceWithNative">;
1122
1043
  readonly "prefer-node-crypto-hash": DocumentedRule<readonly [], "preferNodeCryptoHash">;
@@ -1161,4 +1082,4 @@ declare const PLUGIN: {
1161
1082
  };
1162
1083
  };
1163
1084
 
1164
- export { ADVISORY_RULES, APPLICATION_ONLY_RULES, RECOMMENDED_RULES, RENAMED_RULES, RETIRED_RULES, RULES, type RetiredRule, STRICT_RULES, ADVISORY_RULES as advisoryRules, APPLICATION_ONLY_RULES as applicationOnlyRules, PLUGIN as default, publicDocumentation, RECOMMENDED_RULES as recommendedRules, RENAMED_RULES as renamedRules, RETIRED_RULES as retiredRules, RULES as rules, STRICT_RULES as strictRules };
1085
+ export { ADVISORY_RULES, APPLICATION_ONLY_RULES, RECOMMENDED_RULES, RENAMED_RULES, RETIRED_RULES, RULES, type RetiredRule, STRICT_RULES, ADVISORY_RULES as advisoryRules, APPLICATION_ONLY_RULES as applicationOnlyRules, PLUGIN as default, RECOMMENDED_RULES as recommendedRules, RENAMED_RULES as renamedRules, RETIRED_RULES as retiredRules, RULES as rules, STRICT_RULES as strictRules };