@endora-commerce/cli 0.100.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 (356) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +37 -0
  3. package/dist/bin/endora.d.ts +28 -0
  4. package/dist/bin/endora.d.ts.map +1 -0
  5. package/dist/bin/endora.js +926 -0
  6. package/dist/bin/endora.js.map +1 -0
  7. package/dist/check/estate.d.ts +189 -0
  8. package/dist/check/estate.d.ts.map +1 -0
  9. package/dist/check/estate.js +1037 -0
  10. package/dist/check/estate.js.map +1 -0
  11. package/dist/check/hosts.d.ts +25 -0
  12. package/dist/check/hosts.d.ts.map +1 -0
  13. package/dist/check/hosts.js +1347 -0
  14. package/dist/check/hosts.js.map +1 -0
  15. package/dist/check/index.d.ts +60 -0
  16. package/dist/check/index.d.ts.map +1 -0
  17. package/dist/check/index.js +111 -0
  18. package/dist/check/index.js.map +1 -0
  19. package/dist/check/layout.d.ts +136 -0
  20. package/dist/check/layout.d.ts.map +1 -0
  21. package/dist/check/layout.js +262 -0
  22. package/dist/check/layout.js.map +1 -0
  23. package/dist/check/ledger.d.ts +98 -0
  24. package/dist/check/ledger.d.ts.map +1 -0
  25. package/dist/check/ledger.js +173 -0
  26. package/dist/check/ledger.js.map +1 -0
  27. package/dist/check/peer-owners.d.ts +116 -0
  28. package/dist/check/peer-owners.d.ts.map +1 -0
  29. package/dist/check/peer-owners.js +225 -0
  30. package/dist/check/peer-owners.js.map +1 -0
  31. package/dist/check/report.d.ts +33 -0
  32. package/dist/check/report.d.ts.map +1 -0
  33. package/dist/check/report.js +107 -0
  34. package/dist/check/report.js.map +1 -0
  35. package/dist/check/run.d.ts +147 -0
  36. package/dist/check/run.d.ts.map +1 -0
  37. package/dist/check/run.js +111 -0
  38. package/dist/check/run.js.map +1 -0
  39. package/dist/checks.d.ts +17 -0
  40. package/dist/checks.d.ts.map +1 -0
  41. package/dist/checks.js +17 -0
  42. package/dist/checks.js.map +1 -0
  43. package/dist/dev/index.d.ts +83 -0
  44. package/dist/dev/index.d.ts.map +1 -0
  45. package/dist/dev/index.js +298 -0
  46. package/dist/dev/index.js.map +1 -0
  47. package/dist/generate/divergence.d.ts +38 -0
  48. package/dist/generate/divergence.d.ts.map +1 -0
  49. package/dist/generate/divergence.js +237 -0
  50. package/dist/generate/divergence.js.map +1 -0
  51. package/dist/generate/index.d.ts +90 -0
  52. package/dist/generate/index.d.ts.map +1 -0
  53. package/dist/generate/index.js +369 -0
  54. package/dist/generate/index.js.map +1 -0
  55. package/dist/index.d.ts +23 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +35 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/inputs/declaration.d.ts +18 -0
  60. package/dist/inputs/declaration.d.ts.map +1 -0
  61. package/dist/inputs/declaration.js +64 -0
  62. package/dist/inputs/declaration.js.map +1 -0
  63. package/dist/inputs/env-file.d.ts +73 -0
  64. package/dist/inputs/env-file.d.ts.map +1 -0
  65. package/dist/inputs/env-file.js +134 -0
  66. package/dist/inputs/env-file.js.map +1 -0
  67. package/dist/inputs/prompt.d.ts +21 -0
  68. package/dist/inputs/prompt.d.ts.map +1 -0
  69. package/dist/inputs/prompt.js +59 -0
  70. package/dist/inputs/prompt.js.map +1 -0
  71. package/dist/inputs/resolve.d.ts +163 -0
  72. package/dist/inputs/resolve.d.ts.map +1 -0
  73. package/dist/inputs/resolve.js +290 -0
  74. package/dist/inputs/resolve.js.map +1 -0
  75. package/dist/install/host.d.ts +27 -0
  76. package/dist/install/host.d.ts.map +1 -0
  77. package/dist/install/host.js +90 -0
  78. package/dist/install/host.js.map +1 -0
  79. package/dist/install/index.d.ts +173 -0
  80. package/dist/install/index.d.ts.map +1 -0
  81. package/dist/install/index.js +793 -0
  82. package/dist/install/index.js.map +1 -0
  83. package/dist/install/wizard.d.ts +144 -0
  84. package/dist/install/wizard.d.ts.map +1 -0
  85. package/dist/install/wizard.js +362 -0
  86. package/dist/install/wizard.js.map +1 -0
  87. package/dist/lib/admin-artefacts.d.ts +70 -0
  88. package/dist/lib/admin-artefacts.d.ts.map +1 -0
  89. package/dist/lib/admin-artefacts.js +354 -0
  90. package/dist/lib/admin-artefacts.js.map +1 -0
  91. package/dist/lib/admin-surfaces.d.ts +298 -0
  92. package/dist/lib/admin-surfaces.d.ts.map +1 -0
  93. package/dist/lib/admin-surfaces.js +669 -0
  94. package/dist/lib/admin-surfaces.js.map +1 -0
  95. package/dist/lib/delegated-composer.d.ts +85 -0
  96. package/dist/lib/delegated-composer.d.ts.map +1 -0
  97. package/dist/lib/delegated-composer.js +241 -0
  98. package/dist/lib/delegated-composer.js.map +1 -0
  99. package/dist/lib/divergence-artefacts.d.ts +305 -0
  100. package/dist/lib/divergence-artefacts.d.ts.map +1 -0
  101. package/dist/lib/divergence-artefacts.js +828 -0
  102. package/dist/lib/divergence-artefacts.js.map +1 -0
  103. package/dist/lib/divergence.d.ts +337 -0
  104. package/dist/lib/divergence.d.ts.map +1 -0
  105. package/dist/lib/divergence.js +1005 -0
  106. package/dist/lib/divergence.js.map +1 -0
  107. package/dist/lib/docs-artefacts.d.ts +395 -0
  108. package/dist/lib/docs-artefacts.d.ts.map +1 -0
  109. package/dist/lib/docs-artefacts.js +781 -0
  110. package/dist/lib/docs-artefacts.js.map +1 -0
  111. package/dist/lib/emitted-exports.d.ts +21 -0
  112. package/dist/lib/emitted-exports.d.ts.map +1 -0
  113. package/dist/lib/emitted-exports.js +96 -0
  114. package/dist/lib/emitted-exports.js.map +1 -0
  115. package/dist/lib/emitted-freshness.d.ts +112 -0
  116. package/dist/lib/emitted-freshness.d.ts.map +1 -0
  117. package/dist/lib/emitted-freshness.js +288 -0
  118. package/dist/lib/emitted-freshness.js.map +1 -0
  119. package/dist/lib/entity-index-artefact.d.ts +95 -0
  120. package/dist/lib/entity-index-artefact.d.ts.map +1 -0
  121. package/dist/lib/entity-index-artefact.js +210 -0
  122. package/dist/lib/entity-index-artefact.js.map +1 -0
  123. package/dist/lib/instance-build-inputs.d.ts +108 -0
  124. package/dist/lib/instance-build-inputs.d.ts.map +1 -0
  125. package/dist/lib/instance-build-inputs.js +165 -0
  126. package/dist/lib/instance-build-inputs.js.map +1 -0
  127. package/dist/lib/module-docs.d.ts +473 -0
  128. package/dist/lib/module-docs.d.ts.map +1 -0
  129. package/dist/lib/module-docs.js +711 -0
  130. package/dist/lib/module-docs.js.map +1 -0
  131. package/dist/lib/module-package-subpaths.d.ts +56 -0
  132. package/dist/lib/module-package-subpaths.d.ts.map +1 -0
  133. package/dist/lib/module-package-subpaths.js +223 -0
  134. package/dist/lib/module-package-subpaths.js.map +1 -0
  135. package/dist/lib/module-packages.d.ts +200 -0
  136. package/dist/lib/module-packages.d.ts.map +1 -0
  137. package/dist/lib/module-packages.js +580 -0
  138. package/dist/lib/module-packages.js.map +1 -0
  139. package/dist/lib/module-population.d.ts +129 -0
  140. package/dist/lib/module-population.d.ts.map +1 -0
  141. package/dist/lib/module-population.js +172 -0
  142. package/dist/lib/module-population.js.map +1 -0
  143. package/dist/lib/module-roots.d.ts +337 -0
  144. package/dist/lib/module-roots.d.ts.map +1 -0
  145. package/dist/lib/module-roots.js +586 -0
  146. package/dist/lib/module-roots.js.map +1 -0
  147. package/dist/lib/nested-checkouts.d.ts +33 -0
  148. package/dist/lib/nested-checkouts.d.ts.map +1 -0
  149. package/dist/lib/nested-checkouts.js +160 -0
  150. package/dist/lib/nested-checkouts.js.map +1 -0
  151. package/dist/lib/platform-root.d.ts +43 -0
  152. package/dist/lib/platform-root.d.ts.map +1 -0
  153. package/dist/lib/platform-root.js +134 -0
  154. package/dist/lib/platform-root.js.map +1 -0
  155. package/dist/lib/platform-surface.d.ts +235 -0
  156. package/dist/lib/platform-surface.d.ts.map +1 -0
  157. package/dist/lib/platform-surface.js +393 -0
  158. package/dist/lib/platform-surface.js.map +1 -0
  159. package/dist/lib/port-registrations.d.ts +223 -0
  160. package/dist/lib/port-registrations.d.ts.map +1 -0
  161. package/dist/lib/port-registrations.js +532 -0
  162. package/dist/lib/port-registrations.js.map +1 -0
  163. package/dist/lib/read-size.d.ts +154 -0
  164. package/dist/lib/read-size.d.ts.map +1 -0
  165. package/dist/lib/read-size.js +182 -0
  166. package/dist/lib/read-size.js.map +1 -0
  167. package/dist/lib/registration-owners.d.ts +79 -0
  168. package/dist/lib/registration-owners.d.ts.map +1 -0
  169. package/dist/lib/registration-owners.js +77 -0
  170. package/dist/lib/registration-owners.js.map +1 -0
  171. package/dist/lib/release-index.d.ts +53 -0
  172. package/dist/lib/release-index.d.ts.map +1 -0
  173. package/dist/lib/release-index.js +162 -0
  174. package/dist/lib/release-index.js.map +1 -0
  175. package/dist/lib/repeating-timers.d.ts +79 -0
  176. package/dist/lib/repeating-timers.d.ts.map +1 -0
  177. package/dist/lib/repeating-timers.js +189 -0
  178. package/dist/lib/repeating-timers.js.map +1 -0
  179. package/dist/lib/source-text.d.ts +34 -0
  180. package/dist/lib/source-text.d.ts.map +1 -0
  181. package/dist/lib/source-text.js +80 -0
  182. package/dist/lib/source-text.js.map +1 -0
  183. package/dist/lib/specifiers.d.ts +20 -0
  184. package/dist/lib/specifiers.d.ts.map +1 -0
  185. package/dist/lib/specifiers.js +130 -0
  186. package/dist/lib/specifiers.js.map +1 -0
  187. package/dist/lib/sql-tables.d.ts +166 -0
  188. package/dist/lib/sql-tables.d.ts.map +1 -0
  189. package/dist/lib/sql-tables.js +464 -0
  190. package/dist/lib/sql-tables.js.map +1 -0
  191. package/dist/lib/switchable-modules.d.ts +54 -0
  192. package/dist/lib/switchable-modules.d.ts.map +1 -0
  193. package/dist/lib/switchable-modules.js +104 -0
  194. package/dist/lib/switchable-modules.js.map +1 -0
  195. package/dist/lib/tailwind-sources.d.ts +136 -0
  196. package/dist/lib/tailwind-sources.d.ts.map +1 -0
  197. package/dist/lib/tailwind-sources.js +307 -0
  198. package/dist/lib/tailwind-sources.js.map +1 -0
  199. package/dist/lib/ui-layer.d.ts +54 -0
  200. package/dist/lib/ui-layer.d.ts.map +1 -0
  201. package/dist/lib/ui-layer.js +57 -0
  202. package/dist/lib/ui-layer.js.map +1 -0
  203. package/dist/lib/workspace-packages.d.ts +186 -0
  204. package/dist/lib/workspace-packages.d.ts.map +1 -0
  205. package/dist/lib/workspace-packages.js +351 -0
  206. package/dist/lib/workspace-packages.js.map +1 -0
  207. package/dist/new-instance/deploy.d.ts +211 -0
  208. package/dist/new-instance/deploy.d.ts.map +1 -0
  209. package/dist/new-instance/deploy.js +1381 -0
  210. package/dist/new-instance/deploy.js.map +1 -0
  211. package/dist/new-instance/docs-toolchain.d.ts +66 -0
  212. package/dist/new-instance/docs-toolchain.d.ts.map +1 -0
  213. package/dist/new-instance/docs-toolchain.js +69 -0
  214. package/dist/new-instance/docs-toolchain.js.map +1 -0
  215. package/dist/new-instance/host.d.ts +124 -0
  216. package/dist/new-instance/host.d.ts.map +1 -0
  217. package/dist/new-instance/host.js +276 -0
  218. package/dist/new-instance/host.js.map +1 -0
  219. package/dist/new-instance/index.d.ts +118 -0
  220. package/dist/new-instance/index.d.ts.map +1 -0
  221. package/dist/new-instance/index.js +567 -0
  222. package/dist/new-instance/index.js.map +1 -0
  223. package/dist/new-instance/modules.d.ts +188 -0
  224. package/dist/new-instance/modules.d.ts.map +1 -0
  225. package/dist/new-instance/modules.js +392 -0
  226. package/dist/new-instance/modules.js.map +1 -0
  227. package/dist/new-instance/template.d.ts +505 -0
  228. package/dist/new-instance/template.d.ts.map +1 -0
  229. package/dist/new-instance/template.js +1886 -0
  230. package/dist/new-instance/template.js.map +1 -0
  231. package/dist/new-module/emit.d.ts +67 -0
  232. package/dist/new-module/emit.d.ts.map +1 -0
  233. package/dist/new-module/emit.js +1393 -0
  234. package/dist/new-module/emit.js.map +1 -0
  235. package/dist/new-module/host.d.ts +67 -0
  236. package/dist/new-module/host.d.ts.map +1 -0
  237. package/dist/new-module/host.js +224 -0
  238. package/dist/new-module/host.js.map +1 -0
  239. package/dist/new-module/index.d.ts +32 -0
  240. package/dist/new-module/index.d.ts.map +1 -0
  241. package/dist/new-module/index.js +193 -0
  242. package/dist/new-module/index.js.map +1 -0
  243. package/dist/new-module/spec.d.ts +188 -0
  244. package/dist/new-module/spec.d.ts.map +1 -0
  245. package/dist/new-module/spec.js +404 -0
  246. package/dist/new-module/spec.js.map +1 -0
  247. package/dist/new-module/text.d.ts +15 -0
  248. package/dist/new-module/text.d.ts.map +1 -0
  249. package/dist/new-module/text.js +22 -0
  250. package/dist/new-module/text.js.map +1 -0
  251. package/dist/new-storefront/dockerfile.d.ts +20 -0
  252. package/dist/new-storefront/dockerfile.d.ts.map +1 -0
  253. package/dist/new-storefront/dockerfile.js +131 -0
  254. package/dist/new-storefront/dockerfile.js.map +1 -0
  255. package/dist/new-storefront/gitignore.d.ts +23 -0
  256. package/dist/new-storefront/gitignore.d.ts.map +1 -0
  257. package/dist/new-storefront/gitignore.js +39 -0
  258. package/dist/new-storefront/gitignore.js.map +1 -0
  259. package/dist/new-storefront/index.d.ts +93 -0
  260. package/dist/new-storefront/index.d.ts.map +1 -0
  261. package/dist/new-storefront/index.js +329 -0
  262. package/dist/new-storefront/index.js.map +1 -0
  263. package/dist/new-storefront/npmrc.d.ts +98 -0
  264. package/dist/new-storefront/npmrc.d.ts.map +1 -0
  265. package/dist/new-storefront/npmrc.js +217 -0
  266. package/dist/new-storefront/npmrc.js.map +1 -0
  267. package/dist/new-storefront/reference.d.ts +189 -0
  268. package/dist/new-storefront/reference.d.ts.map +1 -0
  269. package/dist/new-storefront/reference.js +430 -0
  270. package/dist/new-storefront/reference.js.map +1 -0
  271. package/dist/new-storefront/rewrite.d.ts +171 -0
  272. package/dist/new-storefront/rewrite.d.ts.map +1 -0
  273. package/dist/new-storefront/rewrite.js +701 -0
  274. package/dist/new-storefront/rewrite.js.map +1 -0
  275. package/dist/release-index.json +284 -0
  276. package/dist/rules/action-route-permissions.d.ts +141 -0
  277. package/dist/rules/action-route-permissions.d.ts.map +1 -0
  278. package/dist/rules/action-route-permissions.js +556 -0
  279. package/dist/rules/action-route-permissions.js.map +1 -0
  280. package/dist/rules/bundle-pairing.d.ts +74 -0
  281. package/dist/rules/bundle-pairing.d.ts.map +1 -0
  282. package/dist/rules/bundle-pairing.js +281 -0
  283. package/dist/rules/bundle-pairing.js.map +1 -0
  284. package/dist/rules/channel-resolution.d.ts +17 -0
  285. package/dist/rules/channel-resolution.d.ts.map +1 -0
  286. package/dist/rules/channel-resolution.js +382 -0
  287. package/dist/rules/channel-resolution.js.map +1 -0
  288. package/dist/rules/command-coverage.d.ts +210 -0
  289. package/dist/rules/command-coverage.d.ts.map +1 -0
  290. package/dist/rules/command-coverage.js +714 -0
  291. package/dist/rules/command-coverage.js.map +1 -0
  292. package/dist/rules/container-imports.d.ts +60 -0
  293. package/dist/rules/container-imports.d.ts.map +1 -0
  294. package/dist/rules/container-imports.js +158 -0
  295. package/dist/rules/container-imports.js.map +1 -0
  296. package/dist/rules/default-language-prose.d.ts +212 -0
  297. package/dist/rules/default-language-prose.d.ts.map +1 -0
  298. package/dist/rules/default-language-prose.js +710 -0
  299. package/dist/rules/default-language-prose.js.map +1 -0
  300. package/dist/rules/diacritic-folds.d.ts +238 -0
  301. package/dist/rules/diacritic-folds.d.ts.map +1 -0
  302. package/dist/rules/diacritic-folds.js +681 -0
  303. package/dist/rules/diacritic-folds.js.map +1 -0
  304. package/dist/rules/entity-tenant-classification.d.ts +171 -0
  305. package/dist/rules/entity-tenant-classification.d.ts.map +1 -0
  306. package/dist/rules/entity-tenant-classification.js +323 -0
  307. package/dist/rules/entity-tenant-classification.js.map +1 -0
  308. package/dist/rules/entry-presence.d.ts +142 -0
  309. package/dist/rules/entry-presence.d.ts.map +1 -0
  310. package/dist/rules/entry-presence.js +339 -0
  311. package/dist/rules/entry-presence.js.map +1 -0
  312. package/dist/rules/entry-scope.d.ts +91 -0
  313. package/dist/rules/entry-scope.d.ts.map +1 -0
  314. package/dist/rules/entry-scope.js +404 -0
  315. package/dist/rules/entry-scope.js.map +1 -0
  316. package/dist/rules/env-inputs.d.ts +222 -0
  317. package/dist/rules/env-inputs.d.ts.map +1 -0
  318. package/dist/rules/env-inputs.js +951 -0
  319. package/dist/rules/env-inputs.js.map +1 -0
  320. package/dist/rules/kernel-boundary.d.ts +37 -0
  321. package/dist/rules/kernel-boundary.d.ts.map +1 -0
  322. package/dist/rules/kernel-boundary.js +195 -0
  323. package/dist/rules/kernel-boundary.js.map +1 -0
  324. package/dist/rules/nul-bytes.d.ts +233 -0
  325. package/dist/rules/nul-bytes.d.ts.map +1 -0
  326. package/dist/rules/nul-bytes.js +332 -0
  327. package/dist/rules/nul-bytes.js.map +1 -0
  328. package/dist/rules/platform-surface.d.ts +479 -0
  329. package/dist/rules/platform-surface.d.ts.map +1 -0
  330. package/dist/rules/platform-surface.js +749 -0
  331. package/dist/rules/platform-surface.js.map +1 -0
  332. package/dist/rules/port-catches.d.ts +225 -0
  333. package/dist/rules/port-catches.d.ts.map +1 -0
  334. package/dist/rules/port-catches.js +1374 -0
  335. package/dist/rules/port-catches.js.map +1 -0
  336. package/dist/rules/port-shape.d.ts +213 -0
  337. package/dist/rules/port-shape.d.ts.map +1 -0
  338. package/dist/rules/port-shape.js +670 -0
  339. package/dist/rules/port-shape.js.map +1 -0
  340. package/dist/rules/queue-names.d.ts +108 -0
  341. package/dist/rules/queue-names.d.ts.map +1 -0
  342. package/dist/rules/queue-names.js +395 -0
  343. package/dist/rules/queue-names.js.map +1 -0
  344. package/dist/rules/singleton-identity.d.ts +205 -0
  345. package/dist/rules/singleton-identity.d.ts.map +1 -0
  346. package/dist/rules/singleton-identity.js +830 -0
  347. package/dist/rules/singleton-identity.js.map +1 -0
  348. package/dist/rules/subscribe-seam.d.ts +121 -0
  349. package/dist/rules/subscribe-seam.d.ts.map +1 -0
  350. package/dist/rules/subscribe-seam.js +594 -0
  351. package/dist/rules/subscribe-seam.js.map +1 -0
  352. package/dist/rules/transaction-context.d.ts +40 -0
  353. package/dist/rules/transaction-context.d.ts.map +1 -0
  354. package/dist/rules/transaction-context.js +294 -0
  355. package/dist/rules/transaction-context.js.map +1 -0
  356. package/package.json +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-artefacts.js","sourceRoot":"","sources":["../../src/lib/docs-artefacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import ts from 'typescript';
2
+ /** A file reader the caller supplies, so a fixture can enter at the top (issue #130). */
3
+ export interface SourceReader {
4
+ readonly exists: (path: string) => boolean;
5
+ readonly read: (path: string) => string;
6
+ }
7
+ /** The reader a real run uses: the filesystem. */
8
+ export declare const nodeSourceReader: SourceReader;
9
+ /** One source file, parsed with parent pointers so a caller can walk upwards. */
10
+ export declare function parseModule(path: string, text: string): ts.SourceFile;
11
+ /** Whether a statement carries the `export` modifier. */
12
+ export declare function hasExportModifier(statement: ts.Statement): boolean;
13
+ /**
14
+ * Names an emitted ES module exports at runtime.
15
+ *
16
+ * `path` is the emitted file and `reader` is how it is read, both parameters so
17
+ * that a fixture enters at the top of the analysis rather than below the step it
18
+ * is meant to protect (issue #130).
19
+ */
20
+ export declare function runtimeExportsOfEmittedModule(path: string, reader?: SourceReader): string[];
21
+ //# sourceMappingURL=emitted-exports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitted-exports.d.ts","sourceRoot":"","sources":["../../src/lib/emitted-exports.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,yFAAyF;AACzF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACzC;AAED,kDAAkD;AAClD,eAAO,MAAM,gBAAgB,EAAE,YAG9B,CAAC;AAEF,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAErE;AAED,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,OAAO,CAGlE;AAED;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,MAAM,GAAE,YAA+B,GACtC,MAAM,EAAE,CAkCV"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * What an **emitted** ES module exports at runtime, read as syntax.
3
+ *
4
+ * This answers what the build actually published, not what the author wrote,
5
+ * and only the first is what a consumer's bundler loads. A type-only module
6
+ * compiles to `export {};` under `verbatimModuleSyntax` (`tsconfig.base.json`),
7
+ * so the sound answer for one is the empty list.
8
+ *
9
+ * ## Why it lives here rather than beside its first caller
10
+ *
11
+ * It has **two** readers and one meaning. T050's guard
12
+ * (`test/helpers/module-package-surface.ts`) asks it whether a module package's
13
+ * `./ports` subpath kept its type-only promise; `check-module-boundary.ts` asks
14
+ * it whether a subpath a module reached is contract surface (D-171). That is one
15
+ * fact — *does this emitted module export a runtime binding* — and two
16
+ * derivations of one fact are two answers waiting to disagree, which is D-100
17
+ * read backwards. So the function is here, in the directory a check and a test
18
+ * helper can both import from, and the helper re-exports it under the name its
19
+ * own callers already use.
20
+ *
21
+ * ## What it can and cannot see
22
+ *
23
+ * It reads literal AST nodes, so a comment or a string quoting an export is out
24
+ * of the population by construction. A **star re-export** names no binding it
25
+ * can enumerate, so it is reported as `* from '<specifier>'` — a name, and
26
+ * therefore a runtime export, because the honest answer to "does this module
27
+ * export something" for a re-export this cannot follow is "yes, unknown" and not
28
+ * "no". It does not follow a specifier, and it does not evaluate anything: a
29
+ * module whose only statement is `export {};` is the empty list and everything
30
+ * else is at least one name.
31
+ */
32
+ import { existsSync, readFileSync } from 'node:fs';
33
+ import ts from 'typescript';
34
+ /** The reader a real run uses: the filesystem. */
35
+ export const nodeSourceReader = {
36
+ exists: (path) => existsSync(path),
37
+ read: (path) => readFileSync(path, 'utf8'),
38
+ };
39
+ /** One source file, parsed with parent pointers so a caller can walk upwards. */
40
+ export function parseModule(path, text) {
41
+ return ts.createSourceFile(path, text, ts.ScriptTarget.ES2022, true, ts.ScriptKind.TS);
42
+ }
43
+ /** Whether a statement carries the `export` modifier. */
44
+ export function hasExportModifier(statement) {
45
+ const modifiers = ts.canHaveModifiers(statement) ? ts.getModifiers(statement) : undefined;
46
+ return modifiers?.some((m) => m.kind === ts.SyntaxKind.ExportKeyword) === true;
47
+ }
48
+ /**
49
+ * Names an emitted ES module exports at runtime.
50
+ *
51
+ * `path` is the emitted file and `reader` is how it is read, both parameters so
52
+ * that a fixture enters at the top of the analysis rather than below the step it
53
+ * is meant to protect (issue #130).
54
+ */
55
+ export function runtimeExportsOfEmittedModule(path, reader = nodeSourceReader) {
56
+ const source = parseModule(path, reader.read(path));
57
+ const found = new Set();
58
+ for (const statement of source.statements) {
59
+ if (ts.isExportAssignment(statement)) {
60
+ found.add('default');
61
+ continue;
62
+ }
63
+ if (hasExportModifier(statement)) {
64
+ if (ts.isClassDeclaration(statement) && statement.name)
65
+ found.add(statement.name.text);
66
+ else if (ts.isFunctionDeclaration(statement) && statement.name)
67
+ found.add(statement.name.text);
68
+ else if (ts.isEnumDeclaration(statement))
69
+ found.add(statement.name.text);
70
+ else if (ts.isVariableStatement(statement)) {
71
+ for (const declaration of statement.declarationList.declarations) {
72
+ if (ts.isIdentifier(declaration.name))
73
+ found.add(declaration.name.text);
74
+ }
75
+ }
76
+ continue;
77
+ }
78
+ if (!ts.isExportDeclaration(statement))
79
+ continue;
80
+ const specifier = statement.moduleSpecifier && ts.isStringLiteral(statement.moduleSpecifier)
81
+ ? statement.moduleSpecifier.text
82
+ : null;
83
+ if (statement.exportClause === undefined) {
84
+ if (specifier !== null)
85
+ found.add(`* from '${specifier}'`);
86
+ continue;
87
+ }
88
+ if (!ts.isNamedExports(statement.exportClause))
89
+ continue;
90
+ for (const element of statement.exportClause.elements) {
91
+ found.add(element.name.text);
92
+ }
93
+ }
94
+ return [...found].sort();
95
+ }
96
+ //# sourceMappingURL=emitted-exports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitted-exports.js","sourceRoot":"","sources":["../../src/lib/emitted-exports.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,112 @@
1
+ import { type EmitLayout } from './module-packages.js';
2
+ import { type WorkspaceFs } from './workspace-packages.js';
3
+ /** A workspace member that compiles its sources into a separate directory. */
4
+ export interface EmittingPackage {
5
+ /** The npm package name — the head of every bare specifier into it. */
6
+ readonly name: string;
7
+ /** Its directory, absolute. */
8
+ readonly dir: string;
9
+ /** `tsconfig.build.json`'s `rootDir`/`outDir`, package-relative. */
10
+ readonly emit: EmitLayout;
11
+ /** `exports` subpath → target, as declared. Wildcard subpaths are dropped. */
12
+ readonly exports: ReadonlyMap<string, string>;
13
+ }
14
+ /**
15
+ * Every workspace member that emits, whatever it declares itself to be.
16
+ *
17
+ * Not filtered to `endora.type === 'module'`: `@endora-commerce/platform` emits
18
+ * too, and `_lifecycle`'s manifest is one of the artefacts a manifest-index
19
+ * reader imports out of it (D-160.11). A member with no `tsconfig.build.json`
20
+ * publishes its sources where they are and is not one of these.
21
+ */
22
+ export declare function emittingPackages(repoRoot: string, fs?: WorkspaceFs): readonly EmittingPackage[];
23
+ /** The two filesystem questions this derivation asks, injected for fixtures. */
24
+ export interface FreshnessFs {
25
+ /** Modification time in milliseconds, or `null` when the file is not there. */
26
+ readonly mtimeMs: (absolutePath: string) => number | null;
27
+ }
28
+ /** The real one. A file that is not there answers `null`, never a throw. */
29
+ export declare function nodeFreshnessFs(): FreshnessFs;
30
+ /** The package a file belongs to, or `null` outside every emitting package. */
31
+ export declare function packageHolding(file: string, packages: readonly EmittingPackage[]): EmittingPackage | null;
32
+ /** `./dist/manifest.js` → absolute; `null` when the package declares no root export. */
33
+ export declare function rootExportOf(pkg: EmittingPackage): string | null;
34
+ /**
35
+ * The file a run's recorded location really names.
36
+ *
37
+ * A registry that imported a module by **bare** specifier records the package's
38
+ * `package.json` as the module's location (`manifest-locations.ts`: that is the
39
+ * anchor every consumer takes `dirname` of). The bytes it read are the root
40
+ * `exports` target, so the location is followed one hop to it. Every other path
41
+ * names itself.
42
+ */
43
+ export declare function readArtefactOf(named: string, packages: readonly EmittingPackage[]): string;
44
+ /**
45
+ * The emitted extensions `tsc` writes, and the sources each can come from.
46
+ *
47
+ * Exported because {@link sourceOfEmitted} answers only for a source that
48
+ * **exists**, which is the right answer for a freshness comparison and the wrong
49
+ * one for a caller asking *which source this subpath would have had*: a declared
50
+ * `exports` subpath whose source is gone is exactly the short walk
51
+ * `endora check`'s floor exists to refuse, and a caller that had to write its
52
+ * own copy of this map to name it would be a second derivation of one fact.
53
+ */
54
+ export declare const SOURCE_EXTENSIONS: ReadonlyMap<string, readonly string[]>;
55
+ /**
56
+ * The source an emitted file was compiled from, or `null` when none exists.
57
+ *
58
+ * The inverse of `module-packages.ts`' {@link emittedPathOf}, and deliberately
59
+ * existence-checked rather than assumed: `.js` has two possible sources and a
60
+ * guess between them would name a file that is not there.
61
+ */
62
+ export declare function sourceOfEmitted(pkg: EmittingPackage, emitted: string, fs: FreshnessFs): string | null;
63
+ /** Whether a file the run read is emitted output, its own source, or neither. */
64
+ export type ArtefactOrigin = 'emitted' | 'source' | 'outside';
65
+ export declare function originOf(artefact: string, pkg: EmittingPackage | null): ArtefactOrigin;
66
+ export type FreshnessFindingKind = 'stale-artefact' | 'unpairable-artefact';
67
+ export interface FreshnessFinding {
68
+ readonly kind: FreshnessFindingKind;
69
+ readonly packageName: string;
70
+ /** The emitted file the run read, absolute. */
71
+ readonly artefact: string;
72
+ /** The source it is emitted from, absolute; `null` for `unpairable-artefact`. */
73
+ readonly source: string | null;
74
+ /** The sentence the operator reads, without the shared remedy. */
75
+ readonly detail: string;
76
+ }
77
+ export interface FreshnessInput {
78
+ /** The locations a run recorded for what it read, absolute. */
79
+ readonly read: readonly string[];
80
+ readonly packages: readonly EmittingPackage[];
81
+ readonly fs?: FreshnessFs;
82
+ }
83
+ export interface FreshnessResult {
84
+ readonly findings: readonly FreshnessFinding[];
85
+ /** The artefacts classified as emitted output — what the disclosure counts. */
86
+ readonly emitted: readonly string[];
87
+ /** Those paired with a source and actually compared. */
88
+ readonly compared: readonly string[];
89
+ }
90
+ /**
91
+ * Every emitted artefact this run read that its source has since outrun.
92
+ *
93
+ * Pure over the record handed in, so a red proof enters where a real run
94
+ * enters (issue #130): a synthetic checkout on disk, or an injected clock.
95
+ */
96
+ export declare function checkEmittedFreshness(input: FreshnessInput): FreshnessResult;
97
+ /**
98
+ * The refusal as a reader sees it, or `null` when there is nothing to refuse.
99
+ *
100
+ * Separated from {@link refuseStaleEmittedArtefacts} for the reason
101
+ * `read-size.ts` separates its two halves: a proof that constructed the message
102
+ * would prove the formatting and leave the predicate unproven.
103
+ */
104
+ export declare function freshnessRefusal(prefix: string, result: FreshnessResult, displayOf?: (absolutePath: string) => string): string | null;
105
+ /**
106
+ * The CLI half: refuse and exit 2, or return.
107
+ *
108
+ * Exit 2 rather than 1 deliberately — see this file's header. The tree is not
109
+ * in violation; the check was reading the previous build.
110
+ */
111
+ export declare function refuseStaleEmittedArtefacts(prefix: string, result: FreshnessResult, displayOf?: (absolutePath: string) => string): void;
112
+ //# sourceMappingURL=emitted-freshness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitted-freshness.d.ts","sourceRoot":"","sources":["../../src/lib/emitted-freshness.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,288 @@
1
+ /**
2
+ * "Is the artefact this run read still the one its source says it is?"
3
+ *
4
+ * ## The defect
5
+ *
6
+ * A module package resolves through its own `exports` map at `./dist`
7
+ * (D-164), so a check that imports a module's manifest by its bare specifier
8
+ * reads `dist/manifest.js` and never opens `src/manifest.ts`. `tsc` is the
9
+ * exception in this repository — `tsconfig.base.json`'s `paths` keeps it on the
10
+ * packages' source — and every runtime (`node`, `tsx`, `vitest`, `vite`) is not.
11
+ * So an author who edits a package's source and runs a check gets an answer
12
+ * about the **previous build**, and the answer is green.
13
+ *
14
+ * Measured three consecutive times on feature
15
+ * `specs/091-module-owned-admin-surfaces/`'s admin drain, most sharply on
16
+ * !1203: changing one action's `requiredPermission` in
17
+ * `packages/modules/payu/src/manifest.ts` left
18
+ * `check:action-route-permissions` at `findings=3 violations=0`, exit 0; the
19
+ * same tree after `pnpm --filter @endora-commerce/mod-payu run build` was
20
+ * `findings=4 violations=1`, exit 1. Nothing in the run said which of the two
21
+ * files it had read.
22
+ *
23
+ * ## Why exit 2 and not 1
24
+ *
25
+ * The tree is not in violation — the check could not see it. That is issue
26
+ * #113's rule verbatim ("a green result must not be able to mean 'not
27
+ * looking'") and its exit code is 2, distinct from both "clean" and "found
28
+ * something". A warning printed beside `violations=0` would be the same false
29
+ * green with prose on it.
30
+ *
31
+ * ## What it compares, and what it does not
32
+ *
33
+ * The subject is **the file whose bytes the run read**, never "this package's
34
+ * `dist`" in general. A run that read a package's *sources* — a fixture whose
35
+ * registry names `src/manifest.ts`, a package that declares no build — has no
36
+ * staleness question to answer, and this derivation says so rather than
37
+ * refusing a tree it was not looking at. Everything is read off the package's
38
+ * own declarations: `exports` for where a bare specifier lands,
39
+ * `tsconfig.build.json`'s `rootDir`/`outDir` (through
40
+ * {@link readEmitLayout}, following a relative `extends`) for how a source
41
+ * becomes an artefact. No path is written down here — `packages/modules` and
42
+ * `dist` appear in no predicate (D-100).
43
+ *
44
+ * The comparison is **mtime**, and the direction is the one that fails safe: an
45
+ * artefact is stale when its source is *strictly* newer. A build writes its
46
+ * outputs after reading its inputs, so a freshly built package is never
47
+ * reported; a source touched afterwards always is, whether or not its content
48
+ * changed. Content is not available to compare — `tsc` emits no
49
+ * `sourcesContent` in this repository's build configuration — and the remedy
50
+ * (`pnpm run build:packages`) is cheap, so the tolerable error is the one that
51
+ * asks for a rebuild that turns out to be a no-op.
52
+ *
53
+ * Stated rather than discovered later, this cannot see: a package whose build
54
+ * is incremental and left one output untouched while rewriting another (the
55
+ * comparison is per file, so the untouched output is judged on its own mtime,
56
+ * which is correct); an artefact emitted from something other than a
57
+ * TypeScript source under `rootDir` (reported as `unpairable-artefact`, not
58
+ * skipped); and anything about a package the run never read.
59
+ */
60
+ import { statSync } from 'node:fs';
61
+ import { join, relative, sep } from 'node:path';
62
+ import { readEmitLayout, declaredExports } from './module-packages.js';
63
+ import { nodeWorkspaceFs, workspaceMembers, } from './workspace-packages.js';
64
+ /**
65
+ * Every workspace member that emits, whatever it declares itself to be.
66
+ *
67
+ * Not filtered to `endora.type === 'module'`: `@endora-commerce/platform` emits
68
+ * too, and `_lifecycle`'s manifest is one of the artefacts a manifest-index
69
+ * reader imports out of it (D-160.11). A member with no `tsconfig.build.json`
70
+ * publishes its sources where they are and is not one of these.
71
+ */
72
+ export function emittingPackages(repoRoot, fs = nodeWorkspaceFs()) {
73
+ const found = [];
74
+ for (const member of workspaceMembers(repoRoot, fs)) {
75
+ const emit = readEmitLayout(member.dir, member.name, fs);
76
+ if (emit === null)
77
+ continue;
78
+ found.push({
79
+ name: member.name,
80
+ dir: member.dir,
81
+ emit,
82
+ exports: declaredExports(member.manifest),
83
+ });
84
+ }
85
+ return found.sort((a, b) => a.name.localeCompare(b.name));
86
+ }
87
+ /** The real one. A file that is not there answers `null`, never a throw. */
88
+ export function nodeFreshnessFs() {
89
+ return {
90
+ mtimeMs: (path) => {
91
+ try {
92
+ return statSync(path).mtimeMs;
93
+ }
94
+ catch {
95
+ return null;
96
+ }
97
+ },
98
+ };
99
+ }
100
+ /** A file's path inside its package, `/`-separated. */
101
+ function packageRelative(pkg, absolutePath) {
102
+ return relative(pkg.dir, absolutePath).split(sep).join('/');
103
+ }
104
+ /** Is `candidate` inside `dir`? Both absolute. */
105
+ function contains(dir, candidate) {
106
+ const within = relative(dir, candidate);
107
+ return within !== '' && !within.startsWith('..') && !within.startsWith(sep + '..');
108
+ }
109
+ /** The package a file belongs to, or `null` outside every emitting package. */
110
+ export function packageHolding(file, packages) {
111
+ let best = null;
112
+ for (const pkg of packages) {
113
+ if (!contains(pkg.dir, file))
114
+ continue;
115
+ // Deepest wins, so a package nested inside another member's directory is
116
+ // attributed to itself.
117
+ if (best === null || pkg.dir.length > best.dir.length)
118
+ best = pkg;
119
+ }
120
+ return best;
121
+ }
122
+ /** `./dist/manifest.js` → absolute; `null` when the package declares no root export. */
123
+ export function rootExportOf(pkg) {
124
+ const target = pkg.exports.get('.');
125
+ if (target === undefined)
126
+ return null;
127
+ return join(pkg.dir, ...target.replace(/^\.\//, '').split('/'));
128
+ }
129
+ /**
130
+ * The file a run's recorded location really names.
131
+ *
132
+ * A registry that imported a module by **bare** specifier records the package's
133
+ * `package.json` as the module's location (`manifest-locations.ts`: that is the
134
+ * anchor every consumer takes `dirname` of). The bytes it read are the root
135
+ * `exports` target, so the location is followed one hop to it. Every other path
136
+ * names itself.
137
+ */
138
+ export function readArtefactOf(named, packages) {
139
+ if (!named.endsWith(`${sep}package.json`))
140
+ return named;
141
+ const pkg = packages.find((candidate) => join(candidate.dir, 'package.json') === named);
142
+ if (pkg === undefined)
143
+ return named;
144
+ return rootExportOf(pkg) ?? named;
145
+ }
146
+ /**
147
+ * The emitted extensions `tsc` writes, and the sources each can come from.
148
+ *
149
+ * Exported because {@link sourceOfEmitted} answers only for a source that
150
+ * **exists**, which is the right answer for a freshness comparison and the wrong
151
+ * one for a caller asking *which source this subpath would have had*: a declared
152
+ * `exports` subpath whose source is gone is exactly the short walk
153
+ * `endora check`'s floor exists to refuse, and a caller that had to write its
154
+ * own copy of this map to name it would be a second derivation of one fact.
155
+ */
156
+ export const SOURCE_EXTENSIONS = new Map([
157
+ ['.js', ['.ts', '.tsx']],
158
+ ['.mjs', ['.mts']],
159
+ ['.cjs', ['.cts']],
160
+ ]);
161
+ /**
162
+ * The source an emitted file was compiled from, or `null` when none exists.
163
+ *
164
+ * The inverse of `module-packages.ts`' {@link emittedPathOf}, and deliberately
165
+ * existence-checked rather than assumed: `.js` has two possible sources and a
166
+ * guess between them would name a file that is not there.
167
+ */
168
+ export function sourceOfEmitted(pkg, emitted, fs) {
169
+ const within = packageRelative(pkg, emitted);
170
+ const prefix = pkg.emit.outDir === '' ? '' : `${pkg.emit.outDir}/`;
171
+ if (prefix !== '' && !within.startsWith(prefix))
172
+ return null;
173
+ const belowOut = within.slice(prefix.length);
174
+ for (const [emittedExtension, sourceExtensions] of SOURCE_EXTENSIONS) {
175
+ if (!belowOut.endsWith(emittedExtension))
176
+ continue;
177
+ const stem = belowOut.slice(0, -emittedExtension.length);
178
+ for (const extension of sourceExtensions) {
179
+ const relativeSource = pkg.emit.rootDir === '' ? `${stem}${extension}` : `${pkg.emit.rootDir}/${stem}${extension}`;
180
+ const absolute = join(pkg.dir, ...relativeSource.split('/'));
181
+ if (fs.mtimeMs(absolute) !== null)
182
+ return absolute;
183
+ }
184
+ }
185
+ return null;
186
+ }
187
+ export function originOf(artefact, pkg) {
188
+ if (pkg === null)
189
+ return 'outside';
190
+ const within = packageRelative(pkg, artefact);
191
+ const out = pkg.emit.outDir;
192
+ if (out === '' || within === out || within.startsWith(`${out}/`))
193
+ return 'emitted';
194
+ return 'source';
195
+ }
196
+ /**
197
+ * Every emitted artefact this run read that its source has since outrun.
198
+ *
199
+ * Pure over the record handed in, so a red proof enters where a real run
200
+ * enters (issue #130): a synthetic checkout on disk, or an injected clock.
201
+ */
202
+ export function checkEmittedFreshness(input) {
203
+ const fs = input.fs ?? nodeFreshnessFs();
204
+ const findings = [];
205
+ const emitted = [];
206
+ const compared = [];
207
+ for (const named of [...new Set(input.read)].sort()) {
208
+ const artefact = readArtefactOf(named, input.packages);
209
+ const pkg = packageHolding(artefact, input.packages);
210
+ if (originOf(artefact, pkg) !== 'emitted' || pkg === null)
211
+ continue;
212
+ emitted.push(artefact);
213
+ const artefactMtime = fs.mtimeMs(artefact);
214
+ if (artefactMtime === null) {
215
+ findings.push({
216
+ kind: 'unpairable-artefact',
217
+ packageName: pkg.name,
218
+ artefact,
219
+ source: null,
220
+ detail: 'the emitted file is not on disk, so what this run read is not what the tree holds',
221
+ });
222
+ continue;
223
+ }
224
+ const source = sourceOfEmitted(pkg, artefact, fs);
225
+ if (source === null) {
226
+ findings.push({
227
+ kind: 'unpairable-artefact',
228
+ packageName: pkg.name,
229
+ artefact,
230
+ source: null,
231
+ detail: `no TypeScript source under ${pkg.emit.rootDir || '.'} emits it, so whether it is ` +
232
+ 'current cannot be decided — and an artefact that cannot be decided must not be ' +
233
+ 'reported as current',
234
+ });
235
+ continue;
236
+ }
237
+ compared.push(artefact);
238
+ const sourceMtime = fs.mtimeMs(source);
239
+ if (sourceMtime !== null && sourceMtime > artefactMtime) {
240
+ findings.push({
241
+ kind: 'stale-artefact',
242
+ packageName: pkg.name,
243
+ artefact,
244
+ source,
245
+ detail: 'its source has been modified since it was emitted',
246
+ });
247
+ }
248
+ }
249
+ return { findings, emitted, compared };
250
+ }
251
+ /**
252
+ * The refusal as a reader sees it, or `null` when there is nothing to refuse.
253
+ *
254
+ * Separated from {@link refuseStaleEmittedArtefacts} for the reason
255
+ * `read-size.ts` separates its two halves: a proof that constructed the message
256
+ * would prove the formatting and leave the predicate unproven.
257
+ */
258
+ export function freshnessRefusal(prefix, result, displayOf = (path) => path) {
259
+ if (result.findings.length === 0)
260
+ return null;
261
+ const lines = [
262
+ `${prefix} this run read a package artefact that its source has outrun, so a clean ` +
263
+ 'result would mean "not looking" rather than "nothing wrong" (issue #113). A package ' +
264
+ 'resolves through its own `exports` map at its build output, so an edit to its source ' +
265
+ 'is invisible until the package is built.',
266
+ '',
267
+ 'Run `pnpm run build:packages` (or build the named package) and run this check again.',
268
+ '',
269
+ ];
270
+ for (const finding of result.findings) {
271
+ lines.push(` - [${finding.kind}] ${finding.packageName}`, ` read: ${displayOf(finding.artefact)}`, ` source: ${finding.source === null ? '(none)' : displayOf(finding.source)}`, ` why: ${finding.detail}`);
272
+ }
273
+ return lines.join('\n');
274
+ }
275
+ /**
276
+ * The CLI half: refuse and exit 2, or return.
277
+ *
278
+ * Exit 2 rather than 1 deliberately — see this file's header. The tree is not
279
+ * in violation; the check was reading the previous build.
280
+ */
281
+ export function refuseStaleEmittedArtefacts(prefix, result, displayOf) {
282
+ const message = freshnessRefusal(prefix, result, displayOf);
283
+ if (message === null)
284
+ return;
285
+ console.error(message);
286
+ process.exit(2);
287
+ }
288
+ //# sourceMappingURL=emitted-freshness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emitted-freshness.js","sourceRoot":"","sources":["../../src/lib/emitted-freshness.ts"],"names":[],"mappings":"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"}