@ploaness/governance 1.1.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.
Files changed (186) hide show
  1. package/dist/a11y-hit-target.d.ts.map +1 -1
  2. package/dist/a11y-hit-target.js +1 -21
  3. package/dist/a11y-hit-target.js.map +1 -1
  4. package/dist/a11y-incomplete.d.ts.map +1 -1
  5. package/dist/a11y-incomplete.js +1 -18
  6. package/dist/a11y-incomplete.js.map +1 -1
  7. package/dist/access-boundary.d.ts +43 -1
  8. package/dist/access-boundary.d.ts.map +1 -1
  9. package/dist/access-boundary.js +146 -5
  10. package/dist/access-boundary.js.map +1 -1
  11. package/dist/admin-view-coverage.d.ts.map +1 -1
  12. package/dist/admin-view-coverage.js +1 -17
  13. package/dist/admin-view-coverage.js.map +1 -1
  14. package/dist/asset-policy.d.ts.map +1 -1
  15. package/dist/asset-policy.js +1 -23
  16. package/dist/asset-policy.js.map +1 -1
  17. package/dist/axe-coverage.d.ts +3 -4
  18. package/dist/axe-coverage.d.ts.map +1 -1
  19. package/dist/axe-coverage.js +18 -51
  20. package/dist/axe-coverage.js.map +1 -1
  21. package/dist/blocklist-entries.d.ts +36 -0
  22. package/dist/blocklist-entries.d.ts.map +1 -0
  23. package/dist/blocklist-entries.js +338 -0
  24. package/dist/blocklist-entries.js.map +1 -0
  25. package/dist/blocklist.d.ts +91 -0
  26. package/dist/blocklist.d.ts.map +1 -0
  27. package/dist/blocklist.js +187 -0
  28. package/dist/blocklist.js.map +1 -0
  29. package/dist/container-failure.d.ts.map +1 -1
  30. package/dist/container-failure.js +1 -18
  31. package/dist/container-failure.js.map +1 -1
  32. package/dist/container-files.d.ts +16 -0
  33. package/dist/container-files.d.ts.map +1 -1
  34. package/dist/container-files.js +23 -8
  35. package/dist/container-files.js.map +1 -1
  36. package/dist/container-images.d.ts +43 -0
  37. package/dist/container-images.d.ts.map +1 -0
  38. package/dist/container-images.js +157 -0
  39. package/dist/container-images.js.map +1 -0
  40. package/dist/dependency-freshness.d.ts +8 -0
  41. package/dist/dependency-freshness.d.ts.map +1 -1
  42. package/dist/dependency-freshness.js +2 -18
  43. package/dist/dependency-freshness.js.map +1 -1
  44. package/dist/doc-blocks.d.ts.map +1 -1
  45. package/dist/doc-blocks.js +1 -13
  46. package/dist/doc-blocks.js.map +1 -1
  47. package/dist/editorconfig-policy.d.ts +7 -0
  48. package/dist/editorconfig-policy.d.ts.map +1 -1
  49. package/dist/editorconfig-policy.js +19 -12
  50. package/dist/editorconfig-policy.js.map +1 -1
  51. package/dist/environment-coherence.d.ts.map +1 -1
  52. package/dist/environment-coherence.js +1 -23
  53. package/dist/environment-coherence.js.map +1 -1
  54. package/dist/environment-files.d.ts.map +1 -1
  55. package/dist/environment-files.js +1 -19
  56. package/dist/environment-files.js.map +1 -1
  57. package/dist/file-roles.d.ts +7 -2
  58. package/dist/file-roles.d.ts.map +1 -1
  59. package/dist/file-roles.js +10 -9
  60. package/dist/file-roles.js.map +1 -1
  61. package/dist/freshness-repair.d.ts +82 -0
  62. package/dist/freshness-repair.d.ts.map +1 -0
  63. package/dist/freshness-repair.js +91 -0
  64. package/dist/freshness-repair.js.map +1 -0
  65. package/dist/generated-denial.d.ts.map +1 -1
  66. package/dist/generated-denial.js +1 -9
  67. package/dist/generated-denial.js.map +1 -1
  68. package/dist/generated-drift.d.ts.map +1 -1
  69. package/dist/generated-drift.js +1 -12
  70. package/dist/generated-drift.js.map +1 -1
  71. package/dist/harness-package.d.ts +13 -0
  72. package/dist/harness-package.d.ts.map +1 -0
  73. package/dist/harness-package.js +20 -0
  74. package/dist/harness-package.js.map +1 -0
  75. package/dist/history-policy.d.ts.map +1 -1
  76. package/dist/history-policy.js +1 -7
  77. package/dist/history-policy.js.map +1 -1
  78. package/dist/image-assets.d.ts.map +1 -1
  79. package/dist/image-assets.js +1 -10
  80. package/dist/image-assets.js.map +1 -1
  81. package/dist/index.d.ts +12 -0
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +12 -0
  84. package/dist/index.js.map +1 -1
  85. package/dist/install-policy.d.ts +21 -0
  86. package/dist/install-policy.d.ts.map +1 -1
  87. package/dist/install-policy.js +53 -1
  88. package/dist/install-policy.js.map +1 -1
  89. package/dist/jsx-accessibility-scope.d.ts +17 -0
  90. package/dist/jsx-accessibility-scope.d.ts.map +1 -0
  91. package/dist/jsx-accessibility-scope.js +36 -0
  92. package/dist/jsx-accessibility-scope.js.map +1 -0
  93. package/dist/jsx-accessibility.d.ts +13 -0
  94. package/dist/jsx-accessibility.d.ts.map +1 -0
  95. package/dist/jsx-accessibility.js +188 -0
  96. package/dist/jsx-accessibility.js.map +1 -0
  97. package/dist/network-policy.d.ts.map +1 -1
  98. package/dist/network-policy.js +1 -12
  99. package/dist/network-policy.js.map +1 -1
  100. package/dist/oxlint-policy.d.ts +16 -0
  101. package/dist/oxlint-policy.d.ts.map +1 -0
  102. package/dist/oxlint-policy.js +28 -0
  103. package/dist/oxlint-policy.js.map +1 -0
  104. package/dist/oxlint-report.d.ts +29 -0
  105. package/dist/oxlint-report.d.ts.map +1 -0
  106. package/dist/oxlint-report.js +84 -0
  107. package/dist/oxlint-report.js.map +1 -0
  108. package/dist/oxlint-scope.d.ts +13 -0
  109. package/dist/oxlint-scope.d.ts.map +1 -0
  110. package/dist/oxlint-scope.js +46 -0
  111. package/dist/oxlint-scope.js.map +1 -0
  112. package/dist/oxlint-suppressions.d.ts +17 -0
  113. package/dist/oxlint-suppressions.d.ts.map +1 -0
  114. package/dist/oxlint-suppressions.js +72 -0
  115. package/dist/oxlint-suppressions.js.map +1 -0
  116. package/dist/paired-assets.d.ts.map +1 -1
  117. package/dist/paired-assets.js.map +1 -1
  118. package/dist/payload-access.d.ts +6 -0
  119. package/dist/payload-access.d.ts.map +1 -1
  120. package/dist/payload-access.js +166 -9
  121. package/dist/payload-access.js.map +1 -1
  122. package/dist/payload-configs.d.ts +0 -1
  123. package/dist/payload-configs.d.ts.map +1 -1
  124. package/dist/payload-configs.js +36 -17
  125. package/dist/payload-configs.js.map +1 -1
  126. package/dist/payload-defaults.d.ts +128 -0
  127. package/dist/payload-defaults.d.ts.map +1 -0
  128. package/dist/payload-defaults.js +295 -0
  129. package/dist/payload-defaults.js.map +1 -0
  130. package/dist/payload-policy.d.ts +13 -0
  131. package/dist/payload-policy.d.ts.map +1 -1
  132. package/dist/payload-policy.js +81 -40
  133. package/dist/payload-policy.js.map +1 -1
  134. package/dist/relationship-cleanup.d.ts.map +1 -1
  135. package/dist/relationship-cleanup.js +16 -16
  136. package/dist/relationship-cleanup.js.map +1 -1
  137. package/dist/release-age.d.ts.map +1 -1
  138. package/dist/release-age.js +1 -16
  139. package/dist/release-age.js.map +1 -1
  140. package/dist/request-limits.d.ts.map +1 -1
  141. package/dist/request-limits.js +1 -11
  142. package/dist/request-limits.js.map +1 -1
  143. package/dist/route-map.d.ts.map +1 -1
  144. package/dist/route-map.js +1 -16
  145. package/dist/route-map.js.map +1 -1
  146. package/dist/run-plan.d.ts.map +1 -1
  147. package/dist/run-plan.js +1 -19
  148. package/dist/run-plan.js.map +1 -1
  149. package/dist/secret-policy.d.ts.map +1 -1
  150. package/dist/secret-policy.js +1 -11
  151. package/dist/secret-policy.js.map +1 -1
  152. package/dist/settings-layering.d.ts +8 -30
  153. package/dist/settings-layering.d.ts.map +1 -1
  154. package/dist/settings-layering.js +19 -48
  155. package/dist/settings-layering.js.map +1 -1
  156. package/dist/settings.d.ts +9 -2
  157. package/dist/settings.d.ts.map +1 -1
  158. package/dist/settings.js.map +1 -1
  159. package/dist/source-text.d.ts +2 -0
  160. package/dist/source-text.d.ts.map +1 -1
  161. package/dist/source-text.js +7 -16
  162. package/dist/source-text.js.map +1 -1
  163. package/dist/toolchain-pins.d.ts.map +1 -1
  164. package/dist/toolchain-pins.js +2 -19
  165. package/dist/toolchain-pins.js.map +1 -1
  166. package/dist/version-policy.d.ts +7 -8
  167. package/dist/version-policy.d.ts.map +1 -1
  168. package/dist/version-policy.js +15 -26
  169. package/dist/version-policy.js.map +1 -1
  170. package/dist/vulnerability-policy.d.ts.map +1 -1
  171. package/dist/vulnerability-policy.js +1 -11
  172. package/dist/vulnerability-policy.js.map +1 -1
  173. package/dist/wiring-policy.d.ts.map +1 -1
  174. package/dist/wiring-policy.js +4 -1
  175. package/dist/wiring-policy.js.map +1 -1
  176. package/dist/wiring-violation.d.ts.map +1 -1
  177. package/dist/wiring-violation.js +1 -6
  178. package/dist/wiring-violation.js.map +1 -1
  179. package/dist/workspace-policy.d.ts.map +1 -1
  180. package/dist/workspace-policy.js +3 -9
  181. package/dist/workspace-policy.js.map +1 -1
  182. package/dist/yaml-blocks.d.ts +10 -0
  183. package/dist/yaml-blocks.d.ts.map +1 -1
  184. package/dist/yaml-blocks.js +20 -0
  185. package/dist/yaml-blocks.js.map +1 -1
  186. package/package.json +2 -2
@@ -7,12 +7,12 @@
7
7
  // make on the project's behalf if the project does not make it first.
8
8
  import { payloadConfigsIn, } from './payload-configs.js';
9
9
  import { configBody, depthOneBlockKeys, depthOneValue, } from './payload-source.js';
10
- import { NOT_FOUND, topLevelKeys } from './source-text.js';
10
+ import { balancedArguments, NOT_FOUND, scanDelimited, topLevelKeys, } from './source-text.js';
11
11
  const eachConfig = (source, judge) => payloadConfigsIn(source).flatMap((found) => judge(found.kind, found));
12
12
  // Payload fills the missing operations in during sanitisation, so a partial access block is invisible
13
- // the moment the app boots - and its default for a non-auth collection is public read. Checking that
14
- // the word `access` appears somewhere in the file, which is what this rule used to do, accepted a block
15
- // that declared one operation out of four.
13
+ // the moment the app boots - and its default admits every signed-in user to every operation. Checking
14
+ // that the word `access` appears somewhere in the file, which is what this rule used to do, accepted a
15
+ // block that declared one operation out of four.
16
16
  export const findUndeclaredAccess = (source) => eachConfig(source, (kind, found) => {
17
17
  const declared = depthOneBlockKeys(found.body, 'access');
18
18
  const missing = kind.operations.filter((operation) => !declared.includes(operation));
@@ -23,8 +23,8 @@ export const findUndeclaredAccess = (source) => eachConfig(source, (kind, found)
23
23
  line: found.line,
24
24
  rule: 'require-complete-access',
25
25
  reason: `a ${kind.label} must declare access for ${kind.operations.join(', ')}; ` +
26
- `${missing.join(', ')} ${missing.length === 1 ? 'is' : 'are'} left to the Payload ` +
27
- 'defaults, which allow public read',
26
+ `${missing.join(', ')} ${missing.length === 1 ? 'is' : 'are'} left to Payload's ` +
27
+ 'default, which admits every signed-in user',
28
28
  },
29
29
  ];
30
30
  });
@@ -65,6 +65,32 @@ const unhardenedAuthIn = (found) => {
65
65
  };
66
66
  /** Report an auth collection that leaves the login-attempt cap and lock time to Payload's defaults. */
67
67
  export const findUnhardenedAuth = (source) => eachConfig(source, (kind, found) => kind.label === COLLECTION ? unhardenedAuthIn(found) : []);
68
+ // The cap above, undone from inside. `unlock` is one of the operations Payload fills the access block
69
+ // with during sanitisation, so a collection that decides create, read, update and delete has still said
70
+ // nothing about who may clear a locked account - and the default admits every signed-in user. One
71
+ // ordinary account can therefore lift the lockout on another as fast as the attempts accrue, which
72
+ // leaves the attempt cap and lock time enforced by the rule above protecting nothing. Advisory
73
+ // GHSA-jg8r-5jh2-v2xj is this default, reported against Payload itself.
74
+ const UNLOCK_OPERATION = 'unlock';
75
+ const unlockableAuthIn = (found) => {
76
+ if (depthOneValue(found.body, 'auth') === undefined) {
77
+ return [];
78
+ }
79
+ const declared = depthOneBlockKeys(found.body, 'access');
80
+ return declared.includes(UNLOCK_OPERATION)
81
+ ? []
82
+ : [
83
+ {
84
+ line: found.line,
85
+ rule: 'require-unlock-access',
86
+ reason: `an auth collection must declare access for ${UNLOCK_OPERATION}; Payload fills it with ` +
87
+ 'a default that admits every signed-in user, so one account can clear the lockout on ' +
88
+ 'another and undo the attempt cap',
89
+ },
90
+ ];
91
+ };
92
+ /** Report an auth collection that leaves who may clear a lockout to Payload's default. */
93
+ export const findUnlockableAuth = (source) => eachConfig(source, (kind, found) => kind.label === COLLECTION ? unlockableAuthIn(found) : []);
68
94
  // A draft is unpublished content. With versions.drafts enabled, `?draft=true` serves it to whoever the
69
95
  // read rule admits - so a read that is unconditionally true publishes every draft to anyone.
70
96
  const DRAFTS_ENABLED = /drafts\s*:\s*(?:true|\{)/;
@@ -87,9 +113,14 @@ const blockEnd = (access, open) => {
87
113
  // collection itself were open to anyone.
88
114
  //
89
115
  // Only the inline form is decidable here, and the lint pass forbids that form in a config file, so a
90
- // conforming project writes `read: anyone` and this rule stays silent on it. What covers the conforming
91
- // case is the managed access-boundary sweep, which asks the running application what it grants rather
92
- // than reading the source. This rule reaches a config declared outside the linted directories.
116
+ // conforming project writes `read: anyone` and this rule stays silent on it. This rule therefore
117
+ // reaches only a config declared outside the linted directories.
118
+ //
119
+ // What covers the conforming case is `findUnconstrainedDraftReads` in payload-defaults.ts, which asks
120
+ // the built configuration's own read rule what it answers a stranger and reads the constraint it hands
121
+ // back. The anonymous sweep does NOT cover it: the sweep separates a grant carrying a query constraint
122
+ // from one that does not, and never opens the constraint, so a read filtered by audience and not by
123
+ // status passed it. That gap was open for as long as this comment claimed the sweep closed it.
93
124
  const isDraftExposed = (body) => {
94
125
  const versions = depthOneValue(body, 'versions');
95
126
  if (versions === undefined || !DRAFTS_ENABLED.test(versions)) {
@@ -113,6 +144,32 @@ export const findAnonymousDraftReads = (source) => eachConfig(source, (kind, fou
113
144
  },
114
145
  ]
115
146
  : []);
147
+ // The read rule, bypassed by asking a different question. A version carries the whole document, and
148
+ // `readVersions` is the one access operation Payload never fills in - for a collection or a global - so
149
+ // an undeclared rule is not absent but open: `executeAccess` falls through to "any signed-in user" when
150
+ // it is handed nothing. A read narrowed to an audience by a `Where` filter therefore still hands every
151
+ // stored version of every document to anyone signed in. This is asked wherever versions are kept rather
152
+ // than only where drafts are, because the versions route exists either way.
153
+ const VERSIONS_DISABLED = /^\s*false\s*(?=[,}])/;
154
+ const READ_VERSIONS_OPERATION = 'readVersions';
155
+ const carriesVersions = (body) => {
156
+ const versions = depthOneValue(body, 'versions');
157
+ return versions !== undefined && !VERSIONS_DISABLED.test(versions);
158
+ };
159
+ /** Report a config that keeps versions and leaves who may read them to Payload's fall-through. */
160
+ export const findUndeclaredVersionReads = (source) => eachConfig(source, (kind, found) => carriesVersions(found.body) &&
161
+ !depthOneBlockKeys(found.body, 'access').includes(READ_VERSIONS_OPERATION)
162
+ ? [
163
+ {
164
+ line: found.line,
165
+ rule: 'require-version-read-access',
166
+ reason: `a ${kind.label} that keeps versions must declare access for ` +
167
+ `${READ_VERSIONS_OPERATION}; Payload leaves it undeclared and then admits every ` +
168
+ 'signed-in user, so a scoped read is bypassed by asking for a version of a document ' +
169
+ 'instead of the document',
170
+ },
171
+ ]
172
+ : []);
116
173
  // `mimeTypes` defaults to undefined, so an upload collection takes whatever a client sends until the
117
174
  // project says otherwise. Served from the application's own origin, an uploaded SVG is script that runs
118
175
  // as the site, which is why the restriction is required rather than advised. No size cap is asked for
@@ -139,4 +196,104 @@ const unrestrictedUploadIn = (found) => {
139
196
  };
140
197
  /** Report an upload collection that accepts whatever file type Payload's defaults allow. */
141
198
  export const findUnrestrictedUploads = (source) => eachConfig(source, (kind, found) => kind.label === COLLECTION ? unrestrictedUploadIn(found) : []);
199
+ // An upload collection that admits SVG and has not decided how the file is served.
200
+ //
201
+ // Payload adds `Content-Security-Policy: script-src 'none'` to an SVG file response, and refuses an SVG
202
+ // whose text carries a script - but only on the branch where content detection found nothing and fell
203
+ // back to the extension. An SVG that opens with an XML declaration is detected as XML, retyped as SVG,
204
+ // and skips that check entirely. So a collection that admits SVG must decide the headers itself, through
205
+ // `modifyResponseHeaders`, or through a `handlers` entry, which answers before the headers hook runs and
206
+ // is therefore the same decision. Admission is read the way Payload reads it in `validateMimeType`: an
207
+ // entry loses its first `*` and must be a prefix of the file's type, and an empty list admits everything.
208
+ //
209
+ // A list this reader cannot see - an imported constant, a spread, a call, a template with a
210
+ // substitution - is treated as admitting SVG, because a rule whose silence means "safe" cannot be silent
211
+ // where it cannot read. The repair is cheap either way: write the list inline, or declare the headers,
212
+ // which cost an image nothing.
213
+ const SVG_MIME_TYPE = 'image/svg+xml';
214
+ const RESPONSE_HEADER_KEYS = ['modifyResponseHeaders', 'handlers'];
215
+ const ARRAY_OPEN = '[';
216
+ const EMPTY_LIST = '[]';
217
+ // A quoted string with nothing that could be a substitution inside it; a MIME type carries no quote.
218
+ const STRING_LITERAL = /^(['"`])([^'"`$]*)\1$/;
219
+ // The upload block alone, cut where its own braces close. `depthOneValue` runs to the end of the
220
+ // collection literal, so a depth-one key looked for in that slice would also be found in the NEXT
221
+ // block: `admin: { mimeTypes: ... }` would answer for `upload`.
222
+ const uploadBlockOf = (found) => {
223
+ const value = depthOneValue(found.body, 'upload');
224
+ if (value === undefined) {
225
+ return undefined;
226
+ }
227
+ const open = value.indexOf('{');
228
+ return value.trimStart().startsWith('{') ? value.slice(open, blockEnd(value, open)) : undefined;
229
+ };
230
+ const coversSvg = (entry) => SVG_MIME_TYPE.startsWith(entry.replace('*', ''));
231
+ // The depth-zero elements of an array's inner text. `topLevelSlice` cannot serve here: the scanner
232
+ // jumps a string literal whole, so that slice drops exactly the characters this rule reads.
233
+ const arrayElements = (inner) => {
234
+ const commas = scanDelimited(inner, 0, (found, step) => step.character === ',' && step.depth === 0
235
+ ? { state: [...found, step.index], stop: false }
236
+ : { state: found, stop: false }, []);
237
+ const bounds = [-1, ...commas, inner.length];
238
+ return bounds
239
+ .slice(0, -1)
240
+ .map((start, position) => inner.slice(start + 1, bounds[position + 1] ?? inner.length).trim())
241
+ .filter((element) => element.length > 0);
242
+ };
243
+ const literalOf = (element) => STRING_LITERAL.exec(element)?.[2];
244
+ // A provable admission outranks an unreadable neighbour, so `[...IMAGE_TYPES, 'image/svg+xml']` is
245
+ // reported for the entry that can be named rather than for the spread that cannot.
246
+ const svgAdmissionOf = (raw) => {
247
+ if (!raw.trimStart().startsWith(ARRAY_OPEN)) {
248
+ return { verdict: 'unreadable' };
249
+ }
250
+ const inner = balancedArguments(raw, raw.indexOf(ARRAY_OPEN));
251
+ if (inner === undefined) {
252
+ return { verdict: 'unreadable' };
253
+ }
254
+ const elements = arrayElements(inner);
255
+ if (elements.length === 0) {
256
+ return { verdict: 'admitted', entry: EMPTY_LIST };
257
+ }
258
+ const literals = elements.map((element) => literalOf(element));
259
+ const admitting = literals.find((literal) => literal !== undefined && coversSvg(literal));
260
+ if (admitting !== undefined) {
261
+ return { verdict: 'admitted', entry: admitting };
262
+ }
263
+ return literals.every((literal) => literal !== undefined)
264
+ ? { verdict: 'excluded' }
265
+ : { verdict: 'unreadable' };
266
+ };
267
+ const SVG_REPAIR = 'set Content-Disposition: attachment and Content-Security-Policy: sandbox in modifyResponseHeaders';
268
+ const SVG_HAZARD = 'an SVG served from this origin is script that runs as the site';
269
+ const svgReason = (admission) => {
270
+ const preamble = `an upload collection admitting SVG must declare ${RESPONSE_HEADER_KEYS.join(' or ')}; `;
271
+ if (admission.verdict === 'unreadable') {
272
+ return (`${preamble}mimeTypes here is not an inline list of string literals, so whether it admits ` +
273
+ `${SVG_MIME_TYPE} cannot be read from this file, and ${SVG_HAZARD}; write the list inline, or ${SVG_REPAIR}`);
274
+ }
275
+ const admits = admission.entry === EMPTY_LIST
276
+ ? `the empty mimeTypes list admits every type, ${SVG_MIME_TYPE} included`
277
+ : `the mimeTypes entry '${admission.entry}' admits ${SVG_MIME_TYPE}`;
278
+ return (`${preamble}${admits}, ${SVG_HAZARD}, and Payload's own scripted-SVG check skips a file that ` +
279
+ `opens with an XML declaration; ${SVG_REPAIR}, or drop the entry`);
280
+ };
281
+ const undecidedSvgHeadersIn = (found) => {
282
+ const block = uploadBlockOf(found);
283
+ if (block === undefined) {
284
+ return [];
285
+ }
286
+ const keys = topLevelKeys(block, 0);
287
+ // An absent list is the restriction rule's finding, so one collection never carries both.
288
+ if (!keys.includes(UPLOAD_RESTRICTION) ||
289
+ RESPONSE_HEADER_KEYS.some((key) => keys.includes(key))) {
290
+ return [];
291
+ }
292
+ const admission = svgAdmissionOf(depthOneValue(block, UPLOAD_RESTRICTION) ?? '');
293
+ return admission.verdict === 'excluded'
294
+ ? []
295
+ : [{ line: found.line, rule: 'require-svg-response-headers', reason: svgReason(admission) }];
296
+ };
297
+ /** Report an upload collection that admits SVG, or may, without deciding the headers it is served with. */
298
+ export const findUndecidedSvgHeaders = (source) => eachConfig(source, (kind, found) => kind.label === COLLECTION ? undecidedSvgHeadersIn(found) : []);
142
299
  //# sourceMappingURL=payload-access.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"payload-access.js","sourceRoot":"","sources":["../src/payload-access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload-access.js","sourceRoot":"","sources":["../src/payload-access.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@ export interface PayloadConfigKind {
7
7
  /** One Payload configuration literal, with the source position its body begins at. */
8
8
  export interface FoundPayloadConfig {
9
9
  readonly kind: PayloadConfigKind;
10
- readonly marker: number;
11
10
  readonly body: string;
12
11
  readonly bodyStart: number;
13
12
  readonly line: number;
@@ -1 +1 @@
1
- {"version":3,"file":"payload-configs.d.ts","sourceRoot":"","sources":["../src/payload-configs.ts"],"names":[],"mappings":"AAgBA,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC;AAED,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AA2CD,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,SAAS,kBAAkB,EAI1E,CAAA;AAwCH,2EAA2E;AAC3E,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,EACd,QAAQ,kBAAkB,KACzB,SAAS,iBAAiB,EAkB5B,CAAA"}
1
+ {"version":3,"file":"payload-configs.d.ts","sourceRoot":"","sources":["../src/payload-configs.ts"],"names":[],"mappings":"AAaA,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAA;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;CACvC;AAED,sFAAsF;AACtF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AA0ED,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,KAAG,SAAS,kBAAkB,EAI1E,CAAA;AAwCH,2EAA2E;AAC3E,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,EACd,QAAQ,kBAAkB,KACzB,SAAS,iBAAiB,EAkB5B,CAAA"}
@@ -1,9 +1,5 @@
1
- // The shared catalogue of Payload configuration literals.
2
- //
3
- // Access policy and field policy ask different questions of the same object: whether a collection or
4
- // global has declared its operation boundary, and whether a privilege-bearing field has declared its
5
- // own. The declaration forms must therefore have one owner. A second regex beside the access rule was
6
- // how generic annotations and `satisfies` configurations previously escaped every Payload check.
1
+ // Share the vocabulary of Payload configuration literals across source-policy checks.
2
+ import { COLLECTION_OPERATIONS, GLOBAL_OPERATIONS } from './payload-defaults.js';
7
3
  import { configBody, depthOneValue } from './payload-source.js';
8
4
  import { balancedArguments, lineOf, NOT_FOUND, scanDelimited, } from './source-text.js';
9
5
  const declarationPattern = (typeName) => new RegExp(String.raw `(:|satisfies)\s*${typeName}(?=[<=,)\s]|$)`, 'g');
@@ -12,27 +8,50 @@ const CONFIG_KINDS = [
12
8
  kind: 'collection',
13
9
  label: 'CollectionConfig',
14
10
  declaration: declarationPattern('CollectionConfig'),
15
- operations: ['create', 'read', 'update', 'delete'],
11
+ operations: COLLECTION_OPERATIONS,
16
12
  },
17
13
  {
18
14
  kind: 'global',
19
15
  label: 'GlobalConfig',
20
16
  declaration: declarationPattern('GlobalConfig'),
21
- operations: ['read', 'update'],
17
+ operations: GLOBAL_OPERATIONS,
22
18
  },
23
19
  ];
24
20
  const SATISFIES = 'satisfies';
25
- const bodyStartOf = (source, body, marker, isTrailing) => isTrailing ? source.lastIndexOf(body, marker) : source.indexOf(body, marker);
26
- const configsOfKind = (source, kind) => [...source.matchAll(kind.declaration)].flatMap((match) => {
27
- const isTrailing = match[1] === SATISFIES;
28
- const body = configBody(source, match.index, isTrailing);
21
+ // What may stand between a leading type reference and the literal it types. Every form a config is
22
+ // really written in puts one of four things there: `= {`, a generic argument and then `= {`, `=> ({`,
23
+ // or the opening brace of a function body. Taking "the next brace anywhere after the type name"
24
+ // instead crossed statement boundaries and read an unrelated literal further down the file as the
25
+ // configuration. A call argument (`= jobsAccess({ ... })`), a parameter annotation
26
+ // (`(config: CollectionConfig): void => { ... }`), an interface member and a type-alias member each
27
+ // put an identifier, a `)` or a `}` in this gap, and each was judged as though it were a collection -
28
+ // so the very code a project writes to GIVE a generated collection its access block was reported as a
29
+ // collection with none.
30
+ const GOVERNED_BODY = /^\s*(?:<[^;{}]*>\s*)?(?:=>?\s*(?:\(\s*)?)?\{/;
31
+ /** The literal a leading annotation governs, or nothing when the annotation types something else. */
32
+ const governedLiteral = (source, afterType) => {
33
+ const gap = GOVERNED_BODY.exec(source.slice(afterType));
34
+ if (gap === null) {
35
+ return undefined;
36
+ }
37
+ const bodyStart = afterType + gap[0].length - 1;
38
+ const inner = balancedArguments(source, bodyStart);
39
+ return inner === undefined ? undefined : { body: `{${inner}}`, bodyStart };
40
+ };
41
+ /** The literal a trailing `satisfies` types: the one that closed just before it. */
42
+ const precedingLiteral = (source, marker) => {
43
+ const body = configBody(source, marker, true);
29
44
  if (body === undefined) {
30
- return [];
45
+ return undefined;
31
46
  }
32
- const bodyStart = bodyStartOf(source, body, match.index, isTrailing);
33
- return bodyStart === NOT_FOUND
34
- ? []
35
- : [{ kind, marker: match.index, body, bodyStart, line: lineOf(source, match.index) }];
47
+ const bodyStart = source.lastIndexOf(body, marker);
48
+ return bodyStart === NOT_FOUND ? undefined : { body, bodyStart };
49
+ };
50
+ const configsOfKind = (source, kind) => [...source.matchAll(kind.declaration)].flatMap((match) => {
51
+ const literal = match[1] === SATISFIES
52
+ ? precedingLiteral(source, match.index)
53
+ : governedLiteral(source, match.index + match[0].length);
54
+ return literal === undefined ? [] : [{ kind, ...literal, line: lineOf(source, match.index) }];
36
55
  });
37
56
  /** Every collection and global configuration literal the source declares. */
38
57
  export const payloadConfigsIn = (source) => CONFIG_KINDS.flatMap((kind) => configsOfKind(source, kind));
@@ -1 +1 @@
1
- {"version":3,"file":"payload-configs.js","sourceRoot":"","sources":["../src/payload-configs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"payload-configs.js","sourceRoot":"","sources":["../src/payload-configs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ /** The operations a collection must decide; the static rule holds a written config to the same list. */
2
+ export declare const COLLECTION_OPERATIONS: readonly string[];
3
+ /** The operations a global must decide. */
4
+ export declare const GLOBAL_OPERATIONS: readonly string[];
5
+ /** The operation an auth collection decides on top of the four: who may clear a locked account. */
6
+ export declare const UNLOCK_OPERATION: string;
7
+ /** The operation a versioned collection or global decides: who may read a stored version. */
8
+ export declare const READ_VERSIONS_OPERATION: string;
9
+ /** What an entity of the built configuration is, as far as the operations it owes depend on it. */
10
+ export interface PayloadSubjectTraits {
11
+ readonly kind: PayloadSubjectKind;
12
+ readonly hasAuth: boolean;
13
+ readonly hasVersions: boolean;
14
+ }
15
+ /**
16
+ * The access operations one entity owes a decision on. Two of them are conditional, and neither may be
17
+ * added to the lists above: Payload writes `unlock` onto EVERY collection during sanitisation, auth or
18
+ * not, so demanding it unconditionally would report the whole configuration, and `readVersions` means
19
+ * nothing on an entity that keeps no versions.
20
+ * @param traits what the entity is: its kind, and whether it authenticates or keeps versions.
21
+ * @returns the operations that entity must decide, in the order they are reported.
22
+ */
23
+ export declare const accessOperationsFor: (traits: PayloadSubjectTraits) => readonly string[];
24
+ /**
25
+ * The prefix the probe prints its report behind. A plugin may log on import, and a line the parser can
26
+ * name is what separates the report from that chatter.
27
+ */
28
+ export declare const INHERITED_ACCESS_REPORT_MARKER: string;
29
+ /** One entity of the built configuration and the operations it left to Payload's default. */
30
+ export interface InheritedAccessEntry {
31
+ readonly slug: string;
32
+ readonly inherited: readonly string[];
33
+ }
34
+ /**
35
+ * What a read rule answered an anonymous caller, as the probe observed it. `filtered` carries the
36
+ * query constraint the rule returned, which is the half `/api/access` reports and the anonymous sweep
37
+ * never opens; `undecidable` is a rule that threw when asked, which is reported rather than assumed
38
+ * safe.
39
+ */
40
+ export type AnonymousRead = {
41
+ readonly kind: 'denied';
42
+ } | {
43
+ readonly kind: 'filtered';
44
+ readonly where: unknown;
45
+ } | {
46
+ readonly kind: 'open';
47
+ } | {
48
+ readonly kind: 'undecidable';
49
+ readonly reason: string;
50
+ };
51
+ /** One entity that keeps drafts, and what its read rule answers a caller with no credentials. */
52
+ export interface DraftReadEntry {
53
+ readonly kind: PayloadSubjectKind;
54
+ readonly slug: string;
55
+ readonly anonymousRead: AnonymousRead;
56
+ }
57
+ /** What the probe reports: every collection and every global, decided ones included. */
58
+ export interface InheritedAccessReport {
59
+ readonly collections: readonly InheritedAccessEntry[];
60
+ readonly draftReads: readonly DraftReadEntry[];
61
+ readonly globals: readonly InheritedAccessEntry[];
62
+ }
63
+ /** The two kinds of entity a Payload configuration holds. */
64
+ export type PayloadSubjectKind = 'collection' | 'global';
65
+ /** One entity Payload builds for its own bookkeeping, which keeps the default access by design. */
66
+ export interface ExemptPayloadSubject {
67
+ readonly kind: PayloadSubjectKind;
68
+ readonly slug: string;
69
+ readonly reason: string;
70
+ }
71
+ /** The entities exempt from the rule, each with the reason. Nothing a project declares extends this. */
72
+ export declare const EXEMPT_PAYLOAD_SUBJECTS: readonly ExemptPayloadSubject[];
73
+ /**
74
+ * The saved-filter collection Payload builds behind `enableQueryPresets`.
75
+ *
76
+ * It is named here because the probe has to read its access from somewhere other than the collection.
77
+ * `getAccess` wraps EVERY operation of this one collection in a closure that calls the project's rule
78
+ * where there is one and Payload's own default where there is not, so the built collection carries four
79
+ * functions that match neither the default by reference nor its source text. Read there, a project that
80
+ * decided nothing is indistinguishable from one that decided everything - and undecided means an
81
+ * unconstrained `create` for any signed-in user, and a preset shared as `everyone` readable by every
82
+ * role that can log in, the ones a project keeps outside its editorial staff included.
83
+ */
84
+ export declare const QUERY_PRESETS_SLUG: string;
85
+ /**
86
+ * Every entity of the built configuration that still carries Payload's default access on a judged
87
+ * operation, in configuration order, each naming where the project decides it.
88
+ * @param report what the probe read from the built configuration.
89
+ * @returns one finding per entity, or nothing when every entity decides its access.
90
+ */
91
+ export declare const findInheritedAccess: (report: InheritedAccessReport) => readonly string[];
92
+ /**
93
+ * Whether a read filter admits published documents alone.
94
+ *
95
+ * A clause under `and` is enough on its own, because every conjunct holds. A clause under `or` counts
96
+ * only when EVERY branch carries one, because a single branch without it is a way in - which is the
97
+ * shape of the defect this rule exists for.
98
+ * @param where the query constraint the read rule returned.
99
+ * @returns whether every document the filter admits is a published one.
100
+ */
101
+ export declare const requiresPublishedStatus: (where: unknown) => boolean;
102
+ /**
103
+ * Every entity that keeps drafts and lets a stranger read something that was never approved, in
104
+ * configuration order.
105
+ * @param report what the probe read from the built configuration.
106
+ * @returns one finding per entity, or nothing when no drafts read admits an unapproved document.
107
+ */
108
+ export declare const findUnconstrainedDraftReads: (report: InheritedAccessReport) => readonly string[];
109
+ /**
110
+ * Read the probe's report out of everything the probe wrote to standard output.
111
+ *
112
+ * The LAST marker line is the report, so a plugin that logs during import cannot hide it, and a report
113
+ * that fails to parse or has the wrong shape is undefined rather than empty: a probe that printed a
114
+ * stack trace must fail the gate, never pass it as "no findings".
115
+ * @param text the probe's standard output.
116
+ * @returns the report, or undefined when no well-formed report was printed.
117
+ */
118
+ export declare const parseInheritedAccessReport: (text: string) => InheritedAccessReport | undefined;
119
+ /** Where a Payload member keeps its configuration when its tsconfig says nothing else. */
120
+ export declare const DEFAULT_PAYLOAD_CONFIG_PATH: string;
121
+ /**
122
+ * The path of the Payload configuration a member's tsconfig aliases as `@payload-config`, which is the
123
+ * alias `ploaness init` writes and Payload's own CLI resolves through.
124
+ * @param tsconfig the parsed tsconfig, or anything when it could not be read.
125
+ * @returns the configured path relative to the member root, or the default path.
126
+ */
127
+ export declare const payloadConfigPathOf: (tsconfig: unknown) => string;
128
+ //# sourceMappingURL=payload-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payload-defaults.d.ts","sourceRoot":"","sources":["../src/payload-defaults.ts"],"names":[],"mappings":"AAgBA,wGAAwG;AACxG,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA2C,CAAA;AAE9F,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,SAAS,MAAM,EAAuB,CAAA;AAEtE,mGAAmG;AACnG,eAAO,MAAM,gBAAgB,EAAE,MAAiB,CAAA;AAEhD,6FAA6F;AAC7F,eAAO,MAAM,uBAAuB,EAAE,MAAuB,CAAA;AAE7D,mGAAmG;AACnG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;CAC9B;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,oBAAoB,KAAG,SAAS,MAAM,EAIjF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,8BAA8B,EAAE,MAAqC,CAAA;AAElF,6FAA6F;AAC7F,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CACtC;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAE7D,iGAAiG;AACjG,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;CACtC;AAED,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,SAAS,oBAAoB,EAAE,CAAA;IACrD,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAA;CAClD;AAED,6DAA6D;AAC7D,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,QAAQ,CAAA;AAExD,mGAAmG;AACnG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB;AAED,wGAAwG;AACxG,eAAO,MAAM,uBAAuB,EAAE,SAAS,oBAAoB,EA4BlE,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAgC,CAAA;AAyCjE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,qBAAqB,KAAG,SAAS,MAAM,EAGlF,CAAA;AA2BD;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,OAAO,KAAG,OAoBxD,CAAA;AA8BD;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GAAI,QAAQ,qBAAqB,KAAG,SAAS,MAAM,EAIvF,CAAA;AA4EJ;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,GAAI,MAAM,MAAM,KAAG,qBAAqB,GAAG,SAoBjF,CAAA;AAED,0FAA0F;AAC1F,eAAO,MAAM,2BAA2B,EAAE,MAAgC,CAAA;AAI1E;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,OAAO,KAAG,MAYvD,CAAA"}