@sarj/eslint-plugin 15.14.0 → 15.16.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
@@ -266,11 +266,16 @@ declare const RULES: {
266
266
  memoCallees?: readonly string[];
267
267
  minProperties?: number;
268
268
  }?], "hoistSchema">;
269
+ readonly "prefer-named-complex-return-type": DocumentedRule<[], "nameComplexReturnType">;
269
270
  readonly "prefer-native-random-uuid": DocumentedRule<readonly [], "preferNative" | "replaceWithNative">;
271
+ readonly "prefer-node-crypto-hash": DocumentedRule<readonly [], "preferNodeCryptoHash">;
272
+ readonly "prefer-node-fs-promises": DocumentedRule<[], "preferAsyncFs">;
270
273
  readonly "prefer-non-nullable-collection": DocumentedRule<readonly [], "preferNonNullableCollection">;
271
274
  readonly "prefer-nullish-filter-predicate": DocumentedRule<readonly [], "preferNullishPredicate" | "replaceBoolean">;
272
275
  readonly "prefer-await-in-async-return": DocumentedRule<readonly [], "preferAwait">;
273
276
  readonly "prefer-schema-for-api-payload": DocumentedRule<readonly [], "unparsedJsonAccess">;
277
+ readonly "prefer-shared-zod-enum": DocumentedRule<[], "shareEnumDomain">;
278
+ readonly "prefer-switch-for-repeated-equality": DocumentedRule<[], "preferSwitch">;
274
279
  readonly "prefer-semantic-colors": DocumentedRule<readonly [{
275
280
  requireSemanticTokens?: boolean;
276
281
  }?], "rawPalette" | "arbitraryColor" | "inlineColor">;
@@ -285,18 +290,21 @@ declare const RULES: {
285
290
  readonly "require-fetch-timeout": DocumentedRule<readonly [{
286
291
  allowIn?: readonly string[];
287
292
  }?], "missingSignal">;
293
+ readonly "require-interface-for-exported-class": DocumentedRule<[], "requireContract">;
288
294
  readonly "require-port-for-service": DocumentedRule<readonly [], "requireInterface">;
295
+ readonly "require-sql-access-class": DocumentedRule<[], "moveSqlIntoClass">;
289
296
  readonly "require-static-next-matcher": DocumentedRule<readonly [], "dynamicMatcher">;
290
297
  readonly "require-zod-form-validation": DocumentedRule<readonly [], "missingZodValidation">;
291
298
  readonly "store-insert-requires-on-conflict": DocumentedRule<readonly [], "storeInsertRequiresOnConflict">;
292
299
  readonly stepdown: DocumentedRule<[], "helperAboveOnlyCaller">;
293
300
  readonly "source-coupled-test": DocumentedRule<readonly [], "rawSourceOracle">;
301
+ readonly "sole-export-matches-filename": DocumentedRule<[], "matchSoleExport">;
294
302
  readonly "require-pascal-case-zod-schema-name": DocumentedRule<readonly [], "requirePascalSchema">;
295
303
  };
296
304
  /** Rules registered for application-profile configs but intentionally absent from general presets. */
297
305
  declare const APPLICATION_ONLY_RULES: readonly ["no-restricted-library-load", "prefer-native-random-uuid", "prefer-shadcn-primitives"];
298
- /** No active rule remains advisory; retained as a public compatibility export. */
299
- declare const ADVISORY_RULES: readonly ["@sarj/require-pascal-case-zod-schema-name"];
306
+ /** Rules staged as non-blocking warnings while corpus adoption evidence accumulates. */
307
+ declare const ADVISORY_RULES: readonly ["@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/require-interface-for-exported-class", "@sarj/require-pascal-case-zod-schema-name", "@sarj/require-sql-access-class", "@sarj/sole-export-matches-filename"];
300
308
  declare const RECOMMENDED_RULES: {
301
309
  readonly "@sarj/interface-contract-members-private": "error";
302
310
  readonly "@sarj/iac-source-coupled-test": "error";
@@ -352,10 +360,15 @@ declare const RECOMMENDED_RULES: {
352
360
  readonly "@sarj/prefer-immutable-module-constant": "error";
353
361
  readonly "@sarj/prefer-module-level-constant": "error";
354
362
  readonly "@sarj/prefer-module-level-schema": "error";
363
+ readonly "@sarj/prefer-named-complex-return-type": "warn";
364
+ readonly "@sarj/prefer-node-crypto-hash": "warn";
365
+ readonly "@sarj/prefer-node-fs-promises": "warn";
355
366
  readonly "@sarj/prefer-non-nullable-collection": "error";
356
367
  readonly "@sarj/prefer-nullish-filter-predicate": "error";
357
368
  readonly "@sarj/prefer-await-in-async-return": "error";
358
369
  readonly "@sarj/prefer-schema-for-api-payload": "error";
370
+ readonly "@sarj/prefer-shared-zod-enum": "warn";
371
+ readonly "@sarj/prefer-switch-for-repeated-equality": "warn";
359
372
  readonly "@sarj/prefer-semantic-colors": readonly ["error", {
360
373
  readonly requireSemanticTokens: true;
361
374
  }];
@@ -365,7 +378,9 @@ declare const RECOMMENDED_RULES: {
365
378
  readonly "@sarj/prefer-zod-infer": "error";
366
379
  readonly "@sarj/require-assert-never": "error";
367
380
  readonly "@sarj/require-fetch-timeout": "error";
381
+ readonly "@sarj/require-interface-for-exported-class": "warn";
368
382
  readonly "@sarj/require-port-for-service": "error";
383
+ readonly "@sarj/require-sql-access-class": "warn";
369
384
  readonly "@sarj/require-static-next-matcher": "error";
370
385
  readonly "@sarj/require-use-form-default-values": "error";
371
386
  readonly "@sarj/require-use-server-in-actions-file": "error";
@@ -373,6 +388,7 @@ declare const RECOMMENDED_RULES: {
373
388
  readonly "@sarj/store-insert-requires-on-conflict": "error";
374
389
  readonly "@sarj/stepdown": "error";
375
390
  readonly "@sarj/source-coupled-test": "error";
391
+ readonly "@sarj/sole-export-matches-filename": "warn";
376
392
  readonly "@sarj/test-phase-label-comment": "error";
377
393
  readonly "@sarj/require-pascal-case-zod-schema-name": "warn";
378
394
  };
@@ -435,10 +451,15 @@ declare const STRICT_RULES: {
435
451
  readonly "@sarj/prefer-immutable-module-constant": "error";
436
452
  readonly "@sarj/prefer-module-level-constant": "error";
437
453
  readonly "@sarj/prefer-module-level-schema": "error";
454
+ readonly "@sarj/prefer-named-complex-return-type": "warn";
455
+ readonly "@sarj/prefer-node-crypto-hash": "warn";
456
+ readonly "@sarj/prefer-node-fs-promises": "warn";
438
457
  readonly "@sarj/prefer-non-nullable-collection": "error";
439
458
  readonly "@sarj/prefer-nullish-filter-predicate": "error";
440
459
  readonly "@sarj/prefer-await-in-async-return": "error";
441
460
  readonly "@sarj/prefer-schema-for-api-payload": "error";
461
+ readonly "@sarj/prefer-shared-zod-enum": "warn";
462
+ readonly "@sarj/prefer-switch-for-repeated-equality": "warn";
442
463
  readonly "@sarj/prefer-semantic-colors": readonly ["error", {
443
464
  readonly requireSemanticTokens: true;
444
465
  }];
@@ -448,7 +469,9 @@ declare const STRICT_RULES: {
448
469
  readonly "@sarj/prefer-zod-infer": "error";
449
470
  readonly "@sarj/require-assert-never": "error";
450
471
  readonly "@sarj/require-fetch-timeout": "error";
472
+ readonly "@sarj/require-interface-for-exported-class": "warn";
451
473
  readonly "@sarj/require-port-for-service": "error";
474
+ readonly "@sarj/require-sql-access-class": "warn";
452
475
  readonly "@sarj/require-static-next-matcher": "error";
453
476
  readonly "@sarj/require-use-form-default-values": "error";
454
477
  readonly "@sarj/require-use-server-in-actions-file": "error";
@@ -456,6 +479,7 @@ declare const STRICT_RULES: {
456
479
  readonly "@sarj/store-insert-requires-on-conflict": "error";
457
480
  readonly "@sarj/stepdown": "error";
458
481
  readonly "@sarj/source-coupled-test": "error";
482
+ readonly "@sarj/sole-export-matches-filename": "warn";
459
483
  readonly "@sarj/test-phase-label-comment": "error";
460
484
  readonly "@sarj/require-pascal-case-zod-schema-name": "warn";
461
485
  };
@@ -467,7 +491,7 @@ type FlatPreset = {
467
491
  declare const PLUGIN: {
468
492
  readonly meta: {
469
493
  readonly name: "@sarj/eslint-plugin";
470
- readonly version: "15.14.0";
494
+ readonly version: "15.16.0";
471
495
  };
472
496
  readonly rules: {
473
497
  readonly "iac-source-coupled-test": DocumentedRule<readonly [], "rawSourceOracle">;
@@ -547,11 +571,16 @@ declare const PLUGIN: {
547
571
  memoCallees?: readonly string[];
548
572
  minProperties?: number;
549
573
  }?], "hoistSchema">;
574
+ readonly "prefer-named-complex-return-type": DocumentedRule<[], "nameComplexReturnType">;
550
575
  readonly "prefer-native-random-uuid": DocumentedRule<readonly [], "preferNative" | "replaceWithNative">;
576
+ readonly "prefer-node-crypto-hash": DocumentedRule<readonly [], "preferNodeCryptoHash">;
577
+ readonly "prefer-node-fs-promises": DocumentedRule<[], "preferAsyncFs">;
551
578
  readonly "prefer-non-nullable-collection": DocumentedRule<readonly [], "preferNonNullableCollection">;
552
579
  readonly "prefer-nullish-filter-predicate": DocumentedRule<readonly [], "preferNullishPredicate" | "replaceBoolean">;
553
580
  readonly "prefer-await-in-async-return": DocumentedRule<readonly [], "preferAwait">;
554
581
  readonly "prefer-schema-for-api-payload": DocumentedRule<readonly [], "unparsedJsonAccess">;
582
+ readonly "prefer-shared-zod-enum": DocumentedRule<[], "shareEnumDomain">;
583
+ readonly "prefer-switch-for-repeated-equality": DocumentedRule<[], "preferSwitch">;
555
584
  readonly "prefer-semantic-colors": DocumentedRule<readonly [{
556
585
  requireSemanticTokens?: boolean;
557
586
  }?], "rawPalette" | "arbitraryColor" | "inlineColor">;
@@ -566,12 +595,15 @@ declare const PLUGIN: {
566
595
  readonly "require-fetch-timeout": DocumentedRule<readonly [{
567
596
  allowIn?: readonly string[];
568
597
  }?], "missingSignal">;
598
+ readonly "require-interface-for-exported-class": DocumentedRule<[], "requireContract">;
569
599
  readonly "require-port-for-service": DocumentedRule<readonly [], "requireInterface">;
600
+ readonly "require-sql-access-class": DocumentedRule<[], "moveSqlIntoClass">;
570
601
  readonly "require-static-next-matcher": DocumentedRule<readonly [], "dynamicMatcher">;
571
602
  readonly "require-zod-form-validation": DocumentedRule<readonly [], "missingZodValidation">;
572
603
  readonly "store-insert-requires-on-conflict": DocumentedRule<readonly [], "storeInsertRequiresOnConflict">;
573
604
  readonly stepdown: DocumentedRule<[], "helperAboveOnlyCaller">;
574
605
  readonly "source-coupled-test": DocumentedRule<readonly [], "rawSourceOracle">;
606
+ readonly "sole-export-matches-filename": DocumentedRule<[], "matchSoleExport">;
575
607
  readonly "require-pascal-case-zod-schema-name": DocumentedRule<readonly [], "requirePascalSchema">;
576
608
  };
577
609
  readonly retiredRules: Readonly<Record<string, RetiredRule>>;
package/dist/index.d.ts CHANGED
@@ -266,11 +266,16 @@ declare const RULES: {
266
266
  memoCallees?: readonly string[];
267
267
  minProperties?: number;
268
268
  }?], "hoistSchema">;
269
+ readonly "prefer-named-complex-return-type": DocumentedRule<[], "nameComplexReturnType">;
269
270
  readonly "prefer-native-random-uuid": DocumentedRule<readonly [], "preferNative" | "replaceWithNative">;
271
+ readonly "prefer-node-crypto-hash": DocumentedRule<readonly [], "preferNodeCryptoHash">;
272
+ readonly "prefer-node-fs-promises": DocumentedRule<[], "preferAsyncFs">;
270
273
  readonly "prefer-non-nullable-collection": DocumentedRule<readonly [], "preferNonNullableCollection">;
271
274
  readonly "prefer-nullish-filter-predicate": DocumentedRule<readonly [], "preferNullishPredicate" | "replaceBoolean">;
272
275
  readonly "prefer-await-in-async-return": DocumentedRule<readonly [], "preferAwait">;
273
276
  readonly "prefer-schema-for-api-payload": DocumentedRule<readonly [], "unparsedJsonAccess">;
277
+ readonly "prefer-shared-zod-enum": DocumentedRule<[], "shareEnumDomain">;
278
+ readonly "prefer-switch-for-repeated-equality": DocumentedRule<[], "preferSwitch">;
274
279
  readonly "prefer-semantic-colors": DocumentedRule<readonly [{
275
280
  requireSemanticTokens?: boolean;
276
281
  }?], "rawPalette" | "arbitraryColor" | "inlineColor">;
@@ -285,18 +290,21 @@ declare const RULES: {
285
290
  readonly "require-fetch-timeout": DocumentedRule<readonly [{
286
291
  allowIn?: readonly string[];
287
292
  }?], "missingSignal">;
293
+ readonly "require-interface-for-exported-class": DocumentedRule<[], "requireContract">;
288
294
  readonly "require-port-for-service": DocumentedRule<readonly [], "requireInterface">;
295
+ readonly "require-sql-access-class": DocumentedRule<[], "moveSqlIntoClass">;
289
296
  readonly "require-static-next-matcher": DocumentedRule<readonly [], "dynamicMatcher">;
290
297
  readonly "require-zod-form-validation": DocumentedRule<readonly [], "missingZodValidation">;
291
298
  readonly "store-insert-requires-on-conflict": DocumentedRule<readonly [], "storeInsertRequiresOnConflict">;
292
299
  readonly stepdown: DocumentedRule<[], "helperAboveOnlyCaller">;
293
300
  readonly "source-coupled-test": DocumentedRule<readonly [], "rawSourceOracle">;
301
+ readonly "sole-export-matches-filename": DocumentedRule<[], "matchSoleExport">;
294
302
  readonly "require-pascal-case-zod-schema-name": DocumentedRule<readonly [], "requirePascalSchema">;
295
303
  };
296
304
  /** Rules registered for application-profile configs but intentionally absent from general presets. */
297
305
  declare const APPLICATION_ONLY_RULES: readonly ["no-restricted-library-load", "prefer-native-random-uuid", "prefer-shadcn-primitives"];
298
- /** No active rule remains advisory; retained as a public compatibility export. */
299
- declare const ADVISORY_RULES: readonly ["@sarj/require-pascal-case-zod-schema-name"];
306
+ /** Rules staged as non-blocking warnings while corpus adoption evidence accumulates. */
307
+ declare const ADVISORY_RULES: readonly ["@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/require-interface-for-exported-class", "@sarj/require-pascal-case-zod-schema-name", "@sarj/require-sql-access-class", "@sarj/sole-export-matches-filename"];
300
308
  declare const RECOMMENDED_RULES: {
301
309
  readonly "@sarj/interface-contract-members-private": "error";
302
310
  readonly "@sarj/iac-source-coupled-test": "error";
@@ -352,10 +360,15 @@ declare const RECOMMENDED_RULES: {
352
360
  readonly "@sarj/prefer-immutable-module-constant": "error";
353
361
  readonly "@sarj/prefer-module-level-constant": "error";
354
362
  readonly "@sarj/prefer-module-level-schema": "error";
363
+ readonly "@sarj/prefer-named-complex-return-type": "warn";
364
+ readonly "@sarj/prefer-node-crypto-hash": "warn";
365
+ readonly "@sarj/prefer-node-fs-promises": "warn";
355
366
  readonly "@sarj/prefer-non-nullable-collection": "error";
356
367
  readonly "@sarj/prefer-nullish-filter-predicate": "error";
357
368
  readonly "@sarj/prefer-await-in-async-return": "error";
358
369
  readonly "@sarj/prefer-schema-for-api-payload": "error";
370
+ readonly "@sarj/prefer-shared-zod-enum": "warn";
371
+ readonly "@sarj/prefer-switch-for-repeated-equality": "warn";
359
372
  readonly "@sarj/prefer-semantic-colors": readonly ["error", {
360
373
  readonly requireSemanticTokens: true;
361
374
  }];
@@ -365,7 +378,9 @@ declare const RECOMMENDED_RULES: {
365
378
  readonly "@sarj/prefer-zod-infer": "error";
366
379
  readonly "@sarj/require-assert-never": "error";
367
380
  readonly "@sarj/require-fetch-timeout": "error";
381
+ readonly "@sarj/require-interface-for-exported-class": "warn";
368
382
  readonly "@sarj/require-port-for-service": "error";
383
+ readonly "@sarj/require-sql-access-class": "warn";
369
384
  readonly "@sarj/require-static-next-matcher": "error";
370
385
  readonly "@sarj/require-use-form-default-values": "error";
371
386
  readonly "@sarj/require-use-server-in-actions-file": "error";
@@ -373,6 +388,7 @@ declare const RECOMMENDED_RULES: {
373
388
  readonly "@sarj/store-insert-requires-on-conflict": "error";
374
389
  readonly "@sarj/stepdown": "error";
375
390
  readonly "@sarj/source-coupled-test": "error";
391
+ readonly "@sarj/sole-export-matches-filename": "warn";
376
392
  readonly "@sarj/test-phase-label-comment": "error";
377
393
  readonly "@sarj/require-pascal-case-zod-schema-name": "warn";
378
394
  };
@@ -435,10 +451,15 @@ declare const STRICT_RULES: {
435
451
  readonly "@sarj/prefer-immutable-module-constant": "error";
436
452
  readonly "@sarj/prefer-module-level-constant": "error";
437
453
  readonly "@sarj/prefer-module-level-schema": "error";
454
+ readonly "@sarj/prefer-named-complex-return-type": "warn";
455
+ readonly "@sarj/prefer-node-crypto-hash": "warn";
456
+ readonly "@sarj/prefer-node-fs-promises": "warn";
438
457
  readonly "@sarj/prefer-non-nullable-collection": "error";
439
458
  readonly "@sarj/prefer-nullish-filter-predicate": "error";
440
459
  readonly "@sarj/prefer-await-in-async-return": "error";
441
460
  readonly "@sarj/prefer-schema-for-api-payload": "error";
461
+ readonly "@sarj/prefer-shared-zod-enum": "warn";
462
+ readonly "@sarj/prefer-switch-for-repeated-equality": "warn";
442
463
  readonly "@sarj/prefer-semantic-colors": readonly ["error", {
443
464
  readonly requireSemanticTokens: true;
444
465
  }];
@@ -448,7 +469,9 @@ declare const STRICT_RULES: {
448
469
  readonly "@sarj/prefer-zod-infer": "error";
449
470
  readonly "@sarj/require-assert-never": "error";
450
471
  readonly "@sarj/require-fetch-timeout": "error";
472
+ readonly "@sarj/require-interface-for-exported-class": "warn";
451
473
  readonly "@sarj/require-port-for-service": "error";
474
+ readonly "@sarj/require-sql-access-class": "warn";
452
475
  readonly "@sarj/require-static-next-matcher": "error";
453
476
  readonly "@sarj/require-use-form-default-values": "error";
454
477
  readonly "@sarj/require-use-server-in-actions-file": "error";
@@ -456,6 +479,7 @@ declare const STRICT_RULES: {
456
479
  readonly "@sarj/store-insert-requires-on-conflict": "error";
457
480
  readonly "@sarj/stepdown": "error";
458
481
  readonly "@sarj/source-coupled-test": "error";
482
+ readonly "@sarj/sole-export-matches-filename": "warn";
459
483
  readonly "@sarj/test-phase-label-comment": "error";
460
484
  readonly "@sarj/require-pascal-case-zod-schema-name": "warn";
461
485
  };
@@ -467,7 +491,7 @@ type FlatPreset = {
467
491
  declare const PLUGIN: {
468
492
  readonly meta: {
469
493
  readonly name: "@sarj/eslint-plugin";
470
- readonly version: "15.14.0";
494
+ readonly version: "15.16.0";
471
495
  };
472
496
  readonly rules: {
473
497
  readonly "iac-source-coupled-test": DocumentedRule<readonly [], "rawSourceOracle">;
@@ -547,11 +571,16 @@ declare const PLUGIN: {
547
571
  memoCallees?: readonly string[];
548
572
  minProperties?: number;
549
573
  }?], "hoistSchema">;
574
+ readonly "prefer-named-complex-return-type": DocumentedRule<[], "nameComplexReturnType">;
550
575
  readonly "prefer-native-random-uuid": DocumentedRule<readonly [], "preferNative" | "replaceWithNative">;
576
+ readonly "prefer-node-crypto-hash": DocumentedRule<readonly [], "preferNodeCryptoHash">;
577
+ readonly "prefer-node-fs-promises": DocumentedRule<[], "preferAsyncFs">;
551
578
  readonly "prefer-non-nullable-collection": DocumentedRule<readonly [], "preferNonNullableCollection">;
552
579
  readonly "prefer-nullish-filter-predicate": DocumentedRule<readonly [], "preferNullishPredicate" | "replaceBoolean">;
553
580
  readonly "prefer-await-in-async-return": DocumentedRule<readonly [], "preferAwait">;
554
581
  readonly "prefer-schema-for-api-payload": DocumentedRule<readonly [], "unparsedJsonAccess">;
582
+ readonly "prefer-shared-zod-enum": DocumentedRule<[], "shareEnumDomain">;
583
+ readonly "prefer-switch-for-repeated-equality": DocumentedRule<[], "preferSwitch">;
555
584
  readonly "prefer-semantic-colors": DocumentedRule<readonly [{
556
585
  requireSemanticTokens?: boolean;
557
586
  }?], "rawPalette" | "arbitraryColor" | "inlineColor">;
@@ -566,12 +595,15 @@ declare const PLUGIN: {
566
595
  readonly "require-fetch-timeout": DocumentedRule<readonly [{
567
596
  allowIn?: readonly string[];
568
597
  }?], "missingSignal">;
598
+ readonly "require-interface-for-exported-class": DocumentedRule<[], "requireContract">;
569
599
  readonly "require-port-for-service": DocumentedRule<readonly [], "requireInterface">;
600
+ readonly "require-sql-access-class": DocumentedRule<[], "moveSqlIntoClass">;
570
601
  readonly "require-static-next-matcher": DocumentedRule<readonly [], "dynamicMatcher">;
571
602
  readonly "require-zod-form-validation": DocumentedRule<readonly [], "missingZodValidation">;
572
603
  readonly "store-insert-requires-on-conflict": DocumentedRule<readonly [], "storeInsertRequiresOnConflict">;
573
604
  readonly stepdown: DocumentedRule<[], "helperAboveOnlyCaller">;
574
605
  readonly "source-coupled-test": DocumentedRule<readonly [], "rawSourceOracle">;
606
+ readonly "sole-export-matches-filename": DocumentedRule<[], "matchSoleExport">;
575
607
  readonly "require-pascal-case-zod-schema-name": DocumentedRule<readonly [], "requirePascalSchema">;
576
608
  };
577
609
  readonly retiredRules: Readonly<Record<string, RetiredRule>>;