@ploaness/governance 1.0.0 → 1.1.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 (92) hide show
  1. package/dist/a11y-hit-target.d.ts +35 -0
  2. package/dist/a11y-hit-target.d.ts.map +1 -0
  3. package/dist/a11y-hit-target.js +102 -0
  4. package/dist/a11y-hit-target.js.map +1 -0
  5. package/dist/a11y-incomplete.d.ts +18 -0
  6. package/dist/a11y-incomplete.d.ts.map +1 -0
  7. package/dist/a11y-incomplete.js +82 -0
  8. package/dist/a11y-incomplete.js.map +1 -0
  9. package/dist/access-boundary.d.ts +19 -5
  10. package/dist/access-boundary.d.ts.map +1 -1
  11. package/dist/access-boundary.js +58 -4
  12. package/dist/access-boundary.js.map +1 -1
  13. package/dist/admin-view-coverage.d.ts +25 -0
  14. package/dist/admin-view-coverage.d.ts.map +1 -0
  15. package/dist/admin-view-coverage.js +90 -0
  16. package/dist/admin-view-coverage.js.map +1 -0
  17. package/dist/axe-coverage.d.ts +41 -0
  18. package/dist/axe-coverage.d.ts.map +1 -0
  19. package/dist/axe-coverage.js +95 -0
  20. package/dist/axe-coverage.js.map +1 -0
  21. package/dist/banned-typography.d.ts.map +1 -1
  22. package/dist/banned-typography.js +26 -0
  23. package/dist/banned-typography.js.map +1 -1
  24. package/dist/build-diagnosis.d.ts +10 -0
  25. package/dist/build-diagnosis.d.ts.map +1 -0
  26. package/dist/build-diagnosis.js +38 -0
  27. package/dist/build-diagnosis.js.map +1 -0
  28. package/dist/document-references.d.ts.map +1 -1
  29. package/dist/document-references.js +7 -1
  30. package/dist/document-references.js.map +1 -1
  31. package/dist/environment-coherence.d.ts +87 -0
  32. package/dist/environment-coherence.d.ts.map +1 -0
  33. package/dist/environment-coherence.js +150 -0
  34. package/dist/environment-coherence.js.map +1 -0
  35. package/dist/generated-drift.d.ts +18 -0
  36. package/dist/generated-drift.d.ts.map +1 -0
  37. package/dist/generated-drift.js +35 -0
  38. package/dist/generated-drift.js.map +1 -0
  39. package/dist/index.d.ts +10 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +10 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/payload-access.d.ts.map +1 -1
  44. package/dist/payload-access.js +23 -49
  45. package/dist/payload-access.js.map +1 -1
  46. package/dist/payload-configs.d.ts +24 -0
  47. package/dist/payload-configs.d.ts.map +1 -0
  48. package/dist/payload-configs.js +77 -0
  49. package/dist/payload-configs.js.map +1 -0
  50. package/dist/payload-field-access.d.ts +4 -0
  51. package/dist/payload-field-access.d.ts.map +1 -0
  52. package/dist/payload-field-access.js +51 -0
  53. package/dist/payload-field-access.js.map +1 -0
  54. package/dist/payload-policy.d.ts.map +1 -1
  55. package/dist/payload-policy.js +111 -13
  56. package/dist/payload-policy.js.map +1 -1
  57. package/dist/payload-source.js +2 -2
  58. package/dist/payload-source.js.map +1 -1
  59. package/dist/relationship-cleanup.d.ts +18 -0
  60. package/dist/relationship-cleanup.d.ts.map +1 -0
  61. package/dist/relationship-cleanup.js +96 -0
  62. package/dist/relationship-cleanup.js.map +1 -0
  63. package/dist/route-coverage.d.ts +27 -0
  64. package/dist/route-coverage.d.ts.map +1 -0
  65. package/dist/route-coverage.js +57 -0
  66. package/dist/route-coverage.js.map +1 -0
  67. package/dist/route-map.d.ts +65 -0
  68. package/dist/route-map.d.ts.map +1 -0
  69. package/dist/route-map.js +183 -0
  70. package/dist/route-map.js.map +1 -0
  71. package/dist/secret-policy.js +4 -4
  72. package/dist/secret-policy.js.map +1 -1
  73. package/dist/settings.d.ts +10 -0
  74. package/dist/settings.d.ts.map +1 -1
  75. package/dist/settings.js +5 -1
  76. package/dist/settings.js.map +1 -1
  77. package/dist/source-security.d.ts +4 -0
  78. package/dist/source-security.d.ts.map +1 -0
  79. package/dist/source-security.js +56 -0
  80. package/dist/source-security.js.map +1 -0
  81. package/dist/source-text.d.ts +14 -0
  82. package/dist/source-text.d.ts.map +1 -1
  83. package/dist/source-text.js +39 -0
  84. package/dist/source-text.js.map +1 -1
  85. package/dist/version-policy.d.ts.map +1 -1
  86. package/dist/version-policy.js +31 -0
  87. package/dist/version-policy.js.map +1 -1
  88. package/package.json +1 -1
  89. package/dist/url-safety.d.ts +0 -12
  90. package/dist/url-safety.d.ts.map +0 -1
  91. package/dist/url-safety.js +0 -58
  92. package/dist/url-safety.js.map +0 -1
@@ -0,0 +1,183 @@
1
+ // Which files of a Next.js application declare a page, and what address each one answers at.
2
+ //
3
+ // The accessibility sweep discovers routes by following links from the home page. To say what it
4
+ // MISSED, something has to say what exists, and the only statement of that a project always carries is
5
+ // its own file tree: `app/.../page.tsx` is the one declaration Next.js reads.
6
+ //
7
+ // This is string work over relative paths that were already listed, which is why it is here rather
8
+ // than beside the walker that lists them. The mapping is the error-prone half - route groups, parallel
9
+ // slots, intercepting routes, three kinds of dynamic segment - and a rule kept out of this package is
10
+ // a rule kept out of the coverage measurement.
11
+ //
12
+ // What it deliberately does NOT do is read `next.config`. `basePath`, `trailingSlash`, `rewrites`,
13
+ // `redirects` and a custom `pageExtensions` all change the address a file answers at, and the config
14
+ // cannot be evaluated without importing the application. A project that uses one of those tells the
15
+ // sweep so through `accessibilitySkipRoutes`; the limitation is stated in the guide rather than
16
+ // guessed at here.
17
+ // Next.js reads a page from any of these; `pageExtensions` can add more, which is one of the reasons
18
+ // the module comment above declines to guess at a configured project.
19
+ const PAGE_FILES = new Set([
20
+ 'page.tsx',
21
+ 'page.ts',
22
+ 'page.jsx',
23
+ 'page.js',
24
+ 'page.mdx',
25
+ ]);
26
+ // A root layout is required of a Next.js application and of nothing else, so it is what tells an app
27
+ // directory apart from a directory that happens to be called `app`.
28
+ const ROOT_LAYOUTS = new Set([
29
+ 'layout.tsx',
30
+ 'layout.ts',
31
+ 'layout.jsx',
32
+ 'layout.js',
33
+ ]);
34
+ // `src/app` first, because that is where a Payload application puts it and where a stray top-level
35
+ // `app/` is least likely to be mistaken for one.
36
+ const APP_ROOTS = ['src/app', 'app'];
37
+ const ROOT_ROUTE = '/';
38
+ const SEGMENT_SEPARATOR = '/';
39
+ // Whether a path is the ROOT layout of a candidate app directory. Next.js requires one, and allows it
40
+ // to sit inside route groups rather than at the top: a Payload application has no `src/app/layout.tsx`
41
+ // at all, because `(frontend)` and `(payload)` each carry their own. Requiring the top-level file
42
+ // found no app directory in the commonest project this harness governs, and the check then passed by
43
+ // doing nothing - which is the one way a rule like this fails that nobody notices.
44
+ const isRootLayout = (path, root) => {
45
+ const prefix = `${root}${SEGMENT_SEPARATOR}`;
46
+ if (!path.startsWith(prefix)) {
47
+ return false;
48
+ }
49
+ const segments = path.slice(prefix.length).split(SEGMENT_SEPARATOR);
50
+ const addressed = segments.filter((segment) => !isRouteGroup(segment));
51
+ return addressed.length === 1 && ROOT_LAYOUTS.has(addressed[0] ?? '');
52
+ };
53
+ /**
54
+ * Which directory holds the application's routes.
55
+ *
56
+ * Chosen from the conventional two rather than searched for, and confirmed by the root layout Next.js
57
+ * requires, so a library with a `src/app` module of its own is not mistaken for an application.
58
+ * @param paths every file of the member, relative to its root, separated by forward slashes.
59
+ * @returns the app directory, or nothing when the member declares no routes.
60
+ */
61
+ export const appRootOf = (paths) => APP_ROOTS.find((root) => paths.some((path) => isRootLayout(path, root)));
62
+ // A segment wholly inside parentheses is a route group: it organises the tree and contributes nothing
63
+ // to the address. `(.)photo` is not one - it is an intercepting route, and it opens with a parenthesis
64
+ // without closing on one, which is exactly what tells the two apart.
65
+ const isRouteGroup = (segment) => segment.startsWith('(') && segment.endsWith(')');
66
+ // `(.)`, `(..)`, `(...)` and `(..)(..)`, each followed by the segment being intercepted. A file behind
67
+ // one of these declares no independently reachable address: on a hard navigation the INTERCEPTED route
68
+ // renders instead, and that route has a declaration of its own. So the file is skipped rather than
69
+ // mapped to an address no server serves.
70
+ const isIntercepting = (segment) => segment.startsWith('(') && !segment.endsWith(')');
71
+ // A slot of a parallel route. Its own `page` file is the slot's default content, rendered by the
72
+ // parent's layout rather than at an address of its own, so the segment is dropped and the address that
73
+ // results is the parent's - which the parent already declares, and which the dedup below collapses.
74
+ const isParallelSlot = (segment) => segment.startsWith('@');
75
+ // Next.js serves nothing from a folder whose name opens with an underscore.
76
+ const isPrivate = (segment) => segment.startsWith('_');
77
+ const isDynamicSegment = (segment) => segment.startsWith('[') && segment.endsWith(']');
78
+ /**
79
+ * Strip a trailing slash, so an address written with one and an address written without are one.
80
+ *
81
+ * The crawl records whatever `URL.pathname` gave it and a link may be written either way, while a file
82
+ * tree never produces a trailing slash at all. Comparing the two without this reports every page of a
83
+ * project that sets `trailingSlash`.
84
+ * @param route the address to normalise.
85
+ * @returns the address without its trailing slash, and the root route unchanged.
86
+ */
87
+ export const normalisedRoute = (route) => route.length > 1 && route.endsWith(SEGMENT_SEPARATOR) ? route.slice(0, -1) : route;
88
+ /**
89
+ * The address one file answers at, if it declares a page at all.
90
+ * @param file the file, relative to the app directory.
91
+ * @returns the declared route, or nothing when the file declares no independently reachable address.
92
+ */
93
+ export const declaredRouteOf = (file) => {
94
+ const parts = file.split(SEGMENT_SEPARATOR);
95
+ if (!PAGE_FILES.has(parts.at(-1) ?? '')) {
96
+ return undefined;
97
+ }
98
+ const directories = parts.slice(0, -1);
99
+ if (directories.some((segment) => isPrivate(segment) || isIntercepting(segment))) {
100
+ return undefined;
101
+ }
102
+ const addressed = directories.filter((segment) => !(isRouteGroup(segment) || isParallelSlot(segment)));
103
+ return {
104
+ file,
105
+ route: addressed.length === 0
106
+ ? ROOT_ROUTE
107
+ : `${SEGMENT_SEPARATOR}${addressed.join(SEGMENT_SEPARATOR)}`,
108
+ isDynamic: addressed.some((segment) => isDynamicSegment(segment)),
109
+ };
110
+ };
111
+ /**
112
+ * Every address a member's file tree declares.
113
+ *
114
+ * Deduplicated by address, because a parallel route's slot and the page beside it reduce to the same
115
+ * one and reporting it twice would ask a project to answer for the same page under two file names.
116
+ * @param paths every file of the member, relative to its root, separated by forward slashes.
117
+ * @param appRoot the app directory, as `appRootOf` chose it.
118
+ * @returns one entry per declared address, in the order the paths were given.
119
+ */
120
+ export const declaredRoutesOf = (paths, appRoot) => {
121
+ const prefix = `${appRoot}${SEGMENT_SEPARATOR}`;
122
+ const declared = paths.flatMap((file) => {
123
+ if (!file.startsWith(prefix)) {
124
+ return [];
125
+ }
126
+ const found = declaredRouteOf(file.slice(prefix.length));
127
+ return found === undefined ? [] : [{ ...found, file }];
128
+ });
129
+ return declared.filter((route, index) => declared.findIndex((other) => other.route === route.route) === index);
130
+ };
131
+ /**
132
+ * The part of an address before its first dynamic segment.
133
+ *
134
+ * What a specification can be searched for when the address itself cannot be: a spec never contains
135
+ * `/posts/[slug]`, it contains `/posts/` and then a value.
136
+ * @param route the declared address.
137
+ * @returns the leading static part, which is the root route when the first segment is dynamic.
138
+ */
139
+ export const staticPrefixOf = (route) => {
140
+ const segments = route.split(SEGMENT_SEPARATOR).slice(1);
141
+ const upTo = segments.findIndex((segment) => isDynamicSegment(segment));
142
+ const kept = upTo === -1 ? segments : segments.slice(0, upTo);
143
+ return kept.length === 0 ? ROOT_ROUTE : `${SEGMENT_SEPARATOR}${kept.join(SEGMENT_SEPARATOR)}`;
144
+ };
145
+ // An address as the segments it is made of, with the leading slash and any trailing one gone. The root
146
+ // route is no segments at all, which is what lets an optional catch-all match it.
147
+ const segmentsOf = (route) => normalisedRoute(route)
148
+ .split(SEGMENT_SEPARATOR)
149
+ .filter((segment) => segment !== '');
150
+ const isCatchAll = (segment) => segment.startsWith('[...') && segment.endsWith(']');
151
+ const isOptionalCatchAll = (segment) => segment.startsWith('[[...') && segment.endsWith(']]');
152
+ // Segment by segment, because a catch-all is the only one whose width is not one and Next.js allows it
153
+ // only in the last position. Written as a recursion rather than a regular expression: the address a
154
+ // project declares is attacker-adjacent text in no sense, but a pattern built by concatenation is one
155
+ // nobody can read afterwards, and the whole point of this module is that its edge cases are legible.
156
+ const matchesSegments = (pattern, actual) => {
157
+ const [head, ...rest] = pattern;
158
+ if (head === undefined) {
159
+ return actual.length === 0;
160
+ }
161
+ if (isOptionalCatchAll(head)) {
162
+ return true;
163
+ }
164
+ if (isCatchAll(head)) {
165
+ return actual.length > 0;
166
+ }
167
+ if (isDynamicSegment(head)) {
168
+ return actual.length > 0 && matchesSegments(rest, actual.slice(1));
169
+ }
170
+ return actual[0] === head && matchesSegments(rest, actual.slice(1));
171
+ };
172
+ /**
173
+ * Whether one visited address is a page the declared route produces.
174
+ *
175
+ * A static route matches itself. A dynamic one matches any address its segments admit, which is what
176
+ * lets the crawl answer for it: if the sweep scanned `/posts/hello`, the file behind `/posts/[slug]`
177
+ * has been scanned, whatever else it can also serve.
178
+ * @param route the declared address, dynamic segments in their file-tree spelling.
179
+ * @param visited an address the crawl reached.
180
+ * @returns true when scanning that address scanned this route.
181
+ */
182
+ export const matchesRoute = (route, visited) => matchesSegments(segmentsOf(route), segmentsOf(visited));
183
+ //# sourceMappingURL=route-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route-map.js","sourceRoot":"","sources":["../src/route-map.ts"],"names":[],"mappings":"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"}
@@ -24,15 +24,15 @@ const NAMED_ESCAPES = new Map([
24
24
  ['\r', String.raw `\r`],
25
25
  ['\t', String.raw `\t`],
26
26
  ]);
27
- // `Number(...)` rather than a fallback: `codePointAt` is typed as possibly undefined, an empty string
28
- // yields NaN, and `NaN < FIRST_PRINTABLE` is false - so the character passes through as itself without
29
- // a branch no input can reach.
27
+ // `?? Number.NaN` rather than an `undefined` branch: `codePointAt` is typed as possibly undefined, but
28
+ // the caller spreads a string into code points so no character here is empty. NaN keeps the comparison
29
+ // below false, so the character passes through as itself without a branch no input can reach.
30
30
  const escapeCharacter = (character) => {
31
31
  const named = NAMED_ESCAPES.get(character);
32
32
  if (named !== undefined) {
33
33
  return named;
34
34
  }
35
- const codePoint = Number(character.codePointAt(0));
35
+ const codePoint = character.codePointAt(0) ?? Number.NaN;
36
36
  return codePoint < FIRST_PRINTABLE ? String.raw `\u${asHex(codePoint)}` : character;
37
37
  };
38
38
  // A basic TOML string, which is the only string form that escapes anything. Both fields go through it.
@@ -1 +1 @@
1
- {"version":3,"file":"secret-policy.js","sourceRoot":"","sources":["../src/secret-policy.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,EAAE;AACF,qGAAqG;AACrG,wGAAwG;AACxG,yGAAyG;AACzG,oGAAoG;AACpG,EAAE;AACF,qGAAqG;AACrG,mGAAmG;AACnG,oGAAoG;AACpG,iFAAiF;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AASlD,mGAAmG;AACnG,uGAAuG;AACvG,wFAAwF;AACxF,MAAM,eAAe,GAAW,IAAI,CAAA;AACpC,MAAM,SAAS,GAAW,EAAE,CAAA;AAC5B,MAAM,qBAAqB,GAAW,CAAC,CAAA;AAEvC,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAU,EAAE,CAC1C,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;AAEpE,MAAM,aAAa,GAAgC,IAAI,GAAG,CAAC;IACzD,CAAC,IAAI,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC;IACrB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC;IACtB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC;IACtB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC;CACvB,CAAC,CAAA;AAEF,sGAAsG;AACtG,uGAAuG;AACvG,+BAA+B;AAC/B,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAU,EAAE;IACpD,MAAM,KAAK,GAAuB,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,SAAS,GAAW,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,OAAO,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA,KAAK,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACpF,CAAC,CAAA;AAED,uGAAuG;AACvG,EAAE;AACF,oGAAoG;AACpG,mGAAmG;AACnG,kGAAkG;AAClG,mGAAmG;AACnG,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE;AAC9C,iGAAiG;AACjG,sFAAsF;AACtF,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAU,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAEpF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAsC,EAAU,EAAE;IACrF,MAAM,MAAM,GAAW;QACrB,mGAAmG;QACnG,2EAA2E;QAC3E,UAAU;QACV,mBAAmB;QACnB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,MAAM,GAAsB,UAAU,CAAC,GAAG,CAAC,CAAC,SAA0B,EAAU,EAAE,CACtF;QACE,gBAAgB;QAChB,kBAAkB,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG;QACpD,cAAc,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK;QAChE,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;IACD,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC,CAAA"}
1
+ {"version":3,"file":"secret-policy.js","sourceRoot":"","sources":["../src/secret-policy.ts"],"names":[],"mappings":"AAAA,wBAAwB;AACxB,EAAE;AACF,qGAAqG;AACrG,wGAAwG;AACxG,yGAAyG;AACzG,oGAAoG;AACpG,EAAE;AACF,qGAAqG;AACrG,mGAAmG;AACnG,oGAAoG;AACpG,iFAAiF;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AASlD,mGAAmG;AACnG,uGAAuG;AACvG,wFAAwF;AACxF,MAAM,eAAe,GAAW,IAAI,CAAA;AACpC,MAAM,SAAS,GAAW,EAAE,CAAA;AAC5B,MAAM,qBAAqB,GAAW,CAAC,CAAA;AAEvC,MAAM,KAAK,GAAG,CAAC,SAAiB,EAAU,EAAE,CAC1C,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAA;AAEpE,MAAM,aAAa,GAAgC,IAAI,GAAG,CAAC;IACzD,CAAC,IAAI,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC;IACrB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC;IACtB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC;IACtB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC;CACvB,CAAC,CAAA;AAEF,uGAAuG;AACvG,uGAAuG;AACvG,8FAA8F;AAC9F,MAAM,eAAe,GAAG,CAAC,SAAiB,EAAU,EAAE;IACpD,MAAM,KAAK,GAAuB,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC9D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,SAAS,GAAW,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAA;IAChE,OAAO,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAA,KAAK,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;AACpF,CAAC,CAAA;AAED,uGAAuG;AACvG,EAAE;AACF,oGAAoG;AACpG,mGAAmG;AACnG,kGAAkG;AAClG,mGAAmG;AACnG,MAAM,aAAa,GAAG,CAAC,KAAa,EAAU,EAAE;AAC9C,iGAAiG;AACjG,sFAAsF;AACtF,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAU,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAEpF;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,UAAsC,EAAU,EAAE;IACrF,MAAM,MAAM,GAAW;QACrB,mGAAmG;QACnG,2EAA2E;QAC3E,UAAU;QACV,mBAAmB;QACnB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACZ,MAAM,MAAM,GAAsB,UAAU,CAAC,GAAG,CAAC,CAAC,SAA0B,EAAU,EAAE,CACtF;QACE,gBAAgB;QAChB,kBAAkB,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG;QACpD,cAAc,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK;QAChE,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAA;IACD,OAAO,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACvC,CAAC,CAAA"}
@@ -29,6 +29,16 @@ export interface PublicAccess {
29
29
  /** The operation granted: create, read, update, or delete. */
30
30
  readonly operation: string;
31
31
  readonly reason: string;
32
+ /**
33
+ * The fields of that entity a stranger reaches through this operation, each named by the path that
34
+ * reaches it (`sessions.id`), and `*` for the map Payload collapsed because every field was open.
35
+ *
36
+ * One entry carries the whole list rather than one entry per field, because a public collection has
37
+ * as many readable fields as it has columns and a list of twelve declarations sharing one reason is
38
+ * a list nobody rereads. A field absent from the list is undeclared, so adding a column to a public
39
+ * collection reopens the finding, which is the moment worth stopping at.
40
+ */
41
+ readonly fields?: readonly string[];
32
42
  }
33
43
  /** A managed path a project has taken over from the catalogue, with the reason it did so. */
34
44
  export interface UnmanagedAsset {
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
package/dist/settings.js CHANGED
@@ -161,8 +161,12 @@ const asPublicAccess = (raw) => isArray(raw)
161
161
  const entity = asText(record['entity']).trim();
162
162
  const operation = asText(record['operation']).trim();
163
163
  const reason = asText(record['reason']).trim();
164
+ // `fields` is optional, so a malformed one falls back to declaring no field rather than
165
+ // dropping the entry: the entity-level grant it also carries was stated correctly, and
166
+ // discarding that would report a finding the project did answer.
167
+ const fields = asStringArray(record['fields'], []);
164
168
  return entity.length > 0 && operation.length > 0 && reason.length > 0
165
- ? [{ entity, operation, reason }]
169
+ ? [{ entity, operation, reason, fields }]
166
170
  : [];
167
171
  })
168
172
  : [];
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { PayloadViolation } from './payload-source.js';
2
+ /** Report credential guards whose rejection disappears when the credential is absent. */
3
+ export declare const findFailOpenSecretGuards: (source: string) => readonly PayloadViolation[];
4
+ //# sourceMappingURL=source-security.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-security.d.ts","sourceRoot":"","sources":["../src/source-security.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AA8C3D,yFAAyF;AACzF,eAAO,MAAM,wBAAwB,GAAI,QAAQ,MAAM,KAAG,SAAS,gBAAgB,EAoBlF,CAAA"}
@@ -0,0 +1,56 @@
1
+ import { balancedArguments, lineOf, maskLiterals } from './source-text.js';
2
+ const GUARDED_IF = /\bif\s*\(\s*([a-z_$][\w$]*(?:\s*\.\s*[a-z_$][\w$]*)*)\s*&&/gi;
3
+ const PENULTIMATE = -2;
4
+ const credentialSegments = (name) => name
5
+ .split('.')
6
+ .at(-1)
7
+ ?.replaceAll(/([a-z\d])([A-Z])/g, '$1 $2')
8
+ .split(/[^a-z\d]+/i)
9
+ .filter((segment) => segment.length > 0)
10
+ .map((segment) => segment.toLowerCase()) ?? [];
11
+ const isCredential = (name) => {
12
+ const segments = credentialSegments(name);
13
+ const last = segments.at(-1);
14
+ const previous = segments.at(PENULTIMATE);
15
+ return last === 'secret' || last === 'token' || (previous === 'api' && last === 'key');
16
+ };
17
+ const conditionClose = (masked, open) => {
18
+ const condition = balancedArguments(masked, open);
19
+ return condition === undefined ? undefined : open + condition.length + 1;
20
+ };
21
+ const statementAt = (masked, start) => {
22
+ if (masked[start] === '{') {
23
+ return balancedArguments(masked, start) ?? '';
24
+ }
25
+ const newline = masked.indexOf('\n', start);
26
+ return masked.slice(start, newline === -1 ? masked.length : newline);
27
+ };
28
+ const hasRejectionAfter = (masked, close) => {
29
+ const statementStart = masked.slice(close + 1).search(/\S/);
30
+ if (statementStart < 0) {
31
+ return false;
32
+ }
33
+ const start = close + 1 + statementStart;
34
+ const statement = statementAt(masked, start);
35
+ return /\b(?:return|throw)\b/.test(statement);
36
+ };
37
+ /** Report credential guards whose rejection disappears when the credential is absent. */
38
+ export const findFailOpenSecretGuards = (source) => {
39
+ const masked = maskLiterals(source);
40
+ return [...masked.matchAll(GUARDED_IF)].flatMap((match) => {
41
+ const credential = (match[1] ?? '').replaceAll(/\s/g, '');
42
+ const open = masked.indexOf('(', match.index);
43
+ const close = conditionClose(masked, open);
44
+ return close !== undefined && isCredential(credential) && hasRejectionAfter(masked, close)
45
+ ? [
46
+ {
47
+ line: lineOf(source, match.index),
48
+ rule: 'no-fail-open-secret-guard',
49
+ reason: `reject a missing ${credential} before comparing it; guarded by its own truthiness, ` +
50
+ 'the rejection is skipped when the credential is absent',
51
+ },
52
+ ]
53
+ : [];
54
+ });
55
+ };
56
+ //# sourceMappingURL=source-security.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-security.js","sourceRoot":"","sources":["../src/source-security.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE1E,MAAM,UAAU,GAAW,8DAA8D,CAAA;AAEzF,MAAM,WAAW,GAAW,CAAC,CAAC,CAAA;AAE9B,MAAM,kBAAkB,GAAG,CAAC,IAAY,EAAqB,EAAE,CAC7D,IAAI;KACD,KAAK,CAAC,GAAG,CAAC;KACV,EAAE,CAAC,CAAC,CAAC,CAAC;IACP,EAAE,UAAU,CAAC,mBAAmB,EAAE,OAAO,CAAC;KACzC,KAAK,CAAC,YAAY,CAAC;KACnB,MAAM,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;KACxD,GAAG,CAAC,CAAC,OAAe,EAAU,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;AAElE,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE;IAC7C,MAAM,QAAQ,GAAsB,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAuB,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAChD,MAAM,QAAQ,GAAuB,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;IAC7D,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,CAAC,CAAA;AACxF,CAAC,CAAA;AAED,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,IAAY,EAAsB,EAAE;IAC1E,MAAM,SAAS,GAAuB,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACrE,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1E,CAAC,CAAA;AAED,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,KAAa,EAAU,EAAE;IAC5D,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC;QAC1B,OAAO,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;IAC/C,CAAC;IACD,MAAM,OAAO,GAAW,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IACnD,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;AACtE,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,MAAc,EAAE,KAAa,EAAW,EAAE;IACnE,MAAM,cAAc,GAAW,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnE,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,KAAK,GAAW,KAAK,GAAG,CAAC,GAAG,cAAc,CAAA;IAChD,MAAM,SAAS,GAAW,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACpD,OAAO,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,MAAc,EAA+B,EAAE;IACtF,MAAM,MAAM,GAAW,YAAY,CAAC,MAAM,CAAC,CAAA;IAC3C,OAAO,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAC7C,CAAC,KAAsB,EAA+B,EAAE;QACtD,MAAM,UAAU,GAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QACjE,MAAM,IAAI,GAAW,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACrD,MAAM,KAAK,GAAuB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC9D,OAAO,KAAK,KAAK,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,IAAI,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC;YACxF,CAAC,CAAC;gBACE;oBACE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC;oBACjC,IAAI,EAAE,2BAA2B;oBACjC,MAAM,EACJ,oBAAoB,UAAU,uDAAuD;wBACrF,wDAAwD;iBAC3D;aACF;YACH,CAAC,CAAC,EAAE,CAAA;IACR,CAAC,CACF,CAAA;AACH,CAAC,CAAA"}
@@ -80,4 +80,18 @@ export declare const occurrences: (source: string, needle: string) => readonly n
80
80
  * @returns the depth-one key names, with every nested structure elided.
81
81
  */
82
82
  export declare const topLevelKeys: (source: string, index: number) => readonly string[];
83
+ /**
84
+ * The innermost brace-delimited literal containing an offset.
85
+ *
86
+ * The counterpart to `topLevelKeys`, which reads a literal a caller has already located. This one
87
+ * starts from something found INSIDE a literal - a marker key such as `type: 'relationship'` - and
88
+ * recovers the object it belongs to, which is how a rule reads the rest of that object's keys. Walking
89
+ * backwards from the offset would be the obvious implementation and the wrong one: it would need a
90
+ * second scanner that skips string literals in reverse, and a brace inside a quoted value would close
91
+ * a literal that was never open.
92
+ * @param source the text to walk.
93
+ * @param index the offset known to sit inside the literal.
94
+ * @returns the literal wrapped in its own braces, or undefined when the offset sits inside none.
95
+ */
96
+ export declare const enclosingLiteral: (source: string, index: number) => string | undefined;
83
97
  //# sourceMappingURL=source-text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-text.d.ts","sourceRoot":"","sources":["../src/source-text.ts"],"names":[],"mappings":"AAkBA,wDAAwD;AACxD,eAAO,MAAM,cAAc,EAAE,MAAW,CAAA;AAExC,8FAA8F;AAC9F,eAAO,MAAM,SAAS,EAAE,MAAW,CAAA;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,MACZ,CAAA;AAqI3C,yEAAyE;AACzE,MAAM,WAAW,MAAM,CAAC,KAAK;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB;AAoED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,MAA8B,CAAA;AAE7E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAA6B,CAAA;AAE3E,qGAAqG;AACrG,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AASD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,EACjC,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,EACrD,SAAS,KAAK,KACb,KA0BF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,SAWzE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,cAAc,MAAM,KAAG,MAgBlD,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,SAAS,MAAM,EAGzE,CAAA;AAKH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,SAAS,MAAM,EAY3E,CAAA"}
1
+ {"version":3,"file":"source-text.d.ts","sourceRoot":"","sources":["../src/source-text.ts"],"names":[],"mappings":"AAkBA,wDAAwD;AACxD,eAAO,MAAM,cAAc,EAAE,MAAW,CAAA;AAExC,8FAA8F;AAC9F,eAAO,MAAM,SAAS,EAAE,MAAW,CAAA;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,MACZ,CAAA;AAqI3C,yEAAyE;AACzE,MAAM,WAAW,MAAM,CAAC,KAAK;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CACvB;AAoED;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,KAAG,MAA8B,CAAA;AAE7E;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,KAAG,MAA6B,CAAA;AAE3E,qGAAqG;AACrG,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AASD;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,EACjC,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,EACrD,SAAS,KAAK,KACb,KA0BF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,SAWzE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAI,cAAc,MAAM,KAAG,MAgBlD,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,EAAE,QAAQ,MAAM,KAAG,SAAS,MAAM,EAGzE,CAAA;AAKH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,SAAS,MAAM,EAY3E,CAAA;AA6BD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,gBAAgB,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,MAAM,GAAG,SAYzE,CAAA"}
@@ -307,4 +307,43 @@ export const topLevelKeys = (source, index) => {
307
307
  }
308
308
  return [...topLevelSlice(`{${body}}`).matchAll(TOP_LEVEL_KEY)].map((match) => match[1] ?? '');
309
309
  };
310
+ // At or past the target rather than exactly on it. The walk jumps a string literal whole, so an offset
311
+ // pointing INTO one - which is what the offset of a `type: 'relationship'` value is - is never visited,
312
+ // and an equality test would walk to the end reporting nothing. The first position reaching the target
313
+ // stands inside the same literal, because a string cannot span the brace that closes one.
314
+ const enclose = (state, step, target) => {
315
+ if (step.index >= target) {
316
+ return {
317
+ state: { ...state, innermost: state.opens.at(LAST_CHARACTER) ?? NOT_FOUND },
318
+ stop: true,
319
+ };
320
+ }
321
+ if (step.character === '{') {
322
+ return { state: { ...state, opens: [...state.opens, step.index] }, stop: false };
323
+ }
324
+ return step.character === '}'
325
+ ? { state: { ...state, opens: state.opens.slice(0, LAST_CHARACTER) }, stop: false }
326
+ : { state, stop: false };
327
+ };
328
+ /**
329
+ * The innermost brace-delimited literal containing an offset.
330
+ *
331
+ * The counterpart to `topLevelKeys`, which reads a literal a caller has already located. This one
332
+ * starts from something found INSIDE a literal - a marker key such as `type: 'relationship'` - and
333
+ * recovers the object it belongs to, which is how a rule reads the rest of that object's keys. Walking
334
+ * backwards from the offset would be the obvious implementation and the wrong one: it would need a
335
+ * second scanner that skips string literals in reverse, and a brace inside a quoted value would close
336
+ * a literal that was never open.
337
+ * @param source the text to walk.
338
+ * @param index the offset known to sit inside the literal.
339
+ * @returns the literal wrapped in its own braces, or undefined when the offset sits inside none.
340
+ */
341
+ export const enclosingLiteral = (source, index) => {
342
+ const found = scanDelimited(source, 0, (state, step) => enclose(state, step, index), { opens: [], innermost: NOT_FOUND });
343
+ if (found.innermost === NOT_FOUND) {
344
+ return undefined;
345
+ }
346
+ const body = balancedArguments(source, found.innermost);
347
+ return body === undefined ? undefined : `{${body}}`;
348
+ };
310
349
  //# sourceMappingURL=source-text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source-text.js","sourceRoot":"","sources":["../src/source-text.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source-text.js","sourceRoot":"","sources":["../src/source-text.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"version-policy.d.ts","sourceRoot":"","sources":["../src/version-policy.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAc5D;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,MACV,CAAA;AAWhD,0GAA0G;AAC1G,eAAO,MAAM,eAAe,EAAE,MAAmB,CAAA;AAEjD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,KAAG,OACmB,CAAA;AA+M1E;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAkB,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,MAAe,CAAA;AA8D1C,gGAAgG;AAChG,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,8EAA8E;IAC9E,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAA;IACnD,uDAAuD;IACvD,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1D,yFAAyF;IACzF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACjE;AAED,+EAA+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,mGAAmG;IACnG,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,GAC1C,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,uBAAuB,KAC9B,SAAS,eAAe,EAc1B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GACvC,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,oBAAoB,KAC3B,SAAS,eAAe,EAK1B,CAAA;AAED,0FAA0F;AAC1F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAA;IACnD,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,aAAa,KACpB,SAAS,eAAe,EAa1B,CAAA"}
1
+ {"version":3,"file":"version-policy.d.ts","sourceRoot":"","sources":["../src/version-policy.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAc5D;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,MACV,CAAA;AAWhD,0GAA0G;AAC1G,eAAO,MAAM,eAAe,EAAE,MAAmB,CAAA;AAEjD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,KAAG,OACmB,CAAA;AA+M1E;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,EAAE,MAAkB,CAAA;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,MAAe,CAAA;AAmG1C,gGAAgG;AAChG,MAAM,WAAW,uBAAuB;IACtC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,8EAA8E;IAC9E,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAA;IACnD,uDAAuD;IACvD,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1D,yFAAyF;IACzF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,yFAAyF;IACzF,QAAQ,CAAC,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CACjE;AAED,+EAA+E;AAC/E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,iFAAiF;IACjF,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,mGAAmG;IACnG,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;CAC5C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,+BAA+B,GAC1C,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,uBAAuB,KAC9B,SAAS,eAAe,EAc1B,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,GACvC,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,oBAAoB,KAC3B,SAAS,eAAe,EAM1B,CAAA;AAED,0FAA0F;AAC1F,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACnD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3C,QAAQ,CAAC,sBAAsB,EAAE,MAAM,GAAG,SAAS,CAAA;IACnD,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAC1D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAC/B;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAChC,aAAa,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,QAAQ,aAAa,KACpB,SAAS,eAAe,EAa1B,CAAA"}
@@ -218,6 +218,36 @@ const checkPayloadFamily = (packageJson, payloadVersion) => {
218
218
  'Payload fails at runtime when its own packages disagree',
219
219
  }));
220
220
  };
221
+ // The harness packages a project declares itself must agree with the harness it declares. Only one
222
+ // of them is normally written down - `ploaness` - but `@ploaness/runtime` exists to be declared in
223
+ // `dependencies`, because `arch` forbids `src/**` from importing a devDependency, and the moment a
224
+ // second ploaness coordinate appears in a manifest the two can drift apart. That drift is not merely
225
+ // untidy: the meta package re-exports the runtime helper for `tests/**`, so a suite would exercise one
226
+ // implementation while production shipped another, and the suite is what a reader trusts.
227
+ //
228
+ // Derived from the declared `ploaness` rather than pinned in pins.json, for the reason that file's own
229
+ // comment gives: it holds what ploaness cannot pin by declaring, and these are packages ploaness
230
+ // declares. The version a project is entitled to choose is the release; what it may not do is choose
231
+ // two.
232
+ const checkHarnessFamily = (packageJson) => {
233
+ const declared = declaredDependencies(packageJson);
234
+ const harness = declared[HARNESS_PACKAGE];
235
+ // A specifier that is not a registry version carries no version to agree WITH. A pre-publication
236
+ // consumer points `ploaness` straight at a packed tarball, and the version is then whatever the
237
+ // tarball contains - so comparing a sibling's `1.0.0` against `file:../ploaness-1.0.0.tgz` reports a
238
+ // disagreement between a version and a path. The same permission `isHarnessTarball` already grants
239
+ // the override reader, for the same reason and in the same arrangement.
240
+ if (harness === undefined || NON_REGISTRY.test(harness)) {
241
+ return [];
242
+ }
243
+ return Object.entries(declared)
244
+ .filter(([name, version]) => name.startsWith(HARNESS_SCOPE) && !NON_REGISTRY.test(version) && version !== harness)
245
+ .map(([name, version]) => ({
246
+ location: `package.json ${blockOf(packageJson, name) ?? ''}.${name}`,
247
+ reason: `is "${version}" but ploaness is declared at "${harness}"; the harness packages are ` +
248
+ 'released together, and two versions of one release is two implementations',
249
+ }));
250
+ };
221
251
  // Two obligations, not one. A project must DECLARE the few packages every project uses, because under
222
252
  // the strict pnpm layout its own specs could not resolve them otherwise. Every other pinned package
223
253
  // must MATCH when the project declares it, but is not forced on a project that has no use for it -
@@ -276,6 +306,7 @@ export const findPackageVersionViolations = (packageJson, inputs) => [
276
306
  ...checkTestLibraries(packageJson, inputs.expected, inputs.required),
277
307
  ...checkExactVersions(packageJson),
278
308
  ...checkPayloadFamily(packageJson, inputs.payloadVersion),
309
+ ...checkHarnessFamily(packageJson),
279
310
  ...checkVersionEscapes(packageJson, inputs.expected),
280
311
  ];
281
312
  /**