@vibesdotdev/infra-core 0.0.2 → 1.0.0-rc.4

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 (319) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +27 -1
  3. package/dist/bootstrap/seed.descriptor.d.ts +1 -1
  4. package/dist/bootstrap/seed.descriptor.d.ts.map +1 -1
  5. package/dist/bootstrap/seed.descriptor.js +1 -1
  6. package/dist/bootstrap/seed.descriptor.js.map +1 -1
  7. package/dist/bootstrap/seed.impl-shape.d.ts +1 -1
  8. package/dist/bootstrap/seed.impl-shape.d.ts.map +1 -1
  9. package/dist/bootstrap/seed.kind.d.ts +1 -3
  10. package/dist/bootstrap/seed.kind.d.ts.map +1 -1
  11. package/dist/bootstrap/seed.kind.js +17 -4
  12. package/dist/bootstrap/seed.kind.js.map +1 -1
  13. package/dist/bootstrap/seed.runner.d.ts +9 -2
  14. package/dist/bootstrap/seed.runner.d.ts.map +1 -1
  15. package/dist/bootstrap/seed.runner.js +37 -18
  16. package/dist/bootstrap/seed.runner.js.map +1 -1
  17. package/dist/capped-id.d.ts +19 -0
  18. package/dist/capped-id.d.ts.map +1 -0
  19. package/dist/capped-id.js +64 -0
  20. package/dist/capped-id.js.map +1 -0
  21. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts +23 -0
  22. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts.map +1 -0
  23. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js +33 -0
  24. package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js.map +1 -0
  25. package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts +24 -0
  26. package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts.map +1 -0
  27. package/dist/cli/generate/artifact/artifact.cli-command.impl.js +73 -0
  28. package/dist/cli/generate/artifact/artifact.cli-command.impl.js.map +1 -0
  29. package/dist/cli/generate/context.d.ts +17 -0
  30. package/dist/cli/generate/context.d.ts.map +1 -0
  31. package/dist/cli/generate/context.js +24 -0
  32. package/dist/cli/generate/context.js.map +1 -0
  33. package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts +30 -0
  34. package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts.map +1 -0
  35. package/dist/cli/generate/generate/generate.cli-command.descriptor.js +25 -0
  36. package/dist/cli/generate/generate/generate.cli-command.descriptor.js.map +1 -0
  37. package/dist/cli/generate/generate/generate.cli-command.impl.d.ts +25 -0
  38. package/dist/cli/generate/generate/generate.cli-command.impl.d.ts.map +1 -0
  39. package/dist/cli/generate/generate/generate.cli-command.impl.js +64 -0
  40. package/dist/cli/generate/generate/generate.cli-command.impl.js.map +1 -0
  41. package/dist/cli/generate/generate-core.d.ts +51 -0
  42. package/dist/cli/generate/generate-core.d.ts.map +1 -0
  43. package/dist/cli/generate/generate-core.js +172 -0
  44. package/dist/cli/generate/generate-core.js.map +1 -0
  45. package/dist/cli/generate/index.d.ts +5 -0
  46. package/dist/cli/generate/index.d.ts.map +1 -0
  47. package/dist/cli/generate/index.js +5 -0
  48. package/dist/cli/generate/index.js.map +1 -0
  49. package/dist/credentials/resolve.d.ts +82 -22
  50. package/dist/credentials/resolve.d.ts.map +1 -1
  51. package/dist/credentials/resolve.js +251 -77
  52. package/dist/credentials/resolve.js.map +1 -1
  53. package/dist/deployment-environment.d.ts +30 -0
  54. package/dist/deployment-environment.d.ts.map +1 -0
  55. package/dist/deployment-environment.js +53 -0
  56. package/dist/deployment-environment.js.map +1 -0
  57. package/dist/deployment.d.ts +8 -4
  58. package/dist/deployment.d.ts.map +1 -1
  59. package/dist/deployment.js +30 -0
  60. package/dist/deployment.js.map +1 -1
  61. package/dist/doks/cloud/base.d.ts +49 -0
  62. package/dist/doks/cloud/base.d.ts.map +1 -0
  63. package/dist/doks/cloud/base.js +138 -0
  64. package/dist/doks/cloud/base.js.map +1 -0
  65. package/dist/doks/cloud/factory.d.ts +18 -0
  66. package/dist/doks/cloud/factory.d.ts.map +1 -0
  67. package/dist/doks/cloud/factory.js +22 -0
  68. package/dist/doks/cloud/factory.js.map +1 -0
  69. package/dist/doks/cloud/index.d.ts +5 -0
  70. package/dist/doks/cloud/index.d.ts.map +1 -0
  71. package/dist/doks/cloud/index.js +4 -0
  72. package/dist/doks/cloud/index.js.map +1 -0
  73. package/dist/doks/types.d.ts +95 -0
  74. package/dist/doks/types.d.ts.map +1 -0
  75. package/dist/doks/types.js +14 -0
  76. package/dist/doks/types.js.map +1 -0
  77. package/dist/generate/index.d.ts +29 -0
  78. package/dist/generate/index.d.ts.map +1 -0
  79. package/dist/generate/index.js +28 -0
  80. package/dist/generate/index.js.map +1 -0
  81. package/dist/generate/infra-generate.plugin.d.ts +3 -0
  82. package/dist/generate/infra-generate.plugin.d.ts.map +1 -0
  83. package/dist/generate/infra-generate.plugin.js +23 -0
  84. package/dist/generate/infra-generate.plugin.js.map +1 -0
  85. package/dist/generate/plugin.d.ts +2 -0
  86. package/dist/generate/plugin.d.ts.map +1 -0
  87. package/dist/generate/plugin.js +2 -0
  88. package/dist/generate/plugin.js.map +1 -0
  89. package/dist/heartbeat/cron-heartbeat.d.ts +97 -0
  90. package/dist/heartbeat/cron-heartbeat.d.ts.map +1 -0
  91. package/dist/heartbeat/cron-heartbeat.js +200 -0
  92. package/dist/heartbeat/cron-heartbeat.js.map +1 -0
  93. package/dist/index.d.ts +34 -20
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +28 -14
  96. package/dist/index.js.map +1 -1
  97. package/dist/infra.plugin.d.ts +1 -1
  98. package/dist/infra.plugin.d.ts.map +1 -1
  99. package/dist/infra.plugin.js +62 -12
  100. package/dist/infra.plugin.js.map +1 -1
  101. package/dist/kinds/alerts.kind.d.ts +64 -25
  102. package/dist/kinds/alerts.kind.d.ts.map +1 -1
  103. package/dist/kinds/alerts.kind.js +43 -16
  104. package/dist/kinds/alerts.kind.js.map +1 -1
  105. package/dist/kinds/artifact.kind.d.ts +58 -10
  106. package/dist/kinds/artifact.kind.d.ts.map +1 -1
  107. package/dist/kinds/artifact.kind.js +26 -9
  108. package/dist/kinds/artifact.kind.js.map +1 -1
  109. package/dist/kinds/billing.kind.d.ts +88 -0
  110. package/dist/kinds/billing.kind.d.ts.map +1 -0
  111. package/dist/kinds/billing.kind.js +48 -0
  112. package/dist/kinds/billing.kind.js.map +1 -0
  113. package/dist/kinds/build-job.kind.d.ts +381 -0
  114. package/dist/kinds/build-job.kind.d.ts.map +1 -0
  115. package/dist/kinds/build-job.kind.js +216 -0
  116. package/dist/kinds/build-job.kind.js.map +1 -0
  117. package/dist/kinds/cache.kind.d.ts +39 -92
  118. package/dist/kinds/cache.kind.d.ts.map +1 -1
  119. package/dist/kinds/cache.kind.js +26 -51
  120. package/dist/kinds/cache.kind.js.map +1 -1
  121. package/dist/kinds/cluster.kind.d.ts +154 -0
  122. package/dist/kinds/cluster.kind.d.ts.map +1 -0
  123. package/dist/kinds/cluster.kind.js +99 -0
  124. package/dist/kinds/cluster.kind.js.map +1 -0
  125. package/dist/kinds/compute-source.kind.d.ts +138 -0
  126. package/dist/kinds/compute-source.kind.d.ts.map +1 -0
  127. package/dist/kinds/compute-source.kind.js +145 -0
  128. package/dist/kinds/compute-source.kind.js.map +1 -0
  129. package/dist/kinds/compute-sources.descriptors.d.ts +45 -0
  130. package/dist/kinds/compute-sources.descriptors.d.ts.map +1 -0
  131. package/dist/kinds/compute-sources.descriptors.js +93 -0
  132. package/dist/kinds/compute-sources.descriptors.js.map +1 -0
  133. package/dist/kinds/container-registry.kind.d.ts +62 -0
  134. package/dist/kinds/container-registry.kind.d.ts.map +1 -0
  135. package/dist/kinds/container-registry.kind.js +47 -0
  136. package/dist/kinds/container-registry.kind.js.map +1 -0
  137. package/dist/kinds/database-migrator.kind.d.ts +6 -0
  138. package/dist/kinds/database-migrator.kind.d.ts.map +1 -0
  139. package/dist/kinds/database-migrator.kind.js +28 -0
  140. package/dist/kinds/database-migrator.kind.js.map +1 -0
  141. package/dist/kinds/database.kind.d.ts +114 -93
  142. package/dist/kinds/database.kind.d.ts.map +1 -1
  143. package/dist/kinds/database.kind.js +93 -54
  144. package/dist/kinds/database.kind.js.map +1 -1
  145. package/dist/kinds/deployment-provider.kind.d.ts +5 -0
  146. package/dist/kinds/deployment-provider.kind.d.ts.map +1 -0
  147. package/dist/kinds/deployment-provider.kind.js +11 -0
  148. package/dist/kinds/deployment-provider.kind.js.map +1 -0
  149. package/dist/kinds/discovery.d.ts +5 -12
  150. package/dist/kinds/discovery.d.ts.map +1 -1
  151. package/dist/kinds/discovery.js +5 -17
  152. package/dist/kinds/discovery.js.map +1 -1
  153. package/dist/kinds/dns.kind.d.ts +162 -0
  154. package/dist/kinds/dns.kind.d.ts.map +1 -0
  155. package/dist/kinds/dns.kind.js +54 -0
  156. package/dist/kinds/dns.kind.js.map +1 -0
  157. package/dist/kinds/drift.kind.d.ts +115 -0
  158. package/dist/kinds/drift.kind.d.ts.map +1 -0
  159. package/dist/kinds/drift.kind.js +60 -0
  160. package/dist/kinds/drift.kind.js.map +1 -0
  161. package/dist/kinds/edge-tls.kind.d.ts +194 -0
  162. package/dist/kinds/edge-tls.kind.d.ts.map +1 -0
  163. package/dist/kinds/edge-tls.kind.js +58 -0
  164. package/dist/kinds/edge-tls.kind.js.map +1 -0
  165. package/dist/kinds/firewall.kind.d.ts +92 -0
  166. package/dist/kinds/firewall.kind.d.ts.map +1 -0
  167. package/dist/kinds/firewall.kind.js +59 -0
  168. package/dist/kinds/firewall.kind.js.map +1 -0
  169. package/dist/kinds/git-hosting.kind.d.ts +36 -38
  170. package/dist/kinds/git-hosting.kind.d.ts.map +1 -1
  171. package/dist/kinds/git-hosting.kind.js +21 -32
  172. package/dist/kinds/git-hosting.kind.js.map +1 -1
  173. package/dist/kinds/index.d.ts +40 -15
  174. package/dist/kinds/index.d.ts.map +1 -1
  175. package/dist/kinds/index.js +39 -14
  176. package/dist/kinds/index.js.map +1 -1
  177. package/dist/kinds/inventory.kind.d.ts +326 -0
  178. package/dist/kinds/inventory.kind.d.ts.map +1 -0
  179. package/dist/kinds/inventory.kind.js +188 -0
  180. package/dist/kinds/inventory.kind.js.map +1 -0
  181. package/dist/kinds/load-balancer.kind.d.ts +135 -0
  182. package/dist/kinds/load-balancer.kind.d.ts.map +1 -0
  183. package/dist/kinds/load-balancer.kind.js +71 -0
  184. package/dist/kinds/load-balancer.kind.js.map +1 -0
  185. package/dist/kinds/logs.kind.d.ts +74 -3
  186. package/dist/kinds/logs.kind.d.ts.map +1 -1
  187. package/dist/kinds/logs.kind.js +26 -17
  188. package/dist/kinds/logs.kind.js.map +1 -1
  189. package/dist/kinds/nfs.kind.d.ts +67 -0
  190. package/dist/kinds/nfs.kind.d.ts.map +1 -0
  191. package/dist/kinds/nfs.kind.js +45 -0
  192. package/dist/kinds/nfs.kind.js.map +1 -0
  193. package/dist/kinds/node-pool.kind.d.ts +134 -0
  194. package/dist/kinds/node-pool.kind.d.ts.map +1 -0
  195. package/dist/kinds/node-pool.kind.js +88 -0
  196. package/dist/kinds/node-pool.kind.js.map +1 -0
  197. package/dist/kinds/object-storage.kind.d.ts +50 -24
  198. package/dist/kinds/object-storage.kind.d.ts.map +1 -1
  199. package/dist/kinds/object-storage.kind.js +40 -23
  200. package/dist/kinds/object-storage.kind.js.map +1 -1
  201. package/dist/kinds/observability.kind.d.ts +104 -6
  202. package/dist/kinds/observability.kind.d.ts.map +1 -1
  203. package/dist/kinds/observability.kind.js +67 -9
  204. package/dist/kinds/observability.kind.js.map +1 -1
  205. package/dist/kinds/package-registry.kind.d.ts +25 -29
  206. package/dist/kinds/package-registry.kind.d.ts.map +1 -1
  207. package/dist/kinds/package-registry.kind.js +12 -25
  208. package/dist/kinds/package-registry.kind.js.map +1 -1
  209. package/dist/kinds/queue.kind.d.ts +67 -63
  210. package/dist/kinds/queue.kind.d.ts.map +1 -1
  211. package/dist/kinds/queue.kind.js +55 -33
  212. package/dist/kinds/queue.kind.js.map +1 -1
  213. package/dist/kinds/read-descriptor.d.ts +15 -0
  214. package/dist/kinds/read-descriptor.d.ts.map +1 -0
  215. package/dist/kinds/read-descriptor.js +11 -0
  216. package/dist/kinds/read-descriptor.js.map +1 -0
  217. package/dist/kinds/rum.kind.d.ts +36 -6
  218. package/dist/kinds/rum.kind.d.ts.map +1 -1
  219. package/dist/kinds/rum.kind.js +6 -7
  220. package/dist/kinds/rum.kind.js.map +1 -1
  221. package/dist/kinds/sandbox.kind.d.ts +136 -36
  222. package/dist/kinds/sandbox.kind.d.ts.map +1 -1
  223. package/dist/kinds/sandbox.kind.js +80 -34
  224. package/dist/kinds/sandbox.kind.js.map +1 -1
  225. package/dist/kinds/select-compute-source.d.ts +72 -0
  226. package/dist/kinds/select-compute-source.d.ts.map +1 -0
  227. package/dist/kinds/select-compute-source.js +170 -0
  228. package/dist/kinds/select-compute-source.js.map +1 -0
  229. package/dist/kinds/service-release.kind.d.ts +771 -0
  230. package/dist/kinds/service-release.kind.d.ts.map +1 -0
  231. package/dist/kinds/service-release.kind.js +676 -0
  232. package/dist/kinds/service-release.kind.js.map +1 -0
  233. package/dist/kinds/spend-guard.kind.d.ts +40 -0
  234. package/dist/kinds/spend-guard.kind.d.ts.map +1 -0
  235. package/dist/kinds/spend-guard.kind.js +133 -0
  236. package/dist/kinds/spend-guard.kind.js.map +1 -0
  237. package/dist/kinds/utilization.kind.d.ts +88 -0
  238. package/dist/kinds/utilization.kind.d.ts.map +1 -0
  239. package/dist/kinds/utilization.kind.js +62 -0
  240. package/dist/kinds/utilization.kind.js.map +1 -0
  241. package/dist/kinds/volume.kind.d.ts +54 -0
  242. package/dist/kinds/volume.kind.d.ts.map +1 -0
  243. package/dist/kinds/volume.kind.js +39 -0
  244. package/dist/kinds/volume.kind.js.map +1 -0
  245. package/dist/kinds/vpc.kind.d.ts +61 -0
  246. package/dist/kinds/vpc.kind.d.ts.map +1 -0
  247. package/dist/kinds/vpc.kind.js +51 -0
  248. package/dist/kinds/vpc.kind.js.map +1 -0
  249. package/dist/kinds/web-app.kind.d.ts +115 -45
  250. package/dist/kinds/web-app.kind.d.ts.map +1 -1
  251. package/dist/kinds/web-app.kind.js +69 -42
  252. package/dist/kinds/web-app.kind.js.map +1 -1
  253. package/dist/kinds/worker.kind.d.ts +291 -188
  254. package/dist/kinds/worker.kind.d.ts.map +1 -1
  255. package/dist/kinds/worker.kind.js +45 -123
  256. package/dist/kinds/worker.kind.js.map +1 -1
  257. package/dist/schemas/database-migration.d.ts +173 -0
  258. package/dist/schemas/database-migration.d.ts.map +1 -0
  259. package/dist/schemas/database-migration.js +88 -0
  260. package/dist/schemas/database-migration.js.map +1 -0
  261. package/dist/schemas/deployment-environment.d.ts +11 -0
  262. package/dist/schemas/deployment-environment.d.ts.map +1 -0
  263. package/dist/schemas/deployment-environment.js +9 -0
  264. package/dist/schemas/deployment-environment.js.map +1 -0
  265. package/dist/schemas/deployment-provider.d.ts +336 -0
  266. package/dist/schemas/deployment-provider.d.ts.map +1 -0
  267. package/dist/schemas/deployment-provider.js +198 -0
  268. package/dist/schemas/deployment-provider.js.map +1 -0
  269. package/dist/schemas/log-stream.d.ts +27 -0
  270. package/dist/schemas/log-stream.d.ts.map +1 -0
  271. package/dist/schemas/log-stream.js +31 -0
  272. package/dist/schemas/log-stream.js.map +1 -0
  273. package/dist/schemas/spend-guard.d.ts +155 -0
  274. package/dist/schemas/spend-guard.d.ts.map +1 -0
  275. package/dist/schemas/spend-guard.js +61 -0
  276. package/dist/schemas/spend-guard.js.map +1 -0
  277. package/dist/schemas.d.ts +190 -20
  278. package/dist/schemas.d.ts.map +1 -1
  279. package/dist/schemas.js +137 -31
  280. package/dist/schemas.js.map +1 -1
  281. package/dist/service.d.ts +87 -0
  282. package/dist/service.d.ts.map +1 -0
  283. package/dist/service.js +199 -0
  284. package/dist/service.js.map +1 -0
  285. package/dist/settle-work.d.ts +20 -0
  286. package/dist/settle-work.d.ts.map +1 -0
  287. package/dist/settle-work.js +22 -0
  288. package/dist/settle-work.js.map +1 -0
  289. package/dist/web-app-projection.d.ts +132 -0
  290. package/dist/web-app-projection.d.ts.map +1 -0
  291. package/dist/web-app-projection.js +93 -0
  292. package/dist/web-app-projection.js.map +1 -0
  293. package/package.json +87 -36
  294. package/src/bootstrap/index.ts +0 -15
  295. package/src/bootstrap/seed.descriptor.ts +0 -24
  296. package/src/bootstrap/seed.impl-shape.ts +0 -5
  297. package/src/bootstrap/seed.kind.ts +0 -26
  298. package/src/bootstrap/seed.runner.ts +0 -87
  299. package/src/credentials/resolve.ts +0 -205
  300. package/src/deployment.ts +0 -57
  301. package/src/index.ts +0 -149
  302. package/src/infra.plugin.ts +0 -54
  303. package/src/kinds/alerts.kind.ts +0 -164
  304. package/src/kinds/artifact.kind.ts +0 -96
  305. package/src/kinds/cache.kind.ts +0 -104
  306. package/src/kinds/database.kind.ts +0 -120
  307. package/src/kinds/discovery.ts +0 -26
  308. package/src/kinds/git-hosting.kind.ts +0 -100
  309. package/src/kinds/index.ts +0 -139
  310. package/src/kinds/logs.kind.ts +0 -104
  311. package/src/kinds/object-storage.kind.ts +0 -101
  312. package/src/kinds/observability.kind.ts +0 -178
  313. package/src/kinds/package-registry.kind.ts +0 -95
  314. package/src/kinds/queue.kind.ts +0 -102
  315. package/src/kinds/rum.kind.ts +0 -135
  316. package/src/kinds/sandbox.kind.ts +0 -115
  317. package/src/kinds/web-app.kind.ts +0 -103
  318. package/src/kinds/worker.kind.ts +0 -203
  319. package/src/schemas.ts +0 -127
@@ -0,0 +1,132 @@
1
+ import * as z from 'zod/v4';
2
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
3
+ import type { ArtifactOutput } from './kinds/artifact.kind.ts';
4
+ import type { WebAppDescriptor } from './kinds/web-app.kind.ts';
5
+ /** The formatter belongs to the declared project, never a global fallback. */
6
+ export declare const WebAppFormatterSchema: z.ZodObject<{
7
+ projectRoot: z.ZodString;
8
+ bunExecutable: z.ZodString;
9
+ prettierExecutable: z.ZodString;
10
+ }, z.core.$strict>;
11
+ export declare const WebAppProjectionOptionsSchema: z.ZodObject<{
12
+ appRoot: z.ZodString;
13
+ target: z.ZodEnum<{
14
+ local: "local";
15
+ production: "production";
16
+ }>;
17
+ projectionEnvironment: z.ZodRecord<z.ZodString, z.ZodString>;
18
+ formatter: z.ZodOptional<z.ZodObject<{
19
+ projectRoot: z.ZodString;
20
+ bunExecutable: z.ZodString;
21
+ prettierExecutable: z.ZodString;
22
+ }, z.core.$strict>>;
23
+ signal: z.ZodOptional<z.ZodInstanceOf<AbortSignal>>;
24
+ }, z.core.$strict>;
25
+ export type WebAppProjectionOptions = z.infer<typeof WebAppProjectionOptionsSchema>;
26
+ export declare const WebAppTextArtifactSchema: z.ZodObject<{
27
+ content: z.ZodString;
28
+ filename: z.ZodString;
29
+ path: z.ZodString;
30
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
31
+ }, z.core.$strict>;
32
+ export type WebAppTextArtifact = Omit<ArtifactOutput, 'content'> & {
33
+ content: string;
34
+ };
35
+ export declare const WebAppProjectionSchema: z.ZodObject<{
36
+ deployment: z.ZodObject<{
37
+ appId: z.ZodString;
38
+ appName: z.ZodString;
39
+ provider: z.ZodString;
40
+ providerPlugin: z.ZodOptional<z.ZodString>;
41
+ runtime: z.ZodEnum<{
42
+ browser: "browser";
43
+ worker: "worker";
44
+ edge: "edge";
45
+ node: "node";
46
+ }>;
47
+ build: z.ZodObject<{
48
+ workspaceRootDir: z.ZodDefault<z.ZodString>;
49
+ appDir: z.ZodString;
50
+ installCommand: z.ZodOptional<z.ZodString>;
51
+ buildCommand: z.ZodString;
52
+ outputDir: z.ZodString;
53
+ }, z.core.$strip>;
54
+ origins: z.ZodArray<z.ZodObject<{
55
+ hostname: z.ZodString;
56
+ origin: z.ZodString;
57
+ kind: z.ZodDefault<z.ZodEnum<{
58
+ internal: "internal";
59
+ primary: "primary";
60
+ redirect: "redirect";
61
+ preview: "preview";
62
+ alias: "alias";
63
+ }>>;
64
+ description: z.ZodOptional<z.ZodString>;
65
+ }, z.core.$strip>>;
66
+ env: z.ZodDefault<z.ZodArray<z.ZodObject<{
67
+ name: z.ZodString;
68
+ public: z.ZodOptional<z.ZodBoolean>;
69
+ required: z.ZodOptional<z.ZodBoolean>;
70
+ value: z.ZodOptional<z.ZodString>;
71
+ secret: z.ZodOptional<z.ZodBoolean>;
72
+ description: z.ZodOptional<z.ZodString>;
73
+ storeKey: z.ZodOptional<z.ZodString>;
74
+ storeBinding: z.ZodOptional<z.ZodBoolean>;
75
+ }, z.core.$strip>>>;
76
+ dependsOn: z.ZodDefault<z.ZodArray<z.ZodObject<{
77
+ appId: z.ZodString;
78
+ reason: z.ZodString;
79
+ required: z.ZodDefault<z.ZodBoolean>;
80
+ }, z.core.$strip>>>;
81
+ upstreams: z.ZodDefault<z.ZodArray<z.ZodObject<{
82
+ name: z.ZodString;
83
+ origin: z.ZodString;
84
+ purpose: z.ZodString;
85
+ originEnvVar: z.ZodOptional<z.ZodString>;
86
+ }, z.core.$strip>>>;
87
+ tags: z.ZodDefault<z.ZodArray<z.ZodString>>;
88
+ kvNamespaces: z.ZodDefault<z.ZodArray<z.ZodObject<{
89
+ binding: z.ZodString;
90
+ id: z.ZodString;
91
+ preview_id: z.ZodOptional<z.ZodString>;
92
+ }, z.core.$strip>>>;
93
+ preDeployCommands: z.ZodDefault<z.ZodArray<z.ZodObject<{
94
+ command: z.ZodString;
95
+ description: z.ZodOptional<z.ZodString>;
96
+ }, z.core.$strip>>>;
97
+ execution: z.ZodOptional<z.ZodObject<{
98
+ pty: z.ZodOptional<z.ZodBoolean>;
99
+ shell: z.ZodOptional<z.ZodBoolean>;
100
+ maxSessions: z.ZodOptional<z.ZodNumber>;
101
+ }, z.core.$strip>>;
102
+ migrations: z.ZodOptional<z.ZodObject<{
103
+ requiredForLocalDev: z.ZodDefault<z.ZodBoolean>;
104
+ }, z.core.$strip>>;
105
+ }, z.core.$strip>;
106
+ provider: z.ZodString;
107
+ managed: z.ZodBoolean;
108
+ workerName: z.ZodNullable<z.ZodString>;
109
+ artifact: z.ZodNullable<z.ZodObject<{
110
+ content: z.ZodString;
111
+ filename: z.ZodString;
112
+ path: z.ZodString;
113
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
114
+ }, z.core.$strict>>;
115
+ }, z.core.$strict>;
116
+ export type WebAppProjection = z.infer<typeof WebAppProjectionSchema>;
117
+ /** Implemented by the provider's per-descriptor runtime loader. */
118
+ export interface WebAppProjectionImplementation {
119
+ readonly config: WebAppDescriptor;
120
+ project(options: WebAppProjectionOptions): Promise<WebAppProjection>;
121
+ }
122
+ /**
123
+ * Resolve one registered deployable through the handed runtime. Options are
124
+ * read once inside the untrusted-input guard (`INVALID_INPUT
125
+ * web-app-projection-options-invalid`); a provider without `project` refuses
126
+ * `UNAVAILABLE web-app-projection-provider-missing`; a provider's typed refusal
127
+ * passes through, any other throw is `INTERNAL web-app-projection-failed`
128
+ * carrying only its value-free facts; a result that does not read is
129
+ * `INTERNAL web-app-projection-invalid`.
130
+ */
131
+ export declare function projectWebApp(runtime: RuntimeRef, id: string, options: WebAppProjectionOptions): Promise<WebAppProjection>;
132
+ //# sourceMappingURL=web-app-projection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-app-projection.d.ts","sourceRoot":"","sources":["../src/web-app-projection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAA6E,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjI,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB;;;;kBAIhC,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;kBAOxC,CAAC;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC;AAEpF,eAAO,MAAM,wBAAwB;;;;;kBAKnC,CAAC;AACH,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAajC,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,mEAAmE;AACnE,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACrE;AAwBD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAClC,OAAO,EAAE,UAAU,EACnB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,uBAAuB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAuB3B"}
@@ -0,0 +1,93 @@
1
+ import * as z from 'zod/v4';
2
+ import { validateAppDeployment } from "./deployment.js";
3
+ import { readUntrusted } from '@vibesdotdev/config/manifest/read-untrusted';
4
+ import { CapabilityError, CaughtFailureSchema, isCapabilityError, valueFreeFailure } from '@vibesdotdev/kernel';
5
+ import { appDeploymentSchema, deploymentProviderSchema } from "./schemas.js";
6
+ /** The formatter belongs to the declared project, never a global fallback. */
7
+ export const WebAppFormatterSchema = z.strictObject({
8
+ projectRoot: z.string().min(1),
9
+ bunExecutable: z.string().min(1),
10
+ prettierExecutable: z.string().min(1)
11
+ });
12
+ export const WebAppProjectionOptionsSchema = z.strictObject({
13
+ /** Absolute app root supplied by the canonical runtime discovery/caller. */
14
+ appRoot: z.string().min(1),
15
+ target: z.enum(['production', 'local']),
16
+ projectionEnvironment: z.record(z.string(), z.string()),
17
+ formatter: WebAppFormatterSchema.optional(),
18
+ signal: z.instanceof(AbortSignal).optional()
19
+ });
20
+ export const WebAppTextArtifactSchema = z.strictObject({
21
+ content: z.string(),
22
+ filename: z.string().min(1),
23
+ path: z.string().min(1),
24
+ metadata: z.record(z.string(), z.unknown()).optional()
25
+ });
26
+ export const WebAppProjectionSchema = z.strictObject({
27
+ deployment: appDeploymentSchema,
28
+ provider: deploymentProviderSchema,
29
+ managed: z.boolean(),
30
+ workerName: z.string().min(1).nullable(),
31
+ artifact: WebAppTextArtifactSchema.nullable()
32
+ }).superRefine((projection, context) => {
33
+ if (projection.provider !== projection.deployment.provider) {
34
+ context.addIssue({ code: 'custom', path: ['provider'], message: 'Projection provider must match its deployment.' });
35
+ }
36
+ if (projection.managed && projection.artifact === null) {
37
+ context.addIssue({ code: 'custom', path: ['artifact'], message: 'A managed projection must contain its artifact.' });
38
+ }
39
+ });
40
+ const OPTIONS_INVALID = {
41
+ code: 'INVALID_INPUT',
42
+ reason: 'web-app-projection-options-invalid',
43
+ message: () => 'Web app projection options are invalid.'
44
+ };
45
+ const PROJECTION_INVALID = {
46
+ code: 'INTERNAL',
47
+ reason: 'web-app-projection-invalid',
48
+ message: () => 'The provider returned an invalid web app projection.'
49
+ };
50
+ const PROVIDER_MISSING = {
51
+ code: 'UNAVAILABLE',
52
+ reason: 'web-app-projection-provider-missing',
53
+ message: () => 'The web app has no composed projection provider.'
54
+ };
55
+ /** A resolved provider offers `project`; kept as the original object (its method uses `this`). */
56
+ const ProjectionOperationsSchema = z.object({ project: z.function() });
57
+ const ProjectionProviderSchema = z.custom((value) => ProjectionOperationsSchema.safeParse(value).success);
58
+ /**
59
+ * Resolve one registered deployable through the handed runtime. Options are
60
+ * read once inside the untrusted-input guard (`INVALID_INPUT
61
+ * web-app-projection-options-invalid`); a provider without `project` refuses
62
+ * `UNAVAILABLE web-app-projection-provider-missing`; a provider's typed refusal
63
+ * passes through, any other throw is `INTERNAL web-app-projection-failed`
64
+ * carrying only its value-free facts; a result that does not read is
65
+ * `INTERNAL web-app-projection-invalid`.
66
+ */
67
+ export async function projectWebApp(runtime, id, options) {
68
+ const input = readUntrusted(WebAppProjectionOptionsSchema, () => options, OPTIONS_INVALID);
69
+ const resolved = await runtime
70
+ .query('infra/web-app')
71
+ .withId(id)
72
+ .enabled()
73
+ .resolve();
74
+ // A composed loader may be absent or stale; refuse unless the seam resolves to something callable.
75
+ const provider = readUntrusted(ProjectionProviderSchema, () => resolved, { ...PROVIDER_MISSING, details: { id } });
76
+ let projected;
77
+ try {
78
+ validateAppDeployment(runtime, provider.config.deployment);
79
+ projected = await provider.project(input);
80
+ }
81
+ catch (error) {
82
+ const caught = CaughtFailureSchema.parse(error);
83
+ if (caught instanceof Error && isCapabilityError(caught))
84
+ throw caught;
85
+ throw new CapabilityError('The web app projection provider failed.', 'INTERNAL', {
86
+ reason: 'web-app-projection-failed', details: { id }, cause: valueFreeFailure(caught)
87
+ });
88
+ }
89
+ const projection = readUntrusted(WebAppProjectionSchema, () => projected, PROJECTION_INVALID);
90
+ validateAppDeployment(runtime, projection.deployment);
91
+ return projection;
92
+ }
93
+ //# sourceMappingURL=web-app-projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-app-projection.js","sourceRoot":"","sources":["../src/web-app-projection.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,74 +1,96 @@
1
1
  {
2
2
  "name": "@vibesdotdev/infra-core",
3
- "version": "0.0.2",
4
- "type": "module",
3
+ "version": "1.0.0-rc.4",
4
+ "dependencies": {
5
+ "@vibesdotdev/infra-contracts": "^1.0.0-rc.4",
6
+ "@vibesdotdev/config": "^1.0.0-rc.3",
7
+ "@vibesdotdev/filesystem": "^1.0.0-rc.2",
8
+ "@vibesdotdev/logging": "^1.0.0-rc.4",
9
+ "@vibesdotdev/kernel": "^1.0.0-rc.6",
10
+ "@vibesdotdev/shared": "^1.0.0-rc.4",
11
+ "zod": "^4.6.7"
12
+ },
13
+ "peerDependencies": {},
5
14
  "main": "./dist/index.js",
6
- "types": "./dist/index.d.ts",
7
15
  "exports": {
16
+ "./service": {
17
+ "bun": "./dist/service.js",
18
+ "types": "./dist/service.d.ts",
19
+ "import": "./dist/service.js",
20
+ "default": "./dist/service.js"
21
+ },
8
22
  ".": {
23
+ "bun": "./dist/index.js",
9
24
  "types": "./dist/index.d.ts",
10
- "bun": "./src/index.ts",
11
25
  "import": "./dist/index.js",
12
26
  "default": "./dist/index.js"
13
27
  },
14
28
  "./deployment": {
29
+ "bun": "./dist/deployment.js",
15
30
  "types": "./dist/deployment.d.ts",
16
- "bun": "./src/deployment.ts",
17
31
  "import": "./dist/deployment.js",
18
32
  "default": "./dist/deployment.js"
19
33
  },
34
+ "./deployment-environment": {
35
+ "bun": "./dist/deployment-environment.js",
36
+ "types": "./dist/deployment-environment.d.ts",
37
+ "import": "./dist/deployment-environment.js",
38
+ "default": "./dist/deployment-environment.js"
39
+ },
20
40
  "./schemas": {
41
+ "bun": "./dist/schemas.js",
21
42
  "types": "./dist/schemas.d.ts",
22
- "bun": "./src/schemas.ts",
23
43
  "import": "./dist/schemas.js",
24
44
  "default": "./dist/schemas.js"
25
45
  },
26
46
  "./kinds": {
47
+ "bun": "./dist/kinds/index.js",
27
48
  "types": "./dist/kinds/index.d.ts",
28
- "bun": "./src/kinds/index.ts",
29
49
  "import": "./dist/kinds/index.js",
30
50
  "default": "./dist/kinds/index.js"
31
51
  },
32
52
  "./plugin": {
53
+ "bun": "./dist/infra.plugin.js",
33
54
  "types": "./dist/infra.plugin.d.ts",
34
- "bun": "./src/infra.plugin.ts",
35
55
  "import": "./dist/infra.plugin.js",
36
56
  "default": "./dist/infra.plugin.js"
37
57
  },
38
58
  "./bootstrap": {
59
+ "bun": "./dist/bootstrap/index.js",
39
60
  "types": "./dist/bootstrap/index.d.ts",
40
- "bun": "./src/bootstrap/index.ts",
41
61
  "import": "./dist/bootstrap/index.js",
42
62
  "default": "./dist/bootstrap/index.js"
63
+ },
64
+ "./generate": {
65
+ "bun": "./dist/generate/index.js",
66
+ "types": "./dist/generate/index.d.ts",
67
+ "import": "./dist/generate/index.js",
68
+ "default": "./dist/generate/index.js"
69
+ },
70
+ "./generate/plugin": {
71
+ "bun": "./dist/generate/plugin.js",
72
+ "types": "./dist/generate/plugin.d.ts",
73
+ "import": "./dist/generate/plugin.js",
74
+ "default": "./dist/generate/plugin.js"
75
+ },
76
+ "./doks/cloud": {
77
+ "bun": "./dist/doks/cloud/index.js",
78
+ "types": "./dist/doks/cloud/index.d.ts",
79
+ "import": "./dist/doks/cloud/index.js",
80
+ "default": "./dist/doks/cloud/index.js"
81
+ },
82
+ "./doks/types": {
83
+ "bun": "./dist/doks/types.js",
84
+ "types": "./dist/doks/types.d.ts",
85
+ "import": "./dist/doks/types.js",
86
+ "default": "./dist/doks/types.js"
43
87
  }
44
88
  },
45
- "publishConfig": {
46
- "registry": "https://registry.npmjs.org",
47
- "access": "public"
48
- },
49
- "dependencies": {
50
- "@vibesdotdev/logging": "0.0.2",
51
- "@vibesdotdev/runtime": "0.0.2",
52
- "zod": "^4.3.6"
53
- },
54
- "scripts": {
55
- "test": "bun test",
56
- "check": "bun --bun tsc -p tsconfig.json --noEmit",
57
- "build": "tsc -p tsconfig.json"
58
- },
59
- "license": "MIT",
60
89
  "files": [
61
90
  "dist",
62
- "src",
63
- "bin",
64
91
  "README.md",
65
92
  "LICENSE",
66
- "!src/**/__tests__/**",
67
- "!src/**/__stubs__/**",
68
- "!src/**/*.test.ts",
69
- "!src/**/*.test.tsx",
70
- "!src/**/*.spec.ts",
71
- "!src/**/*.spec.tsx",
93
+ "!dist/**/*.tsbuildinfo",
72
94
  "!dist/**/__tests__/**",
73
95
  "!dist/**/__stubs__/**",
74
96
  "!dist/**/*.test.js",
@@ -80,12 +102,41 @@
80
102
  "!dist/**/*.spec.d.ts",
81
103
  "!dist/**/*.spec.d.ts.map"
82
104
  ],
105
+ "scripts": {
106
+ "lint": "node ../node_modules/@vibesdotdev/internal-oxlint-toolchain/ratchet.mjs .",
107
+ "test": "${BUN:-bun} test",
108
+ "check": "${BUN:-bun} --bun tsc -p tsconfig.json",
109
+ "build": "rm -rf dist && tsc -p tsconfig.build.json"
110
+ },
111
+ "repository": {
112
+ "type": "git",
113
+ "url": "ssh://git@git.vibes.dev/vibesdotdev/framework.git",
114
+ "directory": "infra-core"
115
+ },
116
+ "publishConfig": {
117
+ "registry": "https://packages.vibes.dev",
118
+ "access": "public"
119
+ },
83
120
  "vibes": {
84
- "visibility": "public-framework"
121
+ "visibility": "public",
122
+ "registry": {
123
+ "repositoryId": "4b1374d4-6830-4bfd-98e3-de66416368a8",
124
+ "directory": "infra-core"
125
+ },
126
+ "handedRuntimeLogging": true
85
127
  },
86
- "description": "Infrastructure manifest schemas and deployment primitives used by Vibes infra adapters.",
87
- "homepage": "https://docs.vibes.dev/packages/infra-core",
128
+ "type": "module",
129
+ "types": "./dist/index.d.ts",
130
+ "license": "MIT",
131
+ "description": "Infrastructure manifest schemas, runtime kinds and deployment primitives shared by infra adapters.",
132
+ "homepage": "https://docs.vibes.dev/infra-core",
88
133
  "bugs": {
89
- "url": "https://docs.vibes.dev/packages/infra-core#support"
134
+ "url": "https://docs.vibes.dev/infra-core#support"
135
+ },
136
+ "gitHead": "6c90364649d9a94d238d81180ebb03adf5017263",
137
+ "_vibes_source": {
138
+ "repo": "ssh://git@git.vibes.dev/vibesdotdev/framework.git",
139
+ "sha": "6c90364649d9a94d238d81180ebb03adf5017263",
140
+ "workspaceDigest": "sha256:18ee5d2b7916bcedc3b3e799a54423aef984af6c6b2a633112cf851adf0e9c00"
90
141
  }
91
142
  }
@@ -1,15 +0,0 @@
1
- export { bootstrapSeedKind } from './seed.kind.ts';
2
- export {
3
- bootstrapSeedConditionSchema,
4
- bootstrapSeedDescriptorSchema,
5
- bootstrapSeedModeSchema,
6
- type BootstrapSeedCondition,
7
- type BootstrapSeedDescriptor,
8
- type BootstrapSeedMode
9
- } from './seed.descriptor.ts';
10
- export type { BootstrapSeedImpl } from './seed.impl-shape.ts';
11
- export {
12
- runBootstrapSeeds,
13
- type BootstrapSeedRunOptions,
14
- type BootstrapSeedRunResult
15
- } from './seed.runner.ts';
@@ -1,24 +0,0 @@
1
- import { z } from 'zod';
2
-
3
- export const bootstrapSeedModeSchema = z.enum(['cold-start', 'deploy']);
4
- export type BootstrapSeedMode = z.infer<typeof bootstrapSeedModeSchema>;
5
-
6
- export const bootstrapSeedConditionSchema = z.discriminatedUnion('kind', [
7
- z.object({ kind: z.literal('always') }),
8
- z.object({
9
- kind: z.literal('env-keys-present'),
10
- keys: z.array(z.string().min(1)).min(1)
11
- })
12
- ]);
13
- export type BootstrapSeedCondition = z.infer<typeof bootstrapSeedConditionSchema>;
14
-
15
- export const bootstrapSeedDescriptorSchema = z.object({
16
- kind: z.literal('bootstrap/seed'),
17
- id: z.string().min(1),
18
- description: z.string().optional(),
19
- executeOn: z.array(bootstrapSeedModeSchema).min(1),
20
- condition: bootstrapSeedConditionSchema.optional(),
21
- priority: z.number().int().optional()
22
- });
23
-
24
- export type BootstrapSeedDescriptor = z.infer<typeof bootstrapSeedDescriptorSchema>;
@@ -1,5 +0,0 @@
1
- import type { VibesRuntime } from '@vibesdotdev/runtime';
2
-
3
- export interface BootstrapSeedImpl {
4
- run(runtime: VibesRuntime, env: Record<string, string | undefined>): Promise<void>;
5
- }
@@ -1,26 +0,0 @@
1
- import type { RuntimeDescriptor, RuntimeKindDescriptor } from '@vibesdotdev/runtime/schemas/kind';
2
- import {
3
- bootstrapSeedDescriptorSchema,
4
- type BootstrapSeedDescriptor
5
- } from './seed.descriptor.ts';
6
- import type { BootstrapSeedImpl } from './seed.impl-shape.ts';
7
-
8
- class UnregisteredBootstrapSeed implements BootstrapSeedImpl {
9
- constructor(_descriptor: RuntimeDescriptor) {}
10
- async run(): Promise<void> {
11
- // No-op when no impl loader is registered for this descriptor id.
12
- }
13
- }
14
-
15
- export const bootstrapSeedKind: RuntimeKindDescriptor<
16
- BootstrapSeedDescriptor,
17
- BootstrapSeedImpl,
18
- never
19
- > = {
20
- id: 'bootstrap/seed',
21
- descriptorSchema: bootstrapSeedDescriptorSchema,
22
- defaultImplementation: UnregisteredBootstrapSeed as unknown as new (
23
- descriptor: RuntimeDescriptor
24
- ) => BootstrapSeedImpl,
25
- contexts: []
26
- };
@@ -1,87 +0,0 @@
1
- import type { VibesRuntime } from '@vibesdotdev/runtime';
2
- import { getLogger } from '@vibesdotdev/logging';
3
- import type {
4
- BootstrapSeedCondition,
5
- BootstrapSeedDescriptor,
6
- BootstrapSeedMode
7
- } from './seed.descriptor.ts';
8
- import type { BootstrapSeedImpl } from './seed.impl-shape.ts';
9
-
10
- const log = getLogger('infra.bootstrap.seed');
11
-
12
- export interface BootstrapSeedRunResult {
13
- ran: string[];
14
- skipped: Array<{ id: string; reason: string }>;
15
- failed: Array<{ id: string; error: string }>;
16
- }
17
-
18
- export interface BootstrapSeedRunOptions {
19
- env: Record<string, string | undefined>;
20
- }
21
-
22
- export async function runBootstrapSeeds(
23
- runtime: VibesRuntime,
24
- mode: BootstrapSeedMode,
25
- options: BootstrapSeedRunOptions
26
- ): Promise<BootstrapSeedRunResult> {
27
- const allDescriptors = runtime
28
- .assets('bootstrap/seed')
29
- .descriptors() as unknown as readonly BootstrapSeedDescriptor[];
30
-
31
- const result: BootstrapSeedRunResult = { ran: [], skipped: [], failed: [] };
32
- const runnable: BootstrapSeedDescriptor[] = [];
33
-
34
- for (const descriptor of allDescriptors) {
35
- if (!descriptor.executeOn.includes(mode)) {
36
- result.skipped.push({
37
- id: descriptor.id,
38
- reason: `mode ${mode} not in executeOn`
39
- });
40
- continue;
41
- }
42
- if (!evaluateCondition(descriptor.condition, options.env)) {
43
- result.skipped.push({
44
- id: descriptor.id,
45
- reason: 'condition not met'
46
- });
47
- continue;
48
- }
49
- runnable.push(descriptor);
50
- }
51
-
52
- runnable.sort((a, b) => (a.priority ?? 100) - (b.priority ?? 100));
53
-
54
- for (const descriptor of runnable) {
55
- try {
56
- const impl = (await runtime
57
- .query('bootstrap/seed')
58
- .withId(descriptor.id)
59
- .resolve()) as BootstrapSeedImpl;
60
- await impl.run(runtime, options.env);
61
- result.ran.push(descriptor.id);
62
- log.info('bootstrap seed completed', {
63
- id: descriptor.id,
64
- mode,
65
- priority: descriptor.priority ?? 100
66
- });
67
- } catch (err) {
68
- const error = err instanceof Error ? err.message : String(err);
69
- result.failed.push({ id: descriptor.id, error });
70
- log.error('bootstrap seed failed', { id: descriptor.id, mode, error });
71
- }
72
- }
73
-
74
- return result;
75
- }
76
-
77
- function evaluateCondition(
78
- condition: BootstrapSeedCondition | undefined,
79
- env: Record<string, string | undefined>
80
- ): boolean {
81
- if (!condition) return true;
82
- if (condition.kind === 'always') return true;
83
- if (condition.kind === 'env-keys-present') {
84
- return condition.keys.every((key) => Boolean(env[key]));
85
- }
86
- return true;
87
- }