@sarj/eslint-plugin 10.0.0 → 11.0.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/README.md CHANGED
@@ -30,7 +30,12 @@ export default [sarj.configs.recommended];
30
30
  its paired tests. The definition and named test cases are the complete rule
31
31
  specification, and `meta.docs.url` points directly to those executable examples.
32
32
 
33
- Presets: `recommended` (warn-first), `strict` (every general-profile rule at its declared strict severity), `style-guide` (formatting/naming subset). Application-only rules are exported through `applicationOnlyRules` and configured by the application profile. The two-sentence comment rule warns; its three-sentence companion errors.
33
+ Presets: `recommended` is a curated subset and `strict` contains every
34
+ general-profile rule. Every active custom rule in both presets is an error;
35
+ rules that cannot meet that bar are narrowed or retired instead of being left
36
+ as permanent warning noise. Application-only rules are exported through
37
+ `applicationOnlyRules` and are also errors when the application profile enables
38
+ them. `style-guide` remains the formatting/naming subset.
34
39
 
35
40
  ## New in 9.8.0 — application library policy adapters
36
41
 
@@ -130,15 +135,14 @@ platform too.
130
135
  |---|---|---|
131
136
  | `no-hand-rolled-spinner` | Intrinsic elements styled as Tailwind border-ring loading spinners outside the design system. | error / error |
132
137
  | `prefer-input-group-search` | Search icons and shared Input controls composed without the shared InputGroup primitive. | error / error |
133
- | `prefer-shadcn-primitives` | Deterministically visible raw JSX controls used instead of shared shadcn primitives. Unknown and hidden input types are excluded. | application profile: warn |
138
+ | `prefer-shadcn-primitives` | Deterministically visible raw JSX controls used instead of shared shadcn primitives. Unknown and hidden input types are excluded. | application profile: error |
134
139
  | `require-static-next-matcher` | Dynamic values in exported Next.js middleware and proxy matcher configuration. | error / error |
135
- | `no-hand-rolled-sleep` | `new Promise((r) => setTimeout(r, ms))` in any spelling, and an uncleared `Promise.race`/`Promise.any` timeout arm. Options: `checkClientModules` (default `false`), `allowIn`. | warn / error |
140
+ | `no-hand-rolled-sleep` | `new Promise((r) => setTimeout(r, ms))` in any spelling, and an uncleared `Promise.race`/`Promise.any` timeout arm. Options: `checkClientModules` (default `false`), `allowIn`. | error / error |
136
141
 
137
142
  `prefer-shadcn-primitives` is application-only because generic plugin consumers
138
- may use another design system or intentionally expose native controls. It starts
139
- at warning with 53 measured adoption findings across four application-profile
140
- consumers; two additional consumers are clean. Promote it only after those
141
- findings are removed, and keep it disabled inside `components/ui` and
143
+ may use another design system or intentionally expose native controls. The
144
+ application profile enforces its measured, deterministic cases as errors while
145
+ keeping it disabled inside `components/ui` and
142
146
  `components/design-system`, where shared primitives must wrap native elements.
143
147
 
144
148
  ## New in 2.14.0 — `no-tautological-expect`
package/dist/index.cjs CHANGED
@@ -12382,7 +12382,7 @@ var rules = {
12382
12382
  };
12383
12383
  var meta = {
12384
12384
  name: "@sarj/eslint-plugin",
12385
- version: "10.0.0"
12385
+ version: "11.0.0"
12386
12386
  };
12387
12387
  var applicationOnlyRules = [
12388
12388
  "no-restricted-library-load",
@@ -12390,68 +12390,68 @@ var applicationOnlyRules = [
12390
12390
  "prefer-shadcn-primitives"
12391
12391
  ];
12392
12392
  var recommendedRules = {
12393
- "@sarj/duplicate-test-body": "warn",
12394
- "@sarj/enforce-file-structure": "warn",
12395
- "@sarj/no-async-callback-in-wait-for": "warn",
12396
- "@sarj/no-client-side-data-fetching": "warn",
12397
- "@sarj/no-comment-cruft": "warn",
12398
- "@sarj/no-conditional-in-test": "warn",
12399
- "@sarj/no-cors-wildcard-with-credentials": "warn",
12400
- "@sarj/no-dynamic-sql": "warn",
12401
- "@sarj/no-fat-try-blocks": "warn",
12402
- "@sarj/no-hand-rolled-sleep": "warn",
12393
+ "@sarj/duplicate-test-body": "error",
12394
+ "@sarj/enforce-file-structure": "error",
12395
+ "@sarj/no-async-callback-in-wait-for": "error",
12396
+ "@sarj/no-client-side-data-fetching": "error",
12397
+ "@sarj/no-comment-cruft": "error",
12398
+ "@sarj/no-conditional-in-test": "error",
12399
+ "@sarj/no-cors-wildcard-with-credentials": "error",
12400
+ "@sarj/no-dynamic-sql": "error",
12401
+ "@sarj/no-fat-try-blocks": "error",
12402
+ "@sarj/no-hand-rolled-sleep": "error",
12403
12403
  "@sarj/no-hand-rolled-spinner": "error",
12404
- "@sarj/no-insecure-random-id": "warn",
12405
- "@sarj/no-json-stringify-error": "warn",
12406
- "@sarj/no-log-only-catch": "warn",
12407
- "@sarj/no-long-comment": "warn",
12408
- "@sarj/no-generic-single-export-module": "warn",
12409
- "@sarj/no-offset-pagination": "warn",
12410
- "@sarj/no-positional-tuple-return": "warn",
12411
- "@sarj/no-repeated-string-literal": "warn",
12412
- "@sarj/no-restated-comment": "warn",
12413
- "@sarj/no-restated-jsdoc": "warn",
12414
- "@sarj/no-secret-in-log": "warn",
12415
- "@sarj/no-select-star": "warn",
12416
- "@sarj/no-sentinel-return-on-catch": "warn",
12417
- "@sarj/no-silent-promise-catch": "warn",
12418
- "@sarj/no-sleep-in-test-body": "warn",
12419
- "@sarj/no-string-concat-in-loop": "warn",
12420
- "@sarj/no-tautological-expect": "warn",
12421
- "@sarj/no-typed-doc-sections": "warn",
12422
- "@sarj/no-trailing-value-narration": "warn",
12423
- "@sarj/no-declaration-comment-wall": "warn",
12424
- "@sarj/no-union-in-comment": "warn",
12425
- "@sarj/no-type-member-comment-wall": "warn",
12426
- "@sarj/no-unnecessary-use-client": "warn",
12427
- "@sarj/no-unsafe-mock-casting": "warn",
12428
- "@sarj/no-zod-native-enum": "warn",
12429
- "@sarj/test-loops-over-literal-cases": "warn",
12404
+ "@sarj/no-insecure-random-id": "error",
12405
+ "@sarj/no-json-stringify-error": "error",
12406
+ "@sarj/no-log-only-catch": "error",
12407
+ "@sarj/no-long-comment": "error",
12408
+ "@sarj/no-generic-single-export-module": "error",
12409
+ "@sarj/no-offset-pagination": "error",
12410
+ "@sarj/no-positional-tuple-return": "error",
12411
+ "@sarj/no-repeated-string-literal": "error",
12412
+ "@sarj/no-restated-comment": "error",
12413
+ "@sarj/no-restated-jsdoc": "error",
12414
+ "@sarj/no-secret-in-log": "error",
12415
+ "@sarj/no-select-star": "error",
12416
+ "@sarj/no-sentinel-return-on-catch": "error",
12417
+ "@sarj/no-silent-promise-catch": "error",
12418
+ "@sarj/no-sleep-in-test-body": "error",
12419
+ "@sarj/no-string-concat-in-loop": "error",
12420
+ "@sarj/no-tautological-expect": "error",
12421
+ "@sarj/no-typed-doc-sections": "error",
12422
+ "@sarj/no-trailing-value-narration": "error",
12423
+ "@sarj/no-declaration-comment-wall": "error",
12424
+ "@sarj/no-union-in-comment": "error",
12425
+ "@sarj/no-type-member-comment-wall": "error",
12426
+ "@sarj/no-unnecessary-use-client": "error",
12427
+ "@sarj/no-unsafe-mock-casting": "error",
12428
+ "@sarj/no-zod-native-enum": "error",
12429
+ "@sarj/test-loops-over-literal-cases": "error",
12430
12430
  "@sarj/prefer-constant-time-secret-compare": "error",
12431
- "@sarj/prefer-discriminated-union": "warn",
12431
+ "@sarj/prefer-discriminated-union": "error",
12432
12432
  "@sarj/prefer-input-group-search": "error",
12433
- "@sarj/prefer-immutable-module-constant": "warn",
12434
- "@sarj/prefer-module-level-constant": "warn",
12435
- "@sarj/prefer-module-level-schema": "warn",
12436
- "@sarj/prefer-non-nullable-collection": "warn",
12437
- "@sarj/prefer-schema-for-api-payload": "warn",
12438
- "@sarj/prefer-semantic-colors": ["warn", { requireSemanticTokens: true }],
12439
- "@sarj/prefer-server-actions": "warn",
12440
- "@sarj/prefer-string-literal-union": "warn",
12441
- "@sarj/prefer-whole-object-assertion": "warn",
12442
- "@sarj/prefer-zod-enum": "warn",
12443
- "@sarj/prefer-zod-infer": "warn",
12444
- "@sarj/require-assert-never": "warn",
12445
- "@sarj/require-fetch-timeout": "warn",
12446
- "@sarj/require-interface-for-injected-service": "warn",
12433
+ "@sarj/prefer-immutable-module-constant": "error",
12434
+ "@sarj/prefer-module-level-constant": "error",
12435
+ "@sarj/prefer-module-level-schema": "error",
12436
+ "@sarj/prefer-non-nullable-collection": "error",
12437
+ "@sarj/prefer-schema-for-api-payload": "error",
12438
+ "@sarj/prefer-semantic-colors": ["error", { requireSemanticTokens: true }],
12439
+ "@sarj/prefer-server-actions": "error",
12440
+ "@sarj/prefer-string-literal-union": "error",
12441
+ "@sarj/prefer-whole-object-assertion": "error",
12442
+ "@sarj/prefer-zod-enum": "error",
12443
+ "@sarj/prefer-zod-infer": "error",
12444
+ "@sarj/require-assert-never": "error",
12445
+ "@sarj/require-fetch-timeout": "error",
12446
+ "@sarj/require-interface-for-injected-service": "error",
12447
12447
  "@sarj/require-static-next-matcher": "error",
12448
12448
  "@sarj/require-zod-form-validation": "error",
12449
- "@sarj/store-insert-requires-on-conflict": "warn",
12450
- "@sarj/stepdown": "warn",
12451
- "@sarj/zod-naming-convention": "warn"
12449
+ "@sarj/store-insert-requires-on-conflict": "error",
12450
+ "@sarj/stepdown": "error",
12451
+ "@sarj/zod-naming-convention": "error"
12452
12452
  };
12453
12453
  var strictRules = {
12454
- "@sarj/duplicate-test-body": "warn",
12454
+ "@sarj/duplicate-test-body": "error",
12455
12455
  "@sarj/enforce-file-structure": "error",
12456
12456
  "@sarj/no-async-callback-in-wait-for": "error",
12457
12457
  "@sarj/no-client-side-data-fetching": "error",
@@ -12467,7 +12467,7 @@ var strictRules = {
12467
12467
  "@sarj/no-json-stringify-error": "error",
12468
12468
  "@sarj/no-log-only-catch": "error",
12469
12469
  "@sarj/no-long-comment": "error",
12470
- "@sarj/no-generic-single-export-module": "warn",
12470
+ "@sarj/no-generic-single-export-module": "error",
12471
12471
  "@sarj/no-offset-pagination": "error",
12472
12472
  "@sarj/no-positional-tuple-return": "error",
12473
12473
  "@sarj/no-raw-env": "error",
@@ -12491,14 +12491,14 @@ var strictRules = {
12491
12491
  "@sarj/no-unnecessary-use-client": "error",
12492
12492
  "@sarj/no-unsafe-mock-casting": "error",
12493
12493
  "@sarj/no-zod-native-enum": "error",
12494
- "@sarj/test-loops-over-literal-cases": "warn",
12494
+ "@sarj/test-loops-over-literal-cases": "error",
12495
12495
  "@sarj/prefer-constant-time-secret-compare": "error",
12496
- "@sarj/prefer-discriminated-union": "warn",
12496
+ "@sarj/prefer-discriminated-union": "error",
12497
12497
  "@sarj/prefer-input-group-search": "error",
12498
- "@sarj/prefer-immutable-module-constant": "warn",
12498
+ "@sarj/prefer-immutable-module-constant": "error",
12499
12499
  "@sarj/prefer-module-level-constant": "error",
12500
12500
  "@sarj/prefer-module-level-schema": "error",
12501
- "@sarj/prefer-non-nullable-collection": "warn",
12501
+ "@sarj/prefer-non-nullable-collection": "error",
12502
12502
  "@sarj/prefer-schema-for-api-payload": "error",
12503
12503
  "@sarj/prefer-semantic-colors": ["error", { requireSemanticTokens: true }],
12504
12504
  "@sarj/prefer-server-actions": "error",
@@ -12506,13 +12506,13 @@ var strictRules = {
12506
12506
  "@sarj/prefer-whole-object-assertion": "error",
12507
12507
  "@sarj/prefer-zod-enum": "error",
12508
12508
  "@sarj/prefer-zod-infer": "error",
12509
- "@sarj/require-assert-never": "warn",
12509
+ "@sarj/require-assert-never": "error",
12510
12510
  "@sarj/require-fetch-timeout": "error",
12511
- "@sarj/require-interface-for-injected-service": "warn",
12511
+ "@sarj/require-interface-for-injected-service": "error",
12512
12512
  "@sarj/require-static-next-matcher": "error",
12513
12513
  "@sarj/require-zod-form-validation": "error",
12514
12514
  "@sarj/store-insert-requires-on-conflict": "error",
12515
- "@sarj/stepdown": "warn",
12515
+ "@sarj/stepdown": "error",
12516
12516
  "@sarj/zod-naming-convention": "error"
12517
12517
  };
12518
12518
  var plugin = {
package/dist/index.d.cts CHANGED
@@ -316,70 +316,70 @@ declare const rules: {
316
316
  /** Rules registered for application-profile configs but intentionally absent from general presets. */
317
317
  declare const applicationOnlyRules: readonly ["no-restricted-library-load", "prefer-native-random-uuid", "prefer-shadcn-primitives"];
318
318
  declare const recommendedRules: {
319
- readonly "@sarj/duplicate-test-body": "warn";
320
- readonly "@sarj/enforce-file-structure": "warn";
321
- readonly "@sarj/no-async-callback-in-wait-for": "warn";
322
- readonly "@sarj/no-client-side-data-fetching": "warn";
323
- readonly "@sarj/no-comment-cruft": "warn";
324
- readonly "@sarj/no-conditional-in-test": "warn";
325
- readonly "@sarj/no-cors-wildcard-with-credentials": "warn";
326
- readonly "@sarj/no-dynamic-sql": "warn";
327
- readonly "@sarj/no-fat-try-blocks": "warn";
328
- readonly "@sarj/no-hand-rolled-sleep": "warn";
319
+ readonly "@sarj/duplicate-test-body": "error";
320
+ readonly "@sarj/enforce-file-structure": "error";
321
+ readonly "@sarj/no-async-callback-in-wait-for": "error";
322
+ readonly "@sarj/no-client-side-data-fetching": "error";
323
+ readonly "@sarj/no-comment-cruft": "error";
324
+ readonly "@sarj/no-conditional-in-test": "error";
325
+ readonly "@sarj/no-cors-wildcard-with-credentials": "error";
326
+ readonly "@sarj/no-dynamic-sql": "error";
327
+ readonly "@sarj/no-fat-try-blocks": "error";
328
+ readonly "@sarj/no-hand-rolled-sleep": "error";
329
329
  readonly "@sarj/no-hand-rolled-spinner": "error";
330
- readonly "@sarj/no-insecure-random-id": "warn";
331
- readonly "@sarj/no-json-stringify-error": "warn";
332
- readonly "@sarj/no-log-only-catch": "warn";
333
- readonly "@sarj/no-long-comment": "warn";
334
- readonly "@sarj/no-generic-single-export-module": "warn";
335
- readonly "@sarj/no-offset-pagination": "warn";
336
- readonly "@sarj/no-positional-tuple-return": "warn";
337
- readonly "@sarj/no-repeated-string-literal": "warn";
338
- readonly "@sarj/no-restated-comment": "warn";
339
- readonly "@sarj/no-restated-jsdoc": "warn";
340
- readonly "@sarj/no-secret-in-log": "warn";
341
- readonly "@sarj/no-select-star": "warn";
342
- readonly "@sarj/no-sentinel-return-on-catch": "warn";
343
- readonly "@sarj/no-silent-promise-catch": "warn";
344
- readonly "@sarj/no-sleep-in-test-body": "warn";
345
- readonly "@sarj/no-string-concat-in-loop": "warn";
346
- readonly "@sarj/no-tautological-expect": "warn";
347
- readonly "@sarj/no-typed-doc-sections": "warn";
348
- readonly "@sarj/no-trailing-value-narration": "warn";
349
- readonly "@sarj/no-declaration-comment-wall": "warn";
350
- readonly "@sarj/no-union-in-comment": "warn";
351
- readonly "@sarj/no-type-member-comment-wall": "warn";
352
- readonly "@sarj/no-unnecessary-use-client": "warn";
353
- readonly "@sarj/no-unsafe-mock-casting": "warn";
354
- readonly "@sarj/no-zod-native-enum": "warn";
355
- readonly "@sarj/test-loops-over-literal-cases": "warn";
330
+ readonly "@sarj/no-insecure-random-id": "error";
331
+ readonly "@sarj/no-json-stringify-error": "error";
332
+ readonly "@sarj/no-log-only-catch": "error";
333
+ readonly "@sarj/no-long-comment": "error";
334
+ readonly "@sarj/no-generic-single-export-module": "error";
335
+ readonly "@sarj/no-offset-pagination": "error";
336
+ readonly "@sarj/no-positional-tuple-return": "error";
337
+ readonly "@sarj/no-repeated-string-literal": "error";
338
+ readonly "@sarj/no-restated-comment": "error";
339
+ readonly "@sarj/no-restated-jsdoc": "error";
340
+ readonly "@sarj/no-secret-in-log": "error";
341
+ readonly "@sarj/no-select-star": "error";
342
+ readonly "@sarj/no-sentinel-return-on-catch": "error";
343
+ readonly "@sarj/no-silent-promise-catch": "error";
344
+ readonly "@sarj/no-sleep-in-test-body": "error";
345
+ readonly "@sarj/no-string-concat-in-loop": "error";
346
+ readonly "@sarj/no-tautological-expect": "error";
347
+ readonly "@sarj/no-typed-doc-sections": "error";
348
+ readonly "@sarj/no-trailing-value-narration": "error";
349
+ readonly "@sarj/no-declaration-comment-wall": "error";
350
+ readonly "@sarj/no-union-in-comment": "error";
351
+ readonly "@sarj/no-type-member-comment-wall": "error";
352
+ readonly "@sarj/no-unnecessary-use-client": "error";
353
+ readonly "@sarj/no-unsafe-mock-casting": "error";
354
+ readonly "@sarj/no-zod-native-enum": "error";
355
+ readonly "@sarj/test-loops-over-literal-cases": "error";
356
356
  readonly "@sarj/prefer-constant-time-secret-compare": "error";
357
- readonly "@sarj/prefer-discriminated-union": "warn";
357
+ readonly "@sarj/prefer-discriminated-union": "error";
358
358
  readonly "@sarj/prefer-input-group-search": "error";
359
- readonly "@sarj/prefer-immutable-module-constant": "warn";
360
- readonly "@sarj/prefer-module-level-constant": "warn";
361
- readonly "@sarj/prefer-module-level-schema": "warn";
362
- readonly "@sarj/prefer-non-nullable-collection": "warn";
363
- readonly "@sarj/prefer-schema-for-api-payload": "warn";
364
- readonly "@sarj/prefer-semantic-colors": readonly ["warn", {
359
+ readonly "@sarj/prefer-immutable-module-constant": "error";
360
+ readonly "@sarj/prefer-module-level-constant": "error";
361
+ readonly "@sarj/prefer-module-level-schema": "error";
362
+ readonly "@sarj/prefer-non-nullable-collection": "error";
363
+ readonly "@sarj/prefer-schema-for-api-payload": "error";
364
+ readonly "@sarj/prefer-semantic-colors": readonly ["error", {
365
365
  readonly requireSemanticTokens: true;
366
366
  }];
367
- readonly "@sarj/prefer-server-actions": "warn";
368
- readonly "@sarj/prefer-string-literal-union": "warn";
369
- readonly "@sarj/prefer-whole-object-assertion": "warn";
370
- readonly "@sarj/prefer-zod-enum": "warn";
371
- readonly "@sarj/prefer-zod-infer": "warn";
372
- readonly "@sarj/require-assert-never": "warn";
373
- readonly "@sarj/require-fetch-timeout": "warn";
374
- readonly "@sarj/require-interface-for-injected-service": "warn";
367
+ readonly "@sarj/prefer-server-actions": "error";
368
+ readonly "@sarj/prefer-string-literal-union": "error";
369
+ readonly "@sarj/prefer-whole-object-assertion": "error";
370
+ readonly "@sarj/prefer-zod-enum": "error";
371
+ readonly "@sarj/prefer-zod-infer": "error";
372
+ readonly "@sarj/require-assert-never": "error";
373
+ readonly "@sarj/require-fetch-timeout": "error";
374
+ readonly "@sarj/require-interface-for-injected-service": "error";
375
375
  readonly "@sarj/require-static-next-matcher": "error";
376
376
  readonly "@sarj/require-zod-form-validation": "error";
377
- readonly "@sarj/store-insert-requires-on-conflict": "warn";
378
- readonly "@sarj/stepdown": "warn";
379
- readonly "@sarj/zod-naming-convention": "warn";
377
+ readonly "@sarj/store-insert-requires-on-conflict": "error";
378
+ readonly "@sarj/stepdown": "error";
379
+ readonly "@sarj/zod-naming-convention": "error";
380
380
  };
381
381
  declare const strictRules: {
382
- readonly "@sarj/duplicate-test-body": "warn";
382
+ readonly "@sarj/duplicate-test-body": "error";
383
383
  readonly "@sarj/enforce-file-structure": "error";
384
384
  readonly "@sarj/no-async-callback-in-wait-for": "error";
385
385
  readonly "@sarj/no-client-side-data-fetching": "error";
@@ -395,7 +395,7 @@ declare const strictRules: {
395
395
  readonly "@sarj/no-json-stringify-error": "error";
396
396
  readonly "@sarj/no-log-only-catch": "error";
397
397
  readonly "@sarj/no-long-comment": "error";
398
- readonly "@sarj/no-generic-single-export-module": "warn";
398
+ readonly "@sarj/no-generic-single-export-module": "error";
399
399
  readonly "@sarj/no-offset-pagination": "error";
400
400
  readonly "@sarj/no-positional-tuple-return": "error";
401
401
  readonly "@sarj/no-raw-env": "error";
@@ -419,14 +419,14 @@ declare const strictRules: {
419
419
  readonly "@sarj/no-unnecessary-use-client": "error";
420
420
  readonly "@sarj/no-unsafe-mock-casting": "error";
421
421
  readonly "@sarj/no-zod-native-enum": "error";
422
- readonly "@sarj/test-loops-over-literal-cases": "warn";
422
+ readonly "@sarj/test-loops-over-literal-cases": "error";
423
423
  readonly "@sarj/prefer-constant-time-secret-compare": "error";
424
- readonly "@sarj/prefer-discriminated-union": "warn";
424
+ readonly "@sarj/prefer-discriminated-union": "error";
425
425
  readonly "@sarj/prefer-input-group-search": "error";
426
- readonly "@sarj/prefer-immutable-module-constant": "warn";
426
+ readonly "@sarj/prefer-immutable-module-constant": "error";
427
427
  readonly "@sarj/prefer-module-level-constant": "error";
428
428
  readonly "@sarj/prefer-module-level-schema": "error";
429
- readonly "@sarj/prefer-non-nullable-collection": "warn";
429
+ readonly "@sarj/prefer-non-nullable-collection": "error";
430
430
  readonly "@sarj/prefer-schema-for-api-payload": "error";
431
431
  readonly "@sarj/prefer-semantic-colors": readonly ["error", {
432
432
  readonly requireSemanticTokens: true;
@@ -436,13 +436,13 @@ declare const strictRules: {
436
436
  readonly "@sarj/prefer-whole-object-assertion": "error";
437
437
  readonly "@sarj/prefer-zod-enum": "error";
438
438
  readonly "@sarj/prefer-zod-infer": "error";
439
- readonly "@sarj/require-assert-never": "warn";
439
+ readonly "@sarj/require-assert-never": "error";
440
440
  readonly "@sarj/require-fetch-timeout": "error";
441
- readonly "@sarj/require-interface-for-injected-service": "warn";
441
+ readonly "@sarj/require-interface-for-injected-service": "error";
442
442
  readonly "@sarj/require-static-next-matcher": "error";
443
443
  readonly "@sarj/require-zod-form-validation": "error";
444
444
  readonly "@sarj/store-insert-requires-on-conflict": "error";
445
- readonly "@sarj/stepdown": "warn";
445
+ readonly "@sarj/stepdown": "error";
446
446
  readonly "@sarj/zod-naming-convention": "error";
447
447
  };
448
448
  type FlatPreset = {
@@ -453,7 +453,7 @@ type FlatPreset = {
453
453
  declare const plugin: {
454
454
  readonly meta: {
455
455
  readonly name: "@sarj/eslint-plugin";
456
- readonly version: "10.0.0";
456
+ readonly version: "11.0.0";
457
457
  };
458
458
  readonly rules: {
459
459
  readonly "duplicate-test-body": _typescript_eslint_utils_ts_eslint.RuleModule<"duplicateTestBody", readonly [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener> & {
package/dist/index.d.ts CHANGED
@@ -316,70 +316,70 @@ declare const rules: {
316
316
  /** Rules registered for application-profile configs but intentionally absent from general presets. */
317
317
  declare const applicationOnlyRules: readonly ["no-restricted-library-load", "prefer-native-random-uuid", "prefer-shadcn-primitives"];
318
318
  declare const recommendedRules: {
319
- readonly "@sarj/duplicate-test-body": "warn";
320
- readonly "@sarj/enforce-file-structure": "warn";
321
- readonly "@sarj/no-async-callback-in-wait-for": "warn";
322
- readonly "@sarj/no-client-side-data-fetching": "warn";
323
- readonly "@sarj/no-comment-cruft": "warn";
324
- readonly "@sarj/no-conditional-in-test": "warn";
325
- readonly "@sarj/no-cors-wildcard-with-credentials": "warn";
326
- readonly "@sarj/no-dynamic-sql": "warn";
327
- readonly "@sarj/no-fat-try-blocks": "warn";
328
- readonly "@sarj/no-hand-rolled-sleep": "warn";
319
+ readonly "@sarj/duplicate-test-body": "error";
320
+ readonly "@sarj/enforce-file-structure": "error";
321
+ readonly "@sarj/no-async-callback-in-wait-for": "error";
322
+ readonly "@sarj/no-client-side-data-fetching": "error";
323
+ readonly "@sarj/no-comment-cruft": "error";
324
+ readonly "@sarj/no-conditional-in-test": "error";
325
+ readonly "@sarj/no-cors-wildcard-with-credentials": "error";
326
+ readonly "@sarj/no-dynamic-sql": "error";
327
+ readonly "@sarj/no-fat-try-blocks": "error";
328
+ readonly "@sarj/no-hand-rolled-sleep": "error";
329
329
  readonly "@sarj/no-hand-rolled-spinner": "error";
330
- readonly "@sarj/no-insecure-random-id": "warn";
331
- readonly "@sarj/no-json-stringify-error": "warn";
332
- readonly "@sarj/no-log-only-catch": "warn";
333
- readonly "@sarj/no-long-comment": "warn";
334
- readonly "@sarj/no-generic-single-export-module": "warn";
335
- readonly "@sarj/no-offset-pagination": "warn";
336
- readonly "@sarj/no-positional-tuple-return": "warn";
337
- readonly "@sarj/no-repeated-string-literal": "warn";
338
- readonly "@sarj/no-restated-comment": "warn";
339
- readonly "@sarj/no-restated-jsdoc": "warn";
340
- readonly "@sarj/no-secret-in-log": "warn";
341
- readonly "@sarj/no-select-star": "warn";
342
- readonly "@sarj/no-sentinel-return-on-catch": "warn";
343
- readonly "@sarj/no-silent-promise-catch": "warn";
344
- readonly "@sarj/no-sleep-in-test-body": "warn";
345
- readonly "@sarj/no-string-concat-in-loop": "warn";
346
- readonly "@sarj/no-tautological-expect": "warn";
347
- readonly "@sarj/no-typed-doc-sections": "warn";
348
- readonly "@sarj/no-trailing-value-narration": "warn";
349
- readonly "@sarj/no-declaration-comment-wall": "warn";
350
- readonly "@sarj/no-union-in-comment": "warn";
351
- readonly "@sarj/no-type-member-comment-wall": "warn";
352
- readonly "@sarj/no-unnecessary-use-client": "warn";
353
- readonly "@sarj/no-unsafe-mock-casting": "warn";
354
- readonly "@sarj/no-zod-native-enum": "warn";
355
- readonly "@sarj/test-loops-over-literal-cases": "warn";
330
+ readonly "@sarj/no-insecure-random-id": "error";
331
+ readonly "@sarj/no-json-stringify-error": "error";
332
+ readonly "@sarj/no-log-only-catch": "error";
333
+ readonly "@sarj/no-long-comment": "error";
334
+ readonly "@sarj/no-generic-single-export-module": "error";
335
+ readonly "@sarj/no-offset-pagination": "error";
336
+ readonly "@sarj/no-positional-tuple-return": "error";
337
+ readonly "@sarj/no-repeated-string-literal": "error";
338
+ readonly "@sarj/no-restated-comment": "error";
339
+ readonly "@sarj/no-restated-jsdoc": "error";
340
+ readonly "@sarj/no-secret-in-log": "error";
341
+ readonly "@sarj/no-select-star": "error";
342
+ readonly "@sarj/no-sentinel-return-on-catch": "error";
343
+ readonly "@sarj/no-silent-promise-catch": "error";
344
+ readonly "@sarj/no-sleep-in-test-body": "error";
345
+ readonly "@sarj/no-string-concat-in-loop": "error";
346
+ readonly "@sarj/no-tautological-expect": "error";
347
+ readonly "@sarj/no-typed-doc-sections": "error";
348
+ readonly "@sarj/no-trailing-value-narration": "error";
349
+ readonly "@sarj/no-declaration-comment-wall": "error";
350
+ readonly "@sarj/no-union-in-comment": "error";
351
+ readonly "@sarj/no-type-member-comment-wall": "error";
352
+ readonly "@sarj/no-unnecessary-use-client": "error";
353
+ readonly "@sarj/no-unsafe-mock-casting": "error";
354
+ readonly "@sarj/no-zod-native-enum": "error";
355
+ readonly "@sarj/test-loops-over-literal-cases": "error";
356
356
  readonly "@sarj/prefer-constant-time-secret-compare": "error";
357
- readonly "@sarj/prefer-discriminated-union": "warn";
357
+ readonly "@sarj/prefer-discriminated-union": "error";
358
358
  readonly "@sarj/prefer-input-group-search": "error";
359
- readonly "@sarj/prefer-immutable-module-constant": "warn";
360
- readonly "@sarj/prefer-module-level-constant": "warn";
361
- readonly "@sarj/prefer-module-level-schema": "warn";
362
- readonly "@sarj/prefer-non-nullable-collection": "warn";
363
- readonly "@sarj/prefer-schema-for-api-payload": "warn";
364
- readonly "@sarj/prefer-semantic-colors": readonly ["warn", {
359
+ readonly "@sarj/prefer-immutable-module-constant": "error";
360
+ readonly "@sarj/prefer-module-level-constant": "error";
361
+ readonly "@sarj/prefer-module-level-schema": "error";
362
+ readonly "@sarj/prefer-non-nullable-collection": "error";
363
+ readonly "@sarj/prefer-schema-for-api-payload": "error";
364
+ readonly "@sarj/prefer-semantic-colors": readonly ["error", {
365
365
  readonly requireSemanticTokens: true;
366
366
  }];
367
- readonly "@sarj/prefer-server-actions": "warn";
368
- readonly "@sarj/prefer-string-literal-union": "warn";
369
- readonly "@sarj/prefer-whole-object-assertion": "warn";
370
- readonly "@sarj/prefer-zod-enum": "warn";
371
- readonly "@sarj/prefer-zod-infer": "warn";
372
- readonly "@sarj/require-assert-never": "warn";
373
- readonly "@sarj/require-fetch-timeout": "warn";
374
- readonly "@sarj/require-interface-for-injected-service": "warn";
367
+ readonly "@sarj/prefer-server-actions": "error";
368
+ readonly "@sarj/prefer-string-literal-union": "error";
369
+ readonly "@sarj/prefer-whole-object-assertion": "error";
370
+ readonly "@sarj/prefer-zod-enum": "error";
371
+ readonly "@sarj/prefer-zod-infer": "error";
372
+ readonly "@sarj/require-assert-never": "error";
373
+ readonly "@sarj/require-fetch-timeout": "error";
374
+ readonly "@sarj/require-interface-for-injected-service": "error";
375
375
  readonly "@sarj/require-static-next-matcher": "error";
376
376
  readonly "@sarj/require-zod-form-validation": "error";
377
- readonly "@sarj/store-insert-requires-on-conflict": "warn";
378
- readonly "@sarj/stepdown": "warn";
379
- readonly "@sarj/zod-naming-convention": "warn";
377
+ readonly "@sarj/store-insert-requires-on-conflict": "error";
378
+ readonly "@sarj/stepdown": "error";
379
+ readonly "@sarj/zod-naming-convention": "error";
380
380
  };
381
381
  declare const strictRules: {
382
- readonly "@sarj/duplicate-test-body": "warn";
382
+ readonly "@sarj/duplicate-test-body": "error";
383
383
  readonly "@sarj/enforce-file-structure": "error";
384
384
  readonly "@sarj/no-async-callback-in-wait-for": "error";
385
385
  readonly "@sarj/no-client-side-data-fetching": "error";
@@ -395,7 +395,7 @@ declare const strictRules: {
395
395
  readonly "@sarj/no-json-stringify-error": "error";
396
396
  readonly "@sarj/no-log-only-catch": "error";
397
397
  readonly "@sarj/no-long-comment": "error";
398
- readonly "@sarj/no-generic-single-export-module": "warn";
398
+ readonly "@sarj/no-generic-single-export-module": "error";
399
399
  readonly "@sarj/no-offset-pagination": "error";
400
400
  readonly "@sarj/no-positional-tuple-return": "error";
401
401
  readonly "@sarj/no-raw-env": "error";
@@ -419,14 +419,14 @@ declare const strictRules: {
419
419
  readonly "@sarj/no-unnecessary-use-client": "error";
420
420
  readonly "@sarj/no-unsafe-mock-casting": "error";
421
421
  readonly "@sarj/no-zod-native-enum": "error";
422
- readonly "@sarj/test-loops-over-literal-cases": "warn";
422
+ readonly "@sarj/test-loops-over-literal-cases": "error";
423
423
  readonly "@sarj/prefer-constant-time-secret-compare": "error";
424
- readonly "@sarj/prefer-discriminated-union": "warn";
424
+ readonly "@sarj/prefer-discriminated-union": "error";
425
425
  readonly "@sarj/prefer-input-group-search": "error";
426
- readonly "@sarj/prefer-immutable-module-constant": "warn";
426
+ readonly "@sarj/prefer-immutable-module-constant": "error";
427
427
  readonly "@sarj/prefer-module-level-constant": "error";
428
428
  readonly "@sarj/prefer-module-level-schema": "error";
429
- readonly "@sarj/prefer-non-nullable-collection": "warn";
429
+ readonly "@sarj/prefer-non-nullable-collection": "error";
430
430
  readonly "@sarj/prefer-schema-for-api-payload": "error";
431
431
  readonly "@sarj/prefer-semantic-colors": readonly ["error", {
432
432
  readonly requireSemanticTokens: true;
@@ -436,13 +436,13 @@ declare const strictRules: {
436
436
  readonly "@sarj/prefer-whole-object-assertion": "error";
437
437
  readonly "@sarj/prefer-zod-enum": "error";
438
438
  readonly "@sarj/prefer-zod-infer": "error";
439
- readonly "@sarj/require-assert-never": "warn";
439
+ readonly "@sarj/require-assert-never": "error";
440
440
  readonly "@sarj/require-fetch-timeout": "error";
441
- readonly "@sarj/require-interface-for-injected-service": "warn";
441
+ readonly "@sarj/require-interface-for-injected-service": "error";
442
442
  readonly "@sarj/require-static-next-matcher": "error";
443
443
  readonly "@sarj/require-zod-form-validation": "error";
444
444
  readonly "@sarj/store-insert-requires-on-conflict": "error";
445
- readonly "@sarj/stepdown": "warn";
445
+ readonly "@sarj/stepdown": "error";
446
446
  readonly "@sarj/zod-naming-convention": "error";
447
447
  };
448
448
  type FlatPreset = {
@@ -453,7 +453,7 @@ type FlatPreset = {
453
453
  declare const plugin: {
454
454
  readonly meta: {
455
455
  readonly name: "@sarj/eslint-plugin";
456
- readonly version: "10.0.0";
456
+ readonly version: "11.0.0";
457
457
  };
458
458
  readonly rules: {
459
459
  readonly "duplicate-test-body": _typescript_eslint_utils_ts_eslint.RuleModule<"duplicateTestBody", readonly [], unknown, _typescript_eslint_utils_ts_eslint.RuleListener> & {
package/dist/index.js CHANGED
@@ -12346,7 +12346,7 @@ var rules = {
12346
12346
  };
12347
12347
  var meta = {
12348
12348
  name: "@sarj/eslint-plugin",
12349
- version: "10.0.0"
12349
+ version: "11.0.0"
12350
12350
  };
12351
12351
  var applicationOnlyRules = [
12352
12352
  "no-restricted-library-load",
@@ -12354,68 +12354,68 @@ var applicationOnlyRules = [
12354
12354
  "prefer-shadcn-primitives"
12355
12355
  ];
12356
12356
  var recommendedRules = {
12357
- "@sarj/duplicate-test-body": "warn",
12358
- "@sarj/enforce-file-structure": "warn",
12359
- "@sarj/no-async-callback-in-wait-for": "warn",
12360
- "@sarj/no-client-side-data-fetching": "warn",
12361
- "@sarj/no-comment-cruft": "warn",
12362
- "@sarj/no-conditional-in-test": "warn",
12363
- "@sarj/no-cors-wildcard-with-credentials": "warn",
12364
- "@sarj/no-dynamic-sql": "warn",
12365
- "@sarj/no-fat-try-blocks": "warn",
12366
- "@sarj/no-hand-rolled-sleep": "warn",
12357
+ "@sarj/duplicate-test-body": "error",
12358
+ "@sarj/enforce-file-structure": "error",
12359
+ "@sarj/no-async-callback-in-wait-for": "error",
12360
+ "@sarj/no-client-side-data-fetching": "error",
12361
+ "@sarj/no-comment-cruft": "error",
12362
+ "@sarj/no-conditional-in-test": "error",
12363
+ "@sarj/no-cors-wildcard-with-credentials": "error",
12364
+ "@sarj/no-dynamic-sql": "error",
12365
+ "@sarj/no-fat-try-blocks": "error",
12366
+ "@sarj/no-hand-rolled-sleep": "error",
12367
12367
  "@sarj/no-hand-rolled-spinner": "error",
12368
- "@sarj/no-insecure-random-id": "warn",
12369
- "@sarj/no-json-stringify-error": "warn",
12370
- "@sarj/no-log-only-catch": "warn",
12371
- "@sarj/no-long-comment": "warn",
12372
- "@sarj/no-generic-single-export-module": "warn",
12373
- "@sarj/no-offset-pagination": "warn",
12374
- "@sarj/no-positional-tuple-return": "warn",
12375
- "@sarj/no-repeated-string-literal": "warn",
12376
- "@sarj/no-restated-comment": "warn",
12377
- "@sarj/no-restated-jsdoc": "warn",
12378
- "@sarj/no-secret-in-log": "warn",
12379
- "@sarj/no-select-star": "warn",
12380
- "@sarj/no-sentinel-return-on-catch": "warn",
12381
- "@sarj/no-silent-promise-catch": "warn",
12382
- "@sarj/no-sleep-in-test-body": "warn",
12383
- "@sarj/no-string-concat-in-loop": "warn",
12384
- "@sarj/no-tautological-expect": "warn",
12385
- "@sarj/no-typed-doc-sections": "warn",
12386
- "@sarj/no-trailing-value-narration": "warn",
12387
- "@sarj/no-declaration-comment-wall": "warn",
12388
- "@sarj/no-union-in-comment": "warn",
12389
- "@sarj/no-type-member-comment-wall": "warn",
12390
- "@sarj/no-unnecessary-use-client": "warn",
12391
- "@sarj/no-unsafe-mock-casting": "warn",
12392
- "@sarj/no-zod-native-enum": "warn",
12393
- "@sarj/test-loops-over-literal-cases": "warn",
12368
+ "@sarj/no-insecure-random-id": "error",
12369
+ "@sarj/no-json-stringify-error": "error",
12370
+ "@sarj/no-log-only-catch": "error",
12371
+ "@sarj/no-long-comment": "error",
12372
+ "@sarj/no-generic-single-export-module": "error",
12373
+ "@sarj/no-offset-pagination": "error",
12374
+ "@sarj/no-positional-tuple-return": "error",
12375
+ "@sarj/no-repeated-string-literal": "error",
12376
+ "@sarj/no-restated-comment": "error",
12377
+ "@sarj/no-restated-jsdoc": "error",
12378
+ "@sarj/no-secret-in-log": "error",
12379
+ "@sarj/no-select-star": "error",
12380
+ "@sarj/no-sentinel-return-on-catch": "error",
12381
+ "@sarj/no-silent-promise-catch": "error",
12382
+ "@sarj/no-sleep-in-test-body": "error",
12383
+ "@sarj/no-string-concat-in-loop": "error",
12384
+ "@sarj/no-tautological-expect": "error",
12385
+ "@sarj/no-typed-doc-sections": "error",
12386
+ "@sarj/no-trailing-value-narration": "error",
12387
+ "@sarj/no-declaration-comment-wall": "error",
12388
+ "@sarj/no-union-in-comment": "error",
12389
+ "@sarj/no-type-member-comment-wall": "error",
12390
+ "@sarj/no-unnecessary-use-client": "error",
12391
+ "@sarj/no-unsafe-mock-casting": "error",
12392
+ "@sarj/no-zod-native-enum": "error",
12393
+ "@sarj/test-loops-over-literal-cases": "error",
12394
12394
  "@sarj/prefer-constant-time-secret-compare": "error",
12395
- "@sarj/prefer-discriminated-union": "warn",
12395
+ "@sarj/prefer-discriminated-union": "error",
12396
12396
  "@sarj/prefer-input-group-search": "error",
12397
- "@sarj/prefer-immutable-module-constant": "warn",
12398
- "@sarj/prefer-module-level-constant": "warn",
12399
- "@sarj/prefer-module-level-schema": "warn",
12400
- "@sarj/prefer-non-nullable-collection": "warn",
12401
- "@sarj/prefer-schema-for-api-payload": "warn",
12402
- "@sarj/prefer-semantic-colors": ["warn", { requireSemanticTokens: true }],
12403
- "@sarj/prefer-server-actions": "warn",
12404
- "@sarj/prefer-string-literal-union": "warn",
12405
- "@sarj/prefer-whole-object-assertion": "warn",
12406
- "@sarj/prefer-zod-enum": "warn",
12407
- "@sarj/prefer-zod-infer": "warn",
12408
- "@sarj/require-assert-never": "warn",
12409
- "@sarj/require-fetch-timeout": "warn",
12410
- "@sarj/require-interface-for-injected-service": "warn",
12397
+ "@sarj/prefer-immutable-module-constant": "error",
12398
+ "@sarj/prefer-module-level-constant": "error",
12399
+ "@sarj/prefer-module-level-schema": "error",
12400
+ "@sarj/prefer-non-nullable-collection": "error",
12401
+ "@sarj/prefer-schema-for-api-payload": "error",
12402
+ "@sarj/prefer-semantic-colors": ["error", { requireSemanticTokens: true }],
12403
+ "@sarj/prefer-server-actions": "error",
12404
+ "@sarj/prefer-string-literal-union": "error",
12405
+ "@sarj/prefer-whole-object-assertion": "error",
12406
+ "@sarj/prefer-zod-enum": "error",
12407
+ "@sarj/prefer-zod-infer": "error",
12408
+ "@sarj/require-assert-never": "error",
12409
+ "@sarj/require-fetch-timeout": "error",
12410
+ "@sarj/require-interface-for-injected-service": "error",
12411
12411
  "@sarj/require-static-next-matcher": "error",
12412
12412
  "@sarj/require-zod-form-validation": "error",
12413
- "@sarj/store-insert-requires-on-conflict": "warn",
12414
- "@sarj/stepdown": "warn",
12415
- "@sarj/zod-naming-convention": "warn"
12413
+ "@sarj/store-insert-requires-on-conflict": "error",
12414
+ "@sarj/stepdown": "error",
12415
+ "@sarj/zod-naming-convention": "error"
12416
12416
  };
12417
12417
  var strictRules = {
12418
- "@sarj/duplicate-test-body": "warn",
12418
+ "@sarj/duplicate-test-body": "error",
12419
12419
  "@sarj/enforce-file-structure": "error",
12420
12420
  "@sarj/no-async-callback-in-wait-for": "error",
12421
12421
  "@sarj/no-client-side-data-fetching": "error",
@@ -12431,7 +12431,7 @@ var strictRules = {
12431
12431
  "@sarj/no-json-stringify-error": "error",
12432
12432
  "@sarj/no-log-only-catch": "error",
12433
12433
  "@sarj/no-long-comment": "error",
12434
- "@sarj/no-generic-single-export-module": "warn",
12434
+ "@sarj/no-generic-single-export-module": "error",
12435
12435
  "@sarj/no-offset-pagination": "error",
12436
12436
  "@sarj/no-positional-tuple-return": "error",
12437
12437
  "@sarj/no-raw-env": "error",
@@ -12455,14 +12455,14 @@ var strictRules = {
12455
12455
  "@sarj/no-unnecessary-use-client": "error",
12456
12456
  "@sarj/no-unsafe-mock-casting": "error",
12457
12457
  "@sarj/no-zod-native-enum": "error",
12458
- "@sarj/test-loops-over-literal-cases": "warn",
12458
+ "@sarj/test-loops-over-literal-cases": "error",
12459
12459
  "@sarj/prefer-constant-time-secret-compare": "error",
12460
- "@sarj/prefer-discriminated-union": "warn",
12460
+ "@sarj/prefer-discriminated-union": "error",
12461
12461
  "@sarj/prefer-input-group-search": "error",
12462
- "@sarj/prefer-immutable-module-constant": "warn",
12462
+ "@sarj/prefer-immutable-module-constant": "error",
12463
12463
  "@sarj/prefer-module-level-constant": "error",
12464
12464
  "@sarj/prefer-module-level-schema": "error",
12465
- "@sarj/prefer-non-nullable-collection": "warn",
12465
+ "@sarj/prefer-non-nullable-collection": "error",
12466
12466
  "@sarj/prefer-schema-for-api-payload": "error",
12467
12467
  "@sarj/prefer-semantic-colors": ["error", { requireSemanticTokens: true }],
12468
12468
  "@sarj/prefer-server-actions": "error",
@@ -12470,13 +12470,13 @@ var strictRules = {
12470
12470
  "@sarj/prefer-whole-object-assertion": "error",
12471
12471
  "@sarj/prefer-zod-enum": "error",
12472
12472
  "@sarj/prefer-zod-infer": "error",
12473
- "@sarj/require-assert-never": "warn",
12473
+ "@sarj/require-assert-never": "error",
12474
12474
  "@sarj/require-fetch-timeout": "error",
12475
- "@sarj/require-interface-for-injected-service": "warn",
12475
+ "@sarj/require-interface-for-injected-service": "error",
12476
12476
  "@sarj/require-static-next-matcher": "error",
12477
12477
  "@sarj/require-zod-form-validation": "error",
12478
12478
  "@sarj/store-insert-requires-on-conflict": "error",
12479
- "@sarj/stepdown": "warn",
12479
+ "@sarj/stepdown": "error",
12480
12480
  "@sarj/zod-naming-convention": "error"
12481
12481
  };
12482
12482
  var plugin = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sarj/eslint-plugin",
3
- "version": "10.0.0",
3
+ "version": "11.0.0",
4
4
  "packageManager": "npm@11.19.0",
5
5
  "description": "Custom ESLint rules for hypermodern TypeScript / React / Next.js projects",
6
6
  "type": "module",