@astrale-os/sdk 0.6.0-beta.3 → 0.6.0-beta.30

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 (444) hide show
  1. package/README.md +179 -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 +44 -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 +14 -9
  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/operation.d.ts +2 -2
  15. package/dist/application/mutation/authoring/properties.d.ts +5 -3
  16. package/dist/application/mutation/authoring/properties.js +35 -2
  17. package/dist/application/mutation/authoring/transition.js +4 -1
  18. package/dist/application/mutation/index.d.ts +1 -1
  19. package/dist/application/query/composite/plan.d.ts +0 -4
  20. package/dist/application/query/composite/plan.js +0 -2
  21. package/dist/application/routes/admission.d.ts +2 -2
  22. package/dist/application/routes/admission.js +1 -1
  23. package/dist/application/routes/route.d.ts +2 -2
  24. package/dist/application/runtime/actions.js +3 -0
  25. package/dist/application/runtime/workflows.d.ts +3 -1
  26. package/dist/application/runtime/workflows.js +6 -4
  27. package/dist/application/view/define.js +4 -6
  28. package/dist/application/view/frontend.d.ts +2 -2
  29. package/dist/application/view/index.d.ts +1 -1
  30. package/dist/application/view/route.d.ts +0 -14
  31. package/dist/application/view/route.js +1 -64
  32. package/dist/application/workflow/authoring.d.ts +3 -2
  33. package/dist/application/workflow/context.d.ts +8 -2
  34. package/dist/application/workflow/define.d.ts +4 -4
  35. package/dist/application/workflow/define.js +20 -4
  36. package/dist/application/workflow/durable.d.ts +87 -0
  37. package/dist/application/workflow/index.d.ts +3 -2
  38. package/dist/application/workflow/runner/inline.js +3 -4
  39. package/dist/application/workflow/runner/runner.d.ts +2 -2
  40. package/dist/application/workflow/step/output.d.ts +2 -0
  41. package/dist/application/workflow/step/output.js +73 -0
  42. package/dist/application/workflow/workflow.d.ts +13 -3
  43. package/dist/deployment/adapter/adapter.d.ts +55 -13
  44. package/dist/deployment/adapter/bundle/bundle.d.ts +36 -0
  45. package/dist/deployment/adapter/bundle/file.d.ts +10 -0
  46. package/dist/deployment/adapter/bundle/index.d.ts +2 -0
  47. package/dist/deployment/adapter/define.d.ts +4 -3
  48. package/dist/deployment/adapter/define.js +107 -23
  49. package/dist/deployment/adapter/index.d.ts +4 -3
  50. package/dist/deployment/adapter/index.js +1 -0
  51. package/dist/deployment/adapter/release/command.d.ts +33 -0
  52. package/dist/deployment/adapter/release/context.d.ts +94 -0
  53. package/dist/deployment/adapter/release/index.d.ts +4 -0
  54. package/dist/deployment/adapter/release/index.js +1 -0
  55. package/dist/deployment/adapter/release/list.d.ts +53 -0
  56. package/dist/deployment/adapter/release/list.js +1 -0
  57. package/dist/deployment/adapter/release/refusal.d.ts +10 -0
  58. package/dist/deployment/adapter/release/refusal.js +14 -0
  59. package/dist/deployment/adapter/release/result.d.ts +56 -0
  60. package/dist/deployment/adapter/release/result.js +1 -0
  61. package/dist/deployment/address/configuration.d.ts +95 -0
  62. package/dist/deployment/address/configuration.js +273 -0
  63. package/dist/deployment/address/fingerprint.d.ts +5 -0
  64. package/dist/deployment/address/fingerprint.js +27 -0
  65. package/dist/deployment/address/index.d.ts +5 -0
  66. package/dist/deployment/address/index.js +4 -0
  67. package/dist/deployment/address/label.d.ts +42 -0
  68. package/dist/deployment/address/label.js +80 -0
  69. package/dist/deployment/address/line.d.ts +29 -0
  70. package/dist/deployment/address/line.js +53 -0
  71. package/dist/deployment/address/record.d.ts +73 -0
  72. package/dist/deployment/address/record.js +138 -0
  73. package/dist/deployment/address/summary.d.ts +30 -0
  74. package/dist/deployment/address/summary.js +1 -0
  75. package/dist/deployment/address/vectors.d.ts +60 -0
  76. package/dist/deployment/address/vectors.js +517 -0
  77. package/dist/deployment/authoring.d.ts +0 -2
  78. package/dist/deployment/authoring.js +0 -1
  79. package/dist/deployment/build/build.d.ts +8 -2
  80. package/dist/deployment/build/compile.d.ts +4 -4
  81. package/dist/deployment/build/compile.js +19 -17
  82. package/dist/deployment/build/frontend/compilation.d.ts +2 -4
  83. package/dist/deployment/build/frontend/compilation.js +0 -5
  84. package/dist/deployment/build/frontend/digest.js +1 -5
  85. package/dist/deployment/build/index.d.ts +1 -0
  86. package/dist/deployment/build/index.js +1 -0
  87. package/dist/deployment/build/manifest.d.ts +59 -0
  88. package/dist/deployment/build/manifest.js +118 -0
  89. package/dist/deployment/build/material.d.ts +2 -2
  90. package/dist/deployment/build/material.js +28 -13
  91. package/dist/deployment/build/schema.d.ts +2 -2
  92. package/dist/deployment/deployment.d.ts +3 -2
  93. package/dist/deployment/environment.d.ts +6 -0
  94. package/dist/deployment/environment.js +6 -0
  95. package/dist/deployment/index.d.ts +4 -6
  96. package/dist/deployment/index.js +1 -2
  97. package/dist/deployment/release/addressing.d.ts +6 -5
  98. package/dist/deployment/release/addressing.js +2 -3
  99. package/dist/deployment/release/assemble.d.ts +6 -3
  100. package/dist/deployment/release/assemble.js +12 -10
  101. package/dist/deployment/release/release.d.ts +16 -5
  102. package/dist/deployment/release/seal.d.ts +14 -0
  103. package/dist/deployment/release/seal.js +22 -0
  104. package/dist/deployment/release/{publication → served}/callables.d.ts +2 -2
  105. package/dist/deployment/release/{publication → served}/callables.js +2 -2
  106. package/dist/deployment/release/served/index.d.ts +11 -0
  107. package/dist/deployment/release/served/index.js +26 -0
  108. package/dist/deployment/release/{publication → served}/views.d.ts +2 -2
  109. package/dist/deployment/release/{publication → served}/views.js +0 -1
  110. package/dist/deployment/runtime/admission.d.ts +2 -2
  111. package/dist/deployment/runtime/admission.js +5 -5
  112. package/dist/deployment/verify/index.d.ts +3 -4
  113. package/dist/deployment/verify/index.js +2 -3
  114. package/dist/deployment/verify/preflight/bundle.d.ts +18 -0
  115. package/dist/deployment/verify/preflight/bundle.js +71 -0
  116. package/dist/deployment/verify/preflight/index.d.ts +1 -12
  117. package/dist/deployment/verify/preflight/index.js +1 -12
  118. package/dist/deployment/verify/readiness/fetch.d.ts +13 -0
  119. package/dist/deployment/verify/readiness/fetch.js +26 -0
  120. package/dist/deployment/verify/readiness/identity.d.ts +3 -6
  121. package/dist/deployment/verify/readiness/identity.js +3 -3
  122. package/dist/deployment/verify/readiness/index.d.ts +15 -8
  123. package/dist/deployment/verify/readiness/index.js +25 -6
  124. package/dist/deployment/verify/readiness/release.d.ts +8 -0
  125. package/dist/deployment/verify/readiness/release.js +22 -0
  126. package/dist/deployment/worker/address.d.ts +26 -0
  127. package/dist/deployment/worker/address.js +43 -0
  128. package/dist/deployment/worker/build.d.ts +60 -0
  129. package/dist/deployment/worker/build.js +172 -0
  130. package/dist/deployment/worker/configuration.d.ts +73 -0
  131. package/dist/deployment/worker/configuration.js +165 -0
  132. package/dist/deployment/worker/content.d.ts +38 -0
  133. package/dist/deployment/worker/content.js +169 -0
  134. package/dist/deployment/worker/index.d.ts +29 -0
  135. package/dist/deployment/worker/index.js +29 -0
  136. package/dist/deployment/worker/limits.d.ts +30 -0
  137. package/dist/deployment/worker/limits.js +30 -0
  138. package/dist/deployment/worker/record.d.ts +29 -0
  139. package/dist/deployment/worker/record.js +69 -0
  140. package/dist/deployment/worker/request.d.ts +118 -0
  141. package/dist/deployment/worker/request.js +280 -0
  142. package/dist/deployment/worker/response.d.ts +101 -0
  143. package/dist/deployment/worker/response.js +207 -0
  144. package/dist/execution/identity/authentication.d.ts +33 -3
  145. package/dist/execution/identity/authentication.js +85 -40
  146. package/dist/execution/identity/callback.d.ts +16 -15
  147. package/dist/execution/identity/callback.js +21 -16
  148. package/dist/execution/identity/delivery.d.ts +6 -4
  149. package/dist/execution/identity/delivery.js +25 -20
  150. package/dist/execution/identity/identity.d.ts +17 -3
  151. package/dist/execution/identity/identity.js +12 -4
  152. package/dist/execution/identity/jwks.d.ts +5 -0
  153. package/dist/execution/identity/jwks.js +92 -102
  154. package/dist/execution/index.d.ts +4 -4
  155. package/dist/execution/index.js +2 -2
  156. package/dist/execution/invocation/admission/authentication.d.ts +11 -13
  157. package/dist/execution/invocation/admission/authentication.js +48 -44
  158. package/dist/execution/invocation/admission/authority.d.ts +28 -6
  159. package/dist/execution/invocation/admission/authority.js +9 -2
  160. package/dist/execution/invocation/admission/index.d.ts +2 -2
  161. package/dist/execution/invocation/admission/index.js +1 -1
  162. package/dist/execution/invocation/admission/input.d.ts +2 -2
  163. package/dist/execution/invocation/admission/input.js +16 -2
  164. package/dist/execution/invocation/dependency/bind.d.ts +3 -1
  165. package/dist/execution/invocation/dependency/bind.js +36 -16
  166. package/dist/execution/invocation/dispatch/context.d.ts +7 -6
  167. package/dist/execution/invocation/dispatch/context.js +17 -31
  168. package/dist/execution/invocation/dispatch/workflow.js +0 -4
  169. package/dist/execution/invocation/index.d.ts +2 -2
  170. package/dist/execution/invocation/index.js +1 -1
  171. package/dist/execution/invocation/integration/call.d.ts +2 -1
  172. package/dist/execution/invocation/integration/call.js +1 -1
  173. package/dist/execution/invocation/integration/clients.d.ts +1 -1
  174. package/dist/execution/invocation/invocation.js +49 -16
  175. package/dist/execution/invocation/result/errors.d.ts +0 -10
  176. package/dist/execution/invocation/result/errors.js +0 -17
  177. package/dist/execution/invocation/result/index.d.ts +2 -2
  178. package/dist/execution/invocation/result/index.js +1 -1
  179. package/dist/execution/invocation/result/project.js +41 -1
  180. package/dist/execution/node/serve.d.ts +2 -2
  181. package/dist/execution/node/serve.js +1 -1
  182. package/dist/execution/runtime/index.d.ts +1 -0
  183. package/dist/execution/runtime/index.js +1 -0
  184. package/dist/execution/runtime/load.d.ts +3 -3
  185. package/dist/execution/runtime/load.js +3 -2
  186. package/dist/execution/runtime/release.d.ts +17 -0
  187. package/dist/execution/runtime/release.js +7 -0
  188. package/dist/execution/serve.d.ts +10 -4
  189. package/dist/execution/serve.js +3 -0
  190. package/dist/execution/service/create.js +41 -7
  191. package/dist/execution/service/initialization.d.ts +4 -4
  192. package/dist/execution/service/initialization.js +23 -14
  193. package/dist/execution/service/release.d.ts +2 -2
  194. package/dist/execution/service/release.js +3 -2
  195. package/dist/execution/service/service.d.ts +14 -5
  196. package/dist/execution/service/serving/delivery.d.ts +5 -0
  197. package/dist/execution/service/{publication → serving}/delivery.js +4 -1
  198. package/dist/execution/service/{publication → serving}/index.d.ts +1 -1
  199. package/dist/execution/service/serving/installation.d.ts +4 -0
  200. package/dist/execution/service/serving/installation.js +9 -0
  201. package/dist/execution/service/serving/source.d.ts +11 -0
  202. package/dist/execution/service/serving/source.js +15 -0
  203. package/dist/execution/workflows/discovery.d.ts +14 -0
  204. package/dist/execution/workflows/discovery.js +151 -0
  205. package/dist/execution/workflows/engine.d.ts +52 -0
  206. package/dist/execution/workflows/engine.js +1 -0
  207. package/dist/execution/workflows/envelope.d.ts +12 -0
  208. package/dist/execution/workflows/envelope.js +46 -0
  209. package/dist/execution/workflows/failure.d.ts +11 -0
  210. package/dist/execution/workflows/failure.js +43 -0
  211. package/dist/execution/workflows/index.d.ts +4 -0
  212. package/dist/execution/workflows/index.js +3 -0
  213. package/dist/execution/workflows/options.d.ts +34 -0
  214. package/dist/execution/workflows/options.js +65 -0
  215. package/dist/execution/workflows/receiver.d.ts +21 -0
  216. package/dist/execution/workflows/receiver.js +92 -0
  217. package/dist/execution/workflows/route.d.ts +12 -0
  218. package/dist/execution/workflows/route.js +35 -0
  219. package/dist/execution/workflows/run.d.ts +22 -0
  220. package/dist/execution/workflows/run.js +223 -0
  221. package/dist/index.d.ts +4 -4
  222. package/dist/index.js +2 -2
  223. package/dist/platform/graph/alias.d.ts +1 -5
  224. package/dist/platform/graph/alias.js +1 -5
  225. package/dist/platform/graph/document/index.d.ts +1 -1
  226. package/dist/platform/graph/document/index.js +1 -1
  227. package/dist/platform/graph/index.d.ts +1 -1
  228. package/dist/platform/graph/index.js +1 -1
  229. package/dist/platform/release/index.d.ts +2 -0
  230. package/dist/platform/release/index.js +2 -0
  231. package/dist/platform/schema/callable-authoring.d.ts +21 -0
  232. package/dist/platform/schema/callable-authoring.js +27 -0
  233. package/dist/platform/schema/class-authoring.d.ts +61 -11
  234. package/dist/platform/schema/class-authoring.js +37 -4
  235. package/dist/platform/schema/class-icon-svg.d.ts +9 -0
  236. package/dist/platform/schema/class-icon-svg.js +29 -0
  237. package/dist/platform/schema/class-icon.d.ts +3 -8
  238. package/dist/platform/schema/class-icon.js +2 -29
  239. package/dist/platform/schema/index.d.ts +6 -4
  240. package/dist/platform/schema/index.js +2 -1
  241. package/dist/platform/schema/property.d.ts +5 -0
  242. package/dist/platform/schema/schema-authoring.d.ts +14 -7
  243. package/dist/platform/schema/schema-authoring.js +5 -1
  244. package/dist/platform/versioning/dependents.d.ts +18 -0
  245. package/dist/platform/versioning/dependents.js +15 -0
  246. package/dist/platform/versioning/index.d.ts +5 -0
  247. package/dist/platform/versioning/index.js +5 -0
  248. package/dist/platform/versioning/name.d.ts +38 -0
  249. package/dist/platform/versioning/name.js +58 -0
  250. package/dist/platform/versioning/reference.d.ts +48 -0
  251. package/dist/platform/versioning/reference.js +95 -0
  252. package/dist/platform/versioning/version.d.ts +72 -0
  253. package/dist/platform/versioning/version.js +98 -0
  254. package/dist/project/admit.js +1 -5
  255. package/dist/project/define.d.ts +4 -4
  256. package/dist/project/define.js +55 -35
  257. package/dist/project/index.d.ts +1 -1
  258. package/dist/project/install-command.d.ts +6 -0
  259. package/dist/project/install-command.js +9 -0
  260. package/dist/project/project.d.ts +10 -8
  261. package/dist/testing/dataset/define.d.ts +1 -1
  262. package/dist/testing/load.js +1 -1
  263. package/dist/tooling/cli/adapter-command.d.ts +35 -0
  264. package/dist/tooling/cli/adapter-command.js +66 -0
  265. package/dist/tooling/cli/arguments.d.ts +17 -6
  266. package/dist/tooling/cli/arguments.js +175 -52
  267. package/dist/tooling/cli/build.d.ts +55 -0
  268. package/dist/tooling/cli/build.js +77 -0
  269. package/dist/tooling/cli/bun.d.ts +0 -1
  270. package/dist/tooling/cli/bun.js +0 -7
  271. package/dist/tooling/cli/commit.d.ts +35 -0
  272. package/dist/tooling/cli/commit.js +235 -0
  273. package/dist/tooling/cli/deploy-mode.d.ts +26 -0
  274. package/dist/tooling/cli/deploy-mode.js +59 -0
  275. package/dist/tooling/cli/deploy-result.d.ts +80 -0
  276. package/dist/tooling/cli/deploy-result.js +64 -0
  277. package/dist/tooling/cli/diff/declared.d.ts +7 -0
  278. package/dist/tooling/cli/diff/declared.js +27 -0
  279. package/dist/tooling/cli/diff/index.d.ts +30 -0
  280. package/dist/tooling/cli/diff/index.js +58 -0
  281. package/dist/tooling/cli/diff/render.d.ts +15 -0
  282. package/dist/tooling/cli/diff/render.js +131 -0
  283. package/dist/tooling/cli/diff/report.d.ts +88 -0
  284. package/dist/tooling/cli/diff/report.js +154 -0
  285. package/dist/tooling/cli/dotenv.d.ts +2 -2
  286. package/dist/tooling/cli/dotenv.js +3 -33
  287. package/dist/tooling/cli/help.js +173 -60
  288. package/dist/tooling/cli/immutable-deployment.d.ts +83 -0
  289. package/dist/tooling/cli/immutable-deployment.js +135 -0
  290. package/dist/tooling/cli/index.d.ts +12 -4
  291. package/dist/tooling/cli/index.js +6 -3
  292. package/dist/tooling/cli/installed-on.d.ts +83 -0
  293. package/dist/tooling/cli/installed-on.js +156 -0
  294. package/dist/tooling/cli/list.d.ts +152 -0
  295. package/dist/tooling/cli/list.js +331 -0
  296. package/dist/tooling/cli/log.d.ts +5 -0
  297. package/dist/tooling/cli/log.js +9 -0
  298. package/dist/tooling/cli/orchestrate.d.ts +0 -6
  299. package/dist/tooling/cli/orchestrate.js +246 -90
  300. package/dist/tooling/cli/project.d.ts +3 -3
  301. package/dist/tooling/cli/publish/index.d.ts +81 -0
  302. package/dist/tooling/cli/publish/index.js +383 -0
  303. package/dist/tooling/cli/publish/report.d.ts +49 -0
  304. package/dist/tooling/cli/publish/report.js +15 -0
  305. package/dist/tooling/cli/registry/client.d.ts +121 -0
  306. package/dist/tooling/cli/registry/client.js +354 -0
  307. package/dist/tooling/cli/registry/error.d.ts +11 -0
  308. package/dist/tooling/cli/registry/error.js +17 -0
  309. package/dist/tooling/cli/registry/executable.d.ts +35 -0
  310. package/dist/tooling/cli/registry/executable.js +96 -0
  311. package/dist/tooling/cli/registry/index.d.ts +9 -0
  312. package/dist/tooling/cli/registry/index.js +8 -0
  313. package/dist/tooling/cli/registry/installations.d.ts +67 -0
  314. package/dist/tooling/cli/registry/installations.js +108 -0
  315. package/dist/tooling/cli/registry/process.d.ts +36 -0
  316. package/dist/tooling/cli/registry/process.js +119 -0
  317. package/dist/tooling/cli/secrets.d.ts +9 -0
  318. package/dist/tooling/cli/secrets.js +19 -0
  319. package/dist/tooling/cli/yank.d.ts +34 -0
  320. package/dist/tooling/cli/yank.js +32 -0
  321. package/dist/tooling/linter/implementations/source/callable-requirements.d.ts +1 -1
  322. package/dist/tooling/linter/implementations/source/callable-requirements.js +10 -10
  323. package/dist/tooling/linter/implementations/source/dependencies.js +12 -10
  324. package/dist/tooling/linter/implementations/source/global.js +1 -2
  325. package/dist/tooling/linter/implementations/source/mutations.js +17 -17
  326. package/dist/tooling/linter/implementations/source/providers.js +5 -5
  327. package/dist/tooling/linter/implementations/source/verifiers.js +0 -2
  328. package/dist/tooling/linter/implementations/source/views.js +2 -2
  329. package/dist/tooling/linter/policy/generated.js +14 -63
  330. package/dist/tooling/linter/requirements/registry.js +1 -6
  331. package/dist/tooling/packaging/declarations/ownership.js +1 -1
  332. package/dist/tooling/packaging/finalize.d.ts +1 -1
  333. package/dist/tooling/packaging/finalize.js +1 -1
  334. package/package.json +39 -13
  335. package/dist/application/application.d.ts +0 -28
  336. package/dist/application/query/execution/projection.d.ts +0 -3
  337. package/dist/application/query/execution/projection.js +0 -3
  338. package/dist/deployment/adapter/deploy/context.d.ts +0 -15
  339. package/dist/deployment/adapter/deploy/index.d.ts +0 -2
  340. package/dist/deployment/adapter/deploy/result.d.ts +0 -50
  341. package/dist/deployment/adapter/prepare/artifact.d.ts +0 -33
  342. package/dist/deployment/adapter/prepare/context.d.ts +0 -23
  343. package/dist/deployment/adapter/prepare/index.d.ts +0 -2
  344. package/dist/deployment/deploy.d.ts +0 -20
  345. package/dist/deployment/deploy.js +0 -31
  346. package/dist/deployment/release/publication/index.d.ts +0 -6
  347. package/dist/deployment/release/publication/index.js +0 -6
  348. package/dist/deployment/release/publication/manifest.d.ts +0 -3
  349. package/dist/deployment/release/publication/manifest.js +0 -5
  350. package/dist/deployment/release/publication/requirements.d.ts +0 -3
  351. package/dist/deployment/release/publication/requirements.js +0 -3
  352. package/dist/deployment/release/publication/seal.d.ts +0 -10
  353. package/dist/deployment/release/publication/seal.js +0 -39
  354. package/dist/deployment/verify/preflight/artifact.d.ts +0 -6
  355. package/dist/deployment/verify/preflight/artifact.js +0 -122
  356. package/dist/deployment/verify/preflight/publication.d.ts +0 -4
  357. package/dist/deployment/verify/preflight/publication.js +0 -14
  358. package/dist/deployment/verify/readiness/deployment.d.ts +0 -3
  359. package/dist/deployment/verify/readiness/deployment.js +0 -151
  360. package/dist/deployment/verify/readiness/publication.d.ts +0 -11
  361. package/dist/deployment/verify/readiness/publication.js +0 -41
  362. package/dist/execution/service/errors.d.ts +0 -3
  363. package/dist/execution/service/errors.js +0 -3
  364. package/dist/execution/service/publication/delivery.d.ts +0 -2
  365. package/dist/execution/service/publication/installation.d.ts +0 -3
  366. package/dist/execution/service/publication/installation.js +0 -8
  367. package/dist/execution/service/publication/source.d.ts +0 -3
  368. package/dist/execution/service/publication/source.js +0 -11
  369. package/dist/platform/publication/index.d.ts +0 -2
  370. package/dist/platform/publication/index.js +0 -2
  371. package/dist/tooling/cli/astrale/authority.d.ts +0 -5
  372. package/dist/tooling/cli/astrale/authority.js +0 -11
  373. package/dist/tooling/cli/astrale/executable.d.ts +0 -2
  374. package/dist/tooling/cli/astrale/executable.js +0 -47
  375. package/dist/tooling/cli/astrale/failure.d.ts +0 -6
  376. package/dist/tooling/cli/astrale/failure.js +0 -48
  377. package/dist/tooling/cli/astrale/instance.d.ts +0 -11
  378. package/dist/tooling/cli/astrale/instance.js +0 -52
  379. package/dist/tooling/cli/astrale/process.d.ts +0 -13
  380. package/dist/tooling/cli/astrale/process.js +0 -94
  381. package/dist/tooling/cli/astrale/version.d.ts +0 -18
  382. package/dist/tooling/cli/astrale/version.js +0 -55
  383. package/dist/tooling/cli/credential.d.ts +0 -2
  384. package/dist/tooling/cli/credential.js +0 -57
  385. package/dist/tooling/cli/deprecations.d.ts +0 -9
  386. package/dist/tooling/cli/deprecations.js +0 -15
  387. package/dist/tooling/cli/development/candidate.d.ts +0 -25
  388. package/dist/tooling/cli/development/candidate.js +0 -176
  389. package/dist/tooling/cli/development/deployment.d.ts +0 -16
  390. package/dist/tooling/cli/development/deployment.js +0 -39
  391. package/dist/tooling/cli/development/develop.d.ts +0 -11
  392. package/dist/tooling/cli/development/develop.js +0 -243
  393. package/dist/tooling/cli/development/lease.d.ts +0 -18
  394. package/dist/tooling/cli/development/lease.js +0 -163
  395. package/dist/tooling/cli/development/lifecycle.d.ts +0 -9
  396. package/dist/tooling/cli/development/lifecycle.js +0 -43
  397. package/dist/tooling/cli/development/project-imports.d.ts +0 -22
  398. package/dist/tooling/cli/development/project-imports.js +0 -39
  399. package/dist/tooling/cli/development/project-lock.d.ts +0 -16
  400. package/dist/tooling/cli/development/project-lock.js +0 -41
  401. package/dist/tooling/cli/development/rebuild.d.ts +0 -13
  402. package/dist/tooling/cli/development/rebuild.js +0 -58
  403. package/dist/tooling/cli/development/release-evidence.d.ts +0 -4
  404. package/dist/tooling/cli/development/release-evidence.js +0 -10
  405. package/dist/tooling/cli/development/report.d.ts +0 -6
  406. package/dist/tooling/cli/development/report.js +0 -14
  407. package/dist/tooling/cli/development/session-file.d.ts +0 -53
  408. package/dist/tooling/cli/development/session-file.js +0 -337
  409. package/dist/tooling/cli/development/source-watch.d.ts +0 -14
  410. package/dist/tooling/cli/development/source-watch.js +0 -140
  411. package/dist/tooling/cli/development/sources.d.ts +0 -7
  412. package/dist/tooling/cli/development/sources.js +0 -48
  413. package/dist/tooling/cli/development/target-lock.d.ts +0 -16
  414. package/dist/tooling/cli/development/target-lock.js +0 -68
  415. package/dist/tooling/cli/development/view.d.ts +0 -28
  416. package/dist/tooling/cli/development/view.js +0 -151
  417. package/dist/tooling/cli/environment-release.d.ts +0 -21
  418. package/dist/tooling/cli/environment-release.js +0 -46
  419. package/dist/tooling/cli/evidence.d.ts +0 -11
  420. package/dist/tooling/cli/evidence.js +0 -53
  421. package/dist/tooling/cli/installation/index.d.ts +0 -2
  422. package/dist/tooling/cli/installation/index.js +0 -1
  423. package/dist/tooling/cli/installation/observation.d.ts +0 -10
  424. package/dist/tooling/cli/installation/observation.js +0 -44
  425. package/dist/tooling/cli/installation/reconcile.d.ts +0 -32
  426. package/dist/tooling/cli/installation/reconcile.js +0 -122
  427. package/dist/tooling/linter/implementations/source/migrations.d.ts +0 -2
  428. package/dist/tooling/linter/implementations/source/migrations.js +0 -113
  429. package/dist/tooling/linter/qualification/index.d.ts +0 -10
  430. package/dist/tooling/linter/qualification/index.js +0 -2
  431. package/dist/tooling/linter/qualification/query-fixtures.d.ts +0 -2
  432. package/dist/tooling/linter/qualification/query-fixtures.js +0 -68
  433. package/dist/tooling/linter/qualification/runner.d.ts +0 -3
  434. package/dist/tooling/linter/qualification/runner.js +0 -6
  435. /package/dist/application/{application.js → domain.js} +0 -0
  436. /package/dist/{deployment/adapter/deploy/context.js → application/workflow/durable.js} +0 -0
  437. /package/dist/deployment/adapter/{deploy/index.js → bundle/bundle.js} +0 -0
  438. /package/dist/deployment/adapter/{deploy/result.js → bundle/file.js} +0 -0
  439. /package/dist/deployment/adapter/{prepare → bundle}/index.js +0 -0
  440. /package/dist/deployment/adapter/{prepare/artifact.js → release/command.js} +0 -0
  441. /package/dist/deployment/adapter/{prepare → release}/context.js +0 -0
  442. /package/dist/deployment/release/{publication → served}/routes.d.ts +0 -0
  443. /package/dist/deployment/release/{publication → served}/routes.js +0 -0
  444. /package/dist/execution/service/{publication → serving}/index.js +0 -0
@@ -0,0 +1,131 @@
1
+ /** What a change of each level is, in the [.105820] message. */
2
+ const NATURE = Object.freeze({
3
+ major: 'breaking change',
4
+ minor: 'addition',
5
+ patch: 'change',
6
+ });
7
+ const LEVELS = ['patch', 'minor', 'major'];
8
+ /**
9
+ * 0 when the declared version is accepted, already published (the report is then informational:
10
+ * a feature branch keeps the last published number until its release), or has nothing to compare
11
+ * with; 1 when an unpublished declared version is too low.
12
+ */
13
+ export function diffExitCode(report) {
14
+ return report.published || report.accepted ? 0 : 1;
15
+ }
16
+ /**
17
+ * The report for a person. `summary` describes the comparison; `refusal` is the [.105820] message
18
+ * for an unpublished version that is too low (tech Versioning), printed as an error.
19
+ */
20
+ export function renderDiff(report) {
21
+ const subject = `${report.origin} ${report.declared}`;
22
+ if (report.registry === 'unregistered') {
23
+ return {
24
+ summary: [
25
+ `${report.origin} is not in the Domain registry, or you may not read it: nothing to compare.`,
26
+ ],
27
+ refusal: [],
28
+ };
29
+ }
30
+ if (report.baseline === undefined) {
31
+ return {
32
+ summary: [
33
+ `${subject}: no stable version up to ${report.declared} is published, nothing to compare.`,
34
+ ],
35
+ refusal: [],
36
+ };
37
+ }
38
+ const level = report.level;
39
+ const required = `at least ${report.next} (${NATURE[level]})`;
40
+ const rows = changeRows(report.changes, report.origin);
41
+ if (report.changes.length === 0) {
42
+ const state = report.published ? 'is published' : 'is accepted';
43
+ return {
44
+ summary: [`${subject} ${state}: no change since ${report.baseline}.`],
45
+ refusal: [],
46
+ };
47
+ }
48
+ if (report.published) {
49
+ return {
50
+ summary: [
51
+ `${subject} is published. The changes since ${report.baseline} need ${required}:`,
52
+ ...rows,
53
+ ],
54
+ refusal: [],
55
+ };
56
+ }
57
+ if (report.accepted) {
58
+ return {
59
+ summary: [
60
+ `${subject} is accepted. The changes since ${report.baseline} need ${required}:`,
61
+ ...rows,
62
+ ],
63
+ refusal: [],
64
+ };
65
+ }
66
+ // Only the changes that set the level are listed, as [.105820] lists the breaking ones.
67
+ const binding = report.changes.filter((change) => change.bump === level);
68
+ const others = report.changes.length - binding.length;
69
+ const declare = report.suggestion ?? report.next;
70
+ return {
71
+ summary: [],
72
+ refusal: [
73
+ `error: ${report.declared} is too low, ${NATURE[level]} since ${report.baseline}: at least ${report.next} is required`,
74
+ ...changeRows(binding, report.origin),
75
+ ...(others === 0 ? [] : [` (and ${others} other ${others === 1 ? 'change' : 'changes'})`]),
76
+ level === 'major'
77
+ ? `Declare ${declare}, or keep the old member (expand then contract).`
78
+ : `Declare ${declare}.`,
79
+ ],
80
+ };
81
+ }
82
+ /**
83
+ * One line per changed member, `<kind> <name> <states> (<details>)`, in report order. A member the
84
+ * engine observes through several facets (a removed Method loses its existence and its signature)
85
+ * is one line.
86
+ */
87
+ function changeRows(changes, origin) {
88
+ const members = new Map();
89
+ for (const change of changes) {
90
+ const key = `${change.facet === 'build' || change.facet === 'schema' ? change.facet : ''}\u0000${change.subject}`;
91
+ const member = members.get(key) ?? {
92
+ ...memberName(change, origin),
93
+ states: [],
94
+ details: [],
95
+ bump: 'patch',
96
+ };
97
+ if (!member.states.includes(change.state))
98
+ member.states.push(change.state);
99
+ if (change.detail !== undefined && !member.details.includes(change.detail)) {
100
+ member.details.push(change.detail);
101
+ }
102
+ if (LEVELS.indexOf(change.bump) > LEVELS.indexOf(member.bump))
103
+ member.bump = change.bump;
104
+ members.set(key, member);
105
+ }
106
+ const rows = [...members.values()];
107
+ const kindWidth = Math.max(0, ...rows.map(({ kind }) => kind.length)) + 1;
108
+ const nameWidth = Math.max(0, ...rows.map(({ name }) => name.length)) + 3;
109
+ return rows.map(({ kind, name, states, details }) => ` ${kind.padEnd(kindWidth)}${name.padEnd(nameWidth)}${states.join(', ')}${details.length === 0 ? '' : ` (${details.join('; ')})`}`);
110
+ }
111
+ /**
112
+ * `class.Project.method.archive` reads `method Project.archive`. A Key of another origin keeps
113
+ * its origin; a whole-Domain change names the origin.
114
+ */
115
+ function memberName(change, origin) {
116
+ if (change.facet === 'build' || change.facet === 'schema') {
117
+ return { kind: change.facet, name: change.subject };
118
+ }
119
+ const separator = change.subject.indexOf(':');
120
+ const local = change.subject.slice(separator + 1);
121
+ const prefix = separator > 0 && change.subject.slice(0, separator) !== origin
122
+ ? `${change.subject.slice(0, separator)}:`
123
+ : '';
124
+ const member = /^class\.([^.]+)\.(property|method)\.(.+)$/u.exec(local);
125
+ if (member !== null)
126
+ return { kind: member[2], name: `${prefix}${member[1]}.${member[3]}` };
127
+ const dot = local.indexOf('.');
128
+ return dot > 0
129
+ ? { kind: local.slice(0, dot), name: `${prefix}${local.slice(dot + 1)}` }
130
+ : { kind: 'member', name: change.subject };
131
+ }
@@ -0,0 +1,88 @@
1
+ import type { DomainSchema } from '@astrale-os/kernel-dsl/v1/schema';
2
+ import type { BumpLevel, Version } from '../../../platform/versioning/index.js';
3
+ import type { RegistryIndex, RegistryPublication } from '../registry/index.js';
4
+ /** One change since the baseline, with the level it alone requires. */
5
+ export interface DiffChangeV1 {
6
+ /**
7
+ * The compared member's Key (`issues.astrale.ai:class.Issue.property.priority`), or the Domain's
8
+ * origin for a change of the whole build or Schema.
9
+ */
10
+ readonly subject: string;
11
+ /**
12
+ * The compatibility engine's facet (`method.existence`, `property.required`, …), `schema` for a
13
+ * new Schema revision of equivalent meaning, `build` for new code under the same revision.
14
+ */
15
+ readonly facet: string;
16
+ readonly state: 'missing' | 'changed' | 'added';
17
+ readonly bump: BumpLevel;
18
+ /** What differs, such as `optional → required`, when the observation says. */
19
+ readonly detail?: string;
20
+ }
21
+ /**
22
+ * `astrale-domain diff --json` on stdout: the version the Project declares, checked against the
23
+ * highest published stable version up to it (CT30).
24
+ */
25
+ export interface DiffReportV1 {
26
+ readonly format: 'astrale.diff-report';
27
+ readonly version: 1;
28
+ readonly origin: string;
29
+ /** `package.json` `version`. */
30
+ readonly declared: string;
31
+ /** The declared version already names a Publication: the report is informational. */
32
+ readonly published: boolean;
33
+ /** `unregistered`: no Domain of this origin the caller may read; nothing is compared. */
34
+ readonly registry: 'read' | 'unregistered';
35
+ /** The highest published stable version up to the declared one, yanked ones included. */
36
+ readonly baseline?: string;
37
+ /** The level the changes since the baseline require. */
38
+ readonly level?: BumpLevel;
39
+ /** The level after the 0.x rule. */
40
+ readonly effective?: BumpLevel;
41
+ /** The smallest version the changes admit, a pre-release such as `2.0.0-0`. */
42
+ readonly minimum?: string;
43
+ /** The stable form of the required version, such as `2.0.0`. */
44
+ readonly next?: string;
45
+ /** For a refused pre-release, the first pre-release of the required version on its channel. */
46
+ readonly suggestion?: string;
47
+ /**
48
+ * The declared version reaches the minimum, or there is nothing to compare. It judges an
49
+ * unpublished version: a published stable one is its own baseline and is never accepted, so a
50
+ * consumer decides on `published || accepted`, the exit status.
51
+ */
52
+ readonly accepted: boolean;
53
+ /** Every change since the baseline, ordered by subject Key then observation; empty for none. */
54
+ readonly changes: readonly DiffChangeV1[];
55
+ }
56
+ export interface DiffInput {
57
+ readonly origin: string;
58
+ readonly declared: Version;
59
+ /**
60
+ * Which published versions can be the baseline (AM-23): `diff` compares with the highest stable
61
+ * version up to the declared one (`<=`, the default); `publish`, which never runs for a published
62
+ * version, with the highest one below it (`<`).
63
+ */
64
+ readonly bound?: '<' | '<=';
65
+ /** The Schema revision the Project builds now. */
66
+ readonly revision: string;
67
+ /** The caller's view of the registry; `undefined` when it holds no readable Domain of `origin`. */
68
+ readonly index: RegistryIndex | undefined;
69
+ /** The Schema the Project builds now. */
70
+ readonly current: () => DomainSchema;
71
+ /** The build digest of every distinct bundler; read only when the Schema revision is unchanged. */
72
+ readonly builds: () => Promise<readonly string[]>;
73
+ /** The Schema a Publication names; read only when its revision differs from the Project's. */
74
+ readonly published: (publication: RegistryPublication) => Promise<DomainSchema>;
75
+ }
76
+ /**
77
+ * Compare the Project with the highest published stable version up to the declared one
78
+ * (`baselineVersion(index, declared, '<=')`, or below it for `publish`, AM-23) and judge the declared version against the
79
+ * level its changes require (tech Versioning [.21507], [.106102]). The judgement always receives a
80
+ * level beside its baseline (AM-56): the compatibility engine's when the Schema revision changed,
81
+ * otherwise patch, the smallest level, which `diff` picks itself when nothing changed at all.
82
+ */
83
+ export declare function diffReport(input: DiffInput): Promise<DiffReportV1>;
84
+ /**
85
+ * Decode the bundle a Publication stores and admit it only as that Publication's Schema: the
86
+ * Domain's origin and the Publication's Schema revision.
87
+ */
88
+ export declare function publishedSchema(bytes: Uint8Array, publication: RegistryPublication, origin: string): DomainSchema;
@@ -0,0 +1,154 @@
1
+ import * as bundle from '@astrale-os/kernel-dsl/v1/bundle/transport';
2
+ import { requiredBump } from '@astrale-os/kernel-dsl/v1/schema/compatibility';
3
+ import { revision } from '@astrale-os/kernel-dsl/v1/schema/revision';
4
+ import { baselineVersion, judgeVersion } from '../../../platform/versioning/index.js';
5
+ /**
6
+ * Compare the Project with the highest published stable version up to the declared one
7
+ * (`baselineVersion(index, declared, '<=')`, or below it for `publish`, AM-23) and judge the declared version against the
8
+ * level its changes require (tech Versioning [.21507], [.106102]). The judgement always receives a
9
+ * level beside its baseline (AM-56): the compatibility engine's when the Schema revision changed,
10
+ * otherwise patch, the smallest level, which `diff` picks itself when nothing changed at all.
11
+ */
12
+ export async function diffReport(input) {
13
+ const identity = {
14
+ format: 'astrale.diff-report',
15
+ version: 1,
16
+ origin: input.origin,
17
+ declared: input.declared,
18
+ };
19
+ if (input.index === undefined) {
20
+ return Object.freeze({
21
+ ...identity,
22
+ published: false,
23
+ registry: 'unregistered',
24
+ accepted: true,
25
+ changes: Object.freeze([]),
26
+ });
27
+ }
28
+ const publications = input.index.publications;
29
+ const published = publications.some(({ version }) => version === input.declared);
30
+ // An index entry that is not a canonical version is never a baseline: `baselineVersion` keeps
31
+ // only canonical stable versions (AM-56), so the registry's strings need no admission here.
32
+ const index = publications.map(({ version, yanked }) => ({
33
+ version: version,
34
+ yanked,
35
+ }));
36
+ const baseline = baselineVersion(index, input.declared, input.bound ?? '<=');
37
+ if (baseline === undefined) {
38
+ // Without a stable version before it there is nothing to check (tech [.106102]).
39
+ const verdict = judgeVersion({ declared: input.declared });
40
+ return Object.freeze({
41
+ ...identity,
42
+ published,
43
+ registry: 'read',
44
+ accepted: verdict.accepted,
45
+ changes: Object.freeze([]),
46
+ });
47
+ }
48
+ const publication = publications.find(({ version }) => version === baseline);
49
+ const { level, changes } = await changesSince(publication, input);
50
+ const verdict = judgeVersion({ declared: input.declared, previous: baseline, level });
51
+ return Object.freeze({
52
+ ...identity,
53
+ published,
54
+ registry: 'read',
55
+ baseline,
56
+ level,
57
+ effective: verdict.effective,
58
+ minimum: verdict.minimum,
59
+ next: verdict.next,
60
+ ...(verdict.suggestion === undefined ? {} : { suggestion: verdict.suggestion }),
61
+ accepted: verdict.accepted,
62
+ changes,
63
+ });
64
+ }
65
+ /**
66
+ * Decode the bundle a Publication stores and admit it only as that Publication's Schema: the
67
+ * Domain's origin and the Publication's Schema revision.
68
+ */
69
+ export function publishedSchema(bytes, publication, origin) {
70
+ const root = bundle.decode(bytes).root;
71
+ if (root.origin !== origin || revision(root) !== publication.schemaRevision) {
72
+ throw new TypeError(`The stored bundle of ${origin}@${publication.version} is not that Publication's Schema ${publication.schemaRevision}.`);
73
+ }
74
+ return root;
75
+ }
76
+ async function changesSince(publication, input) {
77
+ if (publication.schemaRevision !== input.revision) {
78
+ const required = requiredBump(await input.published(publication), input.current());
79
+ const changes = required.changes.map(change);
80
+ return {
81
+ level: required.level,
82
+ changes: Object.freeze(changes.length > 0
83
+ ? changes
84
+ : // A new revision whose meaning the engine finds equivalent, such as descriptions.
85
+ [
86
+ Object.freeze({
87
+ subject: input.origin,
88
+ facet: 'schema',
89
+ state: 'changed',
90
+ bump: 'patch',
91
+ detail: 'same meaning',
92
+ }),
93
+ ]),
94
+ };
95
+ }
96
+ const builds = await input.builds();
97
+ if (builds.includes(publication.buildDigest)) {
98
+ // No change at all: same build digest and no row of [.21507] (AM-56).
99
+ return { level: 'patch', changes: Object.freeze([]) };
100
+ }
101
+ // Code only, same Schema revision ([.21507], first row).
102
+ return {
103
+ level: 'patch',
104
+ changes: Object.freeze([
105
+ Object.freeze({
106
+ subject: input.origin,
107
+ facet: 'build',
108
+ state: 'changed',
109
+ bump: 'patch',
110
+ detail: `${publication.buildDigest} → ${builds.length === 0 ? 'none' : builds.join(', ')}`,
111
+ }),
112
+ ]),
113
+ };
114
+ }
115
+ function change({ subject, observation, bump }) {
116
+ const detail = describe(observation);
117
+ return Object.freeze({
118
+ subject: subject.key,
119
+ facet: observation.facet,
120
+ // `requiredBump` lists only observations that are not equal.
121
+ state: observation.state,
122
+ bump,
123
+ ...(detail === undefined ? {} : { detail }),
124
+ });
125
+ }
126
+ const DETAILED_DIFFERENCES = 3;
127
+ const VALUE_LENGTH = 40;
128
+ /** The observation's differences in a few words: `optional → required`, `input/type: "string" → "number"`. */
129
+ function describe(observation) {
130
+ const differences = observation.differences;
131
+ if (differences.length === 0)
132
+ return undefined;
133
+ const [first] = differences;
134
+ if (differences.length === 1 &&
135
+ first.path === '/required' &&
136
+ typeof first.before === 'boolean' &&
137
+ typeof first.after === 'boolean') {
138
+ return first.after ? 'optional → required' : 'required → optional';
139
+ }
140
+ const described = differences.slice(0, DETAILED_DIFFERENCES).map((difference) => {
141
+ const path = difference.path === '' ? '/' : difference.path.slice(1);
142
+ if (difference.before === undefined)
143
+ return `${path}: added ${value(difference.after)}`;
144
+ if (difference.after === undefined)
145
+ return `${path}: removed ${value(difference.before)}`;
146
+ return `${path}: ${value(difference.before)} → ${value(difference.after)}`;
147
+ });
148
+ const more = differences.length - described.length;
149
+ return more > 0 ? `${described.join('; ')}; ${more} more` : described.join('; ');
150
+ }
151
+ function value(input) {
152
+ const text = JSON.stringify(input) ?? String(input);
153
+ return text.length > VALUE_LENGTH ? `${text.slice(0, VALUE_LENGTH - 1)}…` : text;
154
+ }
@@ -7,6 +7,8 @@
7
7
  * runtime in dev, pushed to a secret store in prod). No `process.env` mutation,
8
8
  * no interpolation magic beyond `${VAR}` against earlier keys in the same file.
9
9
  */
10
+ /** Parse one dotenv document into a flat record; `${VAR}` reads only earlier keys. */
11
+ export declare function parseDotenv(contents: string): Record<string, string>;
10
12
  /**
11
13
  * Read + parse a dotenv file the preset explicitly DECLARED (`secrets:`).
12
14
  * Declared-but-absent is a wiring error (the gitignored file was never created
@@ -15,5 +17,3 @@
15
17
  * that exists but holds no keys is legitimate (a domain with no secrets yet).
16
18
  */
17
19
  export declare function loadDeclaredSecrets(path: string, declaration: string): Record<string, string>;
18
- /** Load one explicit development-session secret snapshot without following a leaf symlink. */
19
- export declare function loadPrivateSecretsFile(path: string, platform?: NodeJS.Platform): Record<string, string>;
@@ -7,8 +7,9 @@
7
7
  * runtime in dev, pushed to a secret store in prod). No `process.env` mutation,
8
8
  * no interpolation magic beyond `${VAR}` against earlier keys in the same file.
9
9
  */
10
- import { closeSync, constants, fstatSync, openSync, readFileSync } from 'node:fs';
11
- function parseDotenv(contents) {
10
+ import { readFileSync } from 'node:fs';
11
+ /** Parse one dotenv document into a flat record; `${VAR}` reads only earlier keys. */
12
+ export function parseDotenv(contents) {
12
13
  const out = {};
13
14
  for (const raw of contents.split('\n')) {
14
15
  const line = raw.trim();
@@ -52,34 +53,3 @@ export function loadDeclaredSecrets(path, declaration) {
52
53
  }
53
54
  return parseDotenv(contents);
54
55
  }
55
- /** Load one explicit development-session secret snapshot without following a leaf symlink. */
56
- export function loadPrivateSecretsFile(path, platform = process.platform) {
57
- if (platform === 'win32') {
58
- throw new Error('--secrets-file is unavailable on Windows until private no-reparse file admission is supported.');
59
- }
60
- let descriptor;
61
- try {
62
- descriptor = openSync(path, constants.O_RDONLY | constants.O_NOFOLLOW);
63
- }
64
- catch (cause) {
65
- if (cause instanceof Error && 'code' in cause && cause.code === 'ENOENT') {
66
- throw new Error(`Secrets file '${path}' is missing.`, { cause });
67
- }
68
- if (cause instanceof Error && 'code' in cause && cause.code === 'ELOOP') {
69
- throw new Error(`Secrets file '${path}' must be a regular file and not a symlink.`, { cause });
70
- }
71
- throw cause;
72
- }
73
- try {
74
- const info = fstatSync(descriptor);
75
- if (!info.isFile())
76
- throw new Error(`Secrets file '${path}' must be a regular file.`);
77
- if ((info.mode & 0o077) !== 0) {
78
- throw new Error(`Secrets file '${path}' must not be accessible by group or other users.`);
79
- }
80
- return parseDotenv(readFileSync(descriptor, 'utf8'));
81
- }
82
- finally {
83
- closeSync(descriptor);
84
- }
85
- }