@astrale-os/sdk 0.6.0-beta.4 → 0.6.0-beta.41

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 (516) hide show
  1. package/README.md +191 -58
  2. package/dist/application/action/action.d.ts +6 -0
  3. package/dist/application/action/authoring.d.ts +1 -1
  4. package/dist/application/action/context.d.ts +47 -31
  5. package/dist/application/action/define.d.ts +3 -3
  6. package/dist/application/action/index.d.ts +1 -1
  7. package/dist/application/define.d.ts +8 -6
  8. package/dist/application/define.js +28 -14
  9. package/dist/application/dependency/index.d.ts +1 -1
  10. package/dist/application/dependency/invoker.d.ts +21 -10
  11. package/dist/application/domain.d.ts +30 -0
  12. package/dist/application/index.d.ts +4 -4
  13. package/dist/application/index.js +1 -1
  14. package/dist/application/integration/define.d.ts +8 -1
  15. package/dist/application/integration/index.d.ts +2 -2
  16. package/dist/application/integration/integration.d.ts +13 -1
  17. package/dist/application/integration/operation.d.ts +16 -3
  18. package/dist/application/mutation/authoring/properties.d.ts +5 -3
  19. package/dist/application/mutation/authoring/properties.js +35 -2
  20. package/dist/application/mutation/authoring/transition.js +4 -1
  21. package/dist/application/mutation/execution/execute.js +1 -1
  22. package/dist/application/mutation/failure.d.ts +6 -0
  23. package/dist/application/mutation/failure.js +24 -18
  24. package/dist/application/mutation/index.d.ts +1 -1
  25. package/dist/application/query/collection/union.js +11 -4
  26. package/dist/application/query/composite/plan.d.ts +0 -4
  27. package/dist/application/query/composite/plan.js +0 -2
  28. package/dist/application/query/conformance.d.ts +15 -0
  29. package/dist/application/query/conformance.js +46 -0
  30. package/dist/application/query/define.js +4 -3
  31. package/dist/application/query/execution/execute.d.ts +0 -1
  32. package/dist/application/query/execution/execute.js +7 -1
  33. package/dist/application/query/failure.d.ts +8 -0
  34. package/dist/application/query/failure.js +8 -0
  35. package/dist/application/query/index.d.ts +1 -1
  36. package/dist/application/query/index.js +1 -1
  37. package/dist/application/routes/admission.d.ts +2 -2
  38. package/dist/application/routes/admission.js +1 -1
  39. package/dist/application/routes/route.d.ts +2 -2
  40. package/dist/application/runtime/actions.js +3 -0
  41. package/dist/application/runtime/workflows.d.ts +3 -1
  42. package/dist/application/runtime/workflows.js +3 -4
  43. package/dist/application/view/define.js +4 -6
  44. package/dist/application/view/frontend.d.ts +2 -2
  45. package/dist/application/view/index.d.ts +1 -1
  46. package/dist/application/view/route.d.ts +0 -14
  47. package/dist/application/view/route.js +1 -64
  48. package/dist/application/workflow/authoring.d.ts +3 -2
  49. package/dist/application/workflow/context.d.ts +8 -2
  50. package/dist/application/workflow/define.d.ts +4 -4
  51. package/dist/application/workflow/define.js +14 -9
  52. package/dist/application/workflow/durable.d.ts +197 -0
  53. package/dist/application/workflow/index.d.ts +3 -2
  54. package/dist/application/workflow/runner/inline.js +3 -4
  55. package/dist/application/workflow/runner/runner.d.ts +2 -2
  56. package/dist/application/workflow/step/output.d.ts +2 -0
  57. package/dist/application/workflow/step/output.js +73 -0
  58. package/dist/application/workflow/workflow.d.ts +5 -3
  59. package/dist/deployment/adapter/adapter.d.ts +55 -13
  60. package/dist/deployment/adapter/bundle/bundle.d.ts +36 -0
  61. package/dist/deployment/adapter/bundle/file.d.ts +10 -0
  62. package/dist/deployment/adapter/bundle/index.d.ts +2 -0
  63. package/dist/deployment/adapter/define.d.ts +4 -3
  64. package/dist/deployment/adapter/define.js +107 -23
  65. package/dist/deployment/adapter/index.d.ts +4 -3
  66. package/dist/deployment/adapter/index.js +1 -0
  67. package/dist/deployment/adapter/release/command.d.ts +33 -0
  68. package/dist/deployment/adapter/release/context.d.ts +94 -0
  69. package/dist/deployment/adapter/release/index.d.ts +4 -0
  70. package/dist/deployment/adapter/release/index.js +1 -0
  71. package/dist/deployment/adapter/release/list.d.ts +53 -0
  72. package/dist/deployment/adapter/release/list.js +1 -0
  73. package/dist/deployment/adapter/release/refusal.d.ts +10 -0
  74. package/dist/deployment/adapter/release/refusal.js +14 -0
  75. package/dist/deployment/adapter/release/result.d.ts +56 -0
  76. package/dist/deployment/adapter/release/result.js +1 -0
  77. package/dist/deployment/address/configuration.d.ts +96 -0
  78. package/dist/deployment/address/configuration.js +274 -0
  79. package/dist/deployment/address/fingerprint.d.ts +5 -0
  80. package/dist/deployment/address/fingerprint.js +27 -0
  81. package/dist/deployment/address/index.d.ts +5 -0
  82. package/dist/deployment/address/index.js +4 -0
  83. package/dist/deployment/address/label.d.ts +42 -0
  84. package/dist/deployment/address/label.js +80 -0
  85. package/dist/deployment/address/line.d.ts +29 -0
  86. package/dist/deployment/address/line.js +53 -0
  87. package/dist/deployment/address/record.d.ts +73 -0
  88. package/dist/deployment/address/record.js +138 -0
  89. package/dist/deployment/address/summary.d.ts +30 -0
  90. package/dist/deployment/address/summary.js +1 -0
  91. package/dist/deployment/address/vectors.d.ts +60 -0
  92. package/dist/deployment/address/vectors.js +517 -0
  93. package/dist/deployment/authoring.d.ts +0 -2
  94. package/dist/deployment/authoring.js +0 -1
  95. package/dist/deployment/build/build.d.ts +8 -2
  96. package/dist/deployment/build/compile.d.ts +4 -4
  97. package/dist/deployment/build/compile.js +19 -17
  98. package/dist/deployment/build/frontend/compilation.d.ts +2 -4
  99. package/dist/deployment/build/frontend/compilation.js +0 -5
  100. package/dist/deployment/build/frontend/digest.js +1 -5
  101. package/dist/deployment/build/index.d.ts +1 -0
  102. package/dist/deployment/build/index.js +1 -0
  103. package/dist/deployment/build/manifest.d.ts +59 -0
  104. package/dist/deployment/build/manifest.js +118 -0
  105. package/dist/deployment/build/material.d.ts +2 -2
  106. package/dist/deployment/build/material.js +28 -13
  107. package/dist/deployment/build/schema.d.ts +2 -2
  108. package/dist/deployment/deployment.d.ts +3 -2
  109. package/dist/deployment/environment.d.ts +6 -0
  110. package/dist/deployment/environment.js +6 -0
  111. package/dist/deployment/index.d.ts +4 -6
  112. package/dist/deployment/index.js +1 -2
  113. package/dist/deployment/release/addressing.d.ts +6 -5
  114. package/dist/deployment/release/addressing.js +2 -3
  115. package/dist/deployment/release/assemble.d.ts +6 -3
  116. package/dist/deployment/release/assemble.js +12 -10
  117. package/dist/deployment/release/release.d.ts +16 -5
  118. package/dist/deployment/release/seal.d.ts +14 -0
  119. package/dist/deployment/release/seal.js +22 -0
  120. package/dist/deployment/release/{publication → served}/callables.d.ts +2 -2
  121. package/dist/deployment/release/{publication → served}/callables.js +2 -2
  122. package/dist/deployment/release/served/index.d.ts +11 -0
  123. package/dist/deployment/release/served/index.js +26 -0
  124. package/dist/deployment/release/{publication → served}/views.d.ts +2 -2
  125. package/dist/deployment/release/{publication → served}/views.js +0 -1
  126. package/dist/deployment/runtime/admission.d.ts +2 -2
  127. package/dist/deployment/runtime/admission.js +5 -5
  128. package/dist/deployment/verify/index.d.ts +3 -4
  129. package/dist/deployment/verify/index.js +2 -3
  130. package/dist/deployment/verify/preflight/bundle.d.ts +18 -0
  131. package/dist/deployment/verify/preflight/bundle.js +71 -0
  132. package/dist/deployment/verify/preflight/index.d.ts +1 -12
  133. package/dist/deployment/verify/preflight/index.js +1 -12
  134. package/dist/deployment/verify/readiness/fetch.d.ts +13 -0
  135. package/dist/deployment/verify/readiness/fetch.js +26 -0
  136. package/dist/deployment/verify/readiness/identity.d.ts +3 -6
  137. package/dist/deployment/verify/readiness/identity.js +3 -3
  138. package/dist/deployment/verify/readiness/index.d.ts +15 -8
  139. package/dist/deployment/verify/readiness/index.js +25 -6
  140. package/dist/deployment/verify/readiness/release.d.ts +8 -0
  141. package/dist/deployment/verify/readiness/release.js +22 -0
  142. package/dist/deployment/worker/address.d.ts +26 -0
  143. package/dist/deployment/worker/address.js +43 -0
  144. package/dist/deployment/worker/build.d.ts +60 -0
  145. package/dist/deployment/worker/build.js +172 -0
  146. package/dist/deployment/worker/configuration.d.ts +73 -0
  147. package/dist/deployment/worker/configuration.js +165 -0
  148. package/dist/deployment/worker/content.d.ts +38 -0
  149. package/dist/deployment/worker/content.js +169 -0
  150. package/dist/deployment/worker/index.d.ts +29 -0
  151. package/dist/deployment/worker/index.js +29 -0
  152. package/dist/deployment/worker/limits.d.ts +30 -0
  153. package/dist/deployment/worker/limits.js +30 -0
  154. package/dist/deployment/worker/record.d.ts +29 -0
  155. package/dist/deployment/worker/record.js +69 -0
  156. package/dist/deployment/worker/request.d.ts +118 -0
  157. package/dist/deployment/worker/request.js +280 -0
  158. package/dist/deployment/worker/response.d.ts +101 -0
  159. package/dist/deployment/worker/response.js +207 -0
  160. package/dist/execution/cache/cache.d.ts +17 -0
  161. package/dist/execution/cache/cache.js +11 -0
  162. package/dist/execution/cache/index.d.ts +2 -0
  163. package/dist/execution/cache/index.js +2 -0
  164. package/dist/execution/cache/memory.d.ts +13 -0
  165. package/dist/execution/cache/memory.js +48 -0
  166. package/dist/execution/identity/authentication.d.ts +33 -3
  167. package/dist/execution/identity/authentication.js +90 -36
  168. package/dist/execution/identity/callback.d.ts +20 -20
  169. package/dist/execution/identity/callback.js +34 -26
  170. package/dist/execution/identity/delivery.d.ts +6 -4
  171. package/dist/execution/identity/delivery.js +25 -20
  172. package/dist/execution/identity/identity.d.ts +17 -3
  173. package/dist/execution/identity/identity.js +12 -4
  174. package/dist/execution/identity/jwks.d.ts +5 -0
  175. package/dist/execution/identity/jwks.js +92 -102
  176. package/dist/execution/index.d.ts +6 -4
  177. package/dist/execution/index.js +4 -2
  178. package/dist/execution/invocation/admission/age.d.ts +57 -0
  179. package/dist/execution/invocation/admission/age.js +208 -0
  180. package/dist/execution/invocation/admission/authentication.d.ts +13 -13
  181. package/dist/execution/invocation/admission/authentication.js +52 -44
  182. package/dist/execution/invocation/admission/authority.d.ts +28 -6
  183. package/dist/execution/invocation/admission/authority.js +9 -2
  184. package/dist/execution/invocation/admission/index.d.ts +4 -3
  185. package/dist/execution/invocation/admission/index.js +3 -2
  186. package/dist/execution/invocation/admission/input.d.ts +2 -2
  187. package/dist/execution/invocation/admission/input.js +16 -2
  188. package/dist/execution/invocation/admission/target.d.ts +11 -0
  189. package/dist/execution/invocation/admission/target.js +22 -3
  190. package/dist/execution/invocation/capabilities/bind.d.ts +11 -0
  191. package/dist/execution/invocation/capabilities/bind.js +25 -0
  192. package/dist/execution/invocation/capabilities/index.d.ts +1 -0
  193. package/dist/execution/invocation/capabilities/index.js +1 -0
  194. package/dist/execution/invocation/dependency/bind.d.ts +3 -1
  195. package/dist/execution/invocation/dependency/bind.js +36 -16
  196. package/dist/execution/invocation/dispatch/context.d.ts +7 -6
  197. package/dist/execution/invocation/dispatch/context.js +11 -44
  198. package/dist/execution/invocation/dispatch/workflow.js +0 -4
  199. package/dist/execution/invocation/handler.js +8 -2
  200. package/dist/execution/invocation/index.d.ts +2 -2
  201. package/dist/execution/invocation/index.js +1 -1
  202. package/dist/execution/invocation/integration/authentication.d.ts +3 -3
  203. package/dist/execution/invocation/integration/authentication.js +7 -7
  204. package/dist/execution/invocation/integration/call.d.ts +2 -1
  205. package/dist/execution/invocation/integration/call.js +3 -3
  206. package/dist/execution/invocation/integration/clients.d.ts +1 -1
  207. package/dist/execution/invocation/integration/index.d.ts +1 -0
  208. package/dist/execution/invocation/integration/index.js +1 -0
  209. package/dist/execution/invocation/invocation.d.ts +6 -0
  210. package/dist/execution/invocation/invocation.js +129 -21
  211. package/dist/execution/invocation/lifecycle/active.d.ts +8 -2
  212. package/dist/execution/invocation/lifecycle/active.js +3 -3
  213. package/dist/execution/invocation/lifecycle/index.d.ts +1 -1
  214. package/dist/execution/invocation/result/errors.d.ts +0 -10
  215. package/dist/execution/invocation/result/errors.js +0 -17
  216. package/dist/execution/invocation/result/index.d.ts +2 -2
  217. package/dist/execution/invocation/result/index.js +1 -1
  218. package/dist/execution/invocation/result/project.js +41 -1
  219. package/dist/execution/node/serve.d.ts +2 -2
  220. package/dist/execution/node/serve.js +1 -1
  221. package/dist/execution/runtime/index.d.ts +1 -0
  222. package/dist/execution/runtime/index.js +1 -0
  223. package/dist/execution/runtime/load.d.ts +3 -3
  224. package/dist/execution/runtime/load.js +3 -2
  225. package/dist/execution/runtime/release.d.ts +17 -0
  226. package/dist/execution/runtime/release.js +7 -0
  227. package/dist/execution/serve.d.ts +18 -4
  228. package/dist/execution/serve.js +10 -0
  229. package/dist/execution/service/create.js +43 -7
  230. package/dist/execution/service/initialization.d.ts +4 -4
  231. package/dist/execution/service/initialization.js +23 -14
  232. package/dist/execution/service/release.d.ts +2 -2
  233. package/dist/execution/service/release.js +3 -2
  234. package/dist/execution/service/service.d.ts +20 -5
  235. package/dist/execution/service/serving/delivery.d.ts +5 -0
  236. package/dist/execution/service/{publication → serving}/delivery.js +4 -1
  237. package/dist/execution/service/{publication → serving}/index.d.ts +1 -1
  238. package/dist/execution/service/serving/installation.d.ts +4 -0
  239. package/dist/execution/service/serving/installation.js +9 -0
  240. package/dist/execution/service/serving/source.d.ts +11 -0
  241. package/dist/execution/service/serving/source.js +15 -0
  242. package/dist/execution/workflows/attempts.d.ts +87 -0
  243. package/dist/execution/workflows/attempts.js +205 -0
  244. package/dist/execution/workflows/discovery.d.ts +14 -0
  245. package/dist/execution/workflows/discovery.js +151 -0
  246. package/dist/execution/workflows/engine.d.ts +83 -0
  247. package/dist/execution/workflows/engine.js +1 -0
  248. package/dist/execution/workflows/envelope.d.ts +12 -0
  249. package/dist/execution/workflows/envelope.js +46 -0
  250. package/dist/execution/workflows/failure.d.ts +39 -0
  251. package/dist/execution/workflows/failure.js +143 -0
  252. package/dist/execution/workflows/index.d.ts +4 -0
  253. package/dist/execution/workflows/index.js +3 -0
  254. package/dist/execution/workflows/integrations.d.ts +13 -0
  255. package/dist/execution/workflows/integrations.js +25 -0
  256. package/dist/execution/workflows/options.d.ts +81 -0
  257. package/dist/execution/workflows/options.js +158 -0
  258. package/dist/execution/workflows/receiver.d.ts +24 -0
  259. package/dist/execution/workflows/receiver.js +99 -0
  260. package/dist/execution/workflows/route.d.ts +12 -0
  261. package/dist/execution/workflows/route.js +35 -0
  262. package/dist/execution/workflows/run.d.ts +23 -0
  263. package/dist/execution/workflows/run.js +365 -0
  264. package/dist/execution/workflows/steps.d.ts +48 -0
  265. package/dist/execution/workflows/steps.js +93 -0
  266. package/dist/index.d.ts +4 -4
  267. package/dist/index.js +2 -2
  268. package/dist/platform/graph/alias.d.ts +1 -5
  269. package/dist/platform/graph/alias.js +1 -5
  270. package/dist/platform/graph/document/index.d.ts +1 -1
  271. package/dist/platform/graph/document/index.js +1 -1
  272. package/dist/platform/graph/index.d.ts +1 -1
  273. package/dist/platform/graph/index.js +1 -1
  274. package/dist/platform/release/index.d.ts +2 -0
  275. package/dist/platform/release/index.js +2 -0
  276. package/dist/platform/schema/callable-authoring.d.ts +21 -0
  277. package/dist/platform/schema/callable-authoring.js +27 -0
  278. package/dist/platform/schema/class-authoring.d.ts +61 -11
  279. package/dist/platform/schema/class-authoring.js +37 -4
  280. package/dist/platform/schema/class-icon-svg.d.ts +9 -0
  281. package/dist/platform/schema/class-icon-svg.js +29 -0
  282. package/dist/platform/schema/class-icon.d.ts +3 -8
  283. package/dist/platform/schema/class-icon.js +2 -29
  284. package/dist/platform/schema/index.d.ts +6 -4
  285. package/dist/platform/schema/index.js +2 -1
  286. package/dist/platform/schema/property.d.ts +5 -0
  287. package/dist/platform/schema/schema-authoring.d.ts +14 -7
  288. package/dist/platform/schema/schema-authoring.js +5 -1
  289. package/dist/platform/versioning/dependents.d.ts +18 -0
  290. package/dist/platform/versioning/dependents.js +15 -0
  291. package/dist/platform/versioning/index.d.ts +5 -0
  292. package/dist/platform/versioning/index.js +5 -0
  293. package/dist/platform/versioning/name.d.ts +38 -0
  294. package/dist/platform/versioning/name.js +58 -0
  295. package/dist/platform/versioning/reference.d.ts +48 -0
  296. package/dist/platform/versioning/reference.js +95 -0
  297. package/dist/platform/versioning/version.d.ts +72 -0
  298. package/dist/platform/versioning/version.js +98 -0
  299. package/dist/project/admit.js +1 -5
  300. package/dist/project/define.d.ts +4 -4
  301. package/dist/project/define.js +55 -35
  302. package/dist/project/index.d.ts +1 -1
  303. package/dist/project/install-command.d.ts +6 -0
  304. package/dist/project/install-command.js +9 -0
  305. package/dist/project/project.d.ts +10 -8
  306. package/dist/testing/dataset/define.d.ts +1 -1
  307. package/dist/testing/durable/engine.d.ts +128 -0
  308. package/dist/testing/durable/engine.js +619 -0
  309. package/dist/testing/durable/index.d.ts +3 -0
  310. package/dist/testing/durable/index.js +1 -0
  311. package/dist/testing/durable/steps.d.ts +30 -0
  312. package/dist/testing/durable/steps.js +45 -0
  313. package/dist/testing/index.d.ts +6 -1
  314. package/dist/testing/index.js +5 -1
  315. package/dist/testing/load.js +1 -1
  316. package/dist/tooling/cli/adapter-command.d.ts +35 -0
  317. package/dist/tooling/cli/adapter-command.js +66 -0
  318. package/dist/tooling/cli/arguments.d.ts +17 -6
  319. package/dist/tooling/cli/arguments.js +175 -52
  320. package/dist/tooling/cli/build.d.ts +55 -0
  321. package/dist/tooling/cli/build.js +77 -0
  322. package/dist/tooling/cli/bun.d.ts +0 -1
  323. package/dist/tooling/cli/bun.js +0 -7
  324. package/dist/tooling/cli/commit.d.ts +35 -0
  325. package/dist/tooling/cli/commit.js +235 -0
  326. package/dist/tooling/cli/deploy-mode.d.ts +26 -0
  327. package/dist/tooling/cli/deploy-mode.js +59 -0
  328. package/dist/tooling/cli/deploy-result.d.ts +80 -0
  329. package/dist/tooling/cli/deploy-result.js +64 -0
  330. package/dist/tooling/cli/diff/declared.d.ts +7 -0
  331. package/dist/tooling/cli/diff/declared.js +27 -0
  332. package/dist/tooling/cli/diff/index.d.ts +30 -0
  333. package/dist/tooling/cli/diff/index.js +58 -0
  334. package/dist/tooling/cli/diff/render.d.ts +15 -0
  335. package/dist/tooling/cli/diff/render.js +131 -0
  336. package/dist/tooling/cli/diff/report.d.ts +88 -0
  337. package/dist/tooling/cli/diff/report.js +154 -0
  338. package/dist/tooling/cli/dotenv.d.ts +5 -5
  339. package/dist/tooling/cli/dotenv.js +6 -36
  340. package/dist/tooling/cli/help.js +173 -60
  341. package/dist/tooling/cli/immutable-deployment.d.ts +83 -0
  342. package/dist/tooling/cli/immutable-deployment.js +135 -0
  343. package/dist/tooling/cli/index.d.ts +12 -4
  344. package/dist/tooling/cli/index.js +6 -3
  345. package/dist/tooling/cli/installed-on.d.ts +83 -0
  346. package/dist/tooling/cli/installed-on.js +156 -0
  347. package/dist/tooling/cli/list.d.ts +152 -0
  348. package/dist/tooling/cli/list.js +331 -0
  349. package/dist/tooling/cli/log.d.ts +5 -2
  350. package/dist/tooling/cli/log.js +9 -2
  351. package/dist/tooling/cli/orchestrate.d.ts +0 -6
  352. package/dist/tooling/cli/orchestrate.js +246 -90
  353. package/dist/tooling/cli/project.d.ts +3 -3
  354. package/dist/tooling/cli/publish/index.d.ts +81 -0
  355. package/dist/tooling/cli/publish/index.js +383 -0
  356. package/dist/tooling/cli/publish/report.d.ts +49 -0
  357. package/dist/tooling/cli/publish/report.js +15 -0
  358. package/dist/tooling/cli/registry/client.d.ts +121 -0
  359. package/dist/tooling/cli/registry/client.js +354 -0
  360. package/dist/tooling/cli/registry/error.d.ts +11 -0
  361. package/dist/tooling/cli/registry/error.js +17 -0
  362. package/dist/tooling/cli/registry/executable.d.ts +35 -0
  363. package/dist/tooling/cli/registry/executable.js +96 -0
  364. package/dist/tooling/cli/registry/index.d.ts +9 -0
  365. package/dist/tooling/cli/registry/index.js +8 -0
  366. package/dist/tooling/cli/registry/installations.d.ts +67 -0
  367. package/dist/tooling/cli/registry/installations.js +108 -0
  368. package/dist/tooling/cli/registry/process.d.ts +36 -0
  369. package/dist/tooling/cli/registry/process.js +119 -0
  370. package/dist/tooling/cli/secrets.d.ts +9 -0
  371. package/dist/tooling/cli/secrets.js +19 -0
  372. package/dist/tooling/cli/yank.d.ts +34 -0
  373. package/dist/tooling/cli/yank.js +32 -0
  374. package/dist/tooling/linter/adapters/typescript/imports.d.ts +0 -1
  375. package/dist/tooling/linter/adapters/typescript/imports.js +1 -5
  376. package/dist/tooling/linter/adapters/typescript/index.d.ts +1 -1
  377. package/dist/tooling/linter/adapters/typescript/index.js +1 -1
  378. package/dist/tooling/linter/adapters/typescript/syntax.d.ts +3 -3
  379. package/dist/tooling/linter/adapters/typescript/syntax.js +13 -25
  380. package/dist/tooling/linter/implementations/source/callable-requirements.d.ts +1 -2
  381. package/dist/tooling/linter/implementations/source/callable-requirements.js +11 -16
  382. package/dist/tooling/linter/implementations/source/dependencies.js +13 -72
  383. package/dist/tooling/linter/implementations/source/global.js +1 -2
  384. package/dist/tooling/linter/implementations/source/mutations.js +18 -29
  385. package/dist/tooling/linter/implementations/source/providers.js +5 -5
  386. package/dist/tooling/linter/implementations/source/queries.js +1 -17
  387. package/dist/tooling/linter/implementations/source/shared.d.ts +12 -4
  388. package/dist/tooling/linter/implementations/source/shared.js +101 -46
  389. package/dist/tooling/linter/implementations/source/verifiers.js +0 -2
  390. package/dist/tooling/linter/implementations/source/views.js +2 -2
  391. package/dist/tooling/linter/implementations/source/workflows.js +499 -17
  392. package/dist/tooling/linter/policy/generated.js +14 -63
  393. package/dist/tooling/linter/requirements/registry.js +6 -8
  394. package/dist/tooling/packaging/declarations/ownership.js +1 -1
  395. package/dist/tooling/packaging/finalize.d.ts +1 -1
  396. package/dist/tooling/packaging/finalize.js +1 -1
  397. package/docs/admission-age.md +88 -0
  398. package/docs/auth-api-migration.md +55 -0
  399. package/docs/business-errors.md +42 -0
  400. package/docs/domain-definition-migration.md +44 -0
  401. package/docs/domain-schema-migration.md +36 -0
  402. package/docs/durable-workflows.md +445 -0
  403. package/docs/handler-dependencies.md +213 -0
  404. package/docs/release.md +155 -0
  405. package/docs/schema-cost.md +124 -0
  406. package/package.json +45 -16
  407. package/dist/application/application.d.ts +0 -28
  408. package/dist/application/query/execution/projection.d.ts +0 -3
  409. package/dist/application/query/execution/projection.js +0 -3
  410. package/dist/deployment/adapter/deploy/context.d.ts +0 -15
  411. package/dist/deployment/adapter/deploy/index.d.ts +0 -2
  412. package/dist/deployment/adapter/deploy/result.d.ts +0 -50
  413. package/dist/deployment/adapter/prepare/artifact.d.ts +0 -33
  414. package/dist/deployment/adapter/prepare/context.d.ts +0 -23
  415. package/dist/deployment/adapter/prepare/index.d.ts +0 -2
  416. package/dist/deployment/deploy.d.ts +0 -20
  417. package/dist/deployment/deploy.js +0 -31
  418. package/dist/deployment/release/publication/index.d.ts +0 -6
  419. package/dist/deployment/release/publication/index.js +0 -6
  420. package/dist/deployment/release/publication/manifest.d.ts +0 -3
  421. package/dist/deployment/release/publication/manifest.js +0 -5
  422. package/dist/deployment/release/publication/requirements.d.ts +0 -3
  423. package/dist/deployment/release/publication/requirements.js +0 -3
  424. package/dist/deployment/release/publication/seal.d.ts +0 -10
  425. package/dist/deployment/release/publication/seal.js +0 -39
  426. package/dist/deployment/verify/preflight/artifact.d.ts +0 -6
  427. package/dist/deployment/verify/preflight/artifact.js +0 -122
  428. package/dist/deployment/verify/preflight/publication.d.ts +0 -4
  429. package/dist/deployment/verify/preflight/publication.js +0 -14
  430. package/dist/deployment/verify/readiness/deployment.d.ts +0 -3
  431. package/dist/deployment/verify/readiness/deployment.js +0 -151
  432. package/dist/deployment/verify/readiness/publication.d.ts +0 -11
  433. package/dist/deployment/verify/readiness/publication.js +0 -41
  434. package/dist/execution/service/errors.d.ts +0 -3
  435. package/dist/execution/service/errors.js +0 -3
  436. package/dist/execution/service/publication/delivery.d.ts +0 -2
  437. package/dist/execution/service/publication/installation.d.ts +0 -3
  438. package/dist/execution/service/publication/installation.js +0 -8
  439. package/dist/execution/service/publication/source.d.ts +0 -3
  440. package/dist/execution/service/publication/source.js +0 -11
  441. package/dist/platform/publication/index.d.ts +0 -2
  442. package/dist/platform/publication/index.js +0 -2
  443. package/dist/tooling/cli/astrale/authority.d.ts +0 -5
  444. package/dist/tooling/cli/astrale/authority.js +0 -11
  445. package/dist/tooling/cli/astrale/executable.d.ts +0 -2
  446. package/dist/tooling/cli/astrale/executable.js +0 -47
  447. package/dist/tooling/cli/astrale/failure.d.ts +0 -6
  448. package/dist/tooling/cli/astrale/failure.js +0 -48
  449. package/dist/tooling/cli/astrale/instance.d.ts +0 -11
  450. package/dist/tooling/cli/astrale/instance.js +0 -52
  451. package/dist/tooling/cli/astrale/process.d.ts +0 -13
  452. package/dist/tooling/cli/astrale/process.js +0 -94
  453. package/dist/tooling/cli/astrale/version.d.ts +0 -18
  454. package/dist/tooling/cli/astrale/version.js +0 -55
  455. package/dist/tooling/cli/credential.d.ts +0 -2
  456. package/dist/tooling/cli/credential.js +0 -57
  457. package/dist/tooling/cli/deprecations.d.ts +0 -9
  458. package/dist/tooling/cli/deprecations.js +0 -15
  459. package/dist/tooling/cli/development/candidate.d.ts +0 -25
  460. package/dist/tooling/cli/development/candidate.js +0 -176
  461. package/dist/tooling/cli/development/deployment.d.ts +0 -16
  462. package/dist/tooling/cli/development/deployment.js +0 -39
  463. package/dist/tooling/cli/development/develop.d.ts +0 -11
  464. package/dist/tooling/cli/development/develop.js +0 -243
  465. package/dist/tooling/cli/development/lease.d.ts +0 -18
  466. package/dist/tooling/cli/development/lease.js +0 -163
  467. package/dist/tooling/cli/development/lifecycle.d.ts +0 -9
  468. package/dist/tooling/cli/development/lifecycle.js +0 -43
  469. package/dist/tooling/cli/development/project-imports.d.ts +0 -22
  470. package/dist/tooling/cli/development/project-imports.js +0 -39
  471. package/dist/tooling/cli/development/project-lock.d.ts +0 -16
  472. package/dist/tooling/cli/development/project-lock.js +0 -41
  473. package/dist/tooling/cli/development/rebuild.d.ts +0 -13
  474. package/dist/tooling/cli/development/rebuild.js +0 -58
  475. package/dist/tooling/cli/development/release-evidence.d.ts +0 -4
  476. package/dist/tooling/cli/development/release-evidence.js +0 -10
  477. package/dist/tooling/cli/development/report.d.ts +0 -6
  478. package/dist/tooling/cli/development/report.js +0 -14
  479. package/dist/tooling/cli/development/session-file.d.ts +0 -53
  480. package/dist/tooling/cli/development/session-file.js +0 -337
  481. package/dist/tooling/cli/development/source-watch.d.ts +0 -14
  482. package/dist/tooling/cli/development/source-watch.js +0 -140
  483. package/dist/tooling/cli/development/sources.d.ts +0 -7
  484. package/dist/tooling/cli/development/sources.js +0 -48
  485. package/dist/tooling/cli/development/target-lock.d.ts +0 -16
  486. package/dist/tooling/cli/development/target-lock.js +0 -68
  487. package/dist/tooling/cli/development/view.d.ts +0 -28
  488. package/dist/tooling/cli/development/view.js +0 -151
  489. package/dist/tooling/cli/environment-release.d.ts +0 -21
  490. package/dist/tooling/cli/environment-release.js +0 -46
  491. package/dist/tooling/cli/evidence.d.ts +0 -11
  492. package/dist/tooling/cli/evidence.js +0 -53
  493. package/dist/tooling/cli/installation/index.d.ts +0 -2
  494. package/dist/tooling/cli/installation/index.js +0 -1
  495. package/dist/tooling/cli/installation/observation.d.ts +0 -10
  496. package/dist/tooling/cli/installation/observation.js +0 -44
  497. package/dist/tooling/cli/installation/reconcile.d.ts +0 -32
  498. package/dist/tooling/cli/installation/reconcile.js +0 -122
  499. package/dist/tooling/linter/implementations/source/migrations.d.ts +0 -2
  500. package/dist/tooling/linter/implementations/source/migrations.js +0 -113
  501. package/dist/tooling/linter/qualification/index.d.ts +0 -10
  502. package/dist/tooling/linter/qualification/index.js +0 -2
  503. package/dist/tooling/linter/qualification/query-fixtures.d.ts +0 -2
  504. package/dist/tooling/linter/qualification/query-fixtures.js +0 -68
  505. package/dist/tooling/linter/qualification/runner.d.ts +0 -3
  506. package/dist/tooling/linter/qualification/runner.js +0 -6
  507. /package/dist/application/{application.js → domain.js} +0 -0
  508. /package/dist/{deployment/adapter/deploy/context.js → application/workflow/durable.js} +0 -0
  509. /package/dist/deployment/adapter/{deploy/index.js → bundle/bundle.js} +0 -0
  510. /package/dist/deployment/adapter/{deploy/result.js → bundle/file.js} +0 -0
  511. /package/dist/deployment/adapter/{prepare → bundle}/index.js +0 -0
  512. /package/dist/deployment/adapter/{prepare/artifact.js → release/command.js} +0 -0
  513. /package/dist/deployment/adapter/{prepare → release}/context.js +0 -0
  514. /package/dist/deployment/release/{publication → served}/routes.d.ts +0 -0
  515. /package/dist/deployment/release/{publication → served}/routes.js +0 -0
  516. /package/dist/execution/service/{publication → serving}/index.js +0 -0
@@ -1,7 +1 @@
1
- import { type ParsedArgs } from './arguments.js';
2
- import { develop } from './development/develop.js';
3
1
  export declare function run(argv: readonly string[]): Promise<number>;
4
- export declare function executeDevelopmentCommand(parsed: ParsedArgs, input: {
5
- readonly configPath: string;
6
- readonly projectDir: string;
7
- }, execute?: typeof develop): Promise<number>;
@@ -1,18 +1,22 @@
1
1
  import { existsSync } from 'node:fs';
2
- import { dirname, isAbsolute, join, resolve } from 'node:path';
3
- import { admitRuntime, compile, resolveRuntime, verifyDeployment, verifyPreflight, } from '../../deployment/index.js';
2
+ import { dirname, join, resolve } from 'node:path';
3
+ import { admitRuntime, compile, resolveRuntime } from '../../deployment/index.js';
4
4
  import { packageDomain } from '../packaging/index.js';
5
+ import { runAdapterCommand } from './adapter-command.js';
5
6
  import { parseArgs } from './arguments.js';
6
- import { resolveCompatibleAstrale } from './astrale/version.js';
7
+ import { buildResult, bundleBuild, bundlerCopyWarnings, projectBundlers } from './build.js';
7
8
  import { BunRequiredError } from './bun.js';
8
- import { deprecationWarnings } from './deprecations.js';
9
- import { develop } from './development/develop.js';
10
- import { loadDeclaredSecrets } from './dotenv.js';
11
- import { reconcileEnvironmentRelease } from './environment-release.js';
9
+ import { selectDeployMode } from './deploy-mode.js';
10
+ import { runDiff } from './diff/index.js';
12
11
  import { ERROR_USAGE, helpRequest, helpText } from './help.js';
13
- import { error, info, warn } from './log.js';
14
- import { importModule, loadProject, runtimeEntrypoint, selectEnvironment } from './project.js';
12
+ import { deployImmutable } from './immutable-deployment.js';
13
+ import { listDeployments, renderDeploymentList } from './list.js';
14
+ import { error, info, progress, warn } from './log.js';
15
+ import { importModule, loadProject, runtimeEntrypoint, selectEnvironment, } from './project.js';
16
+ import { runPublish } from './publish/index.js';
17
+ import { MINIMUM_INSTALLATIONS_CLI_VERSION, openDomainRegistry, RegistryCliError, } from './registry/index.js';
15
18
  import { executeTests } from './test.js';
19
+ import { yankPublication, yankSummary } from './yank.js';
16
20
  const CONFIG_NAMES = ['astrale.config.ts', 'astrale.config.js', 'astrale.config.mjs'];
17
21
  export async function run(argv) {
18
22
  const requestedHelp = helpRequest(argv);
@@ -56,10 +60,39 @@ export async function run(argv) {
56
60
  error(`No astrale.config.ts found in ${projectDir}.`);
57
61
  return 1;
58
62
  }
59
- if (parsed.command === 'dev') {
60
- return executeDevelopmentCommand(parsed, { configPath, projectDir });
61
- }
62
63
  const project = await loadProject(configPath);
64
+ if (parsed.command === 'list')
65
+ return list(parsed, project, projectDir);
66
+ if (parsed.command === 'adapter') {
67
+ const lifecycle = deploymentLifecycle(`${parsed.adapter} ${parsed.adapterCommand} interrupted.`);
68
+ try {
69
+ return await runAdapterCommand({
70
+ adapter: parsed.adapter,
71
+ command: parsed.adapterCommand,
72
+ environment: parsed.env,
73
+ definition: selectEnvironment(project, parsed.env),
74
+ options: parsed.options ?? {},
75
+ json: parsed.json === true,
76
+ signal: lifecycle.signal,
77
+ });
78
+ }
79
+ finally {
80
+ lifecycle.dispose();
81
+ }
82
+ }
83
+ if (parsed.command === 'yank')
84
+ return yank(parsed, project);
85
+ if (parsed.command === 'publish') {
86
+ // A version names an immutable deployment's release: any other Environment is refused before
87
+ // anything is built (CT33, R-G03).
88
+ const mode = selectDeployMode({
89
+ command: 'publish',
90
+ environment: parsed.env,
91
+ definition: selectEnvironment(project, parsed.env),
92
+ });
93
+ if (refused(mode))
94
+ return 1;
95
+ }
63
96
  if (parsed.command === 'test') {
64
97
  selectEnvironment(project, parsed.env);
65
98
  return executeTests({
@@ -67,94 +100,230 @@ export async function run(argv) {
67
100
  ...(parsed.suite === undefined ? {} : { suite: parsed.suite }),
68
101
  });
69
102
  }
70
- const build = compile(project.application);
71
- for (const warning of deprecationWarnings(build))
72
- warn(warning);
103
+ const build = compile(project.domain);
73
104
  const resolved = await resolveRuntime(runtimeEntrypoint(project), (path) => importModule(resolve(dirname(configPath), path)));
74
105
  admitRuntime({ runtime: build.runtime }, resolved);
106
+ if (parsed.command === 'diff') {
107
+ const lifecycle = deploymentLifecycle('Diff interrupted.');
108
+ try {
109
+ return await runDiff({
110
+ projectDir,
111
+ build,
112
+ // The build digests `build` prints, bundled only when the Schema revision is unchanged.
113
+ builds: async () => {
114
+ const digests = [];
115
+ for (const source of projectBundlers(project)) {
116
+ const bundle = await bundleBuild({
117
+ bundler: source.bundler,
118
+ projectDir,
119
+ build,
120
+ runtime: resolved,
121
+ signal: lifecycle.signal,
122
+ });
123
+ digests.push(bundle.digest);
124
+ }
125
+ return digests;
126
+ },
127
+ ...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
128
+ json: parsed.json === true,
129
+ signal: lifecycle.signal,
130
+ });
131
+ }
132
+ finally {
133
+ lifecycle.dispose();
134
+ }
135
+ }
136
+ if (parsed.command === 'publish') {
137
+ const environment = selectEnvironment(project, parsed.env);
138
+ const lifecycle = deploymentLifecycle('Publish interrupted.');
139
+ try {
140
+ return await runPublish({
141
+ projectDir,
142
+ environment: parsed.env,
143
+ adapter: environment.deployment.adapter,
144
+ parameters: environment.deployment.parameters,
145
+ build,
146
+ runtime: resolved,
147
+ ...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
148
+ allowDirty: parsed.allowDirty === true,
149
+ json: parsed.json === true,
150
+ signal: lifecycle.signal,
151
+ });
152
+ }
153
+ finally {
154
+ lifecycle.dispose();
155
+ }
156
+ }
75
157
  if (parsed.command === 'build') {
76
- info(`Built ${build.schema.compiled.root.origin} (${build.schema.compiled.root.revision}).`);
77
- return 0;
158
+ // Every distinct bundler of the Project, and never an Environment, address, key or secret.
159
+ const lifecycle = deploymentLifecycle();
160
+ try {
161
+ const built = [];
162
+ for (const source of projectBundlers(project)) {
163
+ built.push({
164
+ source,
165
+ bundle: await bundleBuild({
166
+ bundler: source.bundler,
167
+ projectDir,
168
+ build,
169
+ runtime: resolved,
170
+ signal: lifecycle.signal,
171
+ }),
172
+ });
173
+ }
174
+ for (const warning of bundlerCopyWarnings(built))
175
+ warn(warning);
176
+ const result = buildResult(build, built.map(({ bundle }) => bundle));
177
+ if (parsed.json === true) {
178
+ process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
179
+ return 0;
180
+ }
181
+ info(`Built ${result.origin} (${result.schema.revision}).`);
182
+ for (const built of result.builds) {
183
+ info(`Build: ${built.digest} (${built.bundler.id}@${built.bundler.version})`);
184
+ }
185
+ return 0;
186
+ }
187
+ finally {
188
+ lifecycle.dispose();
189
+ }
78
190
  }
79
191
  const environment = selectEnvironment(project, parsed.env);
80
- const adapter = environment.deployment.adapter;
81
- const parameters = environment.deployment.parameters;
192
+ // The configuration selects the deploy mode, before any effect (CT33).
193
+ const mode = selectDeployMode({
194
+ command: 'deploy',
195
+ environment: parsed.env,
196
+ definition: environment,
197
+ });
198
+ if (refused(mode))
199
+ return 1;
200
+ // With `--json`, stdout carries only the DeployResultV1; progress goes to stderr.
201
+ const report = progress(parsed.json === true);
82
202
  const lifecycle = deploymentLifecycle();
83
203
  try {
84
- const source = await adapter.prepare(parameters, {
204
+ const deployment = {
85
205
  projectDir,
86
206
  environment: parsed.env,
87
- ...(environment.installation === undefined ? {} : { installation: environment.installation }),
88
- mode: 'release',
89
- signal: lifecycle.signal,
90
207
  build,
91
208
  runtime: resolved,
92
- });
93
- const artifact = verifyPreflight({ build, runtime: resolved, source });
94
- const secrets = secretsFor(adapter, parameters, projectDir, resolved.runtime);
95
- const installationExecutable = environment.installation === undefined || parsed.deployOnly
96
- ? undefined
97
- : await resolveCompatibleAstrale({ projectDir, signal: lifecycle.signal });
98
- const deployed = await adapter.deploy(parameters, {
99
- projectDir,
100
- environment: parsed.env,
101
- ...(environment.installation === undefined ? {} : { installation: environment.installation }),
102
209
  ...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
103
- secrets,
104
- artifact,
105
210
  signal: lifecycle.signal,
211
+ report,
212
+ };
213
+ const deployed = await deployImmutable({
214
+ ...deployment,
215
+ adapter: environment.deployment.adapter,
216
+ parameters: environment.deployment.parameters,
106
217
  });
107
- const result = verifyDeployment(artifact, deployed);
108
- if (result.status === 'failed') {
109
- error(`Deployment failed during ${result.phase}: ${result.error.message}`);
218
+ if (deployed === undefined)
110
219
  return 1;
111
- }
112
- info(`Domain: ${result.release.publication.origin}`);
113
- info(`Environment: ${parsed.env}`);
114
- info(`Adapter: ${adapter.name}@${adapter.version}`);
115
- info(`Deployment: ${result.progress.provider.evidence.deployment}`);
116
- if (result.progress.provider.evidence.preflight !== undefined) {
117
- info(`Preflight: ${result.progress.provider.evidence.preflight}; public readiness verified`);
118
- }
119
- info(`Public: ${result.release.addressing.publicUrl}`);
120
- info(`Publication: ${result.release.publication.schema.revision} · ${result.release.publication.etag}`);
121
- const installed = await reconcileEnvironmentRelease({
122
- projectDir,
123
- environment: parsed.env,
124
- adapter,
125
- deployment: result,
126
- ...(environment.installation === undefined ? {} : { installation: environment.installation }),
127
- deployOnly: parsed.deployOnly ?? false,
128
- ...(installationExecutable === undefined ? {} : { installationExecutable }),
220
+ if (parsed.json === true)
221
+ process.stdout.write(`${JSON.stringify(deployed, null, 2)}\n`);
222
+ return 0;
223
+ }
224
+ finally {
225
+ lifecycle.dispose();
226
+ }
227
+ }
228
+ /**
229
+ * `astrale-domain list`: the deployments of every Environment, or of the one `--environment`
230
+ * names, as their hosts keep them for the caller, named by the registry's versions and placed on
231
+ * the instances each `--instance` says pin them. With `--json`, stdout
232
+ * carries only the ListResultV1, and only when every host and the registry answered; notices go to
233
+ * stderr. A registry that cannot be read (no Astrale CLI, one older than the listing's floor, Admin
234
+ * out of reach, an unreadable index) prints nothing on stdout and exits 1: versions are never
235
+ * dropped silently (AM-224).
236
+ */
237
+ async function list(parsed, project, projectDir) {
238
+ const origin = compile(project.domain).schema.compiled.root.origin;
239
+ const environments = parsed.env === ''
240
+ ? Object.entries(project.environments)
241
+ : [[parsed.env, selectEnvironment(project, parsed.env)]];
242
+ const lifecycle = deploymentLifecycle();
243
+ try {
244
+ const listing = await listDeployments({
245
+ origin,
246
+ environments,
129
247
  ...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
130
248
  signal: lifecycle.signal,
249
+ registry: (signal) => openDomainRegistry({
250
+ projectDir,
251
+ ...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
252
+ signal,
253
+ minimum: MINIMUM_INSTALLATIONS_CLI_VERSION,
254
+ }),
255
+ ...(parsed.instances === undefined ? {} : { instances: parsed.instances }),
131
256
  });
132
- if (installed === undefined) {
133
- info('Installation: skipped');
257
+ for (const notice of listing.notices)
258
+ warn(notice);
259
+ for (const failure of listing.failures) {
260
+ error(`Environment ${failure.environment} could not be listed (${failure.adapter}): ` +
261
+ failure.error.message);
262
+ }
263
+ if (listing.registryFailure !== undefined) {
264
+ const failure = listing.registryFailure;
265
+ error(failure instanceof RegistryCliError
266
+ ? `Domain registry: ${failure.code}: ${failure.message}`
267
+ : `Domain registry: ${failure.message}`);
268
+ return 1;
134
269
  }
135
- else {
136
- info(`Installation: ${installed.instance} · ${installed.status}`);
270
+ if (parsed.json === true) {
271
+ if (listing.failures.length > 0)
272
+ return 1;
273
+ process.stdout.write(`${JSON.stringify(listing.result, null, 2)}\n`);
274
+ return 0;
137
275
  }
138
- info('Ready: deployment verified');
139
- return 0;
276
+ const failed = listing.failures.length > 0;
277
+ for (const line of renderDeploymentList(listing.result, failed)) {
278
+ process.stdout.write(`${line}\n`);
279
+ }
280
+ return failed ? 1 : 0;
140
281
  }
141
282
  finally {
142
283
  lifecycle.dispose();
143
284
  }
144
285
  }
145
- export function executeDevelopmentCommand(parsed, input, execute = develop) {
146
- if (parsed.command !== 'dev')
147
- throw new TypeError('Development execution requires the dev command.');
148
- return execute({
149
- configPath: input.configPath,
150
- projectDir: input.projectDir,
151
- environment: parsed.env,
152
- deployOnly: parsed.deployOnly ?? false,
153
- ...(parsed.identity === undefined ? {} : { identity: parsed.identity }),
154
- ...(parsed.credentialFile === undefined ? {} : { credentialFile: parsed.credentialFile }),
155
- ...(parsed.sessionFile === undefined ? {} : { sessionFile: parsed.sessionFile }),
156
- ...(parsed.secretsFile === undefined ? {} : { secretsFile: parsed.secretsFile }),
157
- });
286
+ /** Report every refusal of a refused deploy mode, each with what to write instead. */
287
+ function refused(mode) {
288
+ if (mode.kind !== 'refused')
289
+ return false;
290
+ for (const refusal of mode.refusals)
291
+ error(refusal.guidance);
292
+ return true;
293
+ }
294
+ /**
295
+ * `astrale-domain yank <version> [--undo]`: take one published version of the Project's Domain
296
+ * out of resolution in the Admin registry, or put it back. With `--json`, stdout carries only the
297
+ * YankReportV1; a refused or failed run prints nothing there.
298
+ */
299
+ async function yank(parsed, project) {
300
+ if (parsed.version === undefined)
301
+ throw new TypeError('`yank` requires a published version.');
302
+ const origin = compile(project.domain).schema.compiled.root.origin;
303
+ const lifecycle = deploymentLifecycle('Yank interrupted.');
304
+ try {
305
+ const report = await yankPublication({
306
+ origin,
307
+ version: parsed.version,
308
+ undo: parsed.undo === true,
309
+ projectDir: process.cwd(),
310
+ signal: lifecycle.signal,
311
+ });
312
+ if (parsed.json === true)
313
+ process.stdout.write(`${JSON.stringify(report, null, 2)}\n`);
314
+ else
315
+ info(yankSummary(report));
316
+ return 0;
317
+ }
318
+ catch (cause) {
319
+ if (!(cause instanceof RegistryCliError))
320
+ throw cause;
321
+ error(`${cause.code}: ${cause.message}`);
322
+ return 1;
323
+ }
324
+ finally {
325
+ lifecycle.dispose();
326
+ }
158
327
  }
159
328
  async function lint(parsed) {
160
329
  const { formatLintResult, lintDomain, LinterToolError } = await import('../linter/index.js');
@@ -174,25 +343,12 @@ async function lint(parsed) {
174
343
  throw cause;
175
344
  }
176
345
  }
177
- function secretsFor(adapter, parameters, projectDir, runtime) {
178
- const file = adapter.secretsFile?.(parameters);
179
- if (file === undefined)
180
- return Object.freeze({});
181
- const path = isAbsolute(file) ? file : join(projectDir, file);
182
- // An Integration-free Runtime has no Providers and therefore no author-owned
183
- // environment secrets. Adapter-owned secrets, such as the signing identity,
184
- // are resolved separately by the adapter and must not make this file required.
185
- if (Object.keys(runtime.integrations).length === 0 && !existsSync(path)) {
186
- return Object.freeze({});
187
- }
188
- return Object.freeze(loadDeclaredSecrets(path, file));
189
- }
190
346
  function findConfig(projectDir) {
191
347
  return CONFIG_NAMES.map((name) => join(projectDir, name)).find(existsSync);
192
348
  }
193
- function deploymentLifecycle() {
349
+ function deploymentLifecycle(interruption = 'Deployment interrupted.') {
194
350
  const controller = new AbortController();
195
- const stop = () => controller.abort(new Error('Deployment interrupted.'));
351
+ const stop = () => controller.abort(new Error(interruption));
196
352
  process.once('SIGINT', stop);
197
353
  process.once('SIGTERM', stop);
198
354
  return Object.freeze({
@@ -1,4 +1,4 @@
1
- import type { Application } from '../../application/index.js';
1
+ import type { DomainDefinition } from '../../application/index.js';
2
2
  import type { Requirements } from '../../application/requirements/index.js';
3
3
  import type { Routes } from '../../application/routes/index.js';
4
4
  import type { Runtime } from '../../application/runtime/index.js';
@@ -7,10 +7,10 @@ import type { Deployment } from '../../deployment/index.js';
7
7
  import type { schema } from '../../platform/schema/index.js';
8
8
  import type { Project, ProjectEnvironment } from '../../project/index.js';
9
9
  import type { Tests } from '../../testing/index.js';
10
- export type LoadedApplication = Application<schema.DomainSchema, Runtime, Frontend<schema.DomainSchema> | undefined, Routes | undefined, Requirements | undefined>;
10
+ export type LoadedDomainDefinition = DomainDefinition<schema.DomainSchema, Runtime, Frontend<schema.DomainSchema> | undefined, Routes | undefined, Requirements | undefined>;
11
11
  export type LoadedDeployment = Deployment<object>;
12
12
  export type LoadedEnvironment = ProjectEnvironment<LoadedDeployment>;
13
- export type LoadedProject = Project<LoadedApplication, Readonly<Record<string, LoadedEnvironment>>, Tests | undefined>;
13
+ export type LoadedProject = Project<LoadedDomainDefinition, Readonly<Record<string, LoadedEnvironment>>, Tests | undefined>;
14
14
  export declare function loadProject(path: string): Promise<LoadedProject>;
15
15
  export declare function selectEnvironment(project: LoadedProject, name: string): LoadedEnvironment;
16
16
  export declare function runtimeEntrypoint(project: LoadedProject): import("../../deployment/index.js").RuntimeReference;
@@ -0,0 +1,81 @@
1
+ import type { Adapter, Build, Release, ResolvedRuntimeReference } from '../../../deployment/index.js';
2
+ import type { DomainRegistry } from '../registry/index.js';
3
+ export type { PublishReportV1 } from './report.js';
4
+ export interface PublishCommandInput {
5
+ readonly projectDir: string;
6
+ readonly environment: string;
7
+ /** The adapter of a canonical Environment (CT33): `publish` refuses every other one before. */
8
+ readonly adapter: Adapter<object>;
9
+ readonly parameters: object;
10
+ readonly build: Build;
11
+ readonly runtime: ResolvedRuntimeReference;
12
+ /** `--as`: the identity that reads and writes the registry and deploys. */
13
+ readonly identity?: string;
14
+ /** `--allow-dirty`: publish from a working tree with changes, or outside git. */
15
+ readonly allowDirty: boolean;
16
+ readonly json: boolean;
17
+ readonly signal: AbortSignal;
18
+ }
19
+ /**
20
+ * What `publish` uses of the Domain registry: the index, the claim of an origin no one has, a
21
+ * baseline's bundle, the Publication.
22
+ */
23
+ type PublishRegistry = Pick<DomainRegistry, 'index' | 'claim' | 'bundle' | 'publish'>;
24
+ export interface PublishCommandDependencies {
25
+ readonly open: (input: {
26
+ readonly projectDir: string;
27
+ readonly identity?: string;
28
+ readonly signal: AbortSignal;
29
+ /** The first Astrale CLI release that serves every registry command publish may run. */
30
+ readonly minimum?: string;
31
+ }) => Promise<PublishRegistry>;
32
+ /** Step 5: the deployment serves exactly this sealed release at its URL. */
33
+ readonly verify: (release: Release, signal: AbortSignal) => Promise<void>;
34
+ /** Whether a remote-tracking branch already holds the commit (tech Versioning [.73872]). */
35
+ readonly pushed: (input: {
36
+ readonly projectDir: string;
37
+ readonly sha: string;
38
+ readonly signal: AbortSignal;
39
+ }) => Promise<boolean | undefined>;
40
+ readonly stdout: (text: string) => void;
41
+ readonly stderr: (text: string) => void;
42
+ /** The deadline of step 5; `VERIFY_TIMEOUT_MS` by default. */
43
+ readonly verifyTimeoutMs?: number;
44
+ }
45
+ /**
46
+ * Step 5 reads the deployment's `release.json` (at most 1 MiB) and its Bundle (at most 16 MiB)
47
+ * once the adapter has seen it ready: a deployment that accepts the connection and never answers
48
+ * is refused after this long, never waited on until the CI job's own timeout.
49
+ */
50
+ export declare const VERIFY_TIMEOUT_MS = 60000;
51
+ /**
52
+ * `astrale-domain publish <environment> [--allow-dirty] [--as <identity>] [--json]`: give the
53
+ * release this tree deploys in one Environment the version `package.json` declares (tech
54
+ * Versioning [.73345], Registry [.122137]). It deploys bottom-up and names last: the Publication
55
+ * Admin creates under the Domain's lock is the only switch, so every failure before it leaves at
56
+ * most a deployment without a version, which a rerun reuses (Registry [.122407]).
57
+ *
58
+ * 0. Before any effect: provenance (a dirty tree or no git is refused unless `--allow-dirty`; the
59
+ * commit is recorded; an unpushed commit warns), then the plan of the deployment: build,
60
+ * configure, placement, label, URL and the sealed release digest.
61
+ * 1. Read the version from `package.json`.
62
+ * 2. Read the registry. The version exists: the same release succeeds without effect, another is
63
+ * refused. An origin the registry does not hold for this identity is claimed: Admin gives an
64
+ * origin no one has to its first claimer, who administers its Domain, and refuses one another
65
+ * account holds. A registry that does not answer is refused.
66
+ * 3. Judge the version against the highest stable version below it (AM-23); refuse a version
67
+ * that is too low.
68
+ * 4. Deploy the release, or reuse its deployment.
69
+ * 5. Verify that the deployment serves the sealed release.
70
+ * 6. Ask Admin for the Publication; a version Admin gave another release meanwhile is refused,
71
+ * naming the winner's release, and this deployment stays a preview. Any other failure says
72
+ * what CT29 says of it: Admin may have created the Publication (a rerun settles it), Admin made
73
+ * none and a rerun can help, or Admin refused and a rerun meets the same refusal. Then, when
74
+ * the adapter declares `retain` (a host with no registry principal to keep it, CT36), it
75
+ * keeps the published deployment. No first-party adapter declares it: Admin's Services and a
76
+ * Cloudflare dispatch namespace keep every deployment until its owner retires it.
77
+ *
78
+ * Steps 0 to 3 make no deploy call; step 2's claim is the only registry change before step 6.
79
+ * Never installs.
80
+ */
81
+ export declare function runPublish(input: PublishCommandInput, dependencies?: PublishCommandDependencies): Promise<number>;