@ploaness/config 1.0.0 → 1.2.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.
@@ -1,13 +1,4 @@
1
- // The framework-neutral half of the ploaness ESLint contract.
2
- //
3
- // It was extracted because ploaness never ran ESLint on itself. The rules below carry every size cap,
4
- // explicitness rule, naming ban, and suppression discipline the governing standard states - and the
5
- // harness that publishes them was not measured by them. Sharing only the five cap NUMBERS would have
6
- // left roughly seventy rule declarations to drift; the blocks are shared instead, and the globs are the
7
- // caller's, because the globs are the only genuinely project-shaped part.
8
- //
9
- // `packages/config/eslint.js` composes these with the Payload-specific blocks. The ploaness repository
10
- // composes them with its own workspace layout. Neither restates a rule.
1
+ // Framework-neutral lint policy shared by this repository and the configurations shipped to consumers.
11
2
  import js from '@eslint/js';
12
3
  import comments from '@eslint-community/eslint-plugin-eslint-comments/configs';
13
4
  import { PROJECT_SETUP_FILE } from '@ploaness/governance';
@@ -21,6 +12,7 @@ import sonarjs from 'eslint-plugin-sonarjs';
21
12
  import unicorn from 'eslint-plugin-unicorn';
22
13
  import globals from 'globals';
23
14
  import tseslint from 'typescript-eslint';
15
+ import { SECURITY_RESTRICTIONS } from './eslint-security.js';
24
16
  // Narrowing rather than a property read: `rules` arrives as `unknown` out of the index signature above,
25
17
  // and a layer that carries none is passed through untouched.
26
18
  const isRuleTable = (value) => typeof value === 'object' && value !== null;
@@ -56,6 +48,19 @@ const MOCKING_PACKAGES = [
56
48
  'nock',
57
49
  'msw',
58
50
  ];
51
+ // No simulated web layer. A test-only imitation of a framework's request handling answers a request
52
+ // without the server, the serialization and the error handling a real one passes through, so a test
53
+ // written against it proves the handler ran rather than that the endpoint works.
54
+ //
55
+ // What is NOT listed here matters as much as what is. The framework's OWN request pipeline - the code a
56
+ // live request actually runs, reached in process - is a real component under the substitute criterion,
57
+ // and driving an endpoint through it is the intended way to assert on a real response. `supertest` is
58
+ // absent for the same kind of reason: it binds a real ephemeral port, which is exactly what the rule
59
+ // asks for. And like the mock ban above, this names the cases it knows; a hand-rolled imitation is
60
+ // still a violation that an inspection decides.
61
+ const WEB_SIMULATION_MESSAGE = 'No simulated web layer. Drive the endpoint through the real request pipeline, or a real server ' +
62
+ 'on a local port, instead (see AGENTS.md).';
63
+ const WEB_SIMULATION_PACKAGES = ['node-mocks-http', 'light-my-request'];
59
64
  // Collection/global/field/block configs are declarative wiring: importing one already satisfies its
60
65
  // coverage, so a function inlined there has no unit-test seam and can sit untested. This rule bans
61
66
  // inline functions in those files, forcing extraction into the unit-tested src/access and src/lib
@@ -87,18 +92,29 @@ const NO_INHERITANCE = [
87
92
  // An assertion whose operands are literals alone cannot fail when the code under test changes, so it
88
93
  // reports as passing while judging nothing. This catches the exact form the standard names; the general
89
94
  // rule is not statically decidable and is stated in the agent guide instead.
95
+ //
96
+ // Anchored on the FIRST argument, which is the operand. Written as a child combinator over the whole
97
+ // call - `CallExpression[callee.name='expect'] > Literal` - it matched a literal in ANY argument
98
+ // position, and `expect` takes a second one: the message Vitest prints when the assertion fails. So the
99
+ // rule rejected `expect(parsed, 'the value that got through')`, which is not an assertion over a
100
+ // literal at all, and rejected it with a message describing a defect the line does not have. What
101
+ // survived was the one spelling neither this rule nor `vitest/valid-expect` happened to catch, a
102
+ // template literal carrying a substitution - and every shipped spec in `packages/assets` uses it,
103
+ // which is why nothing here ever reported the hole.
90
104
  const LITERAL_ASSERTION_MESSAGE = 'An assertion over a literal cannot fail when the code under test changes. Assert an observable outcome.';
105
+ const EXPECT_CALL = "CallExpression[callee.name='expect']";
91
106
  const NO_LITERAL_ASSERTIONS = [
92
107
  {
93
- selector: "CallExpression[callee.name='expect'] > Literal",
108
+ selector: `${EXPECT_CALL}[arguments.0.type='Literal']`,
94
109
  message: LITERAL_ASSERTION_MESSAGE,
95
110
  },
96
111
  {
97
- selector: "CallExpression[callee.name='expect'] > TemplateLiteral[expressions.length=0]",
112
+ selector: `${EXPECT_CALL}[arguments.0.type='TemplateLiteral'][arguments.0.expressions.length=0]`,
98
113
  message: LITERAL_ASSERTION_MESSAGE,
99
114
  },
100
115
  {
101
- selector: "CallExpression[callee.name='expect'] > UnaryExpression[operator='-'] > Literal",
116
+ selector: `${EXPECT_CALL}[arguments.0.type='UnaryExpression'][arguments.0.operator='-']` +
117
+ "[arguments.0.argument.type='Literal']",
102
118
  message: LITERAL_ASSERTION_MESSAGE,
103
119
  },
104
120
  ];
@@ -120,8 +136,9 @@ export const compose = defineConfig;
120
136
  /** Formatting is Biome's job; this disables every conflicting stylistic rule and must stay last. */
121
137
  export const prettierLast = prettier;
122
138
  // A warning severity does not exist in a governed repository: a check has two verdicts, and a finding
123
- // that prints and exits 0 is neither. Several presets ship rules at `warn` anyway - 31 of jsdoc's and 6
124
- // of regexp's, as of this writing - so every finding they report was invisible to the build.
139
+ // that prints and exits 0 is neither. Several presets ship rules at `warn` anyway - 31 of jsdoc's, 6
140
+ // of regexp's, and 14 of the 22 in Next's own core-web-vitals preset, as of this writing - so every
141
+ // finding they report was invisible to the build.
125
142
  //
126
143
  // The list of which rules those are is NOT written down here. It would be a copy of what the presets
127
144
  // declare, and it would go stale on the next upgrade in the one direction that fails open. Each layer's
@@ -141,7 +158,11 @@ const escalate = (setting) => {
141
158
  // arrives as the plugin's own declared interface, and an interface carries no index signature, so
142
159
  // naming one here would force an assertion at every call site - which the type coverage measurement
143
160
  // counts as uncovered. What this function needs is one property, read the way an unknown shape is read.
144
- const withoutWarnings = (layer) => {
161
+ //
162
+ // Exported because the application config mounts a framework preset of its own that arrives with the
163
+ // same defect, and a second copy of this escalation there would be the drift this file exists to stop.
164
+ /** The same layer with every rule it declares raised to `error`; a rule it turns off stays off. */
165
+ export const withoutWarnings = (layer) => {
145
166
  const rules = Reflect.get(layer, 'rules');
146
167
  return isRuleTable(rules)
147
168
  ? {
@@ -189,7 +210,30 @@ export const guidelineRules = {
189
210
  // Conflicts with the explicit philosophy: typedef requires annotations, this rule would strip
190
211
  // the "trivially inferable" ones (e.g. `const x: string = '...'`). We want them written.
191
212
  '@typescript-eslint/no-inferrable-types': 'off',
213
+ // The same conflict, one type narrower, and unsatisfiable rather than merely contrary. For a
214
+ // constant that must carry a string LITERAL type - a discriminant, or a key a typed API indexes by -
215
+ // all three spellings are rejected: `const X: 'a' = 'a'` by this rule, `const X = 'a' as const` and
216
+ // `const X = 'a'` by typedef. There is no legal declaration left, so this one gives way. It arrives
217
+ // from the typescript-eslint preset rather than from this table, which is why it outlived the audit
218
+ // that turned off the rule above.
219
+ '@typescript-eslint/prefer-as-const': 'off',
192
220
  '@typescript-eslint/no-non-null-assertion': 'error',
221
+ // The rule that WRITES what the line above forbids, which is why it sits here rather than anywhere
222
+ // else. `non-nullable-type-assertion-style` arrives from `stylisticTypeChecked` and mandates `x!`
223
+ // wherever `x as T` only strips null or undefined; Biome refuses `!` outright, explicitly through
224
+ // `noNonNullAssertion` in `biome-core.json` and again through `noNonNullAssertedOptionalChain` in the
225
+ // recommended preset it enables.
226
+ //
227
+ // The two meet inside a single `ploaness format`, which runs Biome and then the ESLint fixers: the
228
+ // fixer rewrites the cast to `x!`, and the next `verify` fails on the character the harness itself
229
+ // just wrote. Nothing the author typed was wrong, no third spelling satisfies both tools, and the
230
+ // suggested repair the developer is left holding is a suppression.
231
+ //
232
+ // This one yields, in the direction the harness already settles a style disagreement: the formatter
233
+ // casts the deciding vote, so one tool owns the question and the other defers. Nothing is lost by
234
+ // it - the ban on `!` is unchanged and now belongs to Biome alone, and the cast the rule wanted to
235
+ // shorten remains legal, explicit, and type-checked.
236
+ '@typescript-eslint/non-nullable-type-assertion-style': 'off',
193
237
  '@typescript-eslint/strict-boolean-expressions': 'error',
194
238
  '@typescript-eslint/switch-exhaustiveness-check': 'error',
195
239
  '@typescript-eslint/no-unnecessary-condition': 'error',
@@ -283,7 +327,7 @@ export const guidelineRules = {
283
327
  'unicorn/expiring-todo-comments': 'off',
284
328
  // Composition over inheritance. A type inherits only from a base the language or a dependency
285
329
  // requires, and the error base is the one such base that appears in ordinary code.
286
- 'no-restricted-syntax': [...NO_INHERITANCE],
330
+ 'no-restricted-syntax': [...NO_INHERITANCE, ...SECURITY_RESTRICTIONS],
287
331
  // Control-flow clarity.
288
332
  eqeqeq: ['error', 'always'],
289
333
  curly: ['error', 'all'],
@@ -364,6 +408,73 @@ export const guidelineRules = {
364
408
  // avoid the constant. Biome decides, for the reason it already decides formatting: the two must
365
409
  // never disagree about the same character, so one of them owns style and the other defers.
366
410
  'unicorn/prefer-global-number-constants': 'off',
411
+ // The sibling contradiction, resolved the OTHER way, and the difference is worth the paragraph.
412
+ //
413
+ // Building a list by a sequential scan - each entry deciding what it becomes from what the previous
414
+ // ones did - has four spellings, and this harness rejected all of them but one. `[...accumulator,
415
+ // one]` inside a `reduce` is Biome's `noAccumulatingSpread`. `accumulator.concat([one])` is
416
+ // `unicorn/prefer-spread`, which does not merely permit the spread form but MANDATES it over
417
+ // `concat`. `collected.push(one)` is `functional/immutable-data`, and the mutable binding a loop
418
+ // needs is `functional/no-let`. What survived was recursion, which is a poor thing to be steered
419
+ // into: it trades the copying `noAccumulatingSpread` objects to for a hard stack-depth limit, so the
420
+ // rule set was answering a performance question with a correctness cliff.
421
+ //
422
+ // The rule above says Biome decides when the two disagree. That rule is about STYLE - which spelling
423
+ // of a constant, where both spellings do the same thing and the only cost of choosing wrongly is
424
+ // inconsistency. This is not that. `noAccumulatingSpread` is a claim about algorithmic cost, and
425
+ // this harness has already answered that question everywhere else: `functional/no-let` and
426
+ // `functional/immutable-data` price immutability above copying, in every module, by design. A rule
427
+ // penalising the immutable form is arguing with a decision the rule set already made - and
428
+ // `unicorn/no-array-reduce` is off a few lines above precisely because `reduce` is the idiom that
429
+ // decision leaves. So `noAccumulatingSpread` is gone from `biome-core.json`.
430
+ //
431
+ // The lists a governed project accumulates this way are a day's diary entries or a quote's line
432
+ // items. The copying is real and is measured in microseconds; the stack limit is not.
433
+ //
434
+ // `prefer-spread` used to stay as the narrower cut, and it no longer does, for a reason that is not
435
+ // about accumulation at all. See the entry that follows.
436
+ // A THIRD contradiction, and the first one where the fixer is the thing that breaks the code.
437
+ //
438
+ // `unicorn/prefer-spread` mandates `[...value]` over `Array.from(value)` and over `value.split('')`,
439
+ // and it is not type-aware, so it says that about a string too. `@typescript-eslint/no-misused-spread`
440
+ // - from `strictTypeChecked`, and type-aware - bans spreading a string, because `...` iterates code
441
+ // points and decomposes an emoji into its parts. Neither rule can see the other's case, and the
442
+ // unicorn rule has no option to exclude a string.
443
+ //
444
+ // What makes this different from a disagreement is that they meet inside a single `eslint --fix`.
445
+ // The fixer rewrites `Array.from(label)` to `[...label]`, and the same run then reports the text it
446
+ // just wrote. `ploaness format` therefore hands a developer a file it authored and rejects, on a
447
+ // line they did not write, with a message whose suggested repair is a suppression. A contradiction
448
+ // a person can walk around by choosing a different spelling is one thing; one the harness walks
449
+ // INTO on their behalf is another, and it is why this could not be left as guidance.
450
+ //
451
+ // `prefer-spread` yields, and the direction follows the accumulation paragraph above rather than the
452
+ // `Number.NaN` rule before it. That one was about style, where the two spellings do the same thing
453
+ // and only consistency is at stake. This is not: one rule is making a correctness claim about text a
454
+ // CMS stores - a name, a title, an editor's paragraph - out of type information the other one does
455
+ // not have. The uninformed rule does not get to overrule the informed one, and it certainly does not
456
+ // get to do so through a fixer.
457
+ //
458
+ // WHAT THIS COSTS, stated plainly because it reopens a door another spec was built to hold shut.
459
+ // `accumulator.concat([one])` is legal again, so the fold `immutable-accumulation.spec.ts` leaves
460
+ // open is now one good spelling of a sequential scan rather than the only one. The other three doors
461
+ // that spec names are unaffected: `functional/immutable-data` still rejects `push`,
462
+ // `functional/no-let` still rejects the loop binding, and Biome still does not re-ban the fold. The
463
+ // trade is a style guarantee for a correctness one, taken deliberately and in that direction.
464
+ 'unicorn/prefer-spread': 'off',
465
+ // The same shape again, one layer down: two fixers that assume the browser's DOM.
466
+ //
467
+ // `prefer-dom-node-append` rewrites `parent.appendChild(child)` to `parent.append(child)` and
468
+ // `prefer-dom-node-remove` rewrites `parent.removeChild(child)` to `child.remove()`. Both are correct
469
+ // in a browser, where every node has both spellings, and neither rule is type-aware, so they say the
470
+ // same about any object with a method of that name. A Payload server has one: an XML parser such as
471
+ // `@xmldom/xmldom`, which a project reaches for to sanitise an uploaded SVG - the very thing the
472
+ // upload rules ask of it - implements the older methods and not the newer ones. The fixer therefore
473
+ // wrote `append` and `remove` into a file whose types have neither, and `ploaness format` handed the
474
+ // project code the `types` gate then rejected. A React component loses nothing: the browser DOM
475
+ // carries both spellings, and Biome's own rules still hold the markup.
476
+ 'unicorn/prefer-dom-node-append': 'off',
477
+ 'unicorn/prefer-dom-node-remove': 'off',
367
478
  // New in unicorn 73. It would expand every concise one-line `/** ... */` export doc into a
368
479
  // three-line block, and would also rewrite the `GENERATED AUTOMATICALLY BY PAYLOAD` /
369
480
  // `DO NOT MODIFY` headers that Payload writes into the `src/app/(payload)` scaffolding.
@@ -377,11 +488,25 @@ export const guidelineRules = {
377
488
  'jsdoc/require-jsdoc': 'off',
378
489
  'jsdoc/require-param': 'off',
379
490
  'jsdoc/require-returns': 'off',
491
+ // And require that a block which exists SAYS something. `require-jsdoc` asks only whether a block is
492
+ // present, so `/**\n *\n */` satisfied it while documenting nothing - a check nothing could fail,
493
+ // sitting under a rule whose whole purpose is a documenting comment. A consuming project shipped
494
+ // exactly that stub on a hook and it survived every gate until the file was rewritten for other
495
+ // reasons. This visits blocks that already exist rather than demanding new ones, so it closes the
496
+ // hole without widening the set of symbols that must be documented.
497
+ 'jsdoc/require-description': 'error',
380
498
  // No mocks - ban the mocking entry points and libraries build-wide.
381
499
  'no-restricted-properties': ['error', ...NO_MOCK_PROPERTIES],
500
+ // One setting carries both bans, because this key REPLACES rather than merges: a second
501
+ // `no-restricted-imports` anywhere would drop whichever list it did not restate.
382
502
  'no-restricted-imports': [
383
503
  'error',
384
- { paths: MOCKING_PACKAGES.map((name) => ({ name, message: NO_MOCKS_MESSAGE })) },
504
+ {
505
+ paths: [
506
+ ...MOCKING_PACKAGES.map((name) => ({ name, message: NO_MOCKS_MESSAGE })),
507
+ ...WEB_SIMULATION_PACKAGES.map((name) => ({ name, message: WEB_SIMULATION_MESSAGE })),
508
+ ],
509
+ },
385
510
  ],
386
511
  };
387
512
  export const vitestPlugin = vitest;
@@ -396,7 +521,12 @@ export const testIntegrityRules = {
396
521
  // sonarjs/assertions-in-tests is a less-configurable duplicate that does not, so it defers in
397
522
  // this scope.
398
523
  'sonarjs/assertions-in-tests': 'off',
399
- 'vitest/valid-expect': 'error', // `expect` is called correctly (awaited, matcher present).
524
+ // `expect` is called correctly (awaited, matcher present). `maxArgs: 2` because Vitest's second
525
+ // argument is the message it prints when the assertion fails, and in a loop or a table-driven case
526
+ // that message is the difference between knowing a case failed and knowing WHICH input broke it. The
527
+ // plugin's default of 1 already waves through a string or template literal there, so what it
528
+ // actually rejected was the identifier form - the one a table-driven case needs.
529
+ 'vitest/valid-expect': ['error', { maxArgs: 2 }],
400
530
  'vitest/no-standalone-expect': 'error', // assertions must live inside a test.
401
531
  'vitest/no-conditional-expect': 'error', // an assertion behind an `if` may never execute.
402
532
  'vitest/no-conditional-tests': 'error', // tests must not be defined conditionally.
@@ -409,11 +539,15 @@ export const testIntegrityRules = {
409
539
  /**
410
540
  * The framework idiom a spec is written in, which the production rules were never aimed at.
411
541
  *
412
- * Only idiom is relaxed. Every rule that carries a rule of the governing standard - the size caps, the
413
- * explicitness rules, the ban on a non-null assertion, the unsafe-any family - stays ON, because the
414
- * standard says test code passes the same static-analysis checks as production code. A relaxation that
415
- * made a test easier to write by making it less checked would exempt the suite from the contract it
416
- * exists to enforce.
542
+ * Only idiom is relaxed. Every rule that carries a rule of the governing standard - the explicitness
543
+ * rules, the ban on a non-null assertion, the unsafe-any family, and every size cap but one - stays ON,
544
+ * because the standard says test code passes the same static-analysis checks as production code. A
545
+ * relaxation that made a test easier to write by making it less checked would exempt the suite from the
546
+ * contract it exists to enforce.
547
+ *
548
+ * The one exception is `max-lines-per-function`, and it is a role distinction rather than a relaxation:
549
+ * the cap bounds a unit of logic, and a `describe` body is a list of independent declarations. The file
550
+ * cap still applies. See the entry itself for the argument.
417
551
  *
418
552
  * Shared by every shipped config rather than stated in each, because what earns the exemption is being a
419
553
  * SPEC rather than being a Payload application's spec. Stated twice it drifted: a library consumer's
@@ -430,6 +564,12 @@ export const testIdiomRules = {
430
564
  'unicorn/no-top-level-assignment-in-function': 'off', // the standard vitest beforeAll pattern.
431
565
  'unicorn/max-nested-calls': 'off', // expect(fn(arg(value))) assertions are idiomatic.
432
566
  'unicorn/numeric-separators-style': 'off', // fixtures use code points (0x2026); ungrouped reads better.
567
+ // A `describe` body is a list of independent declarations rather than a unit of logic: nothing flows
568
+ // between its tests, so reading the twelfth needs none of the first eleven, and the cognitive load the
569
+ // cap bounds does not accumulate. Splitting one to satisfy the cap invents a group name that marks a
570
+ // linter boundary rather than a real one. A spec file that genuinely IS too long is still caught, by
571
+ // `max-lines`, which stays on.
572
+ 'max-lines-per-function': 'off',
433
573
  };
434
574
  // Property tests must stay deterministic: one seed decides the whole suite, and a per-call override
435
575
  // reintroduces a gate whose verdict changes between two runs of an unchanged repository, which is the
@@ -543,6 +683,7 @@ const NO_TEST_ORDER_ESCAPE = [
543
683
  export const testSuiteSyntaxRules = {
544
684
  'no-restricted-syntax': [
545
685
  ...NO_INHERITANCE,
686
+ ...SECURITY_RESTRICTIONS,
546
687
  ...NO_LITERAL_ASSERTIONS,
547
688
  ...NO_FAST_CHECK_SEED,
548
689
  ...NO_TEST_ORDER_ESCAPE,
@@ -628,6 +769,16 @@ const PROCESS_ENVIRONMENT = 'process.env.*';
628
769
  // two rules were pointing at each other, one banning the assignment and naming `defineProperty` as its
629
770
  // fix, the other banning `defineProperty`. Same shape as the `void` marker, resolved the same way.
630
771
  const RUNTIME_GLOBALS = 'globalThis';
772
+ // A hook's per-request state, exempt where a Payload project writes its hooks.
773
+ //
774
+ // Payload hands every hook the same `req.context` object and documents writing to it as the way one
775
+ // hook passes a value to the next and stops a loop it would otherwise start. That is the framework's
776
+ // contract rather than a data structure the project owns, and a rule that reported it made every
777
+ // governed hook spend a suppression on the framework's own idiom. Written as `req.context.*.**` rather
778
+ // than `req.context.**`, because the plugin reads `**` as ANY depth including none: the shorter pattern
779
+ // would also admit `req.context = {}`, and replacing the bag is not writing into it. `req.file` stays
780
+ // reported, because replacing an upload on the request is rare enough to deserve its stated reason.
781
+ const REQUEST_CONTEXT = 'req.context.*.**';
631
782
  // One constructor rather than an option object written at each site. A block that sets this rule REPLACES
632
783
  // its options rather than adding to them, so the setup file's block has to restate the base carve-out to
633
784
  // keep it - and restating it by hand is exactly how it would be dropped.
@@ -693,6 +844,21 @@ export const specEnvironmentBlock = () => ({
693
844
  'functional/immutable-data': immutableData([PROCESS_ENVIRONMENT]),
694
845
  },
695
846
  });
847
+ /**
848
+ * The hook directories' role, which is to carry a request's state between Payload hooks.
849
+ *
850
+ * Mounted by the Payload configuration alone: a library has no request to carry state on. Built with the
851
+ * shared constructor, so the base carve-out survives the replacement a block that sets this rule
852
+ * performs, and with the plugin re-mounted, for the reason `processConfigBlock` states.
853
+ * @param files the globs the project's hooks live under.
854
+ */
855
+ export const hookContextBlock = (files) => ({
856
+ files: [...files],
857
+ plugins: { functional },
858
+ rules: {
859
+ 'functional/immutable-data': immutableData([REQUEST_CONTEXT]),
860
+ },
861
+ });
696
862
  /** The shared selectors, re-exported so a scoped block can spread rather than restate them. */
697
863
  export { NO_FAST_CHECK_SEED, NO_INHERITANCE, NO_LITERAL_ASSERTIONS, NO_MOCK_PROPERTIES, NO_NETWORK_GUARD_ESCAPE, NO_TEST_ORDER_ESCAPE, };
698
864
  //# sourceMappingURL=eslint-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"eslint-core.js","sourceRoot":"","sources":["../src/eslint-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eslint-core.js","sourceRoot":"","sources":["../src/eslint-core.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /** One `no-restricted-syntax` entry: the shape to reject, and what to say when it appears. */
2
+ export interface RestrictedSyntax {
3
+ readonly selector: string;
4
+ readonly message: string;
5
+ }
6
+ /** Output-boundary syntax every composed configuration must retain. */
7
+ export declare const SECURITY_RESTRICTIONS: readonly RestrictedSyntax[];
8
+ //# sourceMappingURL=eslint-security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-security.d.ts","sourceRoot":"","sources":["../src/eslint-security.ts"],"names":[],"mappings":"AAMA,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAkED,uEAAuE;AACvE,eAAO,MAAM,qBAAqB,EAAE,SAAS,gBAAgB,EAG5D,CAAA"}
@@ -0,0 +1,47 @@
1
+ const SENSITIVE_NAME = '/^(?:password|token|secret|apiKey|privateKey|creditCard|ssn|cvv)$/';
2
+ const CONSOLE_CALL = "CallExpression[callee.type='MemberExpression']" +
3
+ "[callee.object.name='console']" +
4
+ '[callee.property.name=/^(?:log|error|warn|info|debug|trace)$/]';
5
+ const SENSITIVE_LOG_MESSAGE = '[sensitive-data-logged] Do not write a credential-bearing value directly to console output; ' +
6
+ 'remove it or pass an explicitly redacted value.';
7
+ const sensitiveLog = (suffix) => ({
8
+ selector: `${CONSOLE_CALL}${suffix}`,
9
+ message: SENSITIVE_LOG_MESSAGE,
10
+ });
11
+ const SENSITIVE_LOGGING = [
12
+ sensitiveLog(` > Identifier[name=${SENSITIVE_NAME}]`),
13
+ sensitiveLog(` > MemberExpression[property.name=${SENSITIVE_NAME}]`),
14
+ sensitiveLog(` > ChainExpression MemberExpression[property.name=${SENSITIVE_NAME}]`),
15
+ sensitiveLog(` > TemplateLiteral Identifier[name=${SENSITIVE_NAME}]`),
16
+ sensitiveLog(` > TemplateLiteral MemberExpression[property.name=${SENSITIVE_NAME}]`),
17
+ sensitiveLog(` > BinaryExpression Identifier[name=${SENSITIVE_NAME}]`),
18
+ sensitiveLog(` > BinaryExpression MemberExpression[property.name=${SENSITIVE_NAME}]`),
19
+ sensitiveLog(` > ObjectExpression Property[shorthand=true] > Identifier[name=${SENSITIVE_NAME}]`),
20
+ sensitiveLog(` > ObjectExpression Property > MemberExpression[property.name=${SENSITIVE_NAME}]`),
21
+ ];
22
+ const INTERNAL_ERROR = 'MemberExpression[object.name=/^(?:err|error|exception)$/]' +
23
+ '[property.name=/^(?:message|stack)$/]';
24
+ const ERROR_PROPERTY = 'Property[key.name=/^(?:error|message)$/], Property[key.value=/^(?:error|message)$/]';
25
+ const JSON_RESPONSE = "CallExpression[callee.type='MemberExpression']" +
26
+ '[callee.object.name=/^(?:Response|NextResponse)$/]' +
27
+ "[callee.property.name='json']";
28
+ const ERROR_RESPONSE_MESSAGE = '[leaks-error-message] Do not return an internal error message or stack to a caller; log it ' +
29
+ 'server-side and return a generic or explicitly sanitised public error.';
30
+ const errorResponse = (selector) => ({
31
+ selector,
32
+ message: ERROR_RESPONSE_MESSAGE,
33
+ });
34
+ const INTERNAL_ERROR_RESPONSES = [
35
+ errorResponse(`${JSON_RESPONSE} > ObjectExpression > :matches(${ERROR_PROPERTY}) > ${INTERNAL_ERROR}`),
36
+ errorResponse(`${JSON_RESPONSE} > ${INTERNAL_ERROR}`),
37
+ errorResponse(`ReturnStatement > ObjectExpression > :matches(${ERROR_PROPERTY}) > ${INTERNAL_ERROR}`),
38
+ errorResponse(`ArrowFunctionExpression[expression=true] > ObjectExpression > ` +
39
+ `:matches(${ERROR_PROPERTY}) > ${INTERNAL_ERROR}`),
40
+ errorResponse(`NewExpression[callee.name='Response'] > ${INTERNAL_ERROR}`),
41
+ ];
42
+ /** Output-boundary syntax every composed configuration must retain. */
43
+ export const SECURITY_RESTRICTIONS = [
44
+ ...SENSITIVE_LOGGING,
45
+ ...INTERNAL_ERROR_RESPONSES,
46
+ ];
47
+ //# sourceMappingURL=eslint-security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eslint-security.js","sourceRoot":"","sources":["../src/eslint-security.ts"],"names":[],"mappings":"AAYA,MAAM,cAAc,GAAW,oEAAoE,CAAA;AAEnG,MAAM,YAAY,GAChB,gDAAgD;IAChD,gCAAgC;IAChC,gEAAgE,CAAA;AAElE,MAAM,qBAAqB,GACzB,8FAA8F;IAC9F,iDAAiD,CAAA;AAEnD,MAAM,YAAY,GAAG,CAAC,MAAc,EAAoB,EAAE,CAAC,CAAC;IAC1D,QAAQ,EAAE,GAAG,YAAY,GAAG,MAAM,EAAE;IACpC,OAAO,EAAE,qBAAqB;CAC/B,CAAC,CAAA;AAEF,MAAM,iBAAiB,GAAgC;IACrD,YAAY,CAAC,sBAAsB,cAAc,GAAG,CAAC;IACrD,YAAY,CAAC,qCAAqC,cAAc,GAAG,CAAC;IACpE,YAAY,CAAC,qDAAqD,cAAc,GAAG,CAAC;IACpF,YAAY,CAAC,sCAAsC,cAAc,GAAG,CAAC;IACrE,YAAY,CAAC,qDAAqD,cAAc,GAAG,CAAC;IACpF,YAAY,CAAC,uCAAuC,cAAc,GAAG,CAAC;IACtE,YAAY,CAAC,sDAAsD,cAAc,GAAG,CAAC;IACrF,YAAY,CAAC,kEAAkE,cAAc,GAAG,CAAC;IACjG,YAAY,CAAC,iEAAiE,cAAc,GAAG,CAAC;CACjG,CAAA;AAED,MAAM,cAAc,GAClB,2DAA2D;IAC3D,uCAAuC,CAAA;AAEzC,MAAM,cAAc,GAClB,qFAAqF,CAAA;AAEvF,MAAM,aAAa,GACjB,gDAAgD;IAChD,oDAAoD;IACpD,+BAA+B,CAAA;AAEjC,MAAM,sBAAsB,GAC1B,6FAA6F;IAC7F,wEAAwE,CAAA;AAE1E,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAoB,EAAE,CAAC,CAAC;IAC7D,QAAQ;IACR,OAAO,EAAE,sBAAsB;CAChC,CAAC,CAAA;AAEF,MAAM,wBAAwB,GAAgC;IAC5D,aAAa,CACX,GAAG,aAAa,kCAAkC,cAAc,OAAO,cAAc,EAAE,CACxF;IACD,aAAa,CAAC,GAAG,aAAa,MAAM,cAAc,EAAE,CAAC;IACrD,aAAa,CACX,iDAAiD,cAAc,OAAO,cAAc,EAAE,CACvF;IACD,aAAa,CACX,gEAAgE;QAC9D,YAAY,cAAc,OAAO,cAAc,EAAE,CACpD;IACD,aAAa,CAAC,2CAA2C,cAAc,EAAE,CAAC;CAC3E,CAAA;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,qBAAqB,GAAgC;IAChE,GAAG,iBAAiB;IACpB,GAAG,wBAAwB;CAC5B,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"eslint.d.ts","sourceRoot":"","sources":["../src/eslint.ts"],"names":[],"mappings":";AA0DA,wBA0PC"}
1
+ {"version":3,"file":"eslint.d.ts","sourceRoot":"","sources":["../src/eslint.ts"],"names":[],"mappings":";AAqEA,wBAwSC"}