@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,11 +1,11 @@
1
1
  import ts from 'typescript';
2
2
  import { propertyChain, resolveImportedSymbol, unwrap, visit, } from '../../adapters/typescript/index.js';
3
- import { applicationFunctionRequirements, callableReference, callableSelector, declaredDomainDependencies, remoteCallableKey, } from './callable-requirements.js';
4
- import { ambiguity, calls, isForeignDomain, production, violation } from './shared.js';
3
+ import { domainFunctionRequirements, callableReference, callableSelector, declaredDomainDependencies, remoteCallableKey, } from './callable-requirements.js';
4
+ import { ambiguity, calls, contextPath, isForeignDomain, production, violation } from './shared.js';
5
5
  export const dependencyRules = [
6
6
  {
7
7
  id: 'FNC-XDOM-DECLARED',
8
- ruleRevision: '269e22202a0fbec5ec4afc3579ca504eed457f44046b99e64a38d08634294909',
8
+ ruleRevision: '72f960f87ac682695ea495925e31d15b9bd640b25d90ac1dcc6a1329a0be51b0',
9
9
  evaluate(project) {
10
10
  const evidence = [];
11
11
  for (const file of production(project, 'functions')) {
@@ -19,15 +19,15 @@ export const dependencyRules = [
19
19
  },
20
20
  {
21
21
  id: 'FNC-XDOM-REQ',
22
- ruleRevision: 'a646c9931bb8b5a011a2cf7431f362fcb0e63be49dfc4c1bc0eba77a8aca8fdb',
22
+ ruleRevision: 'a4666ebb09b2027983edc2ffc6411692ade9877ee9c4f23c4b0a8d157a0cf385',
23
23
  evaluate(project) {
24
24
  const { targets, evidence } = observeInvocations(project);
25
- const declared = applicationFunctionRequirements(project);
25
+ const declared = domainFunctionRequirements(project);
26
26
  const results = evidence.filter(({ kind }) => kind === 'ambiguity');
27
27
  for (const target of targets) {
28
28
  if (declared.keys.has(remoteCallableKey(target)))
29
29
  continue;
30
- results.push((declared.indeterminate ? ambiguity : violation)(target.file, target.node, `Remote Domain callable ${target.module} ${target.selector.join('.')} lacks one provable exact Application Function requirement.`));
30
+ results.push((declared.indeterminate ? ambiguity : violation)(target.file, target.node, `Remote Domain callable ${target.module} ${target.selector.join('.')} lacks one provable exact Domain Function requirement.`));
31
31
  }
32
32
  return results;
33
33
  },
@@ -70,16 +70,18 @@ function observeInvocations(project) {
70
70
  let alias;
71
71
  let selector;
72
72
  if (path[0] === 'dependencies') {
73
- if (path.length !== 4 || !['caller', 'self', 'union'].includes(path[2])) {
74
- evidence.push(violation(file, node, 'Dependency invocation requires one direct alias and one explicit caller, self, or union authority.'));
73
+ if (path.length !== 4 || !['caller', 'self'].includes(path[2])) {
74
+ evidence.push(violation(file, node, 'Dependency invocation requires one direct alias and one explicit caller or self authority.'));
75
75
  return;
76
76
  }
77
77
  alias = path[1];
78
78
  selector = selectedCallable(node.arguments[0]);
79
79
  }
80
- else if (path[0] === 'kernel' &&
81
- (path.length === 2 ||
82
- (path.length === 3 && ['caller', 'self', 'union'].includes(path[1])))) {
80
+ else if (path[0] === 'kernel') {
81
+ if (path.length !== 2 && (path.length !== 3 || !['caller', 'self'].includes(path[1]))) {
82
+ evidence.push(violation(file, node, 'Kernel invocation requires the default, caller, or self authority.'));
83
+ return;
84
+ }
83
85
  const argument = node.arguments[0];
84
86
  if (!argument) {
85
87
  evidence.push(violation(file, node, 'Kernel invocation requires one canonical typed reference.'));
@@ -156,64 +158,3 @@ function selectedCallable(input) {
156
158
  const chain = expression && propertyChain(expression);
157
159
  return chain && chain[0] === parameter.text ? chain.slice(1) : undefined;
158
160
  }
159
- /** Resolve handler context bindings and one immutable local alias without following arbitrary helpers. */
160
- function contextPath(input, run, aliases = 1) {
161
- const expression = unwrap(input);
162
- if (ts.isPropertyAccessExpression(expression)) {
163
- const base = contextPath(expression.expression, run, aliases);
164
- return base && [...base, expression.name.text];
165
- }
166
- if (ts.isElementAccessExpression(expression)) {
167
- const base = contextPath(expression.expression, run, aliases);
168
- return base && [...base, '[computed]'];
169
- }
170
- if (!ts.isIdentifier(expression))
171
- return undefined;
172
- let current = expression.parent;
173
- while (current) {
174
- if (ts.isFunctionLike(current)) {
175
- for (const parameter of current.parameters) {
176
- const path = bindingPath(parameter.name, expression.text);
177
- if (path)
178
- return current === run && parameter === run.parameters[0] ? path : undefined;
179
- }
180
- }
181
- if (ts.isBlock(current) || ts.isSourceFile(current)) {
182
- for (const statement of current.statements) {
183
- if (ts.isFunctionDeclaration(statement) && statement.name?.text === expression.text)
184
- return undefined;
185
- if (!ts.isVariableStatement(statement))
186
- continue;
187
- for (const declaration of statement.declarationList.declarations) {
188
- const path = bindingPath(declaration.name, expression.text);
189
- if (!path)
190
- continue;
191
- if (aliases === 0 ||
192
- !declaration.initializer ||
193
- declaration.end > expression.pos ||
194
- !(statement.declarationList.flags & ts.NodeFlags.Const))
195
- return undefined;
196
- const base = contextPath(declaration.initializer, run, aliases - 1);
197
- return base && [...base, ...path];
198
- }
199
- }
200
- }
201
- current = current.parent;
202
- }
203
- return undefined;
204
- }
205
- function bindingPath(name, identifier) {
206
- if (ts.isIdentifier(name))
207
- return name.text === identifier ? [] : undefined;
208
- if (!ts.isObjectBindingPattern(name))
209
- return undefined;
210
- for (const element of name.elements) {
211
- if (element.dotDotDotToken)
212
- continue;
213
- const nested = bindingPath(element.name, identifier);
214
- const property = element.propertyName ?? (ts.isIdentifier(element.name) ? element.name : undefined);
215
- if (nested && property && (ts.isIdentifier(property) || ts.isStringLiteral(property)))
216
- return [property.text, ...nested];
217
- }
218
- return undefined;
219
- }
@@ -506,7 +506,6 @@ export const globalRules = [
506
506
  { layer: 'queries', name: 'defineQuery', members: [undefined] },
507
507
  { layer: 'queries', name: 'defineCompositeQuery', members: [undefined] },
508
508
  { layer: 'mutations', name: 'defineMutation', members: [undefined] },
509
- { layer: 'migrations', name: 'defineMigration', members: [undefined] },
510
509
  ];
511
510
  for (const definition of definitions) {
512
511
  for (const file of production(project, definition.layer)) {
@@ -887,7 +886,7 @@ function isDomainDefinitionCall(file, call) {
887
886
  const expression = unwrap(call.expression);
888
887
  const direct = importedSymbol(file, expression);
889
888
  if (direct?.module.startsWith('@astrale-os/sdk') &&
890
- (direct.name === 'defineApplication' ||
889
+ (direct.name === 'defineDomain' ||
891
890
  direct.name === 'defineFrontend' ||
892
891
  direct.name === 'defineRuntime' ||
893
892
  direct.name === 'requirements')) {
@@ -1,6 +1,6 @@
1
1
  import ts from 'typescript';
2
2
  import { isLocalAlias } from '../../../../platform/graph/alias.js';
3
- import { expressionType, importedSymbol, propertyChain, staticText, unwrap, visit, } from '../../adapters/typescript/index.js';
3
+ import { expressionType, importedSymbol, propertyChain, staticText, unwrap, visit, visitOwnBody, } from '../../adapters/typescript/index.js';
4
4
  import { ambiguity, callback, calls, DSL_MODULES, definitionOriginAmbiguity, definitionObjects, domainProjectorEvidence, forbiddenIoImport, hasForbiddenGlobalCall, production, violation, } from './shared.js';
5
5
  import { stateMachineIdentity, statePropertyIdentity } from './state-machine.js';
6
6
  const FORBIDDEN_LAYERS = new Set(['integrations', 'functions', 'providers', 'queries']);
@@ -8,7 +8,7 @@ const FORBIDDEN_CALLS = new Set(['invoke', 'query', 'retry', 'run', 'submit']);
8
8
  export const mutationRules = [
9
9
  {
10
10
  id: 'MUT-PLAN-REQ',
11
- ruleRevision: '9201a4e5799f62cc8df37d281d1f02516132632e33b4a82187c399780bdfe340',
11
+ ruleRevision: '73f37ffa6b2fa4a1f236749696404d6b1fb399f1ea0e3947d8ac4df7073b3ceb',
12
12
  evaluate(project) {
13
13
  const evidence = [];
14
14
  const targets = [];
@@ -30,7 +30,7 @@ export const mutationRules = [
30
30
  targets.push({ file, node: selectedClass, ...target, operation: classOperation });
31
31
  }
32
32
  else if (selectedClass && expressionSelectsDependency(selectedClass)) {
33
- evidence.push(ambiguity(file, selectedClass, 'Mutation plan selects a foreign Class dynamically, so its Application requirement cannot be proven.'));
33
+ evidence.push(ambiguity(file, selectedClass, 'Mutation plan selects a foreign Class dynamically, so its Domain requirement cannot be proven.'));
34
34
  }
35
35
  });
36
36
  }
@@ -46,21 +46,21 @@ export const mutationRules = [
46
46
  }
47
47
  if (targets.length === 0 && identityCalls.length === 0)
48
48
  return evidence;
49
- const requirements = applicationPlanRequirements(project);
49
+ const requirements = domainPlanRequirements(project);
50
50
  for (const target of targets) {
51
51
  const key = classRequirementKey(target.dependency, target.className, target.operation);
52
52
  if (requirements.classes.has(key))
53
53
  continue;
54
54
  evidence.push(requirements.indeterminate
55
- ? ambiguity(target.file, target.node, `Application Class requirements are opaque for dependency ${target.dependency} Class ${target.className}.`)
56
- : violation(target.file, target.node, `Mutation plan dependency ${target.dependency} Class ${target.className} lacks Application ${target.operation} authority.`));
55
+ ? ambiguity(target.file, target.node, `Domain Class requirements are opaque for dependency ${target.dependency} Class ${target.className}.`)
56
+ : violation(target.file, target.node, `Mutation plan dependency ${target.dependency} Class ${target.className} lacks Domain ${target.operation} authority.`));
57
57
  }
58
58
  for (const invocation of identityCalls) {
59
59
  if (!requirements.functions.has(invocation.syscall)) {
60
60
  const name = invocation.syscall === 'register' ? 'Register' : 'Provision';
61
61
  evidence.push(requirements.indeterminate
62
- ? ambiguity(invocation.file, invocation.node, `Application Function requirements are opaque for Kernel ${name}.`)
63
- : violation(invocation.file, invocation.node, `Kernel ${name} invocation lacks the exact Application Function requirement.`));
62
+ ? ambiguity(invocation.file, invocation.node, `Domain Function requirements are opaque for Kernel ${name}.`)
63
+ : violation(invocation.file, invocation.node, `Kernel ${name} invocation lacks the exact Domain Function requirement.`));
64
64
  }
65
65
  }
66
66
  return evidence;
@@ -748,24 +748,24 @@ function parameterProperty(use, sourceName) {
748
748
  const property = element.propertyName ?? element.name;
749
749
  return (ts.isIdentifier(property) || ts.isStringLiteral(property)) && property.text === sourceName;
750
750
  }
751
- function applicationPlanRequirements(project) {
752
- const applicationPath = project.policy.rootFiles.find(({ id }) => id === 'application')?.sourcePath;
753
- const file = applicationPath && project.filesByPath.get(applicationPath);
751
+ function domainPlanRequirements(project) {
752
+ const domainPath = project.policy.rootFiles.find(({ id }) => id === 'domain')?.sourcePath;
753
+ const file = domainPath && project.filesByPath.get(domainPath);
754
754
  if (!file)
755
755
  return emptyPlanRequirements(true);
756
- const applications = [];
756
+ const definitions = [];
757
757
  visit(file.source, (node) => {
758
758
  if (!ts.isCallExpression(node))
759
759
  return;
760
760
  const symbol = importedSymbol(file, node.expression);
761
- if (symbol?.name === 'defineApplication' &&
762
- (symbol.module === '@astrale-os/sdk' || symbol.module === '@astrale-os/sdk/application')) {
763
- applications.push(node);
761
+ if (symbol?.name === 'defineDomain' &&
762
+ (symbol.module === '@astrale-os/sdk' || symbol.module === '@astrale-os/sdk/domain')) {
763
+ definitions.push(node);
764
764
  }
765
765
  });
766
- if (applications.length !== 1)
766
+ if (definitions.length !== 1)
767
767
  return emptyPlanRequirements(true);
768
- const input = staticObject(applications[0].arguments[0]);
768
+ const input = staticObject(definitions[0].arguments[0]);
769
769
  const requirementValue = input && assignedValue(input, 'requirements');
770
770
  if (requirementValue === undefined)
771
771
  return emptyPlanRequirements(false);
@@ -774,7 +774,7 @@ function applicationPlanRequirements(project) {
774
774
  if (!requirementCall ||
775
775
  requirementSymbol?.name !== 'requirements' ||
776
776
  (requirementSymbol.module !== '@astrale-os/sdk' &&
777
- requirementSymbol.module !== '@astrale-os/sdk/application')) {
777
+ requirementSymbol.module !== '@astrale-os/sdk/domain')) {
778
778
  return emptyPlanRequirements(true);
779
779
  }
780
780
  const definition = staticObject(requirementCall.arguments[0]);
@@ -1399,17 +1399,6 @@ function referencesIdentifier(arguments_, name) {
1399
1399
  }
1400
1400
  return found;
1401
1401
  }
1402
- function visitOwnBody(fn, callback) {
1403
- if (!fn.body)
1404
- return;
1405
- const walk = (node) => {
1406
- callback(node);
1407
- if (node !== fn.body && ts.isFunctionLike(node))
1408
- return;
1409
- node.forEachChild(walk);
1410
- };
1411
- walk(fn.body);
1412
- }
1413
1402
  function returnedValues(fn) {
1414
1403
  if (!fn.body)
1415
1404
  return 0;
@@ -1,6 +1,6 @@
1
1
  import ts from 'typescript';
2
2
  import { propertyChain, resolveImportedSymbol, resolveProjectImport, unwrap, visit, } from '../../adapters/typescript/index.js';
3
- import { applicationFunctionRequirements, callableReference, callableSelector, externalFacade, lexicalConstInitializer, remoteCallableKey, } from './callable-requirements.js';
3
+ import { domainFunctionRequirements, callableReference, callableSelector, externalFacade, lexicalConstInitializer, remoteCallableKey, } from './callable-requirements.js';
4
4
  import { ambiguity, production, violation } from './shared.js';
5
5
  const LOCAL_DOMAIN_LAYERS = new Set([
6
6
  'functions',
@@ -54,7 +54,7 @@ export const providerRules = [
54
54
  },
55
55
  {
56
56
  id: 'PRV-XDOM-REQ',
57
- ruleRevision: '065816fda57910e917670ed657cf45b1ad3bfdc8fba6362f48123221725e20a0',
57
+ ruleRevision: 'b3fc6c409374b924b1b06c17f6d3702ec9d1e9e7a286bd955a151d0bf12c5b24',
58
58
  evaluate(project) {
59
59
  const targets = [];
60
60
  const evidence = [];
@@ -71,14 +71,14 @@ export const providerRules = [
71
71
  }
72
72
  if (targets.length === 0)
73
73
  return evidence;
74
- const declared = applicationFunctionRequirements(project);
74
+ const declared = domainFunctionRequirements(project);
75
75
  for (const target of targets) {
76
76
  if (declared.keys.has(remoteCallableKey(target)))
77
77
  continue;
78
78
  const selector = target.selector.join('.');
79
79
  evidence.push(declared.indeterminate
80
- ? ambiguity(target.file, target.node, `Application Function requirements are opaque for ${target.module} ${selector}.`)
81
- : violation(target.file, target.node, `Remote Domain callable ${target.module} ${selector} lacks one exact Application Function requirement.`));
80
+ ? ambiguity(target.file, target.node, `Domain Function requirements are opaque for ${target.module} ${selector}.`)
81
+ : violation(target.file, target.node, `Remote Domain callable ${target.module} ${selector} lacks one exact Domain Function requirement.`));
82
82
  }
83
83
  return evidence;
84
84
  },
@@ -1,5 +1,5 @@
1
1
  import ts from 'typescript';
2
- import { importedSymbol, observeQueryDefinitions, propertyChain, queryCollectionKind, unwrap, visit, } from '../../adapters/typescript/index.js';
2
+ import { bindingContains, importedSymbol, observeQueryDefinitions, propertyChain, queryCollectionKind, unwrap, visit, visitOwnBody, } from '../../adapters/typescript/index.js';
3
3
  import { decideCanonicalQuery, decideSingleQuery } from '../../analysis/query/index.js';
4
4
  import { ambiguity, callback, definitionOriginAmbiguity, definitionObjects, domainProjectorEvidence, propertyExpression, production, returnedExpressions, staticId, violation, } from './shared.js';
5
5
  import { sourceEvidence } from './verifier.js';
@@ -1130,22 +1130,6 @@ function enclosingFunction(node) {
1130
1130
  current = current.parent;
1131
1131
  return current;
1132
1132
  }
1133
- function bindingContains(binding, name) {
1134
- if (ts.isIdentifier(binding))
1135
- return binding.text === name;
1136
- return binding.elements.some((element) => !ts.isOmittedExpression(element) && bindingContains(element.name, name));
1137
- }
1138
- function visitOwnBody(fn, callback) {
1139
- if (!fn.body)
1140
- return;
1141
- const walk = (node) => {
1142
- callback(node);
1143
- if (node !== fn.body && ts.isFunctionLike(node))
1144
- return;
1145
- node.forEachChild(walk);
1146
- };
1147
- walk(fn.body);
1148
- }
1149
1133
  function isCompositeLeaf(expression, file) {
1150
1134
  if (!expression || !ts.isIdentifier(unwrap(expression)))
1151
1135
  return false;
@@ -25,20 +25,28 @@ export declare function domainProjectorEvidence(file: SourceFile, importedName:
25
25
  export declare function violation(file: SourceFile, node: ts.Node, evidence: string): SourceRuleEvidence;
26
26
  export declare function ambiguity(file: SourceFile, node: ts.Node, evidence: string): SourceRuleEvidence;
27
27
  export declare function localTarget(project: SourceProject, file: SourceFile, sourceImport: SourceImport): SourceFile | undefined;
28
- export declare function importedLayer(project: SourceProject, file: SourceFile, sourceImport: SourceImport): string | undefined;
29
28
  export declare function isForeignDomain(specifier: string): boolean;
30
29
  export declare function packageRoot(specifier: string): string;
31
30
  export declare function isDeepPackageImport(specifier: string): boolean;
32
31
  export declare function propertyExpression(object: ts.ObjectLiteralExpression | undefined, name: string): ts.Expression | undefined;
33
32
  export declare function callback(object: ts.ObjectLiteralExpression | undefined, name: string): ts.FunctionLikeDeclaration | undefined;
34
33
  export declare function returnedExpressions(fn: ts.FunctionLikeDeclaration): ts.Expression[];
35
- export declare function callChain(expression: ts.Expression): readonly string[] | undefined;
36
34
  export declare function staticId(expression: ts.Expression | undefined): string | undefined;
37
35
  export declare function hasForbiddenGlobalCall(file: SourceFile): Array<{
38
36
  node: ts.Node;
39
37
  name: string;
40
38
  }>;
39
+ /** The global a call reaches, as `name(…)` with no import or local binding, or `globalThis.name(…)`. */
40
+ export declare function globalCallName(file: SourceFile, node: ts.CallExpression): string | undefined;
41
+ /**
42
+ * The member path an expression reads from a global: `Date.now` when no import or local binding
43
+ * names `Date`, the same through `globalThis.Date.now`.
44
+ */
45
+ export declare function globalPath(file: SourceFile, input: ts.Expression): readonly string[] | undefined;
46
+ /**
47
+ * Resolve the path of `input` from the first parameter of `run`, or of a durable Step callback in
48
+ * it, through one immutable local alias, without following arbitrary helpers.
49
+ */
50
+ export declare function contextPath(input: ts.Expression, run: ts.FunctionLikeDeclaration, aliases?: number): readonly string[] | undefined;
41
51
  export declare function isLocallyBoundIdentifier(node: ts.Identifier): boolean;
42
52
  export declare function forbiddenIoImport(specifier: string): boolean;
43
- export declare function variableName(call: ts.CallExpression): string | undefined;
44
- export declare function allPropertyNames(object: ts.ObjectLiteralExpression): string[];
@@ -1,5 +1,5 @@
1
1
  import ts from 'typescript';
2
- import { importedSymbol, location, objectProperty, propertyChain, resolveImportedSymbol, resolveProjectImport, staticText, unwrap, visit, } from '../../adapters/typescript/index.js';
2
+ import { bindingContains, importedSymbol, location, objectProperty, propertyChain, resolveImportedSymbol, resolveProjectImport, staticText, unwrap, visit, } from '../../adapters/typescript/index.js';
3
3
  export const SDK_MODULES = new Set([
4
4
  '@astrale-os/sdk',
5
5
  '@astrale-os/sdk/action',
@@ -159,9 +159,6 @@ export function ambiguity(file, node, evidence) {
159
159
  export function localTarget(project, file, sourceImport) {
160
160
  return resolveProjectImport(project, file, sourceImport.specifier);
161
161
  }
162
- export function importedLayer(project, file, sourceImport) {
163
- return localTarget(project, file, sourceImport)?.layer;
164
- }
165
162
  export function isForeignDomain(specifier) {
166
163
  if (specifier.startsWith('@astrale-domains/'))
167
164
  return true;
@@ -209,14 +206,6 @@ export function returnedExpressions(fn) {
209
206
  fn.body.forEachChild(walk);
210
207
  return expressions;
211
208
  }
212
- export function callChain(expression) {
213
- const target = unwrap(expression);
214
- if (ts.isCallExpression(target))
215
- return propertyChain(target.expression);
216
- if (ts.isPropertyAccessExpression(target))
217
- return propertyChain(target);
218
- return undefined;
219
- }
220
209
  export function staticId(expression) {
221
210
  return staticText(expression);
222
211
  }
@@ -226,22 +215,109 @@ export function hasForbiddenGlobalCall(file) {
226
215
  visit(file.source, (node) => {
227
216
  if (!ts.isCallExpression(node))
228
217
  return;
229
- const expression = unwrap(node.expression);
230
- if (ts.isIdentifier(expression)) {
231
- const name = expression.text;
232
- if (forbidden.has(name) &&
233
- !importedSymbol(file, expression) &&
234
- !isLocallyBound(expression, name)) {
235
- result.push({ node, name });
218
+ const name = globalCallName(file, node);
219
+ if (name !== undefined && forbidden.has(name))
220
+ result.push({ node, name });
221
+ });
222
+ return result;
223
+ }
224
+ /** The global a call reaches, as `name(…)` with no import or local binding, or `globalThis.name(…)`. */
225
+ export function globalCallName(file, node) {
226
+ const path = globalPath(file, node.expression);
227
+ return path?.length === 1 ? path[0] : undefined;
228
+ }
229
+ /**
230
+ * The member path an expression reads from a global: `Date.now` when no import or local binding
231
+ * names `Date`, the same through `globalThis.Date.now`.
232
+ */
233
+ export function globalPath(file, input) {
234
+ const expression = unwrap(input);
235
+ const chain = propertyChain(expression);
236
+ if (!chain)
237
+ return undefined;
238
+ let root = expression;
239
+ while (ts.isPropertyAccessExpression(root))
240
+ root = unwrap(root.expression);
241
+ if (!ts.isIdentifier(root) || isLocallyBound(root, root.text))
242
+ return undefined;
243
+ if (chain[0] === 'globalThis')
244
+ return chain.length > 1 ? chain.slice(1) : undefined;
245
+ return importedSymbol(file, root) ? undefined : chain;
246
+ }
247
+ /**
248
+ * Resolve the path of `input` from the first parameter of `run`, or of a durable Step callback in
249
+ * it, through one immutable local alias, without following arbitrary helpers.
250
+ */
251
+ export function contextPath(input, run, aliases = 1) {
252
+ const expression = unwrap(input);
253
+ if (ts.isPropertyAccessExpression(expression)) {
254
+ const base = contextPath(expression.expression, run, aliases);
255
+ return base && [...base, expression.name.text];
256
+ }
257
+ if (ts.isElementAccessExpression(expression)) {
258
+ const base = contextPath(expression.expression, run, aliases);
259
+ return base && [...base, '[computed]'];
260
+ }
261
+ if (!ts.isIdentifier(expression))
262
+ return undefined;
263
+ let current = expression.parent;
264
+ while (current) {
265
+ if (ts.isFunctionLike(current)) {
266
+ for (const parameter of current.parameters) {
267
+ const path = bindingPath(parameter.name, expression.text);
268
+ if (path)
269
+ return parameter === current.parameters[0] &&
270
+ (current === run || stepCallback(current, run))
271
+ ? path
272
+ : undefined;
236
273
  }
237
- return;
238
274
  }
239
- const chain = propertyChain(expression);
240
- if (chain?.length === 2 && chain[0] === 'globalThis' && forbidden.has(chain[1])) {
241
- result.push({ node, name: chain[1] });
275
+ if (ts.isBlock(current) || ts.isSourceFile(current)) {
276
+ for (const statement of current.statements) {
277
+ if (ts.isFunctionDeclaration(statement) && statement.name?.text === expression.text)
278
+ return undefined;
279
+ if (!ts.isVariableStatement(statement))
280
+ continue;
281
+ for (const declaration of statement.declarationList.declarations) {
282
+ const path = bindingPath(declaration.name, expression.text);
283
+ if (!path)
284
+ continue;
285
+ if (aliases === 0 ||
286
+ !declaration.initializer ||
287
+ declaration.end > expression.pos ||
288
+ !(statement.declarationList.flags & ts.NodeFlags.Const))
289
+ return undefined;
290
+ const base = contextPath(declaration.initializer, run, aliases - 1);
291
+ return base && [...base, ...path];
292
+ }
293
+ }
242
294
  }
243
- });
244
- return result;
295
+ current = current.parent;
296
+ }
297
+ return undefined;
298
+ }
299
+ /** A durable Step callback receives the handler's capabilities under the same names. */
300
+ function stepCallback(callback, run) {
301
+ const call = callback.parent;
302
+ if (!ts.isCallExpression(call) || call.arguments[1] !== callback)
303
+ return false;
304
+ const callee = contextPath(call.expression, run, 0);
305
+ return callee?.length === 2 && callee[0] === 'step' && callee[1] === 'run';
306
+ }
307
+ function bindingPath(name, identifier) {
308
+ if (ts.isIdentifier(name))
309
+ return name.text === identifier ? [] : undefined;
310
+ if (!ts.isObjectBindingPattern(name))
311
+ return undefined;
312
+ for (const element of name.elements) {
313
+ if (element.dotDotDotToken)
314
+ continue;
315
+ const nested = bindingPath(element.name, identifier);
316
+ const property = element.propertyName ?? (ts.isIdentifier(element.name) ? element.name : undefined);
317
+ if (nested && property && (ts.isIdentifier(property) || ts.isStringLiteral(property)))
318
+ return [property.text, ...nested];
319
+ }
320
+ return undefined;
245
321
  }
246
322
  export function isLocallyBoundIdentifier(node) {
247
323
  return isLocallyBound(node, node.text);
@@ -251,22 +327,6 @@ export function forbiddenIoImport(specifier) {
251
327
  !specifier.startsWith('node:assert') &&
252
328
  !specifier.startsWith('node:util/types'));
253
329
  }
254
- export function variableName(call) {
255
- const parent = call.parent;
256
- return ts.isVariableDeclaration(parent) && ts.isIdentifier(parent.name)
257
- ? parent.name.text
258
- : undefined;
259
- }
260
- export function allPropertyNames(object) {
261
- return object.properties.flatMap((property) => {
262
- if (!('name' in property) || !property.name)
263
- return [];
264
- const name = ts.isIdentifier(property.name) || ts.isStringLiteral(property.name)
265
- ? property.name.text
266
- : undefined;
267
- return name ? [name] : [];
268
- });
269
- }
270
330
  function isLocallyBound(node, name) {
271
331
  let current = node.parent;
272
332
  while (current) {
@@ -312,8 +372,3 @@ function statementDeclares(statement, name) {
312
372
  }
313
373
  return false;
314
374
  }
315
- function bindingContains(binding, name) {
316
- if (ts.isIdentifier(binding))
317
- return binding.text === name;
318
- return binding.elements.some((element) => ts.isOmittedExpression(element) ? false : bindingContains(element.name, name));
319
- }
@@ -2,7 +2,6 @@ import { actionRules } from './actions.js';
2
2
  import { dependencyRules } from './dependencies.js';
3
3
  import { globalRules } from './global.js';
4
4
  import { integrationRules } from './integrations.js';
5
- import { migrationRules } from './migrations.js';
6
5
  import { mutationRules } from './mutations.js';
7
6
  import { providerRules } from './providers.js';
8
7
  import { queryRules } from './queries.js';
@@ -23,7 +22,6 @@ export const sourceRuleVerifiers = Object.freeze([
23
22
  ...mutationRules,
24
23
  ...workflowRules,
25
24
  ...dependencyRules,
26
- ...migrationRules,
27
25
  ...integrationRules,
28
26
  ...actionRules,
29
27
  ...providerRules,
@@ -11,7 +11,7 @@ const DECLARATIONS = [
11
11
  ];
12
12
  const FRONTEND_MODULES = new Set([
13
13
  '@astrale-os/sdk',
14
- '@astrale-os/sdk/application',
14
+ '@astrale-os/sdk/domain',
15
15
  '@astrale-os/sdk/view',
16
16
  ]);
17
17
  export const viewRules = [
@@ -48,7 +48,7 @@ export const viewRules = [
48
48
  evidence.push(uncertain);
49
49
  continue;
50
50
  }
51
- evidence.push(violation(file, definition.call, 'Views composes an SDK frontend; move defineFrontend beside defineApplication in application.ts.'));
51
+ evidence.push(violation(file, definition.call, 'Views composes an SDK frontend; move defineFrontend beside defineDomain in domain.ts.'));
52
52
  }
53
53
  }
54
54
  return evidence;