@xemahq/xema 0.59.1 → 0.60.1

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 (850) hide show
  1. package/README.md +1 -2
  2. package/dist/appliance-owner.d.ts.map +1 -1
  3. package/dist/appliance-owner.js +6 -6
  4. package/dist/appliance-owner.js.map +1 -1
  5. package/dist/assets/appliance-base/authorization.lock.json +5186 -0
  6. package/dist/assets/appliance-base/distribution.lock.json +760 -279
  7. package/dist/assets/appliance-base/images.lock.json +576 -513
  8. package/dist/assets/appliance-lean/authorization.lock.json +4648 -0
  9. package/dist/assets/appliance-lean/distribution.lock.json +641 -186
  10. package/dist/assets/appliance-lean/images.lock.json +574 -512
  11. package/dist/assets/boot-graph.json +33 -14
  12. package/dist/assets/distribution-assets.manifest.json +23 -20
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +7 -9
  15. package/dist/cli.js.map +1 -1
  16. package/dist/commands/biome-dev.d.ts.map +1 -1
  17. package/dist/commands/biome-dev.js +41 -137
  18. package/dist/commands/biome-dev.js.map +1 -1
  19. package/dist/commands/biome-lifecycle.d.ts +24 -0
  20. package/dist/commands/biome-lifecycle.d.ts.map +1 -0
  21. package/dist/commands/biome-lifecycle.js +253 -0
  22. package/dist/commands/biome-lifecycle.js.map +1 -0
  23. package/dist/commands/biome.d.ts +2 -4
  24. package/dist/commands/biome.d.ts.map +1 -1
  25. package/dist/commands/biome.js +61 -46
  26. package/dist/commands/biome.js.map +1 -1
  27. package/dist/commands/config.d.ts.map +1 -1
  28. package/dist/commands/config.js +96 -8
  29. package/dist/commands/config.js.map +1 -1
  30. package/dist/commands/doctor.d.ts.map +1 -1
  31. package/dist/commands/doctor.js +13 -20
  32. package/dist/commands/doctor.js.map +1 -1
  33. package/dist/commands/down.d.ts.map +1 -1
  34. package/dist/commands/down.js +14 -21
  35. package/dist/commands/down.js.map +1 -1
  36. package/dist/commands/init.d.ts.map +1 -1
  37. package/dist/commands/init.js +6 -3
  38. package/dist/commands/init.js.map +1 -1
  39. package/dist/commands/installation-tenancy.d.ts +11 -0
  40. package/dist/commands/installation-tenancy.d.ts.map +1 -0
  41. package/dist/commands/installation-tenancy.js +308 -0
  42. package/dist/commands/installation-tenancy.js.map +1 -0
  43. package/dist/commands/installation.d.ts.map +1 -1
  44. package/dist/commands/installation.js +19 -5
  45. package/dist/commands/installation.js.map +1 -1
  46. package/dist/commands/logs.d.ts +2 -0
  47. package/dist/commands/logs.d.ts.map +1 -1
  48. package/dist/commands/logs.js +41 -8
  49. package/dist/commands/logs.js.map +1 -1
  50. package/dist/commands/{dev.d.ts → mirror.d.ts} +1 -1
  51. package/dist/commands/mirror.d.ts.map +1 -0
  52. package/dist/commands/mirror.js +132 -0
  53. package/dist/commands/mirror.js.map +1 -0
  54. package/dist/commands/source.d.ts.map +1 -1
  55. package/dist/commands/source.js +3 -2
  56. package/dist/commands/source.js.map +1 -1
  57. package/dist/commands/status.d.ts.map +1 -1
  58. package/dist/commands/status.js +40 -21
  59. package/dist/commands/status.js.map +1 -1
  60. package/dist/commands/up.d.ts.map +1 -1
  61. package/dist/commands/up.js +36 -4
  62. package/dist/commands/up.js.map +1 -1
  63. package/dist/dev/infra-preflight.d.ts.map +1 -1
  64. package/dist/dev/infra-preflight.js +0 -4
  65. package/dist/dev/infra-preflight.js.map +1 -1
  66. package/dist/lib/confirm.d.ts +3 -0
  67. package/dist/lib/confirm.d.ts.map +1 -0
  68. package/dist/lib/confirm.js +19 -0
  69. package/dist/lib/confirm.js.map +1 -0
  70. package/dist/lib/output-format.d.ts +6 -0
  71. package/dist/lib/output-format.d.ts.map +1 -0
  72. package/dist/lib/output-format.js +20 -0
  73. package/dist/lib/output-format.js.map +1 -0
  74. package/dist/mirror/config/mirror-config-document.d.ts +18 -0
  75. package/dist/mirror/config/mirror-config-document.d.ts.map +1 -0
  76. package/dist/mirror/config/mirror-config-document.js +57 -0
  77. package/dist/mirror/config/mirror-config-document.js.map +1 -0
  78. package/dist/mirror/config/mirror-config-schema.d.ts +54 -0
  79. package/dist/mirror/config/mirror-config-schema.d.ts.map +1 -0
  80. package/dist/mirror/config/mirror-config-schema.js +80 -0
  81. package/dist/mirror/config/mirror-config-schema.js.map +1 -0
  82. package/dist/mirror/kit/delta.d.ts +4 -0
  83. package/dist/mirror/kit/delta.d.ts.map +1 -0
  84. package/dist/mirror/kit/delta.js +41 -0
  85. package/dist/mirror/kit/delta.js.map +1 -0
  86. package/dist/mirror/kit/export-kit.d.ts +16 -0
  87. package/dist/mirror/kit/export-kit.d.ts.map +1 -0
  88. package/dist/mirror/kit/export-kit.js +112 -0
  89. package/dist/mirror/kit/export-kit.js.map +1 -0
  90. package/dist/mirror/kit/import-kit.d.ts +9 -0
  91. package/dist/mirror/kit/import-kit.d.ts.map +1 -0
  92. package/dist/mirror/kit/import-kit.js +166 -0
  93. package/dist/mirror/kit/import-kit.js.map +1 -0
  94. package/dist/mirror/kit/kit-archive.d.ts +4 -0
  95. package/dist/mirror/kit/kit-archive.d.ts.map +1 -0
  96. package/dist/mirror/kit/kit-archive.js +38 -0
  97. package/dist/mirror/kit/kit-archive.js.map +1 -0
  98. package/dist/mirror/kit/kit-layout.d.ts +10 -0
  99. package/dist/mirror/kit/kit-layout.d.ts.map +1 -0
  100. package/dist/mirror/kit/kit-layout.js +19 -0
  101. package/dist/mirror/kit/kit-layout.js.map +1 -0
  102. package/dist/mirror/kit/kit-sums.d.ts +5 -0
  103. package/dist/mirror/kit/kit-sums.d.ts.map +1 -0
  104. package/dist/mirror/kit/kit-sums.js +63 -0
  105. package/dist/mirror/kit/kit-sums.js.map +1 -0
  106. package/dist/mirror/kit/layout-sync.d.ts +8 -0
  107. package/dist/mirror/kit/layout-sync.d.ts.map +1 -0
  108. package/dist/mirror/kit/layout-sync.js +58 -0
  109. package/dist/mirror/kit/layout-sync.js.map +1 -0
  110. package/dist/mirror/plan/bundle-content.d.ts +10 -0
  111. package/dist/mirror/plan/bundle-content.d.ts.map +1 -0
  112. package/dist/mirror/plan/bundle-content.js +61 -0
  113. package/dist/mirror/plan/bundle-content.js.map +1 -0
  114. package/dist/mirror/plan/declaration-file.d.ts +9 -0
  115. package/dist/mirror/plan/declaration-file.d.ts.map +1 -0
  116. package/dist/mirror/plan/declaration-file.js +27 -0
  117. package/dist/mirror/plan/declaration-file.js.map +1 -0
  118. package/dist/mirror/plan/edition-inputs.d.ts +57 -0
  119. package/dist/mirror/plan/edition-inputs.d.ts.map +1 -0
  120. package/dist/mirror/plan/edition-inputs.js +44 -0
  121. package/dist/mirror/plan/edition-inputs.js.map +1 -0
  122. package/dist/mirror/plan/edition-reader.d.ts +9 -0
  123. package/dist/mirror/plan/edition-reader.d.ts.map +1 -0
  124. package/dist/mirror/plan/edition-reader.js +47 -0
  125. package/dist/mirror/plan/edition-reader.js.map +1 -0
  126. package/dist/mirror/plan/image-content.d.ts +30 -0
  127. package/dist/mirror/plan/image-content.d.ts.map +1 -0
  128. package/dist/mirror/plan/image-content.js +120 -0
  129. package/dist/mirror/plan/image-content.js.map +1 -0
  130. package/dist/mirror/plan/npm-lockfile.d.ts +12 -0
  131. package/dist/mirror/plan/npm-lockfile.d.ts.map +1 -0
  132. package/dist/mirror/plan/npm-lockfile.js +106 -0
  133. package/dist/mirror/plan/npm-lockfile.js.map +1 -0
  134. package/dist/mirror/plan/oci-reads.d.ts +22 -0
  135. package/dist/mirror/plan/oci-reads.d.ts.map +1 -0
  136. package/dist/mirror/plan/oci-reads.js +43 -0
  137. package/dist/mirror/plan/oci-reads.js.map +1 -0
  138. package/dist/mirror/plan/plan-command.d.ts +22 -0
  139. package/dist/mirror/plan/plan-command.d.ts.map +1 -0
  140. package/dist/mirror/plan/plan-command.js +81 -0
  141. package/dist/mirror/plan/plan-command.js.map +1 -0
  142. package/dist/mirror/plan/plan-file.d.ts +13 -0
  143. package/dist/mirror/plan/plan-file.d.ts.map +1 -0
  144. package/dist/mirror/plan/plan-file.js +63 -0
  145. package/dist/mirror/plan/plan-file.js.map +1 -0
  146. package/dist/mirror/plan/resolve-content-set.d.ts +16 -0
  147. package/dist/mirror/plan/resolve-content-set.d.ts.map +1 -0
  148. package/dist/mirror/plan/resolve-content-set.js +90 -0
  149. package/dist/mirror/plan/resolve-content-set.js.map +1 -0
  150. package/dist/mirror/preflight/glob.d.ts +2 -0
  151. package/dist/mirror/preflight/glob.d.ts.map +1 -0
  152. package/dist/mirror/preflight/glob.js +59 -0
  153. package/dist/mirror/preflight/glob.js.map +1 -0
  154. package/dist/mirror/preflight/harbor-api.d.ts +27 -0
  155. package/dist/mirror/preflight/harbor-api.d.ts.map +1 -0
  156. package/dist/mirror/preflight/harbor-api.js +39 -0
  157. package/dist/mirror/preflight/harbor-api.js.map +1 -0
  158. package/dist/mirror/preflight/preflight.d.ts +18 -0
  159. package/dist/mirror/preflight/preflight.d.ts.map +1 -0
  160. package/dist/mirror/preflight/preflight.js +41 -0
  161. package/dist/mirror/preflight/preflight.js.map +1 -0
  162. package/dist/mirror/preflight/tag-moves.d.ts +16 -0
  163. package/dist/mirror/preflight/tag-moves.d.ts.map +1 -0
  164. package/dist/mirror/preflight/tag-moves.js +28 -0
  165. package/dist/mirror/preflight/tag-moves.js.map +1 -0
  166. package/dist/mirror/preflight/write-probe.d.ts +10 -0
  167. package/dist/mirror/preflight/write-probe.d.ts.map +1 -0
  168. package/dist/mirror/preflight/write-probe.js +36 -0
  169. package/dist/mirror/preflight/write-probe.js.map +1 -0
  170. package/dist/mirror/target/extras.d.ts +16 -0
  171. package/dist/mirror/target/extras.d.ts.map +1 -0
  172. package/dist/mirror/target/extras.js +47 -0
  173. package/dist/mirror/target/extras.js.map +1 -0
  174. package/dist/mirror/target/npm-registry.d.ts +20 -0
  175. package/dist/mirror/target/npm-registry.d.ts.map +1 -0
  176. package/dist/mirror/target/npm-registry.js +67 -0
  177. package/dist/mirror/target/npm-registry.js.map +1 -0
  178. package/dist/mirror/target/npm-sync.d.ts +15 -0
  179. package/dist/mirror/target/npm-sync.d.ts.map +1 -0
  180. package/dist/mirror/target/npm-sync.js +44 -0
  181. package/dist/mirror/target/npm-sync.js.map +1 -0
  182. package/dist/mirror/target/oci-items.d.ts +27 -0
  183. package/dist/mirror/target/oci-items.d.ts.map +1 -0
  184. package/dist/mirror/target/oci-items.js +79 -0
  185. package/dist/mirror/target/oci-items.js.map +1 -0
  186. package/dist/mirror/target/oci-sync.d.ts +20 -0
  187. package/dist/mirror/target/oci-sync.d.ts.map +1 -0
  188. package/dist/mirror/target/oci-sync.js +93 -0
  189. package/dist/mirror/target/oci-sync.js.map +1 -0
  190. package/dist/mirror/target/receipt-store.d.ts +13 -0
  191. package/dist/mirror/target/receipt-store.d.ts.map +1 -0
  192. package/dist/mirror/target/receipt-store.js +61 -0
  193. package/dist/mirror/target/receipt-store.js.map +1 -0
  194. package/dist/mirror/target/receipt.d.ts +13 -0
  195. package/dist/mirror/target/receipt.d.ts.map +1 -0
  196. package/dist/mirror/target/receipt.js +25 -0
  197. package/dist/mirror/target/receipt.js.map +1 -0
  198. package/dist/mirror/target/seed-push.d.ts +15 -0
  199. package/dist/mirror/target/seed-push.d.ts.map +1 -0
  200. package/dist/mirror/target/seed-push.js +20 -0
  201. package/dist/mirror/target/seed-push.js.map +1 -0
  202. package/dist/mirror/target/target-access.d.ts +7 -0
  203. package/dist/mirror/target/target-access.d.ts.map +1 -0
  204. package/dist/mirror/target/target-access.js +17 -0
  205. package/dist/mirror/target/target-access.js.map +1 -0
  206. package/dist/mirror/target/target-commands.d.ts +21 -0
  207. package/dist/mirror/target/target-commands.d.ts.map +1 -0
  208. package/dist/mirror/target/target-commands.js +134 -0
  209. package/dist/mirror/target/target-commands.js.map +1 -0
  210. package/dist/mirror/target/target-context.d.ts +11 -0
  211. package/dist/mirror/target/target-context.d.ts.map +1 -0
  212. package/dist/mirror/target/target-context.js +31 -0
  213. package/dist/mirror/target/target-context.js.map +1 -0
  214. package/dist/mirror/target/target-ports.d.ts +18 -0
  215. package/dist/mirror/target/target-ports.d.ts.map +1 -0
  216. package/dist/mirror/target/target-ports.js +49 -0
  217. package/dist/mirror/target/target-ports.js.map +1 -0
  218. package/dist/mirror/target/target-state.d.ts +22 -0
  219. package/dist/mirror/target/target-state.d.ts.map +1 -0
  220. package/dist/mirror/target/target-state.js +41 -0
  221. package/dist/mirror/target/target-state.js.map +1 -0
  222. package/dist/runtime/biome-dev.d.ts +0 -16
  223. package/dist/runtime/biome-dev.d.ts.map +1 -1
  224. package/dist/runtime/biome-dev.js +0 -53
  225. package/dist/runtime/biome-dev.js.map +1 -1
  226. package/dist/runtime/biome-host/biome-directory-packer.d.ts +3 -0
  227. package/dist/runtime/biome-host/biome-directory-packer.d.ts.map +1 -0
  228. package/dist/runtime/biome-host/biome-directory-packer.js +12 -0
  229. package/dist/runtime/biome-host/biome-directory-packer.js.map +1 -0
  230. package/dist/runtime/biome-host/bundle-packer.d.ts +8 -0
  231. package/dist/runtime/biome-host/bundle-packer.d.ts.map +1 -0
  232. package/dist/runtime/biome-host/bundle-packer.js +3 -0
  233. package/dist/runtime/biome-host/bundle-packer.js.map +1 -0
  234. package/dist/runtime/biome-host/from-spec.d.ts +33 -0
  235. package/dist/runtime/biome-host/from-spec.d.ts.map +1 -0
  236. package/dist/runtime/biome-host/from-spec.js +70 -0
  237. package/dist/runtime/biome-host/from-spec.js.map +1 -0
  238. package/dist/runtime/biome-host/lifecycle-client.d.ts +20 -0
  239. package/dist/runtime/biome-host/lifecycle-client.d.ts.map +1 -0
  240. package/dist/runtime/biome-host/lifecycle-client.js +197 -0
  241. package/dist/runtime/biome-host/lifecycle-client.js.map +1 -0
  242. package/dist/runtime/biome-host/lifecycle-contract.d.ts +95 -0
  243. package/dist/runtime/biome-host/lifecycle-contract.d.ts.map +1 -0
  244. package/dist/runtime/biome-host/lifecycle-contract.js +61 -0
  245. package/dist/runtime/biome-host/lifecycle-contract.js.map +1 -0
  246. package/dist/runtime/biome-host/lifecycle-flow.d.ts +29 -0
  247. package/dist/runtime/biome-host/lifecycle-flow.d.ts.map +1 -0
  248. package/dist/runtime/biome-host/lifecycle-flow.js +106 -0
  249. package/dist/runtime/biome-host/lifecycle-flow.js.map +1 -0
  250. package/dist/runtime/biome-host/plan-sources.d.ts +4 -0
  251. package/dist/runtime/biome-host/plan-sources.d.ts.map +1 -0
  252. package/dist/runtime/biome-host/plan-sources.js +26 -0
  253. package/dist/runtime/biome-host/plan-sources.js.map +1 -0
  254. package/dist/runtime/biome-host/relay/bundle-fetch.d.ts +12 -0
  255. package/dist/runtime/biome-host/relay/bundle-fetch.d.ts.map +1 -0
  256. package/dist/runtime/biome-host/relay/bundle-fetch.js +76 -0
  257. package/dist/runtime/biome-host/relay/bundle-fetch.js.map +1 -0
  258. package/dist/runtime/biome-host/relay/declared-scheme.d.ts +3 -0
  259. package/dist/runtime/biome-host/relay/declared-scheme.d.ts.map +1 -0
  260. package/dist/runtime/biome-host/relay/declared-scheme.js +14 -0
  261. package/dist/runtime/biome-host/relay/declared-scheme.js.map +1 -0
  262. package/dist/runtime/biome-host/relay/npm-token.d.ts +4 -0
  263. package/dist/runtime/biome-host/relay/npm-token.d.ts.map +1 -0
  264. package/dist/runtime/biome-host/relay/npm-token.js +16 -0
  265. package/dist/runtime/biome-host/relay/npm-token.js.map +1 -0
  266. package/dist/runtime/biome-host/relay/relay-flow.d.ts +16 -0
  267. package/dist/runtime/biome-host/relay/relay-flow.d.ts.map +1 -0
  268. package/dist/runtime/biome-host/relay/relay-flow.js +48 -0
  269. package/dist/runtime/biome-host/relay/relay-flow.js.map +1 -0
  270. package/dist/runtime/biome-host/source-staging.d.ts +17 -0
  271. package/dist/runtime/biome-host/source-staging.d.ts.map +1 -0
  272. package/dist/runtime/biome-host/source-staging.js +80 -0
  273. package/dist/runtime/biome-host/source-staging.js.map +1 -0
  274. package/dist/runtime/biome-host/sse.d.ts +2 -0
  275. package/dist/runtime/biome-host/sse.d.ts.map +1 -0
  276. package/dist/runtime/biome-host/sse.js +33 -0
  277. package/dist/runtime/biome-host/sse.js.map +1 -0
  278. package/dist/runtime/biome-local-install.js +1 -1
  279. package/dist/runtime/biome-local-install.js.map +1 -1
  280. package/dist/runtime/browser-origins.d.ts +9 -0
  281. package/dist/runtime/browser-origins.d.ts.map +1 -1
  282. package/dist/runtime/browser-origins.js +10 -0
  283. package/dist/runtime/browser-origins.js.map +1 -1
  284. package/dist/runtime/config/config-document.d.ts +10 -0
  285. package/dist/runtime/config/config-document.d.ts.map +1 -0
  286. package/dist/runtime/config/config-document.js +56 -0
  287. package/dist/runtime/config/config-document.js.map +1 -0
  288. package/dist/runtime/config/config-migrations.d.ts +21 -0
  289. package/dist/runtime/config/config-migrations.d.ts.map +1 -0
  290. package/dist/runtime/config/config-migrations.js +102 -0
  291. package/dist/runtime/config/config-migrations.js.map +1 -0
  292. package/dist/runtime/config/config-paths.d.ts +3 -0
  293. package/dist/runtime/config/config-paths.d.ts.map +1 -0
  294. package/dist/runtime/config/config-paths.js +9 -0
  295. package/dist/runtime/config/config-paths.js.map +1 -0
  296. package/dist/runtime/config/dev-mode.d.ts +0 -1
  297. package/dist/runtime/config/dev-mode.d.ts.map +1 -1
  298. package/dist/runtime/config/dev-mode.js +11 -27
  299. package/dist/runtime/config/dev-mode.js.map +1 -1
  300. package/dist/runtime/config/init-presets.js +5 -9
  301. package/dist/runtime/config/init-presets.js.map +1 -1
  302. package/dist/runtime/config/launch-config-help.d.ts +4 -0
  303. package/dist/runtime/config/launch-config-help.d.ts.map +1 -0
  304. package/dist/runtime/config/launch-config-help.js +42 -0
  305. package/dist/runtime/config/launch-config-help.js.map +1 -0
  306. package/dist/runtime/config/launch-config.d.ts +60 -0
  307. package/dist/runtime/config/launch-config.d.ts.map +1 -0
  308. package/dist/runtime/config/launch-config.js +123 -0
  309. package/dist/runtime/config/launch-config.js.map +1 -0
  310. package/dist/runtime/config/launch-schema.d.ts +18 -0
  311. package/dist/runtime/config/launch-schema.d.ts.map +1 -0
  312. package/dist/runtime/config/launch-schema.js +31 -0
  313. package/dist/runtime/config/launch-schema.js.map +1 -0
  314. package/dist/runtime/config/loader.d.ts.map +1 -1
  315. package/dist/runtime/config/loader.js +4 -14
  316. package/dist/runtime/config/loader.js.map +1 -1
  317. package/dist/runtime/config/schema.d.ts +43 -38
  318. package/dist/runtime/config/schema.d.ts.map +1 -1
  319. package/dist/runtime/config/schema.js +17 -46
  320. package/dist/runtime/config/schema.js.map +1 -1
  321. package/dist/runtime/config/sources-config.d.ts +0 -2
  322. package/dist/runtime/config/sources-config.d.ts.map +1 -1
  323. package/dist/runtime/config/sources-config.js +10 -29
  324. package/dist/runtime/config/sources-config.js.map +1 -1
  325. package/dist/runtime/config/versioned-document.d.ts +26 -0
  326. package/dist/runtime/config/versioned-document.d.ts.map +1 -0
  327. package/dist/runtime/config/versioned-document.js +87 -0
  328. package/dist/runtime/config/versioned-document.js.map +1 -0
  329. package/dist/runtime/directory-changes.d.ts +12 -0
  330. package/dist/runtime/directory-changes.d.ts.map +1 -0
  331. package/dist/runtime/directory-changes.js +62 -0
  332. package/dist/runtime/directory-changes.js.map +1 -0
  333. package/dist/runtime/foreground.d.ts +2 -0
  334. package/dist/runtime/foreground.d.ts.map +1 -1
  335. package/dist/runtime/foreground.js +5 -20
  336. package/dist/runtime/foreground.js.map +1 -1
  337. package/dist/runtime/infra/infra-runner.js +5 -5
  338. package/dist/runtime/infra/infra-runner.js.map +1 -1
  339. package/dist/runtime/infra/keycloak-realm.d.ts +3 -19
  340. package/dist/runtime/infra/keycloak-realm.d.ts.map +1 -1
  341. package/dist/runtime/infra/keycloak-realm.js +12 -133
  342. package/dist/runtime/infra/keycloak-realm.js.map +1 -1
  343. package/dist/runtime/installation/current-launcher-renderer.js.map +1 -1
  344. package/dist/runtime/installation/from-current-config.d.ts.map +1 -1
  345. package/dist/runtime/installation/from-current-config.js +24 -47
  346. package/dist/runtime/installation/from-current-config.js.map +1 -1
  347. package/dist/runtime/installation/index.d.ts +1 -0
  348. package/dist/runtime/installation/index.d.ts.map +1 -1
  349. package/dist/runtime/installation/index.js +1 -0
  350. package/dist/runtime/installation/index.js.map +1 -1
  351. package/dist/runtime/installation/installation-file.d.ts +3 -0
  352. package/dist/runtime/installation/installation-file.d.ts.map +1 -0
  353. package/dist/runtime/installation/installation-file.js +9 -0
  354. package/dist/runtime/installation/installation-file.js.map +1 -0
  355. package/dist/runtime/installation/readiness.d.ts +6 -7
  356. package/dist/runtime/installation/readiness.d.ts.map +1 -1
  357. package/dist/runtime/installation/readiness.js +82 -132
  358. package/dist/runtime/installation/readiness.js.map +1 -1
  359. package/dist/runtime/installation/state-store.d.ts +4 -0
  360. package/dist/runtime/installation/state-store.d.ts.map +1 -1
  361. package/dist/runtime/installation/state-store.js +22 -1
  362. package/dist/runtime/installation/state-store.js.map +1 -1
  363. package/dist/runtime/installation/to-current-config.d.ts +4 -1
  364. package/dist/runtime/installation/to-current-config.d.ts.map +1 -1
  365. package/dist/runtime/installation/to-current-config.js +10 -36
  366. package/dist/runtime/installation/to-current-config.js.map +1 -1
  367. package/dist/runtime/launch-plan-format.d.ts.map +1 -1
  368. package/dist/runtime/launch-plan-format.js +31 -6
  369. package/dist/runtime/launch-plan-format.js.map +1 -1
  370. package/dist/runtime/launch-result.d.ts +15 -0
  371. package/dist/runtime/launch-result.d.ts.map +1 -0
  372. package/dist/runtime/launch-result.js +3 -0
  373. package/dist/runtime/launch-result.js.map +1 -0
  374. package/dist/runtime/launch.d.ts +16 -5
  375. package/dist/runtime/launch.d.ts.map +1 -1
  376. package/dist/runtime/launch.js +151 -315
  377. package/dist/runtime/launch.js.map +1 -1
  378. package/dist/runtime/license/helm-pull-secret.d.ts +1 -1
  379. package/dist/runtime/license/helm-pull-secret.d.ts.map +1 -1
  380. package/dist/runtime/license/helm-pull-secret.js +2 -2
  381. package/dist/runtime/license/helm-pull-secret.js.map +1 -1
  382. package/dist/runtime/lifecycle-progress/index.d.ts +9 -0
  383. package/dist/runtime/lifecycle-progress/index.d.ts.map +1 -0
  384. package/dist/runtime/lifecycle-progress/index.js +30 -0
  385. package/dist/runtime/lifecycle-progress/index.js.map +1 -0
  386. package/dist/runtime/lifecycle-progress/json-renderer.d.ts +3 -0
  387. package/dist/runtime/lifecycle-progress/json-renderer.d.ts.map +1 -0
  388. package/dist/runtime/lifecycle-progress/json-renderer.js +27 -0
  389. package/dist/runtime/lifecycle-progress/json-renderer.js.map +1 -0
  390. package/dist/runtime/lifecycle-progress/text-renderer.d.ts +5 -0
  391. package/dist/runtime/lifecycle-progress/text-renderer.d.ts.map +1 -0
  392. package/dist/runtime/lifecycle-progress/text-renderer.js +83 -0
  393. package/dist/runtime/lifecycle-progress/text-renderer.js.map +1 -0
  394. package/dist/runtime/lifecycle-progress/types.d.ts +79 -0
  395. package/dist/runtime/lifecycle-progress/types.d.ts.map +1 -0
  396. package/dist/runtime/lifecycle-progress/types.js +32 -0
  397. package/dist/runtime/lifecycle-progress/types.js.map +1 -0
  398. package/dist/runtime/lock-loader.d.ts +13 -3
  399. package/dist/runtime/lock-loader.d.ts.map +1 -1
  400. package/dist/runtime/lock-loader.js +28 -8
  401. package/dist/runtime/lock-loader.js.map +1 -1
  402. package/dist/runtime/paths.d.ts +2 -0
  403. package/dist/runtime/paths.d.ts.map +1 -1
  404. package/dist/runtime/paths.js +17 -4
  405. package/dist/runtime/paths.js.map +1 -1
  406. package/dist/runtime/roster.d.ts +6 -5
  407. package/dist/runtime/roster.d.ts.map +1 -1
  408. package/dist/runtime/roster.js +0 -21
  409. package/dist/runtime/roster.js.map +1 -1
  410. package/dist/runtime/runner/container-preflight.d.ts +3 -2
  411. package/dist/runtime/runner/container-preflight.d.ts.map +1 -1
  412. package/dist/runtime/runner/container-preflight.js +5 -5
  413. package/dist/runtime/runner/container-preflight.js.map +1 -1
  414. package/dist/runtime/runner/container-runner.d.ts +0 -22
  415. package/dist/runtime/runner/container-runner.d.ts.map +1 -1
  416. package/dist/runtime/runner/container-runner.js +0 -112
  417. package/dist/runtime/runner/container-runner.js.map +1 -1
  418. package/dist/runtime/runner/docker-cli.d.ts +1 -0
  419. package/dist/runtime/runner/docker-cli.d.ts.map +1 -1
  420. package/dist/runtime/runner/docker-cli.js +19 -0
  421. package/dist/runtime/runner/docker-cli.js.map +1 -1
  422. package/dist/runtime/runner/helm-cli.d.ts +1 -0
  423. package/dist/runtime/runner/helm-cli.d.ts.map +1 -1
  424. package/dist/runtime/runner/helm-cli.js +5 -1
  425. package/dist/runtime/runner/helm-cli.js.map +1 -1
  426. package/dist/runtime/runner/helm-pre-install.d.ts +3 -2
  427. package/dist/runtime/runner/helm-pre-install.d.ts.map +1 -1
  428. package/dist/runtime/runner/helm-pre-install.js +3 -3
  429. package/dist/runtime/runner/helm-pre-install.js.map +1 -1
  430. package/dist/runtime/runner/helm-runner.d.ts +29 -4
  431. package/dist/runtime/runner/helm-runner.d.ts.map +1 -1
  432. package/dist/runtime/runner/helm-runner.js +44 -14
  433. package/dist/runtime/runner/helm-runner.js.map +1 -1
  434. package/dist/runtime/runner/kube-cli.d.ts +1 -0
  435. package/dist/runtime/runner/kube-cli.d.ts.map +1 -1
  436. package/dist/runtime/runner/kube-cli.js +24 -2
  437. package/dist/runtime/runner/kube-cli.js.map +1 -1
  438. package/dist/runtime/secrets/managed-local-key-provider.d.ts +2 -0
  439. package/dist/runtime/secrets/managed-local-key-provider.d.ts.map +1 -1
  440. package/dist/runtime/secrets/managed-local-key-provider.js +17 -8
  441. package/dist/runtime/secrets/managed-local-key-provider.js.map +1 -1
  442. package/dist/runtime/seed/closure-container.d.ts +8 -0
  443. package/dist/runtime/seed/closure-container.d.ts.map +1 -0
  444. package/dist/runtime/seed/closure-container.js +23 -0
  445. package/dist/runtime/seed/closure-container.js.map +1 -0
  446. package/dist/runtime/seed/closure-helm.d.ts +9 -0
  447. package/dist/runtime/seed/closure-helm.d.ts.map +1 -0
  448. package/dist/runtime/seed/closure-helm.js +16 -0
  449. package/dist/runtime/seed/closure-helm.js.map +1 -0
  450. package/dist/runtime/seed/closure-names.d.ts +4 -0
  451. package/dist/runtime/seed/closure-names.d.ts.map +1 -0
  452. package/dist/runtime/seed/closure-names.js +29 -0
  453. package/dist/runtime/seed/closure-names.js.map +1 -0
  454. package/dist/runtime/seed/closure-native.d.ts +3 -0
  455. package/dist/runtime/seed/closure-native.d.ts.map +1 -0
  456. package/dist/runtime/seed/closure-native.js +18 -0
  457. package/dist/runtime/seed/closure-native.js.map +1 -0
  458. package/dist/runtime/seed/installation-tar.d.ts +5 -0
  459. package/dist/runtime/seed/installation-tar.d.ts.map +1 -0
  460. package/dist/runtime/seed/installation-tar.js +30 -0
  461. package/dist/runtime/seed/installation-tar.js.map +1 -0
  462. package/dist/runtime/seed/launch-env.d.ts +42 -0
  463. package/dist/runtime/seed/launch-env.d.ts.map +1 -0
  464. package/dist/runtime/seed/launch-env.js +150 -0
  465. package/dist/runtime/seed/launch-env.js.map +1 -0
  466. package/dist/runtime/seed/seed-container.d.ts +13 -0
  467. package/dist/runtime/seed/seed-container.d.ts.map +1 -0
  468. package/dist/runtime/seed/seed-container.js +175 -0
  469. package/dist/runtime/seed/seed-container.js.map +1 -0
  470. package/dist/runtime/seed/seed-delivery-env.d.ts +39 -0
  471. package/dist/runtime/seed/seed-delivery-env.d.ts.map +1 -0
  472. package/dist/runtime/seed/seed-delivery-env.js +47 -0
  473. package/dist/runtime/seed/seed-delivery-env.js.map +1 -0
  474. package/dist/runtime/seed/seed-down.d.ts +2 -0
  475. package/dist/runtime/seed/seed-down.d.ts.map +1 -0
  476. package/dist/runtime/seed/seed-down.js +52 -0
  477. package/dist/runtime/seed/seed-down.js.map +1 -0
  478. package/dist/runtime/seed/seed-env-file.d.ts +3 -0
  479. package/dist/runtime/seed/seed-env-file.d.ts.map +1 -0
  480. package/dist/runtime/seed/seed-env-file.js +24 -0
  481. package/dist/runtime/seed/seed-env-file.js.map +1 -0
  482. package/dist/runtime/seed/seed-env-secret.d.ts +18 -0
  483. package/dist/runtime/seed/seed-env-secret.d.ts.map +1 -0
  484. package/dist/runtime/seed/seed-env-secret.js +62 -0
  485. package/dist/runtime/seed/seed-env-secret.js.map +1 -0
  486. package/dist/runtime/seed/seed-environment.d.ts +12 -0
  487. package/dist/runtime/seed/seed-environment.d.ts.map +1 -0
  488. package/dist/runtime/seed/seed-environment.js +66 -0
  489. package/dist/runtime/seed/seed-environment.js.map +1 -0
  490. package/dist/runtime/seed/seed-facts.d.ts +22 -0
  491. package/dist/runtime/seed/seed-facts.d.ts.map +1 -0
  492. package/dist/runtime/seed/seed-facts.js +40 -0
  493. package/dist/runtime/seed/seed-facts.js.map +1 -0
  494. package/dist/runtime/seed/seed-helm.d.ts +10 -0
  495. package/dist/runtime/seed/seed-helm.d.ts.map +1 -0
  496. package/dist/runtime/seed/seed-helm.js +74 -0
  497. package/dist/runtime/seed/seed-helm.js.map +1 -0
  498. package/dist/runtime/seed/seed-image-user.d.ts +6 -0
  499. package/dist/runtime/seed/seed-image-user.d.ts.map +1 -0
  500. package/dist/runtime/seed/seed-image-user.js +14 -0
  501. package/dist/runtime/seed/seed-image-user.js.map +1 -0
  502. package/dist/runtime/seed/seed-installation-files.d.ts +23 -0
  503. package/dist/runtime/seed/seed-installation-files.d.ts.map +1 -0
  504. package/dist/runtime/seed/seed-installation-files.js +51 -0
  505. package/dist/runtime/seed/seed-installation-files.js.map +1 -0
  506. package/dist/runtime/seed/seed-installation.d.ts +20 -0
  507. package/dist/runtime/seed/seed-installation.d.ts.map +1 -0
  508. package/dist/runtime/seed/seed-installation.js +36 -0
  509. package/dist/runtime/seed/seed-installation.js.map +1 -0
  510. package/dist/runtime/seed/seed-launcher.d.ts +14 -0
  511. package/dist/runtime/seed/seed-launcher.d.ts.map +1 -0
  512. package/dist/runtime/seed/seed-launcher.js +155 -0
  513. package/dist/runtime/seed/seed-launcher.js.map +1 -0
  514. package/dist/runtime/seed/seed-options.d.ts +22 -0
  515. package/dist/runtime/seed/seed-options.d.ts.map +1 -0
  516. package/dist/runtime/seed/seed-options.js +57 -0
  517. package/dist/runtime/seed/seed-options.js.map +1 -0
  518. package/dist/runtime/seed/seed-platform-endpoints.d.ts +8 -0
  519. package/dist/runtime/seed/seed-platform-endpoints.d.ts.map +1 -0
  520. package/dist/runtime/seed/seed-platform-endpoints.js +55 -0
  521. package/dist/runtime/seed/seed-platform-endpoints.js.map +1 -0
  522. package/dist/runtime/seed/seed-process.d.ts +22 -0
  523. package/dist/runtime/seed/seed-process.d.ts.map +1 -0
  524. package/dist/runtime/seed/seed-process.js +79 -0
  525. package/dist/runtime/seed/seed-process.js.map +1 -0
  526. package/dist/runtime/seed/seed-record.d.ts +101 -0
  527. package/dist/runtime/seed/seed-record.d.ts.map +1 -0
  528. package/dist/runtime/seed/seed-record.js +141 -0
  529. package/dist/runtime/seed/seed-record.js.map +1 -0
  530. package/dist/runtime/seed/seed-resolved-deployment.d.ts +14 -0
  531. package/dist/runtime/seed/seed-resolved-deployment.d.ts.map +1 -0
  532. package/dist/runtime/seed/seed-resolved-deployment.js +52 -0
  533. package/dist/runtime/seed/seed-resolved-deployment.js.map +1 -0
  534. package/dist/runtime/seed/substrate-facts.d.ts +52 -0
  535. package/dist/runtime/seed/substrate-facts.d.ts.map +1 -0
  536. package/dist/runtime/seed/substrate-facts.js +92 -0
  537. package/dist/runtime/seed/substrate-facts.js.map +1 -0
  538. package/dist/runtime/seed/supervisor-contract.d.ts +9 -0
  539. package/dist/runtime/seed/supervisor-contract.d.ts.map +1 -0
  540. package/dist/runtime/seed/supervisor-contract.js +68 -0
  541. package/dist/runtime/seed/supervisor-contract.js.map +1 -0
  542. package/dist/runtime/seed/workload-identity-facts.d.ts +17 -0
  543. package/dist/runtime/seed/workload-identity-facts.d.ts.map +1 -0
  544. package/dist/runtime/seed/workload-identity-facts.js +53 -0
  545. package/dist/runtime/seed/workload-identity-facts.js.map +1 -0
  546. package/dist/runtime/sources/schema.d.ts +2 -0
  547. package/dist/runtime/sources/schema.d.ts.map +1 -1
  548. package/dist/runtime/sources/schema.js +10 -9
  549. package/dist/runtime/sources/schema.js.map +1 -1
  550. package/dist/runtime/store-client.d.ts +0 -10
  551. package/dist/runtime/store-client.d.ts.map +1 -1
  552. package/dist/runtime/store-client.js +0 -5
  553. package/dist/runtime/store-client.js.map +1 -1
  554. package/dist/runtime/tenancy/identity-installer.d.ts +11 -0
  555. package/dist/runtime/tenancy/identity-installer.d.ts.map +1 -0
  556. package/dist/runtime/tenancy/identity-installer.js +39 -0
  557. package/dist/runtime/tenancy/identity-installer.js.map +1 -0
  558. package/dist/runtime/tenancy/import-cache.d.ts +5 -0
  559. package/dist/runtime/tenancy/import-cache.d.ts.map +1 -0
  560. package/dist/runtime/tenancy/import-cache.js +27 -0
  561. package/dist/runtime/tenancy/import-cache.js.map +1 -0
  562. package/dist/runtime/tenancy/openfga.d.ts +4 -0
  563. package/dist/runtime/tenancy/openfga.d.ts.map +1 -0
  564. package/dist/runtime/tenancy/openfga.js +29 -0
  565. package/dist/runtime/tenancy/openfga.js.map +1 -0
  566. package/dist/runtime/tenancy/servers.d.ts +18 -0
  567. package/dist/runtime/tenancy/servers.d.ts.map +1 -0
  568. package/dist/runtime/tenancy/servers.js +102 -0
  569. package/dist/runtime/tenancy/servers.js.map +1 -0
  570. package/dist/runtime/tenancy/session.d.ts +19 -0
  571. package/dist/runtime/tenancy/session.d.ts.map +1 -0
  572. package/dist/runtime/tenancy/session.js +79 -0
  573. package/dist/runtime/tenancy/session.js.map +1 -0
  574. package/dist/runtime/tenancy/specs.d.ts +27 -0
  575. package/dist/runtime/tenancy/specs.d.ts.map +1 -0
  576. package/dist/runtime/tenancy/specs.js +129 -0
  577. package/dist/runtime/tenancy/specs.js.map +1 -0
  578. package/examples/01-local-native.yaml +1 -3
  579. package/examples/02-local-container-full.yaml +0 -2
  580. package/examples/03-byo-infra.yaml +1 -5
  581. package/examples/06-biome-sources.yaml +1 -3
  582. package/package.json +32 -37
  583. package/xema.config.example.yaml +1 -10
  584. package/dist/assets/keycloak/realm-xema.json +0 -397
  585. package/dist/commands/dev.d.ts.map +0 -1
  586. package/dist/commands/dev.js +0 -196
  587. package/dist/commands/dev.js.map +0 -1
  588. package/dist/commands/edition.d.ts +0 -3
  589. package/dist/commands/edition.d.ts.map +0 -1
  590. package/dist/commands/edition.js +0 -54
  591. package/dist/commands/edition.js.map +0 -1
  592. package/dist/commands/serve.d.ts +0 -3
  593. package/dist/commands/serve.d.ts.map +0 -1
  594. package/dist/commands/serve.js +0 -114
  595. package/dist/commands/serve.js.map +0 -1
  596. package/dist/dev/carved-installs.d.ts +0 -3
  597. package/dist/dev/carved-installs.d.ts.map +0 -1
  598. package/dist/dev/carved-installs.js +0 -63
  599. package/dist/dev/carved-installs.js.map +0 -1
  600. package/dist/dev/env-defaults.d.ts +0 -15
  601. package/dist/dev/env-defaults.d.ts.map +0 -1
  602. package/dist/dev/env-defaults.js +0 -178
  603. package/dist/dev/env-defaults.js.map +0 -1
  604. package/dist/dev/forked-worker-bootstrap-protocol.d.ts +0 -17
  605. package/dist/dev/forked-worker-bootstrap-protocol.d.ts.map +0 -1
  606. package/dist/dev/forked-worker-bootstrap-protocol.js +0 -35
  607. package/dist/dev/forked-worker-bootstrap-protocol.js.map +0 -1
  608. package/dist/dev/forked-worker-bootstrap.d.ts +0 -18
  609. package/dist/dev/forked-worker-bootstrap.d.ts.map +0 -1
  610. package/dist/dev/forked-worker-bootstrap.js +0 -84
  611. package/dist/dev/forked-worker-bootstrap.js.map +0 -1
  612. package/dist/dev/forked-worker.d.ts +0 -43
  613. package/dist/dev/forked-worker.d.ts.map +0 -1
  614. package/dist/dev/forked-worker.js +0 -358
  615. package/dist/dev/forked-worker.js.map +0 -1
  616. package/dist/edition/verify-image-evidence.bundle.mjs +0 -70456
  617. package/dist/edition/verify-image-evidence.bundle.provenance.json +0 -3957
  618. package/dist/runtime/backing-registration.d.ts +0 -11
  619. package/dist/runtime/backing-registration.d.ts.map +0 -1
  620. package/dist/runtime/backing-registration.js +0 -94
  621. package/dist/runtime/backing-registration.js.map +0 -1
  622. package/dist/runtime/edition/run-entry.d.ts +0 -9
  623. package/dist/runtime/edition/run-entry.d.ts.map +0 -1
  624. package/dist/runtime/edition/run-entry.js +0 -36
  625. package/dist/runtime/edition/run-entry.js.map +0 -1
  626. package/dist/runtime/edition/verb-map.d.ts +0 -70
  627. package/dist/runtime/edition/verb-map.d.ts.map +0 -1
  628. package/dist/runtime/edition/verb-map.js +0 -166
  629. package/dist/runtime/edition/verb-map.js.map +0 -1
  630. package/dist/runtime/env-seeder.d.ts +0 -26
  631. package/dist/runtime/env-seeder.d.ts.map +0 -1
  632. package/dist/runtime/env-seeder.js +0 -340
  633. package/dist/runtime/env-seeder.js.map +0 -1
  634. package/dist/runtime/port-map.d.ts +0 -3
  635. package/dist/runtime/port-map.d.ts.map +0 -1
  636. package/dist/runtime/port-map.js +0 -25
  637. package/dist/runtime/port-map.js.map +0 -1
  638. package/dist/runtime/run-manifest.d.ts +0 -52
  639. package/dist/runtime/run-manifest.d.ts.map +0 -1
  640. package/dist/runtime/run-manifest.js +0 -585
  641. package/dist/runtime/run-manifest.js.map +0 -1
  642. package/dist/runtime/runner/native-runner.d.ts +0 -13
  643. package/dist/runtime/runner/native-runner.d.ts.map +0 -1
  644. package/dist/runtime/runner/native-runner.js +0 -94
  645. package/dist/runtime/runner/native-runner.js.map +0 -1
  646. package/dist/runtime/runner/service-runner.d.ts +0 -28
  647. package/dist/runtime/runner/service-runner.d.ts.map +0 -1
  648. package/dist/runtime/runner/service-runner.js +0 -10
  649. package/dist/runtime/runner/service-runner.js.map +0 -1
  650. package/dist/runtime/secrets/generated-platform-secrets.d.ts +0 -16
  651. package/dist/runtime/secrets/generated-platform-secrets.d.ts.map +0 -1
  652. package/dist/runtime/secrets/generated-platform-secrets.js +0 -115
  653. package/dist/runtime/secrets/generated-platform-secrets.js.map +0 -1
  654. package/dist/runtime/secrets/resolver.d.ts +0 -23
  655. package/dist/runtime/secrets/resolver.d.ts.map +0 -1
  656. package/dist/runtime/secrets/resolver.js +0 -266
  657. package/dist/runtime/secrets/resolver.js.map +0 -1
  658. package/dist/runtime/supervisor.d.ts +0 -67
  659. package/dist/runtime/supervisor.d.ts.map +0 -1
  660. package/dist/runtime/supervisor.js +0 -227
  661. package/dist/runtime/supervisor.js.map +0 -1
  662. package/edition/README.md +0 -293
  663. package/edition/adapter-bundled-versions.mjs +0 -108
  664. package/edition/adapter-host-versions.mjs +0 -41
  665. package/edition/assemble-producer-input.mjs +0 -1423
  666. package/edition/assemble-third-party-input.mjs +0 -336
  667. package/edition/authored-source-check.mjs +0 -135
  668. package/edition/authorization-base.mjs +0 -357
  669. package/edition/biome-content.mjs +0 -327
  670. package/edition/build-biome-index.mjs +0 -180
  671. package/edition/build-ledger-completeness.mjs +0 -67
  672. package/edition/build-ledger.mjs +0 -107
  673. package/edition/build-platform-service-index.mjs +0 -292
  674. package/edition/build-runtime-image-source-index.mjs +0 -1187
  675. package/edition/built-verifier.mjs +0 -55
  676. package/edition/candidate-edition.mjs +0 -697
  677. package/edition/canonical-evidence-json.mjs +0 -82
  678. package/edition/canonical-repository-url.mjs +0 -47
  679. package/edition/catalogue-edition.mjs +0 -49
  680. package/edition/catalogue-evidence.mjs +0 -228
  681. package/edition/catalogue-fetch.mjs +0 -124
  682. package/edition/catalogue-lock-field.mjs +0 -41
  683. package/edition/catalogue-pin.mjs +0 -71
  684. package/edition/catalogue.mjs +0 -223
  685. package/edition/chart-set-source-commit.mjs +0 -97
  686. package/edition/check-committed-image-evidence.mjs +0 -412
  687. package/edition/checkout-indexed-source-repositories.mjs +0 -283
  688. package/edition/collected-refusals.mjs +0 -59
  689. package/edition/comment-blanker.mjs +0 -75
  690. package/edition/connector-source-authority.mjs +0 -60
  691. package/edition/contract-authority.mjs +0 -122
  692. package/edition/cosign-certificate-constraints.mjs +0 -50
  693. package/edition/cross-repo-build-inputs.mjs +0 -158
  694. package/edition/customer-definition.mjs +0 -174
  695. package/edition/customer-edition-verbs.mjs +0 -617
  696. package/edition/customer-flags.mjs +0 -15
  697. package/edition/develop-catalogue-free-resolve.mjs +0 -280
  698. package/edition/develop-chart-roster.mjs +0 -96
  699. package/edition/develop-chart-set.mjs +0 -147
  700. package/edition/develop-coverage-readers.mjs +0 -217
  701. package/edition/develop-coverage-run.mjs +0 -50
  702. package/edition/develop-coverage-verdict.mjs +0 -153
  703. package/edition/develop-coverage.mjs +0 -131
  704. package/edition/develop-current-resolution.mjs +0 -29
  705. package/edition/develop-edition-invariants.mjs +0 -142
  706. package/edition/develop-edition-resolve.mjs +0 -211
  707. package/edition/develop-edition.mjs +0 -379
  708. package/edition/develop-engine-image.mjs +0 -95
  709. package/edition/develop-follow.mjs +0 -491
  710. package/edition/develop-freeze.mjs +0 -289
  711. package/edition/develop-git-bundles.mjs +0 -255
  712. package/edition/develop-graph.mjs +0 -28
  713. package/edition/develop-image-coordinate.mjs +0 -54
  714. package/edition/develop-image-probe.mjs +0 -120
  715. package/edition/develop-image-record.mjs +0 -194
  716. package/edition/develop-record-ancestry.mjs +0 -144
  717. package/edition/develop-record-verify.mjs +0 -216
  718. package/edition/develop-resolve-report.mjs +0 -159
  719. package/edition/develop-select-records.mjs +0 -172
  720. package/edition/develop-selection-line.mjs +0 -30
  721. package/edition/develop-selection-pins.mjs +0 -36
  722. package/edition/develop-snapshot-inputs.mjs +0 -93
  723. package/edition/develop-verify-image-record.mjs +0 -109
  724. package/edition/dispatched-runtime-components.mjs +0 -172
  725. package/edition/dist-check.mjs +0 -1137
  726. package/edition/distribution-evidence-set.mjs +0 -1064
  727. package/edition/distribution-paths.mjs +0 -191
  728. package/edition/edition-artifact.mjs +0 -529
  729. package/edition/edition-biome-manifests.mjs +0 -85
  730. package/edition/edition-ceiling.mjs +0 -180
  731. package/edition/edition-channel.mjs +0 -20
  732. package/edition/edition-chart-set.mjs +0 -104
  733. package/edition/edition-config.mjs +0 -374
  734. package/edition/edition-constants.mjs +0 -110
  735. package/edition/edition-contract-parse.mjs +0 -179
  736. package/edition/edition-contract.json +0 -100
  737. package/edition/edition-image-seal.mjs +0 -110
  738. package/edition/edition-kind.mjs +0 -10
  739. package/edition/edition-list.mjs +0 -35
  740. package/edition/edition-locks.mjs +0 -79
  741. package/edition/edition-pin-verbs.mjs +0 -183
  742. package/edition/edition-pin.mjs +0 -17
  743. package/edition/edition-pinned-inputs.mjs +0 -116
  744. package/edition/edition-protocol.mjs +0 -277
  745. package/edition/edition-publisher.mjs +0 -21
  746. package/edition/edition-seal.mjs +0 -257
  747. package/edition/edition-source-pins.mjs +0 -211
  748. package/edition/edition-unpin.mjs +0 -16
  749. package/edition/edition-workspace.mjs +0 -204
  750. package/edition/evidence-checkout.mjs +0 -439
  751. package/edition/evidence-grammars.mjs +0 -18
  752. package/edition/evidence-input-mode.mjs +0 -136
  753. package/edition/evidence-trust-pin.mjs +0 -380
  754. package/edition/evidence-trust-policy.mjs +0 -374
  755. package/edition/external-source-walk.mjs +0 -485
  756. package/edition/first-party-source-ids.mjs +0 -62
  757. package/edition/fleet-coordinate-finality.mjs +0 -363
  758. package/edition/fulcio-certificate-extensions.mjs +0 -231
  759. package/edition/git-json.mjs +0 -54
  760. package/edition/git-source-auth.mjs +0 -131
  761. package/edition/image-delivery-entitlement-descriptor.mjs +0 -106
  762. package/edition/image-evidence-replay-state.mjs +0 -242
  763. package/edition/image-evidence.mjs +0 -1404
  764. package/edition/image-lock-service-rows.mjs +0 -26
  765. package/edition/image-subject-identity.mjs +0 -24
  766. package/edition/images-from-record.mjs +0 -298
  767. package/edition/indexes-at-pins.mjs +0 -13
  768. package/edition/kernel-capability-domain.mjs +0 -30
  769. package/edition/kernel-contract-authority.mjs +0 -517
  770. package/edition/kernel-contract-source-path-set.mjs +0 -94
  771. package/edition/kernel-package.mjs +0 -206
  772. package/edition/kernel-protocol-choice.mjs +0 -239
  773. package/edition/kernel-signer-kind.mjs +0 -23
  774. package/edition/lib.mjs +0 -3303
  775. package/edition/locked-bundle-signer.mjs +0 -297
  776. package/edition/map-with-concurrency.mjs +0 -19
  777. package/edition/no-follow-file.mjs +0 -94
  778. package/edition/oci-evidence-verbs.mjs +0 -419
  779. package/edition/oci-image-source-evidence.mjs +0 -364
  780. package/edition/operation-grant-admission.mjs +0 -285
  781. package/edition/operation-requirements.mjs +0 -282
  782. package/edition/oras-process.mjs +0 -35
  783. package/edition/oras.mjs +0 -742
  784. package/edition/pin-source.mjs +0 -242
  785. package/edition/pinned-cosign.mjs +0 -70
  786. package/edition/plan-image-evidence-refresh.mjs +0 -427
  787. package/edition/platform-lock-readability.mjs +0 -901
  788. package/edition/platform-service-class.mjs +0 -85
  789. package/edition/platform-service-ownership.mjs +0 -88
  790. package/edition/platform-service-source-authority.mjs +0 -105
  791. package/edition/positive-closure.mjs +0 -162
  792. package/edition/previous-seal-registry.mjs +0 -149
  793. package/edition/produce-distribution-completeness-evidence.mjs +0 -318
  794. package/edition/produce-edition-catalogue-evidence.mjs +0 -252
  795. package/edition/produce-image-delivery-entitlement-evidence.mjs +0 -304
  796. package/edition/produce-image-source-evidence.mjs +0 -788
  797. package/edition/producer-evidence-bundle.mjs +0 -201
  798. package/edition/producer-evidence-index-file.mjs +0 -4
  799. package/edition/record-refused.mjs +0 -12
  800. package/edition/registry-credentials.mjs +0 -225
  801. package/edition/release-catalogue.mjs +0 -47
  802. package/edition/release-channel-guard.mjs +0 -108
  803. package/edition/release-edition-artifact.mjs +0 -152
  804. package/edition/release-edition.mjs +0 -54
  805. package/edition/remedy-command.mjs +0 -89
  806. package/edition/repin-evidence-trust.mjs +0 -109
  807. package/edition/required-resource-provider.mjs +0 -58
  808. package/edition/resolve-chart-set.mjs +0 -376
  809. package/edition/resolve-customer-edition.mjs +0 -374
  810. package/edition/resolve-distribution.mjs +0 -2639
  811. package/edition/resolve-edition.mjs +0 -192
  812. package/edition/resolve-images.mjs +0 -2351
  813. package/edition/seal-image-digests.mjs +0 -954
  814. package/edition/sealed-distribution-lock.mjs +0 -22
  815. package/edition/sealed-evidence-accept.mjs +0 -82
  816. package/edition/shallow-checkout.mjs +0 -18
  817. package/edition/sigstore-bundle-media-type.mjs +0 -4
  818. package/edition/source-authority.mjs +0 -713
  819. package/edition/source-closure.mjs +0 -115
  820. package/edition/store-publisher-trust.mjs +0 -40
  821. package/edition/strict-json.mjs +0 -121
  822. package/edition/string-order.mjs +0 -5
  823. package/edition/third-party-admission.mjs +0 -91
  824. package/edition/third-party-bundle-registry.mjs +0 -242
  825. package/edition/third-party-certificate-extensions.mjs +0 -21
  826. package/edition/third-party-image-pins.mjs +0 -41
  827. package/edition/third-party-pins-trusted.mjs +0 -24
  828. package/edition/third-party-producer-evidence.mjs +0 -76
  829. package/edition/third-party-source-check.mjs +0 -28
  830. package/edition/third-party-source-context.mjs +0 -41
  831. package/edition/third-party-source-evidence.mjs +0 -287
  832. package/edition/third-party-source-flags.mjs +0 -134
  833. package/edition/third-party-source-pins.mjs +0 -259
  834. package/edition/third-party-source-uniqueness.mjs +0 -54
  835. package/edition/third-party-source-walk.mjs +0 -115
  836. package/edition/third-party-source-writer.mjs +0 -213
  837. package/edition/third-party-subjects.mjs +0 -128
  838. package/edition/trust-policy-arming-verb.mjs +0 -60
  839. package/edition/trust-policy-arming.mjs +0 -144
  840. package/edition/trust-policy-image-ownership.mjs +0 -85
  841. package/edition/trusted-executable.mjs +0 -166
  842. package/edition/verifier-binding.mjs +0 -45
  843. package/edition/verifier-files.mjs +0 -8
  844. package/edition/verifier-kernel-schemas.mjs +0 -22
  845. package/edition/verifier-provenance.mjs +0 -64
  846. package/edition/verify-catalogue-evidence.mjs +0 -247
  847. package/edition/verify-image-evidence.mjs +0 -475
  848. package/edition/verify-image-platforms.mjs +0 -523
  849. package/edition/why.mjs +0 -56
  850. package/edition/workspace-sections.mjs +0 -276
@@ -1,364 +0,0 @@
1
- import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
2
- import { tmpdir } from 'node:os';
3
- import { dirname, join } from 'node:path';
4
-
5
- import { SHA256_DIGEST_PATTERN } from './evidence-grammars.mjs';
6
- import { canonicalJson, sha256Digest } from './image-evidence.mjs';
7
- import { compareStrings } from './lib.mjs';
8
- import { OrasRegistry } from './oras.mjs';
9
- import { BUNDLE_MEDIA_TYPE } from './produce-image-source-evidence.mjs';
10
- import {
11
- EvidenceIntegrityError,
12
- PRODUCER_EVIDENCE_INDEX_FILE,
13
- PRODUCER_EVIDENCE_INDEX_MEDIA_TYPE,
14
- PRODUCER_STATEMENT_MEDIA_TYPE,
15
- producerEvidenceLayerFiles,
16
- readProducerEvidenceDirectory,
17
- readRawStatementAuthorityCommits,
18
- } from './producer-evidence-bundle.mjs';
19
- import {
20
- loadRegistryCredentialDeclarations,
21
- resolveRegistryCredential,
22
- splitImageRef,
23
- } from './registry-credentials.mjs';
24
-
25
- export const IMAGE_SOURCE_EVIDENCE_ARTIFACT_TYPE =
26
- 'application/vnd.xema.image-source-evidence.v2';
27
- /** The E4 statement an edition artifact carries as an `oras attach` referrer (the catalogue's signed evidence). */
28
- export const EDITION_CATALOGUE_EVIDENCE_ARTIFACT_TYPE =
29
- 'application/vnd.xema.edition-catalogue-evidence.v1';
30
- export const OCI_IMAGE_MANIFEST_MEDIA_TYPE =
31
- 'application/vnd.oci.image.manifest.v1+json';
32
- const OCI_TITLE_ANNOTATION = 'org.opencontainers.image.title';
33
- const OCI_CREATED_ANNOTATION = 'org.opencontainers.image.created';
34
-
35
- /** One registry reader per authority, each with the credential the data root declares for it. */
36
- export function createRegistryClientResolver({ dataRoot, factory }) {
37
- const declarations = loadRegistryCredentialDeclarations(dataRoot);
38
- const clients = new Map();
39
- return (authority) => {
40
- if (clients.has(authority)) {return clients.get(authority);}
41
- const client = factory
42
- ? factory(authority)
43
- : new OrasRegistry({
44
- credential: resolveRegistryCredential({ authority, declarations }),
45
- });
46
- clients.set(authority, client);
47
- return client;
48
- };
49
- }
50
-
51
- function exactRelativePath(value, label) {
52
- if (
53
- typeof value !== 'string' ||
54
- value.length === 0 ||
55
- value.startsWith('/') ||
56
- value.split('/').some((part) => !part || part === '.' || part === '..')
57
- ) {
58
- throw new Error(`${label} is not a contained relative path`);
59
- }
60
- return value;
61
- }
62
-
63
- function expectedMediaType(path) {
64
- if (path === PRODUCER_EVIDENCE_INDEX_FILE) {
65
- return PRODUCER_EVIDENCE_INDEX_MEDIA_TYPE;
66
- }
67
- if (path.startsWith('statements/')) {return PRODUCER_STATEMENT_MEDIA_TYPE;}
68
- if (path.startsWith('bundles/')) {return BUNDLE_MEDIA_TYPE;}
69
- throw new Error(`OCI evidence layer has unsupported title "${path}"`);
70
- }
71
-
72
- export function validateImageSourceEvidenceManifest({
73
- manifest,
74
- subjectDigest,
75
- }) {
76
- if (
77
- manifest?.schemaVersion !== 2 ||
78
- manifest.mediaType !== OCI_IMAGE_MANIFEST_MEDIA_TYPE ||
79
- manifest.artifactType !== IMAGE_SOURCE_EVIDENCE_ARTIFACT_TYPE ||
80
- manifest.subject?.digest !== subjectDigest ||
81
- !Array.isArray(manifest.layers) ||
82
- manifest.layers.length < 3
83
- ) {
84
- throw new Error(
85
- 'image-source evidence artifact is not an OCI 1.1 manifest for the exact subject',
86
- );
87
- }
88
- const created = manifest.annotations?.[OCI_CREATED_ANNOTATION];
89
- if (typeof created !== 'string' || !Number.isFinite(Date.parse(created))) {
90
- throw new Error(`image-source evidence artifact has no valid ${OCI_CREATED_ANNOTATION}`);
91
- }
92
- const seen = new Set();
93
- let indexCount = 0;
94
- for (const layer of manifest.layers) {
95
- const title = exactRelativePath(
96
- layer?.annotations?.[OCI_TITLE_ANNOTATION],
97
- 'OCI evidence layer title',
98
- );
99
- if (seen.has(title)) {
100
- throw new Error(`OCI evidence manifest duplicates layer title "${title}"`);
101
- }
102
- seen.add(title);
103
- if (
104
- !SHA256_DIGEST_PATTERN.test(layer.digest ?? '') ||
105
- !Number.isSafeInteger(layer.size) ||
106
- layer.size < 0 ||
107
- layer.mediaType !== expectedMediaType(title)
108
- ) {
109
- throw new Error(`OCI evidence layer "${title}" has an invalid descriptor`);
110
- }
111
- if (title === PRODUCER_EVIDENCE_INDEX_FILE) {indexCount += 1;}
112
- }
113
- if (indexCount !== 1) {
114
- throw new Error('OCI evidence manifest requires exactly one producer evidence index');
115
- }
116
- return { created, layers: manifest.layers };
117
- }
118
-
119
- export function validateMaterializedImageSourceEvidence({
120
- directory,
121
- manifest,
122
- subjectDigest,
123
- schemas,
124
- }) {
125
- const { created, layers } = validateImageSourceEvidenceManifest({
126
- manifest,
127
- subjectDigest,
128
- });
129
- const evidence = readProducerEvidenceDirectory({ directory, schemas });
130
- const declared = producerEvidenceLayerFiles(evidence.records)
131
- .map(({ path, mediaType }) => `${path}\0${mediaType}`)
132
- .sort(compareStrings);
133
- const materialized = layers
134
- .map(
135
- (layer) => `${layer.annotations[OCI_TITLE_ANNOTATION]}\0${layer.mediaType}`,
136
- )
137
- .sort(compareStrings);
138
- if (canonicalJson(declared) !== canonicalJson(materialized)) {
139
- throw new Error(
140
- 'OCI evidence layers are not the exact files declared by producer-evidence.json',
141
- );
142
- }
143
- for (const record of evidence.records) {
144
- const artifact = record.statement.predicate.artifact;
145
- if (
146
- artifact.manifestDigest !== subjectDigest ||
147
- record.statement.subject[0]?.name !== artifact.imageRepository ||
148
- `sha256:${record.statement.subject[0]?.digest?.sha256}` !== subjectDigest
149
- ) {
150
- throw new Error(`${record.key} statement is not bound to OCI subject ${subjectDigest}`);
151
- }
152
- if (record.statement.predicate.producerRun.issuedAt !== created) {
153
- throw new Error(
154
- `${record.key} issuance does not match the OCI artifact creation annotation`,
155
- );
156
- }
157
- }
158
- return { ...evidence, created };
159
- }
160
-
161
- function assertExpectedAuthorityCommit(value) {
162
- if (typeof value !== 'string' || value.length === 0) {
163
- throw new Error('the expected kernel contract authority commit is required');
164
- }
165
- }
166
-
167
- /** The referrer is not usable evidence under the expected authority: it is skipped for its subject and reported, never thrown past the resolver. */
168
- export class InvalidEvidenceReferrerError extends Error {
169
- constructor({ artifactDigest, reason, sourceCommit = null, cause }) {
170
- super(`evidence referrer ${artifactDigest} is invalid: ${reason}`, { cause });
171
- this.name = 'InvalidEvidenceReferrerError';
172
- this.artifactDigest = artifactDigest;
173
- this.reason = reason;
174
- this.sourceCommit = sourceCommit;
175
- }
176
- }
177
-
178
- /** The artifact states a kernel contract authority other than the one evidence is read under. */
179
- export class ForeignAuthorityReferrerError extends InvalidEvidenceReferrerError {
180
- constructor({ artifactDigest, sourceCommit, expectedAuthorityCommit }) {
181
- super({
182
- artifactDigest,
183
- sourceCommit,
184
- reason: `stated under kernel contract authority ${sourceCommit}, not ${expectedAuthorityCommit}`,
185
- });
186
- this.name = 'ForeignAuthorityReferrerError';
187
- }
188
- }
189
-
190
- /** What a skipped referrer is reported as: the one sentence naming it and why it is not evidence. */
191
- export function describeInvalidReferrer(skipped) {
192
- return `referrer ${skipped.artifactDigest}: ${skipped.reason}`;
193
- }
194
-
195
- /** The one stderr line that names a skipped invalid referrer. */
196
- export function writeInvalidReferrerReport(skipped) {
197
- process.stderr.write(
198
- `[evidence] skipped ${skipped.imageRepository}@${skipped.subjectDigest} ${describeInvalidReferrer(skipped)}\n`,
199
- );
200
- }
201
-
202
- /**
203
- * Fetch, content-address validate and decode one OCI evidence artifact.
204
- * `getBlob` verifies every digest again, independently of the manifest.
205
- * An artifact that is not valid evidence under `expectedAuthorityCommit`
206
- * (a manifest that is not the exact subject's, RAW statements stating another authority commit, a
207
- * failed strict parse, a statement whose contract authority is not exactly
208
- * `expectedContractAuthority`, which is required) is refused with `InvalidEvidenceReferrerError`; a
209
- * registry that cannot answer, or bytes that do not match their digests
210
- * (`EvidenceIntegrityError`, a tampering signal), still throw.
211
- */
212
- export async function readImageSourceEvidenceArtifact({
213
- client,
214
- repository,
215
- subjectDigest,
216
- artifactDigest,
217
- schemas,
218
- expectedAuthorityCommit,
219
- expectedContractAuthority,
220
- }) {
221
- assertExpectedAuthorityCommit(expectedAuthorityCommit);
222
- if (!expectedContractAuthority) {
223
- throw new Error('the expected kernel contract authority is required');
224
- }
225
- const fetched = await client.getManifestByDigest(repository, artifactDigest);
226
- const invalid = (error) =>
227
- new InvalidEvidenceReferrerError({
228
- artifactDigest,
229
- reason: error instanceof Error ? error.message : String(error),
230
- cause: error,
231
- });
232
- let validated;
233
- try {
234
- validated = validateImageSourceEvidenceManifest({
235
- manifest: fetched.document,
236
- subjectDigest,
237
- });
238
- } catch (error) {
239
- throw invalid(error);
240
- }
241
- const { created, layers } = validated;
242
- const directory = mkdtempSync(join(tmpdir(), 'xema-oci-evidence-'));
243
- try {
244
- for (const layer of layers) {
245
- const title = layer.annotations[OCI_TITLE_ANNOTATION];
246
- const bytes = await client.getBlob(repository, layer.digest);
247
- if (bytes.length !== layer.size || sha256Digest(bytes) !== layer.digest) {
248
- throw new EvidenceIntegrityError(
249
- `OCI evidence layer "${title}" does not match its descriptor`,
250
- );
251
- }
252
- const path = join(directory, title);
253
- mkdirSync(dirname(path), { recursive: true });
254
- writeFileSync(path, bytes, { flag: 'wx', mode: 0o600 });
255
- }
256
- try {
257
- for (const sourceCommit of readRawStatementAuthorityCommits({ directory })) {
258
- if (sourceCommit !== expectedAuthorityCommit) {
259
- throw new ForeignAuthorityReferrerError({
260
- artifactDigest,
261
- sourceCommit,
262
- expectedAuthorityCommit,
263
- });
264
- }
265
- }
266
- const evidence = validateMaterializedImageSourceEvidence({
267
- directory,
268
- manifest: fetched.document,
269
- subjectDigest,
270
- schemas,
271
- });
272
- // The wire schema checks the shape of an authority's sourcePaths only
273
- // (contracts 0.110.3), so a statement naming the expected commit with
274
- // another path set or digest parses: it is not evidence under the pin.
275
- for (const record of evidence.records) {
276
- if (canonicalJson(record.statement.predicate.contractAuthority) !== canonicalJson(expectedContractAuthority)) {
277
- throw new Error(`${record.key} statement's kernel contract authority is not exactly the expected one at ${expectedAuthorityCommit}`);
278
- }
279
- }
280
- return { ...evidence, artifactDigest, created };
281
- } catch (error) {
282
- if (error instanceof InvalidEvidenceReferrerError || error instanceof EvidenceIntegrityError) {
283
- throw error;
284
- }
285
- throw invalid(error);
286
- }
287
- } finally {
288
- rmSync(directory, { recursive: true, force: true });
289
- }
290
- }
291
-
292
- /**
293
- * Resolve the newest valid evidence referrer deterministically. Every
294
- * referrer of the subject is evaluated; one that is not valid evidence under
295
- * `expectedContractAuthority` (foreign authority, bad statement, bad layers)
296
- * is reported to `onInvalidReferrer` and skipped. It is never a fallback: an
297
- * invalid referrer is not read as evidence, however old or new. Returns null
298
- * when no referrer is valid; the handler has then named each invalid one.
299
- */
300
- export async function resolveImageSourceEvidenceReferrer({
301
- client,
302
- imageRepository,
303
- subjectDigest,
304
- schemas,
305
- expectedContractAuthority,
306
- onInvalidReferrer,
307
- }) {
308
- const expectedAuthorityCommit = expectedContractAuthority?.sourceCommit;
309
- assertExpectedAuthorityCommit(expectedAuthorityCommit);
310
- if (typeof onInvalidReferrer !== 'function') {
311
- throw new Error('an invalid-referrer report handler is required');
312
- }
313
- const { authority, repository } = splitImageRef(imageRepository);
314
- if (client.authority !== authority) {
315
- throw new Error(
316
- `registry client for ${client.authority} cannot read ${imageRepository}`,
317
- );
318
- }
319
- const descriptors = await client.listReferrers(
320
- repository,
321
- subjectDigest,
322
- IMAGE_SOURCE_EVIDENCE_ARTIFACT_TYPE,
323
- );
324
- const matching = descriptors.filter(
325
- (descriptor) =>
326
- descriptor?.artifactType === IMAGE_SOURCE_EVIDENCE_ARTIFACT_TYPE,
327
- );
328
- if (matching.length === 0) {return null;}
329
- const candidates = [];
330
- for (const descriptor of matching) {
331
- if (!SHA256_DIGEST_PATTERN.test(descriptor.digest ?? '')) {
332
- throw new Error('registry returned a non-canonical evidence referrer digest');
333
- }
334
- try {
335
- candidates.push(
336
- await readImageSourceEvidenceArtifact({
337
- client,
338
- repository,
339
- subjectDigest,
340
- artifactDigest: descriptor.digest,
341
- schemas,
342
- expectedAuthorityCommit,
343
- expectedContractAuthority,
344
- }),
345
- );
346
- } catch (error) {
347
- if (!(error instanceof InvalidEvidenceReferrerError)) {throw error;}
348
- onInvalidReferrer({
349
- imageRepository,
350
- subjectDigest,
351
- artifactDigest: error.artifactDigest,
352
- reason: error.reason,
353
- sourceCommit: error.sourceCommit,
354
- expectedAuthorityCommit,
355
- });
356
- }
357
- }
358
- if (candidates.length === 0) {return null;}
359
- candidates.sort((left, right) => {
360
- const byCreated = compareStrings(right.created, left.created);
361
- return byCreated || compareStrings(left.artifactDigest, right.artifactDigest);
362
- });
363
- return candidates[0];
364
- }
@@ -1,285 +0,0 @@
1
- /**
2
- * Admission of service-to-service operation grants at the lock.
3
- *
4
- * A manifest declares intent (`requiresOperations`, carried in the lock as
5
- * `operationRequirements`); the kernel's `admitOperationGrants` admits or
6
- * refuses every requirement, and a refusal is never a warning. The resolve
7
- * and the seal both call {@link assertOperationGrantsAdmitted}, so a lock with
8
- * a refused requirement is neither written nor sealed. The installed-operation
9
- * ceiling (`requestsInstalledOperations`, carried as `installedOperationRequests`)
10
- * and the edition's store-workload ceiling are admitted the same way.
11
- */
12
-
13
- import { RefusalError, collectRefusals, isRefusal, joinRefusalMessages } from './collected-refusals.mjs';
14
-
15
- /** Thrown when one or more declared operation requirements are not admitted. */
16
- export class OperationGrantAdmissionError extends RefusalError {
17
- /**
18
- * @param {string} distributionId
19
- * @param {ReadonlyArray<{code: string, operation: string, message: string}>} refusals
20
- * @param {ReadonlyArray<{caller: object, operation: string, reason: string}>} [ungrantedOptional] what the kernel left ungranted beside the refusals
21
- */
22
- constructor(distributionId, refusals, ungrantedOptional = []) {
23
- super(
24
- `distribution "${distributionId}" declares operation requirements that are not admitted:\n` +
25
- refusals.map((refusal) => `[${refusal.code}] ${refusal.message}`).join('\n'),
26
- );
27
- this.name = 'OperationGrantAdmissionError';
28
- this.distributionId = distributionId;
29
- this.refusals = refusals;
30
- this.ungrantedOptional = ungrantedOptional;
31
- }
32
- }
33
-
34
- /**
35
- * One informational line per optional operation the kernel left ungranted
36
- * (`ungrantedOptional`): the edition is valid, the caller runs without it.
37
- */
38
- export function ungrantedOptionalOperationLines(distributionId, ungrantedOptional) {
39
- return ungrantedOptional.map(
40
- ({ caller, operation, reason }) =>
41
- `distribution "${distributionId}": optional operation ${operation} of ${caller.biome}/${caller.component} is not granted (${reason})`,
42
- );
43
- }
44
-
45
- /**
46
- * Admit every operation requirement of `lock` through the kernel, or throw
47
- * {@link OperationGrantAdmissionError} listing every refusal. Returns the
48
- * admitted grants. `report`, when given, receives each line of
49
- * {@link ungrantedOptionalOperationLines}; an ungranted optional operation never fails.
50
- */
51
- export function assertOperationGrantsAdmitted(schemas, lock, { report } = {}) {
52
- const { grants, refusals, ungrantedOptional, platformServiceRefusals } = schemas.admitOperationGrants(lock);
53
- // A platform service's refused requirement fails exactly like a biome component's, through the same error.
54
- const allRefusals = [...refusals, ...platformServiceRefusals];
55
- if (allRefusals.length > 0) {
56
- throw new OperationGrantAdmissionError(lock.distributionId, allRefusals, ungrantedOptional);
57
- }
58
- if (report !== undefined) {
59
- for (const line of ungrantedOptionalOperationLines(lock.distributionId, ungrantedOptional)) {report(line);}
60
- }
61
- return grants;
62
- }
63
-
64
- /** Thrown when one or more declared organization sweeps are not admitted. */
65
- export class OrganizationSweepAdmissionError extends RefusalError {
66
- /**
67
- * @param {string} distributionId
68
- * @param {ReadonlyArray<{code: string, biome: string, component: string, sweep: string, message: string}>} refusals
69
- */
70
- constructor(distributionId, refusals) {
71
- super(
72
- `distribution "${distributionId}" declares organization sweeps that are not admitted:\n` +
73
- refusals.map((refusal) => `[${refusal.code}] ${refusal.message}`).join('\n'),
74
- );
75
- this.name = 'OrganizationSweepAdmissionError';
76
- this.distributionId = distributionId;
77
- this.refusals = refusals;
78
- }
79
- }
80
-
81
- /**
82
- * Admit every organization sweep requirement of `lock` through the kernel
83
- * (`admitOrganizationSweeps`), or throw {@link OrganizationSweepAdmissionError}
84
- * listing every refusal. Returns the admitted rows. The resolve and the seal
85
- * call it beside {@link assertOperationGrantsAdmitted}.
86
- */
87
- export function assertOrganizationSweepsAdmitted(schemas, lock) {
88
- const { grants, refusals } = schemas.admitOrganizationSweeps(lock);
89
- if (refusals.length > 0) {
90
- throw new OrganizationSweepAdmissionError(lock.distributionId, refusals);
91
- }
92
- return grants;
93
- }
94
-
95
- /** Thrown when one or more declared exact audiences are not admitted. */
96
- export class ExactAudienceAdmissionError extends RefusalError {
97
- /**
98
- * @param {string} distributionId
99
- * @param {ReadonlyArray<{code: string, message: string}>} refusals
100
- */
101
- constructor(distributionId, refusals) {
102
- super(
103
- `distribution "${distributionId}" declares audience requirements that are not admitted:\n` +
104
- refusals.map((refusal) => `[${refusal.code}] ${refusal.message}`).join('\n'),
105
- );
106
- this.name = 'ExactAudienceAdmissionError';
107
- this.distributionId = distributionId;
108
- this.refusals = refusals;
109
- }
110
- }
111
-
112
- /**
113
- * Admit every exact-audience requirement of `lock` through the kernel
114
- * (`admitExactAudiences`), or throw {@link ExactAudienceAdmissionError} listing
115
- * every refusal. Returns the admitted grants. The resolve and the seal call it
116
- * beside {@link assertOperationGrantsAdmitted}.
117
- */
118
- export function assertExactAudiencesAdmitted(schemas, lock) {
119
- const { grants, refusals } = schemas.admitExactAudiences(lock);
120
- if (refusals.length > 0) {
121
- throw new ExactAudienceAdmissionError(lock.distributionId, refusals);
122
- }
123
- return grants;
124
- }
125
-
126
- /** Thrown when one or more requested installed operations are not admitted into the ceiling. */
127
- export class InstalledOperationCeilingAdmissionError extends RefusalError {
128
- /**
129
- * @param {string} distributionId
130
- * @param {ReadonlyArray<{code: string, biome: string, component: string, operation: string, message: string}>} refusals
131
- */
132
- constructor(distributionId, refusals) {
133
- super(
134
- `distribution "${distributionId}" declares installed operation requests that are not admitted:\n` +
135
- refusals.map((refusal) => `[${refusal.code}] ${refusal.message}`).join('\n'),
136
- );
137
- this.name = 'InstalledOperationCeilingAdmissionError';
138
- this.distributionId = distributionId;
139
- this.refusals = refusals;
140
- }
141
- }
142
-
143
- /**
144
- * Admit every installed-operation request of `lock` through the kernel
145
- * (`admitInstalledOperationCeiling`), or throw
146
- * {@link InstalledOperationCeilingAdmissionError} listing every refusal.
147
- * Returns the admitted ceiling rows.
148
- */
149
- export function assertInstalledOperationCeilingAdmitted(schemas, lock) {
150
- const { ceilings, refusals } = schemas.admitInstalledOperationCeiling(lock);
151
- if (refusals.length > 0) {
152
- throw new InstalledOperationCeilingAdmissionError(lock.distributionId, refusals);
153
- }
154
- return ceilings;
155
- }
156
-
157
- /** Thrown when one or more domains of the edition's store-workload ceiling are not admitted. */
158
- export class StoreWorkloadCeilingAdmissionError extends RefusalError {
159
- /**
160
- * @param {string} distributionId
161
- * @param {ReadonlyArray<{code: string, domain: string, message: string}>} refusals
162
- */
163
- constructor(distributionId, refusals) {
164
- super(
165
- `distribution "${distributionId}" declares a store-workload ceiling that is not admitted:\n` +
166
- refusals.map((refusal) => `[${refusal.code}] ${refusal.message}`).join('\n'),
167
- );
168
- this.name = 'StoreWorkloadCeilingAdmissionError';
169
- this.distributionId = distributionId;
170
- this.refusals = refusals;
171
- }
172
- }
173
-
174
- /**
175
- * Admit the store-workload ceiling of `lock` through the kernel
176
- * (`admitStoreWorkloadCeiling`), or throw
177
- * {@link StoreWorkloadCeilingAdmissionError} listing every refusal. Returns the
178
- * resolved ceiling.
179
- */
180
- export function assertStoreWorkloadCeilingAdmitted(schemas, lock) {
181
- const { ceiling, refusals } = schemas.admitStoreWorkloadCeiling(lock);
182
- if (refusals.length > 0) {
183
- throw new StoreWorkloadCeilingAdmissionError(lock.distributionId, refusals);
184
- }
185
- return ceiling;
186
- }
187
-
188
- /** Thrown when one or more declared organization-context relays are not admitted. */
189
- export class OrgContextRelayAdmissionError extends RefusalError {
190
- /**
191
- * @param {string} distributionId
192
- * @param {ReadonlyArray<{code: string, biome: string, component: string, message: string}>} refusals
193
- */
194
- constructor(distributionId, refusals) {
195
- super(
196
- `distribution "${distributionId}" declares organization-context relays that are not admitted:\n` +
197
- refusals.map((refusal) => `[${refusal.code}] ${refusal.message}`).join('\n'),
198
- );
199
- this.name = 'OrgContextRelayAdmissionError';
200
- this.distributionId = distributionId;
201
- this.refusals = refusals;
202
- }
203
- }
204
-
205
- /**
206
- * Admit every `orgContextRelayers` entry of `lock` through the kernel
207
- * (`admitOrgContextRelays`), or throw {@link OrgContextRelayAdmissionError}
208
- * listing every refusal. Returns the admitted relay rows.
209
- */
210
- export function assertOrgContextRelaysAdmitted(schemas, lock) {
211
- const { relays, refusals } = schemas.admitOrgContextRelays(lock);
212
- if (refusals.length > 0) {
213
- throw new OrgContextRelayAdmissionError(lock.distributionId, refusals);
214
- }
215
- return relays;
216
- }
217
-
218
- /** Thrown when one or more declared event subscription clauses are not admitted. */
219
- export class EventSubscriptionAdmissionError extends RefusalError {
220
- /**
221
- * @param {string} distributionId
222
- * @param {ReadonlyArray<{code: string, biome: string, component: string, message: string}>} refusals
223
- */
224
- constructor(distributionId, refusals) {
225
- super(
226
- `distribution "${distributionId}" declares event subscriptions that are not admitted:\n` +
227
- refusals.map((refusal) => `[${refusal.code}] ${refusal.message}`).join('\n'),
228
- );
229
- this.name = 'EventSubscriptionAdmissionError';
230
- this.distributionId = distributionId;
231
- this.refusals = refusals;
232
- }
233
- }
234
-
235
- /**
236
- * Admit every `eventSubscriptionRequirements` clause of `lock` through the
237
- * kernel (`admitEventSubscriptions`), or throw
238
- * {@link EventSubscriptionAdmissionError} listing every refusal. Returns the
239
- * admission: the first-party grants and the installed ceilings.
240
- */
241
- export function assertEventSubscriptionsAdmitted(schemas, lock) {
242
- const admission = schemas.admitEventSubscriptions(lock);
243
- if (admission.refusals.length > 0) {
244
- throw new EventSubscriptionAdmissionError(lock.distributionId, admission.refusals);
245
- }
246
- return admission;
247
- }
248
-
249
- /** Thrown when several admission categories refuse the same lock; `.errors` holds each category's own error. */
250
- export class LockAdmissionRefusedError extends RefusalError {
251
- /** @param {readonly Error[]} errors */
252
- constructor(errors) {
253
- super(`the distribution lock is refused by ${errors.length} admission checks:\n\n${joinRefusalMessages(errors)}`);
254
- this.name = 'LockAdmissionRefusedError';
255
- this.errors = errors;
256
- }
257
- }
258
-
259
- /**
260
- * Run every admission a lock must pass, in the order the resolve has always run them, and refuse with all of them: one
261
- * refusal is rethrown unchanged, several are one {@link LockAdmissionRefusedError}. `report` receives the optional
262
- * operations left ungranted. Nothing here changes `lock`.
263
- */
264
- export function admitDistributionLock(schemas, lock, { report } = {}) {
265
- // The two ceilings read the lock's own fields, not the outcome of the grants, so they are checked beside them.
266
- const admissions = [
267
- () => assertOperationGrantsAdmitted(schemas, lock, { report }),
268
- () => assertOrganizationSweepsAdmitted(schemas, lock),
269
- () => assertExactAudiencesAdmitted(schemas, lock),
270
- () => assertOrgContextRelaysAdmitted(schemas, lock),
271
- () => assertEventSubscriptionsAdmitted(schemas, lock),
272
- () => assertInstalledOperationCeilingAdmitted(schemas, lock),
273
- () => assertStoreWorkloadCeilingAdmitted(schemas, lock),
274
- ];
275
- collectRefusals(admissions, (admit) => admit(), isRefusal, LockAdmissionRefusedError);
276
- }
277
-
278
- /**
279
- * The {@link ungrantedOptionalOperationLines} a refused admission carries: the refusal of the operation grants itself, or the
280
- * one among several that is. Empty when the grants were not what refused.
281
- */
282
- export function ungrantedOptionalLinesOfRefusal(error) {
283
- const grantRefusal = [error, ...(error.errors ?? [])].find((candidate) => candidate instanceof OperationGrantAdmissionError);
284
- return grantRefusal === undefined ? [] : ungrantedOptionalOperationLines(grantRefusal.distributionId, grantRefusal.ungrantedOptional);
285
- }