@ploaness/governance 1.9.0 → 1.11.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 (101) hide show
  1. package/dist/architecture-layers.d.ts +1 -1
  2. package/dist/architecture-layers.d.ts.map +1 -1
  3. package/dist/architecture-layers.js +5 -4
  4. package/dist/architecture-layers.js.map +1 -1
  5. package/dist/asset-policy.d.ts +9 -0
  6. package/dist/asset-policy.d.ts.map +1 -1
  7. package/dist/asset-policy.js +12 -3
  8. package/dist/asset-policy.js.map +1 -1
  9. package/dist/biome-selection.d.ts +3 -0
  10. package/dist/biome-selection.d.ts.map +1 -0
  11. package/dist/biome-selection.js +12 -0
  12. package/dist/biome-selection.js.map +1 -0
  13. package/dist/blocklist.js +4 -4
  14. package/dist/blocklist.js.map +1 -1
  15. package/dist/coverage-policy.d.ts +13 -0
  16. package/dist/coverage-policy.d.ts.map +1 -0
  17. package/dist/coverage-policy.js +32 -0
  18. package/dist/coverage-policy.js.map +1 -0
  19. package/dist/document-references.js +2 -2
  20. package/dist/document-references.js.map +1 -1
  21. package/dist/environment-files.d.ts +2 -1
  22. package/dist/environment-files.d.ts.map +1 -1
  23. package/dist/environment-files.js +2 -1
  24. package/dist/environment-files.js.map +1 -1
  25. package/dist/file-roles.d.ts +14 -6
  26. package/dist/file-roles.d.ts.map +1 -1
  27. package/dist/file-roles.js +33 -24
  28. package/dist/file-roles.js.map +1 -1
  29. package/dist/glob-alternatives.d.ts +3 -0
  30. package/dist/glob-alternatives.d.ts.map +1 -0
  31. package/dist/glob-alternatives.js +26 -0
  32. package/dist/glob-alternatives.js.map +1 -0
  33. package/dist/image-assets.js +3 -3
  34. package/dist/image-assets.js.map +1 -1
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +6 -0
  38. package/dist/index.js.map +1 -1
  39. package/dist/install-policy.d.ts +3 -0
  40. package/dist/install-policy.d.ts.map +1 -1
  41. package/dist/install-policy.js +19 -3
  42. package/dist/install-policy.js.map +1 -1
  43. package/dist/member-patterns.d.ts +7 -0
  44. package/dist/member-patterns.d.ts.map +1 -0
  45. package/dist/member-patterns.js +71 -0
  46. package/dist/member-patterns.js.map +1 -0
  47. package/dist/production-server.d.ts +4 -0
  48. package/dist/production-server.d.ts.map +1 -1
  49. package/dist/production-server.js +19 -0
  50. package/dist/production-server.js.map +1 -1
  51. package/dist/route-coverage.d.ts +2 -0
  52. package/dist/route-coverage.d.ts.map +1 -1
  53. package/dist/route-coverage.js +14 -17
  54. package/dist/route-coverage.js.map +1 -1
  55. package/dist/route-exclusions.d.ts +11 -0
  56. package/dist/route-exclusions.d.ts.map +1 -0
  57. package/dist/route-exclusions.js +11 -0
  58. package/dist/route-exclusions.js.map +1 -0
  59. package/dist/route-map.d.ts +11 -5
  60. package/dist/route-map.d.ts.map +1 -1
  61. package/dist/route-map.js +38 -5
  62. package/dist/route-map.js.map +1 -1
  63. package/dist/run-policy.d.ts.map +1 -1
  64. package/dist/run-policy.js +2 -14
  65. package/dist/run-policy.js.map +1 -1
  66. package/dist/settings-layering.d.ts +1 -1
  67. package/dist/settings-layering.d.ts.map +1 -1
  68. package/dist/settings-layering.js +15 -8
  69. package/dist/settings-layering.js.map +1 -1
  70. package/dist/settings.d.ts +8 -4
  71. package/dist/settings.d.ts.map +1 -1
  72. package/dist/settings.js +22 -11
  73. package/dist/settings.js.map +1 -1
  74. package/dist/source-security.d.ts.map +1 -1
  75. package/dist/source-security.js +42 -4
  76. package/dist/source-security.js.map +1 -1
  77. package/dist/source-selection.d.ts +10 -0
  78. package/dist/source-selection.d.ts.map +1 -0
  79. package/dist/source-selection.js +14 -0
  80. package/dist/source-selection.js.map +1 -0
  81. package/dist/source-text.d.ts +2 -0
  82. package/dist/source-text.d.ts.map +1 -1
  83. package/dist/source-text.js +9 -5
  84. package/dist/source-text.js.map +1 -1
  85. package/dist/toolchain-pins.js +2 -2
  86. package/dist/wiring-policy.d.ts +5 -4
  87. package/dist/wiring-policy.d.ts.map +1 -1
  88. package/dist/wiring-policy.js +54 -35
  89. package/dist/wiring-policy.js.map +1 -1
  90. package/dist/workspace-globs.d.ts +8 -0
  91. package/dist/workspace-globs.d.ts.map +1 -0
  92. package/dist/workspace-globs.js +45 -0
  93. package/dist/workspace-globs.js.map +1 -0
  94. package/dist/workspace-policy.d.ts.map +1 -1
  95. package/dist/workspace-policy.js +15 -10
  96. package/dist/workspace-policy.js.map +1 -1
  97. package/dist/yaml-blocks.d.ts +8 -46
  98. package/dist/yaml-blocks.d.ts.map +1 -1
  99. package/dist/yaml-blocks.js +91 -91
  100. package/dist/yaml-blocks.js.map +1 -1
  101. package/package.json +7 -2
@@ -7,5 +7,5 @@
7
7
  * @param pureLogicRoots the directories forming the floor, repo-relative and without a trailing slash.
8
8
  * @returns the dependency-cruiser rule, or undefined when the project declares no floor.
9
9
  */
10
- export declare const pureLogicRule: (pureLogicRoots: readonly string[]) => Record<string, unknown> | undefined;
10
+ export declare const pureLogicRule: (pureLogicRoots: readonly string[], sourceRoots?: readonly string[]) => Record<string, unknown> | undefined;
11
11
  //# sourceMappingURL=architecture-layers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-layers.d.ts","sourceRoot":"","sources":["../src/architecture-layers.ts"],"names":[],"mappings":"AA0BA;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,gBAAgB,SAAS,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAmB3F,CAAA"}
1
+ {"version":3,"file":"architecture-layers.d.ts","sourceRoot":"","sources":["../src/architecture-layers.ts"],"names":[],"mappings":"AA4BA;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GACxB,gBAAgB,SAAS,MAAM,EAAE,EACjC,cAAa,SAAS,MAAM,EAAyB,KACpD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAmB5B,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { DEFAULT_SOURCE_ROOTS } from './settings.js';
1
2
  // The pure-logic floor, as data rather than as a fixed path.
2
3
  //
3
4
  // The architecture contract calls the layer map "the one genuinely project-shaped part" and then named
@@ -17,7 +18,7 @@ const REGEX_METACHARACTERS = /[$()*+.?[\\\]^{|}]/gu;
17
18
  // A trailing slash is normalised where the setting is read, so what arrives here is already a bare
18
19
  // directory. This escapes it, and nothing else.
19
20
  const asRoot = (directory) => directory.replaceAll(REGEX_METACHARACTERS, String.raw `\$&`);
20
- const alternation = (directories) => directories.map((directory) => `${asRoot(directory)}/`).join('|');
21
+ const alternation = (directories) => directories.map((directory) => (directory === '.' ? '' : `${asRoot(directory)}/`)).join('|');
21
22
  /**
22
23
  * The forbidden rule that keeps the declared pure-logic directories pure.
23
24
  *
@@ -27,7 +28,7 @@ const alternation = (directories) => directories.map((directory) => `${asRoot(di
27
28
  * @param pureLogicRoots the directories forming the floor, repo-relative and without a trailing slash.
28
29
  * @returns the dependency-cruiser rule, or undefined when the project declares no floor.
29
30
  */
30
- export const pureLogicRule = (pureLogicRoots) => {
31
+ export const pureLogicRule = (pureLogicRoots, sourceRoots = DEFAULT_SOURCE_ROOTS) => {
31
32
  if (pureLogicRoots.length === 0) {
32
33
  return undefined;
33
34
  }
@@ -38,10 +39,10 @@ export const pureLogicRule = (pureLogicRoots) => {
38
39
  name: 'pure-logic-stays-pure',
39
40
  severity: 'error',
40
41
  comment: `${pureLogicRoots.join(' and ')} are the pure-logic floor: they must depend on nothing else ` +
41
- 'in src (only types and third-party libs). If you need framework data, pass it in as a plain ' +
42
+ `under ${sourceRoots.join(', ')} (only types and third-party libs). Pass framework data as a plain ` +
42
43
  'value. This is what keeps them unit-testable without mocks.',
43
44
  from: { path: `^(${floor})` },
44
- to: { path: '^src/', pathNot: `^(${floor})|${exempt}` },
45
+ to: { path: `^(${alternation(sourceRoots)})`, pathNot: `^(${floor})|${exempt}` },
45
46
  };
46
47
  };
47
48
  //# sourceMappingURL=architecture-layers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"architecture-layers.js","sourceRoot":"","sources":["../src/architecture-layers.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,EAAE;AACF,uGAAuG;AACvG,wGAAwG;AACxG,wGAAwG;AACxG,qGAAqG;AACrG,gDAAgD;AAEhD,4FAA4F;AAC5F,MAAM,mBAAmB,GAAsB,CAAC,sBAAsB,CAAC,CAAA;AAEvE,sGAAsG;AACtG,wGAAwG;AACxG,6FAA6F;AAC7F,wGAAwG;AACxG,wGAAwG;AACxG,cAAc;AACd,MAAM,oBAAoB,GAAW,sBAAsB,CAAA;AAE3D,mGAAmG;AACnG,gDAAgD;AAChD,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAU,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAA,KAAK,CAAC,CAAA;AAEzG,MAAM,WAAW,GAAG,CAAC,WAA8B,EAAU,EAAE,CAC7D,WAAW,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAU,EAAE,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEnF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,cAAiC,EAAuC,EAAE;IACtG,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAW,WAAW,CAAC,cAAc,CAAC,CAAA;IACjD,MAAM,OAAO,GAAsB,mBAAmB,CAAC,GAAG,CAAC,CAAC,QAAgB,EAAU,EAAE,CACtF,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC,CACzC,CAAA;IACD,MAAM,MAAM,GAAW,OAAO,CAAC,GAAG,CAAC,CAAC,QAAgB,EAAU,EAAE,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3F,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,OAAO;QACjB,OAAO,EACL,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,8DAA8D;YAC7F,8FAA8F;YAC9F,6DAA6D;QAC/D,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,KAAK,GAAG,EAAE;QAC7B,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,KAAK,KAAK,MAAM,EAAE,EAAE;KACxD,CAAA;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"architecture-layers.js","sourceRoot":"","sources":["../src/architecture-layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAEpD,6DAA6D;AAC7D,EAAE;AACF,uGAAuG;AACvG,wGAAwG;AACxG,wGAAwG;AACxG,qGAAqG;AACrG,gDAAgD;AAEhD,4FAA4F;AAC5F,MAAM,mBAAmB,GAAsB,CAAC,sBAAsB,CAAC,CAAA;AAEvE,sGAAsG;AACtG,wGAAwG;AACxG,6FAA6F;AAC7F,wGAAwG;AACxG,wGAAwG;AACxG,cAAc;AACd,MAAM,oBAAoB,GAAW,sBAAsB,CAAA;AAE3D,mGAAmG;AACnG,gDAAgD;AAChD,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAU,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,oBAAoB,EAAE,MAAM,CAAC,GAAG,CAAA,KAAK,CAAC,CAAA;AAEzG,MAAM,WAAW,GAAG,CAAC,WAA8B,EAAU,EAAE,CAC7D,WAAW,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAU,EAAE,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE9G;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,cAAiC,EACjC,cAAiC,oBAAoB,EAChB,EAAE;IACvC,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,KAAK,GAAW,WAAW,CAAC,cAAc,CAAC,CAAA;IACjD,MAAM,OAAO,GAAsB,mBAAmB,CAAC,GAAG,CAAC,CAAC,QAAgB,EAAU,EAAE,CACtF,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAA,IAAI,CAAC,CACzC,CAAA;IACD,MAAM,MAAM,GAAW,OAAO,CAAC,GAAG,CAAC,CAAC,QAAgB,EAAU,EAAE,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3F,OAAO;QACL,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,OAAO;QACjB,OAAO,EACL,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,8DAA8D;YAC7F,SAAS,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,qEAAqE;YACpG,6DAA6D;QAC/D,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,KAAK,GAAG,EAAE;QAC7B,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,WAAW,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,KAAK,KAAK,MAAM,EAAE,EAAE;KACjF,CAAA;AACH,CAAC,CAAA"}
@@ -88,6 +88,15 @@ export declare const applyManagedSection: (rawContent: string, block: string) =>
88
88
  * @returns the parsed entries and any malformed rows.
89
89
  */
90
90
  export declare const parseManifest: (manifest: string) => ParsedManifest;
91
+ /**
92
+ * Whether a working-tree path is an instruction file Claude Code would load instead of, or beside,
93
+ * `AGENTS.md`. Claude Code reads `AGENTS.md` itself, so any such file is a second contract. Claude Code
94
+ * also loads a nested one on demand, so the rule covers every directory, not only the catalogue sites.
95
+ * The match ignores case because a case-insensitive filesystem serves `claude.md` under either name.
96
+ * @param file a repo-relative path.
97
+ * @returns whether the path must not exist.
98
+ */
99
+ export declare const isClaudeInstructionFile: (file: string) => boolean;
91
100
  /**
92
101
  * Judge one managed path against its disposition.
93
102
  * @param asset the catalogue entry.
@@ -1 +1 @@
1
- {"version":3,"file":"asset-policy.d.ts","sourceRoot":"","sources":["../src/asset-policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"asset-policy.d.ts","sourceRoot":"","sources":["../src/asset-policy.ts"],"names":[],"mappings":"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"}
@@ -151,7 +151,7 @@ const missing = (asset) => ({
151
151
  const checkForbidden = (asset, state) => state.isPresent
152
152
  ? {
153
153
  path: asset.path,
154
- reason: 'ploaness supplies this configuration, so a working-tree copy shadows it; delete the file',
154
+ reason: 'ploaness supplies what this path would define, so a working-tree copy shadows it; delete it',
155
155
  }
156
156
  : undefined;
157
157
  const checkSeed = (asset, state) => state.isPresent ? undefined : missing(asset);
@@ -168,11 +168,20 @@ const checkPinned = (asset, state) => {
168
168
  };
169
169
  /** The instruction file every other one points at. */
170
170
  const ROOT_INSTRUCTION_FILE = 'AGENTS.md';
171
+ /**
172
+ * Whether a working-tree path is an instruction file Claude Code would load instead of, or beside,
173
+ * `AGENTS.md`. Claude Code reads `AGENTS.md` itself, so any such file is a second contract. Claude Code
174
+ * also loads a nested one on demand, so the rule covers every directory, not only the catalogue sites.
175
+ * The match ignores case because a case-insensitive filesystem serves `claude.md` under either name.
176
+ * @param file a repo-relative path.
177
+ * @returns whether the path must not exist.
178
+ */
179
+ export const isClaudeInstructionFile = (file) => /(?:^|\/)CLAUDE(?:\.local)?\.md$/iu.test(file);
171
180
  // Every line that says anything must say the same thing: read AGENTS.md. A line that does not name it
172
181
  // is this file stating a rule of its own, which is what makes two agents answerable to two contracts.
173
182
  const checkReference = (asset, state) => {
174
- // Optional, unlike every other disposition: a project that uses no coding agent but Claude carries no
175
- // entry point for one, and requiring the file would be ploaness deciding which tools it uses.
183
+ // Optional, unlike every other disposition: a project that does not use this tool carries no entry
184
+ // point for it, and requiring the file would be ploaness deciding which tools it uses.
176
185
  if (!state.isPresent) {
177
186
  return undefined;
178
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"asset-policy.js","sourceRoot":"","sources":["../src/asset-policy.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAgD/G,MAAM,YAAY,GAAwB,IAAI,GAAG,CAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;AAElH,oGAAoG;AACpG,sGAAsG;AACtG,iFAAiF;AACjF,MAAM,aAAa,GAAG,CAAC,GAAW,EAAsB,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEhF,MAAM,MAAM,GAAwB,IAAI,GAAG,CAAS,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;AAE3G,MAAM,OAAO,GAAG,CAAC,GAAW,EAAqB,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEnE,wGAAwG;AACxG,uGAAuG;AACvG,wGAAwG;AACxG,MAAM,gBAAgB,GAAW,CAAC,CAAA;AAElC,2DAA2D;AAC3D,MAAM,CAAC,MAAM,aAAa,GAAW,8CAA8C,CAAA;AAEnF,4DAA4D;AAC5D,MAAM,CAAC,MAAM,WAAW,GAAW,4CAA4C,CAAA;AAa/E,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,MAAc,EAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAEjG;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,UAAkB,EAAgB,EAAE;IACrE,oGAAoG;IACpG,kGAAkG;IAClG,mFAAmF;IACnF,MAAM,OAAO,GAAW,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3D,MAAM,MAAM,GAAW,WAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IAC1D,MAAM,IAAI,GAAW,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;IACtD,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;IAC3B,CAAC;IACD,IAAI,MAAM,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO;YACL,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,8DAA8D;SACvE,CAAA;IACH,CAAC;IACD,kGAAkG;IAClG,kEAAkE;IAClE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,aAAa,IAAI,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,2CAA2C,EAAE,CAAA;IACnF,CAAC;IACD,MAAM,GAAG,GAAW,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAChD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,EAAE,CAAA;AAC/E,CAAC,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAE,KAAa,EAAsB,EAAE;IAC3F,kGAAkG;IAClG,mGAAmG;IACnG,sDAAsD;IACtD,MAAM,OAAO,GAAW,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAC3D,MAAM,KAAK,GAAiB,kBAAkB,CAAC,OAAO,CAAC,CAAA;IACvD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAA;AAClG,CAAC,CAAA;AAQD,MAAM,eAAe,GAAG,CAAC,KAAa,EAAE,IAAY,EAAa,EAAE;IACjE,MAAM,OAAO,GAAW,IAAI,CAAC,IAAI,EAAE,CAAA;IACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;IACjD,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IACxE,IACE,IAAI,KAAK,SAAS;QAClB,WAAW,KAAK,SAAS;QACzB,KAAK,KAAK,SAAS;QACnB,CAAC,aAAa,CAAC,WAAW,CAAC;QAC3B,CAAC,OAAO,CAAC,KAAK,CAAC,EACf,CAAC;QACD,OAAO;YACL,KAAK,EAAE,SAAS;YAChB,iGAAiG;YACjG,4FAA4F;YAC5F,oDAAoD;YACpD,OAAO,EACL,iBAAiB,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,qCAAqC;gBACvE,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SAClF,CAAA;IACH,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,CAAA;AACpE,CAAC,CAAA;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAkB,EAAE;IAChE,qGAAqG;IACrG,+EAA+E;IAC/E,MAAM,IAAI,GAAyB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;SACnE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAA4B,EAAa,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SAC1F,MAAM,CAAC,CAAC,GAAc,EAAW,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAA;IAC5F,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAc,EAA2B,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/G,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,GAAc,EAAqB,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;KAChH,CAAA;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,YAAY,GAAG,CAAC,KAAmB,EAAE,KAAiB,EAA8B,EAAE;IAC1F,MAAM,OAAO,GAAiB,kBAAkB,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IACpE,qGAAqG;IACrG,0EAA0E;IAC1E,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,8BAA8B,EAAE,CAAA;IACtF,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,4DAA4D;SACrE,CAAA;IACH,CAAC;IACD,OAAO,OAAO,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;QACpD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,gFAAgF;SACzF,CAAA;AACP,CAAC,CAAA;AAED,mGAAmG;AACnG,uGAAuG;AACvG,uGAAuG;AACvG,gGAAgG;AAChG,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAkB,EAAE,CAAC,CAAC;IACxD,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,MAAM,EAAE,8CAA8C;CACvD,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,CAAC,KAAmB,EAAE,KAAiB,EAA8B,EAAE,CAC5F,KAAK,CAAC,SAAS;IACb,CAAC,CAAC;QACE,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,0FAA0F;KACnG;IACH,CAAC,CAAC,SAAS,CAAA;AAEf,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAE,KAAiB,EAA8B,EAAE,CACvF,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAE9C,MAAM,WAAW,GAAG,CAAC,KAAmB,EAAE,KAAiB,EAA8B,EAAE;IACzF,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ;QACpC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,kEAAkE;SAC3E,CAAA;AACP,CAAC,CAAA;AAED,sDAAsD;AACtD,MAAM,qBAAqB,GAAW,WAAW,CAAA;AAEjD,sGAAsG;AACtG,sGAAsG;AACtG,MAAM,cAAc,GAAG,CAAC,KAAmB,EAAE,KAAiB,EAA8B,EAAE;IAC5F,sGAAsG;IACtG,8FAA8F;IAC9F,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,MAAM,MAAM,GAAsB,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;SACnD,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1C,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,wDAAwD,qBAAqB,EAAE;SACxF,CAAA;IACH,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAClF,CAAC,CAAC,SAAS;QACX,CAAC,CAAC;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EACJ,yFAAyF;gBACzF,gBAAgB,qBAAqB,8CAA8C;SACtF,CAAA;AACP,CAAC,CAAA;AAID,MAAM,QAAQ,GAAgD;IAC5D,SAAS,EAAE,cAAc;IACzB,MAAM,EAAE,WAAW;IACnB,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,CAAC,KAAmB,EAAE,KAAiB,EAA8B,EAAE,CAC9E,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC/D,IAAI,EAAE,SAAS;CAChB,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAmB,EAAE,KAAiB,EAA8B,EAAE,CAC/F,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAE3C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,MAA+B,EAC/B,SAA4B,EAC5B,OAAqC,EACV,EAAE;IAC7B,MAAM,KAAK,GAAwB,IAAI,GAAG,CAAC,SAAS,CAAC,CAAA;IACrD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAmB,EAA6B,EAAE;QACvE,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,MAAM,SAAS,GAA+B,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;QACpF,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAKD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAmB,EAAE,SAAkB,EAAc,EAAE;IAChF,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAA;IACtC,CAAC;IACD,mGAAmG;IACnG,4FAA4F;IAC5F,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;QACtC,OAAO,MAAM,CAAA;IACf,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAA;IACrC,CAAC;IACD,iGAAiG;IACjG,gGAAgG;IAChG,OAAO,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAA;AAC7D,CAAC,CAAA;AAQD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA+B,EAA2B,EAAE,CAC3F,MAAM,CAAC,MAAM,CAAC,CAAC,KAAmB,EAAW,EAAE,CAAC,KAAK,CAAC,KAAK,KAAK,YAAY,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,CAAC,CAAA;AAE/G;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAA+B,EAAE,IAAe,EAA2B,EAAE,CACxG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAmB,EAAW,EAAE;IAC7C,OAAO,CACL,KAAK,CAAC,KAAK,KAAK,YAAY;QAC5B,CAAC,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC;QAC7C,CAAC,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,KAAK,aAAa,CAAC,CACnD,CAAA;AACH,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"asset-policy.js","sourceRoot":"","sources":["../src/asset-policy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ /** Select owned files from the same ordered include/exclude contract the scaffold declares. */
2
+ export declare const biomeSelection: (files: readonly string[], includes: readonly string[], nestedMembers: readonly string[]) => readonly string[];
3
+ //# sourceMappingURL=biome-selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"biome-selection.d.ts","sourceRoot":"","sources":["../src/biome-selection.ts"],"names":[],"mappings":"AAGA,+FAA+F;AAC/F,eAAO,MAAM,cAAc,GACzB,OAAO,SAAS,MAAM,EAAE,EACxB,UAAU,SAAS,MAAM,EAAE,EAC3B,eAAe,SAAS,MAAM,EAAE,KAC/B,SAAS,MAAM,EAUd,CAAA"}
@@ -0,0 +1,12 @@
1
+ import { matchesGlob } from './file-roles.js';
2
+ import { memberFiles } from './source-selection.js';
3
+ /** Select owned files from the same ordered include/exclude contract the scaffold declares. */
4
+ export const biomeSelection = (files, includes, nestedMembers) => memberFiles(files, nestedMembers).filter((file) => {
5
+ const positive = includes.filter((pattern) => !pattern.startsWith('!'));
6
+ const negative = includes
7
+ .filter((pattern) => pattern.startsWith('!'))
8
+ .map((pattern) => pattern.slice(1));
9
+ return (positive.some((pattern) => matchesGlob(pattern, file)) &&
10
+ !negative.some((pattern) => matchesGlob(pattern, file) || matchesGlob(`${pattern}/**`, file)));
11
+ });
12
+ //# sourceMappingURL=biome-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"biome-selection.js","sourceRoot":"","sources":["../src/biome-selection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAEnD,+FAA+F;AAC/F,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAwB,EACxB,QAA2B,EAC3B,aAAgC,EACb,EAAE,CACrB,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE;IACjE,MAAM,QAAQ,GAAsB,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3G,MAAM,QAAQ,GAAsB,QAAQ;SACzC,MAAM,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC7D,GAAG,CAAC,CAAC,OAAe,EAAU,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,OAAO,CACL,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACvE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,WAAW,CAAC,GAAG,OAAO,KAAK,EAAE,IAAI,CAAC,CAAC,CAC/G,CAAA;AACH,CAAC,CAAC,CAAA"}
package/dist/blocklist.js CHANGED
@@ -94,7 +94,7 @@ export const refuseImage = (raw) => {
94
94
  if (entry === undefined || isAllowedTag(entry, reference.tag)) {
95
95
  return undefined;
96
96
  }
97
- return entry.from !== undefined && !reachesFloor(reference.tag, entry.from) ? undefined : refusalOf(raw, entry);
97
+ return entry.from === undefined || reachesFloor(reference.tag, entry.from) ? refusalOf(raw, entry) : undefined;
98
98
  };
99
99
  /**
100
100
  * Whether an installed package at a version is one ploaness refuses.
@@ -107,9 +107,9 @@ export const refusePackage = (name, version) => {
107
107
  if (entry === undefined) {
108
108
  return undefined;
109
109
  }
110
- return entry.from !== undefined && !reachesFloor(version, entry.from)
111
- ? undefined
112
- : refusalOf(`${name}@${version}`, entry);
110
+ return entry.from === undefined || reachesFloor(version, entry.from)
111
+ ? refusalOf(`${name}@${version}`, entry)
112
+ : undefined;
113
113
  };
114
114
  /**
115
115
  * The refused system packages a Dockerfile installs.
@@ -1 +1 @@
1
- {"version":3,"file":"blocklist.js","sourceRoot":"","sources":["../src/blocklist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blocklist.js","sourceRoot":"","sources":["../src/blocklist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /** Patterns for executable TypeScript under a member's effective source roots. */
2
+ export declare const coverageIncludes: (sourceRoots: readonly string[]) => readonly string[];
3
+ /** Whether a path is measured before project exclusions, retaining invariant test and declaration roles. */
4
+ export declare const isCoverageCandidate: (file: string, sourceRoots: readonly string[]) => boolean;
5
+ /** Owned files remain inside the member even when its source root is the whole directory. */
6
+ export declare const coverageOwnedFiles: (files: readonly string[], siblingPaths: readonly string[]) => readonly string[];
7
+ /** Files measured by coverage before project exclusions, respecting member boundaries and invariant roles. */
8
+ export declare const coverageCandidates: (files: readonly string[], sourceRoots: readonly string[], siblingPaths: readonly string[]) => readonly string[];
9
+ /** Literal nested-member boundaries passed by the CLI, which owns repository discovery. */
10
+ export declare const coverageBoundaries: (siblingPaths: readonly string[]) => readonly string[];
11
+ /** Non-executable declarations and the test tree are roles, regardless of the containing source root. */
12
+ export declare const COVERAGE_ROLE_EXCLUDE: readonly string[];
13
+ //# sourceMappingURL=coverage-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-policy.d.ts","sourceRoot":"","sources":["../src/coverage-policy.ts"],"names":[],"mappings":"AAmBA,kFAAkF;AAClF,eAAO,MAAM,gBAAgB,GAAI,aAAa,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAG9E,CAAA;AAEH,4GAA4G;AAC5G,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,aAAa,SAAS,MAAM,EAAE,KAAG,OAGY,CAAA;AAE/F,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,GAAI,OAAO,SAAS,MAAM,EAAE,EAAE,cAAc,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EAC5E,CAAA;AAElC,8GAA8G;AAC9G,eAAO,MAAM,kBAAkB,GAC7B,OAAO,SAAS,MAAM,EAAE,EACxB,aAAa,SAAS,MAAM,EAAE,EAC9B,cAAc,SAAS,MAAM,EAAE,KAC9B,SAAS,MAAM,EACiG,CAAA;AAEnH,2FAA2F;AAC3F,eAAO,MAAM,kBAAkB,GAAI,cAAc,SAAS,MAAM,EAAE,KAAG,SAAS,MAAM,EACa,CAAA;AAEjG,yGAAyG;AACzG,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAQlD,CAAA"}
@@ -0,0 +1,32 @@
1
+ // Coverage includes follow member roots; component and test roles retain their separate checks.
2
+ import { hasExtension, matchesGlob, normalisedSourceRoot, TYPESCRIPT_SOURCE_EXTENSIONS } from './file-roles.js';
3
+ import { memberFiles } from './source-selection.js';
4
+ import { escapeForRegex } from './text-escapes.js';
5
+ const EXECUTABLE_EXTENSIONS = TYPESCRIPT_SOURCE_EXTENSIONS.filter((extension) => extension !== '.tsx');
6
+ const coverageRoots = (sourceRoots) => [...new Set(sourceRoots.map((root) => normalisedSourceRoot(root)))].filter((root) => root !== 'tests' && !root.startsWith('tests/'));
7
+ const rootPrefix = (root) => (root === '.' ? '' : `${root}/`);
8
+ // A source root is a directory name, not a project-supplied glob expression.
9
+ const globPrefix = (root) => escapeForRegex(rootPrefix(root)).replaceAll(/['"!]/g, String.raw `\$&`);
10
+ /** Patterns for executable TypeScript under a member's effective source roots. */
11
+ export const coverageIncludes = (sourceRoots) => coverageRoots(sourceRoots).flatMap((root) => EXECUTABLE_EXTENSIONS.map((extension) => `${globPrefix(root)}**/*${extension}`));
12
+ /** Whether a path is measured before project exclusions, retaining invariant test and declaration roles. */
13
+ export const isCoverageCandidate = (file, sourceRoots) => hasExtension(file, EXECUTABLE_EXTENSIONS) &&
14
+ !COVERAGE_ROLE_EXCLUDE.some((pattern) => matchesGlob(pattern, file)) &&
15
+ coverageRoots(sourceRoots).some((root) => file.startsWith(rootPrefix(root)));
16
+ /** Owned files remain inside the member even when its source root is the whole directory. */
17
+ export const coverageOwnedFiles = (files, siblingPaths) => memberFiles(files, siblingPaths);
18
+ /** Files measured by coverage before project exclusions, respecting member boundaries and invariant roles. */
19
+ export const coverageCandidates = (files, sourceRoots, siblingPaths) => coverageOwnedFiles(files, siblingPaths).filter((file) => isCoverageCandidate(file, sourceRoots));
20
+ /** Literal nested-member boundaries passed by the CLI, which owns repository discovery. */
21
+ export const coverageBoundaries = (siblingPaths) => siblingPaths.map((sibling) => `${globPrefix(normalisedSourceRoot(sibling))}**`);
22
+ /** Non-executable declarations and the test tree are roles, regardless of the containing source root. */
23
+ export const COVERAGE_ROLE_EXCLUDE = [
24
+ 'tests/**',
25
+ '**/node_modules/**',
26
+ '**/*.d.ts',
27
+ '**/*.d.mts',
28
+ '**/*.d.cts',
29
+ '**/*.spec.*',
30
+ '**/*.test.*',
31
+ ];
32
+ //# sourceMappingURL=coverage-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage-policy.js","sourceRoot":"","sources":["../src/coverage-policy.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,iBAAiB,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,MAAM,qBAAqB,GAAsB,4BAA4B,CAAC,MAAM,CAClF,CAAC,SAAiB,EAAW,EAAE,CAAC,SAAS,KAAK,MAAM,CACrD,CAAA;AAED,MAAM,aAAa,GAAG,CAAC,WAA8B,EAAqB,EAAE,CAC1E,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAY,EAAU,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CACxF,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAC1E,CAAA;AAEH,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAA;AAE7E,6EAA6E;AAC7E,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAA,KAAK,CAAC,CAAA;AAEnH,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,WAA8B,EAAqB,EAAE,CACpF,aAAa,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,EAAqB,EAAE,CACrE,qBAAqB,CAAC,GAAG,CAAC,CAAC,SAAiB,EAAU,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC,CAChG,CAAA;AAEH,4GAA4G;AAC5G,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,WAA8B,EAAW,EAAE,CAC3F,YAAY,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACzC,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAe,EAAW,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACrF,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAE/F,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAwB,EAAE,YAA+B,EAAqB,EAAE,CACjH,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;AAElC,8GAA8G;AAC9G,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAwB,EACxB,WAA8B,EAC9B,YAA+B,EACZ,EAAE,CACrB,kBAAkB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;AAEnH,2FAA2F;AAC3F,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,YAA+B,EAAqB,EAAE,CACvF,YAAY,CAAC,GAAG,CAAC,CAAC,OAAe,EAAU,EAAE,CAAC,GAAG,UAAU,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAA;AAEjG,yGAAyG;AACzG,MAAM,CAAC,MAAM,qBAAqB,GAAsB;IACtD,UAAU;IACV,oBAAoB;IACpB,WAAW;IACX,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,aAAa;CACd,CAAA"}
@@ -1,4 +1,4 @@
1
- // Doc-rot policy: the pure logic that finds references in the agent docs (AGENTS.md, CLAUDE.md) which
1
+ // Doc-rot policy: the pure logic that finds references in the agent docs (AGENTS.md) which
2
2
  // no longer match reality. The `docs` gate in packages/cli/src/checks/references.ts reads the files.
3
3
  //
4
4
  // Two reference kinds are validated, both chosen to be HIGH-SIGNAL and false-positive-free:
@@ -82,7 +82,7 @@ export const findDocumentReferenceViolations = (inputs) => {
82
82
  // from the member list alone would have stopped reading the root's own docs, trading one blind spot
83
83
  // for the other.
84
84
  /** The instruction files an agent reads, in the order it meets them. */
85
- const DOCUMENT_FILES = ['AGENTS.md', 'CLAUDE.md'];
85
+ const DOCUMENT_FILES = ['AGENTS.md'];
86
86
  const joinPath = (directory, file) => directory === ROOT_MEMBER_PATH ? file : `${directory}/${file}`;
87
87
  /**
88
88
  * Locate every agent instruction file this repository holds.
@@ -1 +1 @@
1
- {"version":3,"file":"document-references.js","sourceRoot":"","sources":["../src/document-references.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-references.js","sourceRoot":"","sources":["../src/document-references.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,qGAAqG;AACrG,EAAE;AACF,4FAA4F;AAC5F,wGAAwG;AACxG,sFAAsF;AACtF,uGAAuG;AACvG,uGAAuG;AACvG,+FAA+F;AAC/F,oGAAoG;AACpG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AA2BxD,MAAM,cAAc,GAAW,YAAY,CAAA;AAC3C,MAAM,QAAQ,GAAW,6BAA6B,CAAA;AACtD,uGAAuG;AACvG,wGAAwG;AACxG,sGAAsG;AACtG,kGAAkG;AAClG,sGAAsG;AACtG,4BAA4B;AAC5B,MAAM,YAAY,GAAW,0FAA0F,CAAA;AACvH,MAAM,cAAc,GAAW,8DAA8D,CAAA;AAC7F,MAAM,eAAe,GAAW,WAAW,CAAA;AAE3C,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAqB,EAAE,CAC7D,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;AAE9F,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAqB,EAAE,CAC7D,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAA;AAElG,sGAAsG;AACtG,gEAAgE;AAChE,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;AAElF,MAAM,uBAAuB,GAAG,CAAC,QAAgB,EAAuB,EAAE;IACxE,MAAM,UAAU,GAAsB,cAAc,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAa,EAAW,EAAE,CAC/F,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CACzB,CAAA;IACD,OAAO,IAAI,GAAG,CAAC,CAAC,GAAG,UAAU,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;AAC9D,CAAC,CAAA;AAED,mGAAmG;AACnG,qGAAqG;AACrG,sGAAsG;AACtG,+FAA+F;AAC/F,EAAE;AACF,uGAAuG;AACvG,kGAAkG;AAClG,gFAAgF;AAChF,MAAM,qBAAqB,GAAW,CAAC,CAAA;AAEvC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAU,EAAE;IACjD,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC,GAAsB,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAA;IAC5F,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AAC7D,CAAC,CAAA;AAED,MAAM,qBAAqB,GAAG,CAAC,QAAgB,EAAE,YAAiC,EAAuB,EAAE;IACzG,MAAM,KAAK,GAAsB,cAAc,CAAC,QAAQ,CAAC;SACtD,MAAM,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;SAC/E,GAAG,CAAC,CAAC,KAAa,EAAU,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;SACxD,MAAM,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtF,MAAM,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACjF,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;AACvB,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,MAA+B,EAAgC,EAAE;IAC/G,MAAM,gBAAgB,GAAiC,CAAC,GAAG,uBAAuB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;SACjG,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;SACpG,GAAG,CACF,CAAC,IAAY,EAAqB,EAAE,CAAC,CAAC;QACpC,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,oCAAoC;KAC7C,CAAC,CACH,CAAA;IAEH,MAAM,cAAc,GAAiC,CAAC,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;SAClH,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;SAC/D,GAAG,CACF,CAAC,IAAY,EAAqB,EAAE,CAAC,CAAC;QACpC,SAAS,EAAE,IAAI;QACf,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,gCAAgC;KACzC,CAAC,CACH,CAAA;IAEH,OAAO,CAAC,GAAG,gBAAgB,EAAE,GAAG,cAAc,CAAC,CAAA;AACjD,CAAC,CAAA;AAED,mGAAmG;AACnG,uGAAuG;AACvG,uGAAuG;AACvG,4FAA4F;AAC5F,EAAE;AACF,gGAAgG;AAChG,mGAAmG;AACnG,qGAAqG;AACrG,oGAAoG;AACpG,iBAAiB;AAEjB,wEAAwE;AACxE,MAAM,cAAc,GAAsB,CAAC,WAAW,CAAC,CAAA;AAUvD,MAAM,QAAQ,GAAG,CAAC,SAAiB,EAAE,IAAY,EAAU,EAAE,CAC3D,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAA;AAEhE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,WAA8B,EAC9B,cAAiD,EACpB,EAAE,CAC/B,CAAC,gBAAgB,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;KAC5F,OAAO,CAAC,CAAC,SAAiB,EAA+B,EAAE,CAC1D,cAAc,CAAC,GAAG,CAAC,CAAC,IAAY,EAAoB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CACzG;KACA,MAAM,CAAC,CAAC,QAA0B,EAAW,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA"}
@@ -36,7 +36,8 @@ export declare const portOf: (serverUrl: string) => string | undefined;
36
36
  * to carry as empty rather than absent.
37
37
  * @param current the environment the run already has, typically `process.env`.
38
38
  * @param parsedFiles the parsed files, in the order {@link runEnvironmentFiles} returned them.
39
+ * @param defaults analysis placeholders used only when neither the current environment nor files supply a value.
39
40
  * @returns the names the run does not carry, each with the value of the FIRST file to declare it.
40
41
  */
41
- export declare const runEnvironmentOverrides: (current: Readonly<Record<string, string | undefined>>, parsedFiles: readonly Readonly<Record<string, string | undefined>>[]) => Readonly<Record<string, string>>;
42
+ export declare const runEnvironmentOverrides: (current: Readonly<Record<string, string | undefined>>, parsedFiles: readonly Readonly<Record<string, string | undefined>>[], defaults?: Readonly<Record<string, string | undefined>>) => Readonly<Record<string, string>>;
42
43
  //# sourceMappingURL=environment-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environment-files.d.ts","sourceRoot":"","sources":["../src/environment-files.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA2B,CAAA;AAE9E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,gBAAgB,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,KAAG,SAAS,MAAM,EACxB,CAAA;AAE/E;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,GAAI,WAAW,MAAM,KAAG,MAAM,GAAG,SASnD,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EACrD,aAAa,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,KACnE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa/B,CAAA"}
1
+ {"version":3,"file":"environment-files.d.ts","sourceRoot":"","sources":["../src/environment-files.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA2B,CAAA;AAE9E;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,gBAAgB,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,KAAG,SAAS,MAAM,EACxB,CAAA;AAE/E;;;;;;;;;GASG;AACH,eAAO,MAAM,MAAM,GAAI,WAAW,MAAM,KAAG,MAAM,GAAG,SASnD,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EACrD,aAAa,SAAS,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,EACpE,WAAU,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAM,KAC1D,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAa/B,CAAA"}
@@ -47,9 +47,10 @@ export const portOf = (serverUrl) => {
47
47
  * to carry as empty rather than absent.
48
48
  * @param current the environment the run already has, typically `process.env`.
49
49
  * @param parsedFiles the parsed files, in the order {@link runEnvironmentFiles} returned them.
50
+ * @param defaults analysis placeholders used only when neither the current environment nor files supply a value.
50
51
  * @returns the names the run does not carry, each with the value of the FIRST file to declare it.
51
52
  */
52
- export const runEnvironmentOverrides = (current, parsedFiles) => Object.fromEntries(parsedFiles
53
+ export const runEnvironmentOverrides = (current, parsedFiles, defaults = {}) => Object.fromEntries([...parsedFiles, defaults]
53
54
  .flatMap((file) => Object.entries(file))
54
55
  .filter((entry) => entry[1] !== undefined && current[entry[0]] === undefined)
55
56
  // Among the files the earliest wins, and `Object.fromEntries` gives the LAST entry for a repeated
@@ -1 +1 @@
1
- {"version":3,"file":"environment-files.js","sourceRoot":"","sources":["../src/environment-files.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,cAAiD,EAAqB,EAAE,CAC1G,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;AAE/E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAsB,EAAE;IAC9D,IAAI,CAAC;QACH,MAAM,IAAI,GAAW,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;QAC5C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,+FAA+F;QAC/F,kFAAkF;QAClF,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,OAAqD,EACrD,WAAoE,EAClC,EAAE,CACpC,MAAM,CAAC,WAAW,CAChB,WAAW;KACR,OAAO,CAAC,CAAC,IAAkD,EAA2C,EAAE,CACvG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CACrB;KACA,MAAM,CACL,CAAC,KAA4C,EAA6B,EAAE,CAC1E,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAC5D;IACD,kGAAkG;IAClG,mEAAmE;KAClE,UAAU,EAAE,CAChB,CAAA"}
1
+ {"version":3,"file":"environment-files.js","sourceRoot":"","sources":["../src/environment-files.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAE1F;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,cAAiD,EAAqB,EAAE,CAC1G,qBAAqB,CAAC,MAAM,CAAC,CAAC,IAAY,EAAW,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAA;AAE/E;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAsB,EAAE;IAC9D,IAAI,CAAC;QACH,MAAM,IAAI,GAAW,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,CAAA;QAC5C,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3C,CAAC;IAAC,MAAM,CAAC;QACP,+FAA+F;QAC/F,kFAAkF;QAClF,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACrC,OAAqD,EACrD,WAAoE,EACpE,WAAyD,EAAE,EACzB,EAAE,CACpC,MAAM,CAAC,WAAW,CAChB,CAAC,GAAG,WAAW,EAAE,QAAQ,CAAC;KACvB,OAAO,CAAC,CAAC,IAAkD,EAA2C,EAAE,CACvG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CACrB;KACA,MAAM,CACL,CAAC,KAA4C,EAA6B,EAAE,CAC1E,KAAK,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAC5D;IACD,kGAAkG;IAClG,mEAAmE;KAClE,UAAU,EAAE,CAChB,CAAA"}
@@ -1,4 +1,14 @@
1
+ /** Normalize a declared source directory without allowing it to escape the member. */
2
+ export declare const normalisedSourceRoot: (root: string) => string;
3
+ /** Match literal member-relative directories, including the explicitly declared member root. */
4
+ export declare const isWithinSourceRoots: (file: string, roots: readonly string[]) => boolean;
5
+ /** TypeScript source formats accepted by the harness, independent of a file's test or generated role. */
6
+ export declare const TYPESCRIPT_SOURCE_EXTENSIONS: readonly string[];
1
7
  /** Extensions the Code Rules apply to, used where a rule is about code rather than about any text. */
8
+ export declare const JAVASCRIPT_EXTENSIONS: readonly string[];
9
+ /** Every stylesheet format supported by the stylesheet gate. */
10
+ export declare const STYLESHEET_EXTENSIONS: readonly string[];
11
+ /** Extensions the Code Rules govern. */
2
12
  export declare const CODE_EXTENSIONS: readonly string[];
3
13
  /** Extensions whose role is prose, where a code-shaped rule such as a line cap does not apply. */
4
14
  export declare const PROSE_EXTENSIONS: readonly string[];
@@ -19,6 +29,9 @@ export declare const hasExtension: (filePath: string, extensions: readonly strin
19
29
  export type RolePattern = string | {
20
30
  readonly memberPath: string;
21
31
  readonly pattern: string;
32
+ } | {
33
+ readonly repositoryPath: string;
34
+ readonly pattern: string;
22
35
  };
23
36
  /**
24
37
  * Decide whether a path is excluded by a declared role pattern.
@@ -27,12 +40,7 @@ export type RolePattern = string | {
27
40
  * @returns true when any pattern matches.
28
41
  */
29
42
  export declare const matchesRole: (filePath: string, patterns: readonly RolePattern[]) => boolean;
30
- /**
31
- * Whether a repo-relative path matches a glob pattern of the kind the coverage settings carry.
32
- * @param pattern the glob, such as `src/app/**` or `src/**\/*.tsx`.
33
- * @param filePath the repo-relative path to test.
34
- * @returns whether the whole path matches the whole pattern.
35
- */
43
+ /** Match the complete path, allowing brace alternatives and literal framework directory names. */
36
44
  export declare const matchesGlob: (pattern: string, filePath: string) => boolean;
37
45
  /**
38
46
  * Decide whether a path holds code the Code Rules govern.
@@ -1 +1 @@
1
- {"version":3,"file":"file-roles.d.ts","sourceRoot":"","sources":["../src/file-roles.ts"],"names":[],"mappings":"AASA,sGAAsG;AACtG,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAW5C,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAA6B,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,UAAU,KAAG,OACoE,CAAA;AAEjH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,EAAE,YAAY,SAAS,MAAM,EAAE,KAAG,OACA,CAAA;AAE/E,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAU5F;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,OACI,CAAA;AA2BrF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,OACkD,CAAA;AAElH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,OACP,CAAA"}
1
+ {"version":3,"file":"file-roles.d.ts","sourceRoot":"","sources":["../src/file-roles.ts"],"names":[],"mappings":"AAKA,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,KAAG,MAMnD,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,EAAE,OAAO,SAAS,MAAM,EAAE,KAAG,OAIzE,CAAA;AAQJ,yGAAyG;AACzG,eAAO,MAAM,4BAA4B,EAAE,SAAS,MAAM,EAAoC,CAAA;AAE9F,sGAAsG;AACtG,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAoC,CAAA;AAEvF,gEAAgE;AAChE,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAAsB,CAAA;AAEzE,wCAAwC;AACxC,eAAO,MAAM,eAAe,EAAE,SAAS,MAAM,EAI5C,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAA6B,CAAA;AAE3E;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,UAAU,KAAG,OACoE,CAAA;AAEjH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,UAAU,MAAM,EAAE,YAAY,SAAS,MAAM,EAAE,KAAG,OACA,CAAA;AAE/E,2FAA2F;AAC3F,MAAM,MAAM,WAAW,GACnB,MAAM,GACN;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzD;IAAE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAajE;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,OACI,CAAA;AAwBrF,kGAAkG;AAClG,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,KAAG,OAG7D,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,EAAE,UAAU,SAAS,WAAW,EAAE,KAAG,OACP,CAAA"}
@@ -1,22 +1,36 @@
1
1
  // Identify source, generated, binary, and prose roles so exclusions follow file meaning rather than tool defaults.
2
2
  import { isUtf8 } from 'node:buffer';
3
+ import path from 'node:path';
4
+ import { globAlternatives } from './glob-alternatives.js';
5
+ /** Normalize a declared source directory without allowing it to escape the member. */
6
+ export const normalisedSourceRoot = (root) => {
7
+ const normalised = path.posix.normalize(root);
8
+ if (normalised === '..' || root.length === 0 || path.posix.isAbsolute(normalised) || normalised.startsWith('../')) {
9
+ throw new TypeError('ploaness.sourceRoots must name directories within the member; use a member-relative path');
10
+ }
11
+ return normalised.endsWith('/') ? normalised.slice(0, -1) : normalised;
12
+ };
13
+ /** Match literal member-relative directories, including the explicitly declared member root. */
14
+ export const isWithinSourceRoots = (file, roots) => roots.some((root) => {
15
+ const normalised = normalisedSourceRoot(root);
16
+ return normalised === '.' || file.startsWith(`${normalised}/`);
17
+ });
3
18
  const NUL_BYTE = 0;
4
19
  // A PDF can use ASCII for every object and stream and still carry byte offsets that formatting would break.
5
20
  const PDF_HEADER_BYTES = 9;
6
21
  const PDF_HEADER = /^%PDF-\d\.\d[\r\n]/;
7
22
  const UTF8 = new TextDecoder();
23
+ /** TypeScript source formats accepted by the harness, independent of a file's test or generated role. */
24
+ export const TYPESCRIPT_SOURCE_EXTENSIONS = ['.ts', '.tsx', '.mts', '.cts'];
8
25
  /** Extensions the Code Rules apply to, used where a rule is about code rather than about any text. */
26
+ export const JAVASCRIPT_EXTENSIONS = ['.js', '.jsx', '.mjs', '.cjs'];
27
+ /** Every stylesheet format supported by the stylesheet gate. */
28
+ export const STYLESHEET_EXTENSIONS = ['.css', '.scss'];
29
+ /** Extensions the Code Rules govern. */
9
30
  export const CODE_EXTENSIONS = [
10
- '.ts',
11
- '.tsx',
12
- '.jsx',
13
- '.mts',
14
- '.cts',
15
- '.js',
16
- '.mjs',
17
- '.cjs',
18
- '.css',
19
- '.scss',
31
+ ...TYPESCRIPT_SOURCE_EXTENSIONS,
32
+ ...JAVASCRIPT_EXTENSIONS,
33
+ ...STYLESHEET_EXTENSIONS,
20
34
  ];
21
35
  /** Extensions whose role is prose, where a code-shaped rule such as a line cap does not apply. */
22
36
  export const PROSE_EXTENSIONS = ['.md', '.adoc', '.txt'];
@@ -37,6 +51,9 @@ const matchesPattern = (filePath, pattern) => {
37
51
  if (typeof pattern === 'string') {
38
52
  return new RegExp(pattern).test(filePath);
39
53
  }
54
+ if ('repositoryPath' in pattern) {
55
+ return new RegExp(pattern.pattern).test(`${pattern.repositoryPath}/${filePath}`);
56
+ }
40
57
  const prefix = `${pattern.memberPath}/`;
41
58
  return filePath.startsWith(prefix) && new RegExp(pattern.pattern).test(filePath.slice(prefix.length));
42
59
  };
@@ -47,12 +64,9 @@ const matchesPattern = (filePath, pattern) => {
47
64
  * @returns true when any pattern matches.
48
65
  */
49
66
  export const matchesRole = (filePath, patterns) => patterns.some((pattern) => matchesPattern(filePath, pattern));
50
- // The glob dialect the coverage settings are written in, which is not the regex dialect `matchesRole`
51
- // reads. `**/` crosses directory boundaries and `*` does not, which is the whole distinction between
52
- // `src/**/*.tsx` and `src/*.tsx`; collapsing the two would silently widen every pattern that uses one.
53
- const GLOB_TOKEN = /\*\*\/|\*\*|[*?.+^${}()|[\]\\]/g;
54
- const asRegexToken = (token) => {
55
- switch (token) {
67
+ const GLOB_PARTS = /\*\*\/|\*\*|[*?.+^${}()|[\]\\]/g;
68
+ const regexPart = (part) => {
69
+ switch (part) {
56
70
  case '**/': {
57
71
  return '(?:[^/]*/)*';
58
72
  }
@@ -66,17 +80,12 @@ const asRegexToken = (token) => {
66
80
  return '[^/]';
67
81
  }
68
82
  default: {
69
- return `\\${token}`;
83
+ return `\\${part}`;
70
84
  }
71
85
  }
72
86
  };
73
- /**
74
- * Whether a repo-relative path matches a glob pattern of the kind the coverage settings carry.
75
- * @param pattern the glob, such as `src/app/**` or `src/**\/*.tsx`.
76
- * @param filePath the repo-relative path to test.
77
- * @returns whether the whole path matches the whole pattern.
78
- */
79
- export const matchesGlob = (pattern, filePath) => new RegExp(`^${pattern.replaceAll(GLOB_TOKEN, (token) => asRegexToken(token))}$`).test(filePath);
87
+ /** Match the complete path, allowing brace alternatives and literal framework directory names. */
88
+ export const matchesGlob = (pattern, filePath) => globAlternatives(pattern).some((alternative) => new RegExp(`^${alternative.replaceAll(GLOB_PARTS, (part) => regexPart(part))}$`).test(filePath));
80
89
  /**
81
90
  * Decide whether a path holds code the Code Rules govern.
82
91
  * @param filePath the repo-relative path.
@@ -1 +1 @@
1
- {"version":3,"file":"file-roles.js","sourceRoot":"","sources":["../src/file-roles.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,MAAM,QAAQ,GAAW,CAAC,CAAA;AAC1B,4GAA4G;AAC5G,MAAM,gBAAgB,GAAW,CAAC,CAAA;AAClC,MAAM,UAAU,GAAW,oBAAoB,CAAA;AAC/C,MAAM,IAAI,GAAgB,IAAI,WAAW,EAAE,CAAA;AAE3C,sGAAsG;AACtG,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;CACR,CAAA;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,gBAAgB,GAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAE3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAAW,EAAE,CACrD,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAEjH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,UAA6B,EAAW,EAAE,CACvF,UAAU,CAAC,IAAI,CAAC,CAAC,SAAiB,EAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AAK/E,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,OAAoB,EAAW,EAAE;IACzE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IACD,MAAM,MAAM,GAAW,GAAG,OAAO,CAAC,UAAU,GAAG,CAAA;IAC/C,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AACvG,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,QAAgC,EAAW,EAAE,CACzF,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAoB,EAAW,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;AAErF,sGAAsG;AACtG,qGAAqG;AACrG,uGAAuG;AACvG,MAAM,UAAU,GAAW,iCAAiC,CAAA;AAE5D,MAAM,YAAY,GAAG,CAAC,KAAa,EAAU,EAAE;IAC7C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,aAAa,CAAA;QACtB,CAAC;QACD,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,KAAK,KAAK,EAAE,CAAA;QACrB,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAW,EAAE,CACxE,IAAI,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AAElH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,QAAgC,EAAW,EAAE,CAC5F,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA"}
1
+ {"version":3,"file":"file-roles.js","sourceRoot":"","sources":["../src/file-roles.ts"],"names":[],"mappings":"AAAA,mHAAmH;AACnH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAU,EAAE;IAC3D,MAAM,UAAU,GAAW,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IACrD,IAAI,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAClH,MAAM,IAAI,SAAS,CAAC,0FAA0F,CAAC,CAAA;IACjH,CAAC;IACD,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AACxE,CAAC,CAAA;AAED,gGAAgG;AAChG,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAE,KAAwB,EAAW,EAAE,CACrF,KAAK,CAAC,IAAI,CAAC,CAAC,IAAY,EAAW,EAAE;IACnC,MAAM,UAAU,GAAW,oBAAoB,CAAC,IAAI,CAAC,CAAA;IACrD,OAAO,UAAU,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,UAAU,GAAG,CAAC,CAAA;AAChE,CAAC,CAAC,CAAA;AAEJ,MAAM,QAAQ,GAAW,CAAC,CAAA;AAC1B,4GAA4G;AAC5G,MAAM,gBAAgB,GAAW,CAAC,CAAA;AAClC,MAAM,UAAU,GAAW,oBAAoB,CAAA;AAC/C,MAAM,IAAI,GAAgB,IAAI,WAAW,EAAE,CAAA;AAE3C,yGAAyG;AACzG,MAAM,CAAC,MAAM,4BAA4B,GAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAE9F,sGAAsG;AACtG,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;AAEvF,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAEzE,wCAAwC;AACxC,MAAM,CAAC,MAAM,eAAe,GAAsB;IAChD,GAAG,4BAA4B;IAC/B,GAAG,qBAAqB;IACxB,GAAG,qBAAqB;CACzB,CAAA;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,gBAAgB,GAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AAE3E;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAAW,EAAE,CACrD,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;AAEjH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAE,UAA6B,EAAW,EAAE,CACvF,UAAU,CAAC,IAAI,CAAC,CAAC,SAAiB,EAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;AAQ/E,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,OAAoB,EAAW,EAAE;IACzE,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IACD,IAAI,gBAAgB,IAAI,OAAO,EAAE,CAAC;QAChC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,cAAc,IAAI,QAAQ,EAAE,CAAC,CAAA;IAClF,CAAC;IACD,MAAM,MAAM,GAAW,GAAG,OAAO,CAAC,UAAU,GAAG,CAAA;IAC/C,OAAO,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;AACvG,CAAC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,QAAgC,EAAW,EAAE,CACzF,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAoB,EAAW,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;AAErF,MAAM,UAAU,GAAW,iCAAiC,CAAA;AAE5D,MAAM,SAAS,GAAG,CAAC,IAAY,EAAU,EAAE;IACzC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC,CAAC,CAAC;YACX,OAAO,aAAa,CAAA;QACtB,CAAC;QACD,KAAK,IAAI,CAAC,CAAC,CAAC;YACV,OAAO,IAAI,CAAA;QACb,CAAC;QACD,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,OAAO,OAAO,CAAA;QAChB,CAAC;QACD,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,OAAO,MAAM,CAAA;QACf,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,KAAK,IAAI,EAAE,CAAA;QACpB,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAW,EAAE,CACxE,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAmB,EAAW,EAAE,CAC9D,IAAI,MAAM,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAChH,CAAA;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,QAAgC,EAAW,EAAE,CAC5F,YAAY,CAAC,QAAQ,EAAE,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** Expand bounded brace alternatives without filesystem access. */
2
+ export declare const globAlternatives: (pattern: string) => readonly string[];
3
+ //# sourceMappingURL=glob-alternatives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob-alternatives.d.ts","sourceRoot":"","sources":["../src/glob-alternatives.ts"],"names":[],"mappings":"AA8BA,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,GAAI,SAAS,MAAM,KAAG,SAAS,MAAM,EAAuC,CAAA"}
@@ -0,0 +1,26 @@
1
+ /** Bound brace expansion so a configuration cannot consume unbounded analyzer resources. */
2
+ const MAX_ALTERNATIVES = 256;
3
+ const MIN_CHOICES = 2;
4
+ const INNER_BRACES = /\{([^{}]*)\}/u;
5
+ /** Expand comma-separated brace alternatives, retaining all other glob syntax verbatim. */
6
+ const expand = (pattern, budget) => {
7
+ const group = INNER_BRACES.exec(pattern);
8
+ if (group === null) {
9
+ if (pattern.includes('{') || pattern.includes('}')) {
10
+ throw new Error(`invalid glob "${pattern}": unbalanced braces; use balanced comma-separated alternatives`);
11
+ }
12
+ return [pattern];
13
+ }
14
+ const choices = (group[1] ?? '').split(',');
15
+ if (choices.length < MIN_CHOICES || choices.some((choice) => choice.length === 0)) {
16
+ throw new Error(`invalid glob "${pattern}": braces require nonempty comma-separated alternatives`);
17
+ }
18
+ if (choices.length > budget) {
19
+ throw new Error(`glob "${pattern}" exceeds ${String(MAX_ALTERNATIVES)} alternatives; split the declaration`);
20
+ }
21
+ const expanded = choices.flatMap((choice) => expand(`${pattern.slice(0, group.index)}${choice}${pattern.slice(group.index + group[0].length)}`, budget / choices.length));
22
+ return expanded;
23
+ };
24
+ /** Expand bounded brace alternatives without filesystem access. */
25
+ export const globAlternatives = (pattern) => expand(pattern, MAX_ALTERNATIVES);
26
+ //# sourceMappingURL=glob-alternatives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob-alternatives.js","sourceRoot":"","sources":["../src/glob-alternatives.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,gBAAgB,GAAW,GAAG,CAAA;AACpC,MAAM,WAAW,GAAW,CAAC,CAAA;AAC7B,MAAM,YAAY,GAAW,eAAe,CAAA;AAE5C,2FAA2F;AAC3F,MAAM,MAAM,GAAG,CAAC,OAAe,EAAE,MAAc,EAAqB,EAAE;IACpE,MAAM,KAAK,GAA2B,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,iEAAiE,CAAC,CAAA;QAC5G,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IACD,MAAM,OAAO,GAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACnG,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,yDAAyD,CAAC,CAAA;IACpG,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,aAAa,MAAM,CAAC,gBAAgB,CAAC,sCAAsC,CAAC,CAAA;IAC9G,CAAC;IACD,MAAM,QAAQ,GAAsB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAc,EAAqB,EAAE,CACxF,MAAM,CACJ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAC1F,MAAM,GAAG,OAAO,CAAC,MAAM,CACxB,CACF,CAAA;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAqB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA"}