@vibesdotdev/infra-core 0.0.1 → 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.
- package/LICENSE +18 -0
- package/README.md +33 -63
- package/dist/bootstrap/seed.descriptor.d.ts +1 -1
- package/dist/bootstrap/seed.descriptor.d.ts.map +1 -1
- package/dist/bootstrap/seed.descriptor.js +1 -1
- package/dist/bootstrap/seed.descriptor.js.map +1 -1
- package/dist/bootstrap/seed.impl-shape.d.ts +1 -1
- package/dist/bootstrap/seed.impl-shape.d.ts.map +1 -1
- package/dist/bootstrap/seed.kind.d.ts +1 -3
- package/dist/bootstrap/seed.kind.d.ts.map +1 -1
- package/dist/bootstrap/seed.kind.js +17 -4
- package/dist/bootstrap/seed.kind.js.map +1 -1
- package/dist/bootstrap/seed.runner.d.ts +9 -2
- package/dist/bootstrap/seed.runner.d.ts.map +1 -1
- package/dist/bootstrap/seed.runner.js +37 -18
- package/dist/bootstrap/seed.runner.js.map +1 -1
- package/dist/capped-id.d.ts +19 -0
- package/dist/capped-id.d.ts.map +1 -0
- package/dist/capped-id.js +64 -0
- package/dist/capped-id.js.map +1 -0
- package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts +23 -0
- package/dist/cli/generate/artifact/artifact.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js +33 -0
- package/dist/cli/generate/artifact/artifact.cli-command.descriptor.js.map +1 -0
- package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts +24 -0
- package/dist/cli/generate/artifact/artifact.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/generate/artifact/artifact.cli-command.impl.js +73 -0
- package/dist/cli/generate/artifact/artifact.cli-command.impl.js.map +1 -0
- package/dist/cli/generate/context.d.ts +17 -0
- package/dist/cli/generate/context.d.ts.map +1 -0
- package/dist/cli/generate/context.js +24 -0
- package/dist/cli/generate/context.js.map +1 -0
- package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts +30 -0
- package/dist/cli/generate/generate/generate.cli-command.descriptor.d.ts.map +1 -0
- package/dist/cli/generate/generate/generate.cli-command.descriptor.js +25 -0
- package/dist/cli/generate/generate/generate.cli-command.descriptor.js.map +1 -0
- package/dist/cli/generate/generate/generate.cli-command.impl.d.ts +25 -0
- package/dist/cli/generate/generate/generate.cli-command.impl.d.ts.map +1 -0
- package/dist/cli/generate/generate/generate.cli-command.impl.js +64 -0
- package/dist/cli/generate/generate/generate.cli-command.impl.js.map +1 -0
- package/dist/cli/generate/generate-core.d.ts +51 -0
- package/dist/cli/generate/generate-core.d.ts.map +1 -0
- package/dist/cli/generate/generate-core.js +172 -0
- package/dist/cli/generate/generate-core.js.map +1 -0
- package/dist/cli/generate/index.d.ts +5 -0
- package/dist/cli/generate/index.d.ts.map +1 -0
- package/dist/cli/generate/index.js +5 -0
- package/dist/cli/generate/index.js.map +1 -0
- package/dist/credentials/resolve.d.ts +82 -22
- package/dist/credentials/resolve.d.ts.map +1 -1
- package/dist/credentials/resolve.js +251 -77
- package/dist/credentials/resolve.js.map +1 -1
- package/dist/deployment-environment.d.ts +30 -0
- package/dist/deployment-environment.d.ts.map +1 -0
- package/dist/deployment-environment.js +53 -0
- package/dist/deployment-environment.js.map +1 -0
- package/dist/deployment.d.ts +8 -4
- package/dist/deployment.d.ts.map +1 -1
- package/dist/deployment.js +30 -0
- package/dist/deployment.js.map +1 -1
- package/dist/doks/cloud/base.d.ts +49 -0
- package/dist/doks/cloud/base.d.ts.map +1 -0
- package/dist/doks/cloud/base.js +138 -0
- package/dist/doks/cloud/base.js.map +1 -0
- package/dist/doks/cloud/factory.d.ts +18 -0
- package/dist/doks/cloud/factory.d.ts.map +1 -0
- package/dist/doks/cloud/factory.js +22 -0
- package/dist/doks/cloud/factory.js.map +1 -0
- package/dist/doks/cloud/index.d.ts +5 -0
- package/dist/doks/cloud/index.d.ts.map +1 -0
- package/dist/doks/cloud/index.js +4 -0
- package/dist/doks/cloud/index.js.map +1 -0
- package/dist/doks/types.d.ts +95 -0
- package/dist/doks/types.d.ts.map +1 -0
- package/dist/doks/types.js +14 -0
- package/dist/doks/types.js.map +1 -0
- package/dist/generate/index.d.ts +29 -0
- package/dist/generate/index.d.ts.map +1 -0
- package/dist/generate/index.js +28 -0
- package/dist/generate/index.js.map +1 -0
- package/dist/generate/infra-generate.plugin.d.ts +3 -0
- package/dist/generate/infra-generate.plugin.d.ts.map +1 -0
- package/dist/generate/infra-generate.plugin.js +23 -0
- package/dist/generate/infra-generate.plugin.js.map +1 -0
- package/dist/generate/plugin.d.ts +2 -0
- package/dist/generate/plugin.d.ts.map +1 -0
- package/dist/generate/plugin.js +2 -0
- package/dist/generate/plugin.js.map +1 -0
- package/dist/heartbeat/cron-heartbeat.d.ts +97 -0
- package/dist/heartbeat/cron-heartbeat.d.ts.map +1 -0
- package/dist/heartbeat/cron-heartbeat.js +200 -0
- package/dist/heartbeat/cron-heartbeat.js.map +1 -0
- package/dist/index.d.ts +34 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -14
- package/dist/index.js.map +1 -1
- package/dist/infra.plugin.d.ts +1 -1
- package/dist/infra.plugin.d.ts.map +1 -1
- package/dist/infra.plugin.js +62 -12
- package/dist/infra.plugin.js.map +1 -1
- package/dist/kinds/alerts.kind.d.ts +64 -25
- package/dist/kinds/alerts.kind.d.ts.map +1 -1
- package/dist/kinds/alerts.kind.js +43 -16
- package/dist/kinds/alerts.kind.js.map +1 -1
- package/dist/kinds/artifact.kind.d.ts +58 -10
- package/dist/kinds/artifact.kind.d.ts.map +1 -1
- package/dist/kinds/artifact.kind.js +26 -9
- package/dist/kinds/artifact.kind.js.map +1 -1
- package/dist/kinds/billing.kind.d.ts +88 -0
- package/dist/kinds/billing.kind.d.ts.map +1 -0
- package/dist/kinds/billing.kind.js +48 -0
- package/dist/kinds/billing.kind.js.map +1 -0
- package/dist/kinds/build-job.kind.d.ts +381 -0
- package/dist/kinds/build-job.kind.d.ts.map +1 -0
- package/dist/kinds/build-job.kind.js +216 -0
- package/dist/kinds/build-job.kind.js.map +1 -0
- package/dist/kinds/cache.kind.d.ts +39 -92
- package/dist/kinds/cache.kind.d.ts.map +1 -1
- package/dist/kinds/cache.kind.js +26 -51
- package/dist/kinds/cache.kind.js.map +1 -1
- package/dist/kinds/cluster.kind.d.ts +154 -0
- package/dist/kinds/cluster.kind.d.ts.map +1 -0
- package/dist/kinds/cluster.kind.js +99 -0
- package/dist/kinds/cluster.kind.js.map +1 -0
- package/dist/kinds/compute-source.kind.d.ts +138 -0
- package/dist/kinds/compute-source.kind.d.ts.map +1 -0
- package/dist/kinds/compute-source.kind.js +145 -0
- package/dist/kinds/compute-source.kind.js.map +1 -0
- package/dist/kinds/compute-sources.descriptors.d.ts +45 -0
- package/dist/kinds/compute-sources.descriptors.d.ts.map +1 -0
- package/dist/kinds/compute-sources.descriptors.js +93 -0
- package/dist/kinds/compute-sources.descriptors.js.map +1 -0
- package/dist/kinds/container-registry.kind.d.ts +62 -0
- package/dist/kinds/container-registry.kind.d.ts.map +1 -0
- package/dist/kinds/container-registry.kind.js +47 -0
- package/dist/kinds/container-registry.kind.js.map +1 -0
- package/dist/kinds/database-migrator.kind.d.ts +6 -0
- package/dist/kinds/database-migrator.kind.d.ts.map +1 -0
- package/dist/kinds/database-migrator.kind.js +28 -0
- package/dist/kinds/database-migrator.kind.js.map +1 -0
- package/dist/kinds/database.kind.d.ts +114 -93
- package/dist/kinds/database.kind.d.ts.map +1 -1
- package/dist/kinds/database.kind.js +93 -54
- package/dist/kinds/database.kind.js.map +1 -1
- package/dist/kinds/deployment-provider.kind.d.ts +5 -0
- package/dist/kinds/deployment-provider.kind.d.ts.map +1 -0
- package/dist/kinds/deployment-provider.kind.js +11 -0
- package/dist/kinds/deployment-provider.kind.js.map +1 -0
- package/dist/kinds/discovery.d.ts +5 -12
- package/dist/kinds/discovery.d.ts.map +1 -1
- package/dist/kinds/discovery.js +5 -17
- package/dist/kinds/discovery.js.map +1 -1
- package/dist/kinds/dns.kind.d.ts +162 -0
- package/dist/kinds/dns.kind.d.ts.map +1 -0
- package/dist/kinds/dns.kind.js +54 -0
- package/dist/kinds/dns.kind.js.map +1 -0
- package/dist/kinds/drift.kind.d.ts +115 -0
- package/dist/kinds/drift.kind.d.ts.map +1 -0
- package/dist/kinds/drift.kind.js +60 -0
- package/dist/kinds/drift.kind.js.map +1 -0
- package/dist/kinds/edge-tls.kind.d.ts +194 -0
- package/dist/kinds/edge-tls.kind.d.ts.map +1 -0
- package/dist/kinds/edge-tls.kind.js +58 -0
- package/dist/kinds/edge-tls.kind.js.map +1 -0
- package/dist/kinds/firewall.kind.d.ts +92 -0
- package/dist/kinds/firewall.kind.d.ts.map +1 -0
- package/dist/kinds/firewall.kind.js +59 -0
- package/dist/kinds/firewall.kind.js.map +1 -0
- package/dist/kinds/git-hosting.kind.d.ts +36 -38
- package/dist/kinds/git-hosting.kind.d.ts.map +1 -1
- package/dist/kinds/git-hosting.kind.js +23 -34
- package/dist/kinds/git-hosting.kind.js.map +1 -1
- package/dist/kinds/index.d.ts +40 -15
- package/dist/kinds/index.d.ts.map +1 -1
- package/dist/kinds/index.js +39 -14
- package/dist/kinds/index.js.map +1 -1
- package/dist/kinds/inventory.kind.d.ts +326 -0
- package/dist/kinds/inventory.kind.d.ts.map +1 -0
- package/dist/kinds/inventory.kind.js +188 -0
- package/dist/kinds/inventory.kind.js.map +1 -0
- package/dist/kinds/load-balancer.kind.d.ts +135 -0
- package/dist/kinds/load-balancer.kind.d.ts.map +1 -0
- package/dist/kinds/load-balancer.kind.js +71 -0
- package/dist/kinds/load-balancer.kind.js.map +1 -0
- package/dist/kinds/logs.kind.d.ts +74 -3
- package/dist/kinds/logs.kind.d.ts.map +1 -1
- package/dist/kinds/logs.kind.js +26 -17
- package/dist/kinds/logs.kind.js.map +1 -1
- package/dist/kinds/nfs.kind.d.ts +67 -0
- package/dist/kinds/nfs.kind.d.ts.map +1 -0
- package/dist/kinds/nfs.kind.js +45 -0
- package/dist/kinds/nfs.kind.js.map +1 -0
- package/dist/kinds/node-pool.kind.d.ts +134 -0
- package/dist/kinds/node-pool.kind.d.ts.map +1 -0
- package/dist/kinds/node-pool.kind.js +88 -0
- package/dist/kinds/node-pool.kind.js.map +1 -0
- package/dist/kinds/object-storage.kind.d.ts +50 -24
- package/dist/kinds/object-storage.kind.d.ts.map +1 -1
- package/dist/kinds/object-storage.kind.js +40 -23
- package/dist/kinds/object-storage.kind.js.map +1 -1
- package/dist/kinds/observability.kind.d.ts +104 -6
- package/dist/kinds/observability.kind.d.ts.map +1 -1
- package/dist/kinds/observability.kind.js +67 -9
- package/dist/kinds/observability.kind.js.map +1 -1
- package/dist/kinds/package-registry.kind.d.ts +27 -31
- package/dist/kinds/package-registry.kind.d.ts.map +1 -1
- package/dist/kinds/package-registry.kind.js +13 -26
- package/dist/kinds/package-registry.kind.js.map +1 -1
- package/dist/kinds/queue.kind.d.ts +67 -63
- package/dist/kinds/queue.kind.d.ts.map +1 -1
- package/dist/kinds/queue.kind.js +55 -33
- package/dist/kinds/queue.kind.js.map +1 -1
- package/dist/kinds/read-descriptor.d.ts +15 -0
- package/dist/kinds/read-descriptor.d.ts.map +1 -0
- package/dist/kinds/read-descriptor.js +11 -0
- package/dist/kinds/read-descriptor.js.map +1 -0
- package/dist/kinds/rum.kind.d.ts +36 -6
- package/dist/kinds/rum.kind.d.ts.map +1 -1
- package/dist/kinds/rum.kind.js +6 -7
- package/dist/kinds/rum.kind.js.map +1 -1
- package/dist/kinds/sandbox.kind.d.ts +136 -36
- package/dist/kinds/sandbox.kind.d.ts.map +1 -1
- package/dist/kinds/sandbox.kind.js +80 -34
- package/dist/kinds/sandbox.kind.js.map +1 -1
- package/dist/kinds/select-compute-source.d.ts +72 -0
- package/dist/kinds/select-compute-source.d.ts.map +1 -0
- package/dist/kinds/select-compute-source.js +170 -0
- package/dist/kinds/select-compute-source.js.map +1 -0
- package/dist/kinds/service-release.kind.d.ts +771 -0
- package/dist/kinds/service-release.kind.d.ts.map +1 -0
- package/dist/kinds/service-release.kind.js +676 -0
- package/dist/kinds/service-release.kind.js.map +1 -0
- package/dist/kinds/spend-guard.kind.d.ts +40 -0
- package/dist/kinds/spend-guard.kind.d.ts.map +1 -0
- package/dist/kinds/spend-guard.kind.js +133 -0
- package/dist/kinds/spend-guard.kind.js.map +1 -0
- package/dist/kinds/utilization.kind.d.ts +88 -0
- package/dist/kinds/utilization.kind.d.ts.map +1 -0
- package/dist/kinds/utilization.kind.js +62 -0
- package/dist/kinds/utilization.kind.js.map +1 -0
- package/dist/kinds/volume.kind.d.ts +54 -0
- package/dist/kinds/volume.kind.d.ts.map +1 -0
- package/dist/kinds/volume.kind.js +39 -0
- package/dist/kinds/volume.kind.js.map +1 -0
- package/dist/kinds/vpc.kind.d.ts +61 -0
- package/dist/kinds/vpc.kind.d.ts.map +1 -0
- package/dist/kinds/vpc.kind.js +51 -0
- package/dist/kinds/vpc.kind.js.map +1 -0
- package/dist/kinds/web-app.kind.d.ts +115 -45
- package/dist/kinds/web-app.kind.d.ts.map +1 -1
- package/dist/kinds/web-app.kind.js +69 -42
- package/dist/kinds/web-app.kind.js.map +1 -1
- package/dist/kinds/worker.kind.d.ts +291 -188
- package/dist/kinds/worker.kind.d.ts.map +1 -1
- package/dist/kinds/worker.kind.js +45 -123
- package/dist/kinds/worker.kind.js.map +1 -1
- package/dist/schemas/database-migration.d.ts +173 -0
- package/dist/schemas/database-migration.d.ts.map +1 -0
- package/dist/schemas/database-migration.js +88 -0
- package/dist/schemas/database-migration.js.map +1 -0
- package/dist/schemas/deployment-environment.d.ts +11 -0
- package/dist/schemas/deployment-environment.d.ts.map +1 -0
- package/dist/schemas/deployment-environment.js +9 -0
- package/dist/schemas/deployment-environment.js.map +1 -0
- package/dist/schemas/deployment-provider.d.ts +336 -0
- package/dist/schemas/deployment-provider.d.ts.map +1 -0
- package/dist/schemas/deployment-provider.js +198 -0
- package/dist/schemas/deployment-provider.js.map +1 -0
- package/dist/schemas/log-stream.d.ts +27 -0
- package/dist/schemas/log-stream.d.ts.map +1 -0
- package/dist/schemas/log-stream.js +31 -0
- package/dist/schemas/log-stream.js.map +1 -0
- package/dist/schemas/spend-guard.d.ts +155 -0
- package/dist/schemas/spend-guard.d.ts.map +1 -0
- package/dist/schemas/spend-guard.js +61 -0
- package/dist/schemas/spend-guard.js.map +1 -0
- package/dist/schemas.d.ts +190 -20
- package/dist/schemas.d.ts.map +1 -1
- package/dist/schemas.js +137 -31
- package/dist/schemas.js.map +1 -1
- package/dist/service.d.ts +87 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +199 -0
- package/dist/service.js.map +1 -0
- package/dist/settle-work.d.ts +20 -0
- package/dist/settle-work.d.ts.map +1 -0
- package/dist/settle-work.js +22 -0
- package/dist/settle-work.js.map +1 -0
- package/dist/web-app-projection.d.ts +132 -0
- package/dist/web-app-projection.d.ts.map +1 -0
- package/dist/web-app-projection.js +93 -0
- package/dist/web-app-projection.js.map +1 -0
- package/package.json +89 -39
- package/SPEC.md +0 -169
- package/src/bootstrap/index.ts +0 -15
- package/src/bootstrap/seed.descriptor.ts +0 -24
- package/src/bootstrap/seed.impl-shape.ts +0 -5
- package/src/bootstrap/seed.kind.ts +0 -26
- package/src/bootstrap/seed.runner.ts +0 -87
- package/src/credentials/resolve.ts +0 -205
- package/src/deployment.ts +0 -57
- package/src/index.ts +0 -149
- package/src/infra.plugin.ts +0 -54
- package/src/kinds/alerts.kind.ts +0 -164
- package/src/kinds/artifact.kind.ts +0 -96
- package/src/kinds/cache.kind.ts +0 -104
- package/src/kinds/database.kind.ts +0 -120
- package/src/kinds/discovery.ts +0 -26
- package/src/kinds/git-hosting.kind.ts +0 -100
- package/src/kinds/index.ts +0 -139
- package/src/kinds/logs.kind.ts +0 -104
- package/src/kinds/object-storage.kind.ts +0 -101
- package/src/kinds/observability.kind.ts +0 -178
- package/src/kinds/package-registry.kind.ts +0 -95
- package/src/kinds/queue.kind.ts +0 -102
- package/src/kinds/rum.kind.ts +0 -135
- package/src/kinds/sandbox.kind.ts +0 -115
- package/src/kinds/web-app.kind.ts +0 -103
- package/src/kinds/worker.kind.ts +0 -203
- 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,80 +1,96 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibesdotdev/infra-core",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"
|
|
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
|
-
"repository": {
|
|
50
|
-
"type": "git",
|
|
51
|
-
"url": "git+https://github.com/vibesdotdev/monorepo.git",
|
|
52
|
-
"directory": "packages/infra-core"
|
|
53
|
-
},
|
|
54
|
-
"dependencies": {
|
|
55
|
-
"@vibesdotdev/logging": "0.0.1",
|
|
56
|
-
"@vibesdotdev/runtime": "0.0.1",
|
|
57
|
-
"zod": "^4.3.6"
|
|
58
|
-
},
|
|
59
|
-
"scripts": {
|
|
60
|
-
"test": "bun test",
|
|
61
|
-
"check": "bun --bun tsc -p tsconfig.json --noEmit",
|
|
62
|
-
"build": "tsc -p tsconfig.json"
|
|
63
|
-
},
|
|
64
|
-
"license": "MIT",
|
|
65
89
|
"files": [
|
|
66
90
|
"dist",
|
|
67
|
-
"src",
|
|
68
|
-
"bin",
|
|
69
91
|
"README.md",
|
|
70
|
-
"SPEC.md",
|
|
71
92
|
"LICENSE",
|
|
72
|
-
"!
|
|
73
|
-
"!src/**/__stubs__/**",
|
|
74
|
-
"!src/**/*.test.ts",
|
|
75
|
-
"!src/**/*.test.tsx",
|
|
76
|
-
"!src/**/*.spec.ts",
|
|
77
|
-
"!src/**/*.spec.tsx",
|
|
93
|
+
"!dist/**/*.tsbuildinfo",
|
|
78
94
|
"!dist/**/__tests__/**",
|
|
79
95
|
"!dist/**/__stubs__/**",
|
|
80
96
|
"!dist/**/*.test.js",
|
|
@@ -86,7 +102,41 @@
|
|
|
86
102
|
"!dist/**/*.spec.d.ts",
|
|
87
103
|
"!dist/**/*.spec.d.ts.map"
|
|
88
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
|
+
},
|
|
89
120
|
"vibes": {
|
|
90
|
-
"visibility": "public
|
|
121
|
+
"visibility": "public",
|
|
122
|
+
"registry": {
|
|
123
|
+
"repositoryId": "4b1374d4-6830-4bfd-98e3-de66416368a8",
|
|
124
|
+
"directory": "infra-core"
|
|
125
|
+
},
|
|
126
|
+
"handedRuntimeLogging": true
|
|
127
|
+
},
|
|
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",
|
|
133
|
+
"bugs": {
|
|
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"
|
|
91
141
|
}
|
|
92
142
|
}
|
package/SPEC.md
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
# @vibesdotdev/infra-core
|
|
2
|
-
|
|
3
|
-
Provider-agnostic contract for deployable infrastructure. Defines the runtime
|
|
4
|
-
kinds, descriptor schemas, and deployment factories that adapter packages and
|
|
5
|
-
consuming apps share. Adapter packages
|
|
6
|
-
([`infra-cloudflare`](../infra-cloudflare/SPEC.md),
|
|
7
|
-
[`infra-doks`](../infra-doks/SPEC.md)) implement provider-specific behavior
|
|
8
|
-
against these kinds; consumed by per-app `deployment.config.ts` files, by
|
|
9
|
-
`*.infra.ts` resource declarations under workspace `infra/`, by
|
|
10
|
-
[`secrets`](../secrets/SPEC.md) for env-requirement resolution, and by
|
|
11
|
-
[`deploy`](../deploy/SPEC.md) for orchestration.
|
|
12
|
-
|
|
13
|
-
## Owns
|
|
14
|
-
|
|
15
|
-
- **Runtime kinds:** `infra/web-app`, `infra/worker`, `infra/database`,
|
|
16
|
-
`infra/queue`, `infra/cache`, `infra/object-storage`, `infra/sandbox`,
|
|
17
|
-
`infra/git-hosting`, `infra/package-registry`.
|
|
18
|
-
- **Plugin descriptors registered by the plugin:** `infraPlugin` (id `infra`)
|
|
19
|
-
registers all 9 kinds with `discoveryPattern: "**/*.infra.ts"` and
|
|
20
|
-
pass-through default implementations exposing the validated descriptor as
|
|
21
|
-
`config`.
|
|
22
|
-
- **Schemas** (`./schemas`): atomic Zod schemas — provider enum, runtime enum,
|
|
23
|
-
origin, build, env requirement, dependency, upstream — and the assembled
|
|
24
|
-
`appDeploymentSchema`. Single source of truth for cross-cutting shapes;
|
|
25
|
-
kind descriptor schemas compose from these primitives.
|
|
26
|
-
- **Kind descriptors** (`./kinds`): one file per kind, each defining a Zod
|
|
27
|
-
descriptor schema (composed from `./schemas`) and a pass-through default
|
|
28
|
-
`Implementation` class wired through `createRuntimeKind`.
|
|
29
|
-
- **Deployment factories** (`./deployment`): `createAppDeployment`,
|
|
30
|
-
`createDeploymentOrigin`, `createDeploymentEnvRequirement`,
|
|
31
|
-
`createDeploymentDependency`, `getPrimaryOrigin`, `getUpstreamOriginEnv`.
|
|
32
|
-
These produce the validated objects authored in per-app
|
|
33
|
-
`deployment.config.ts` files.
|
|
34
|
-
|
|
35
|
-
## Does not own
|
|
36
|
-
|
|
37
|
-
- Cloudflare Workers / Workers / Queues / R2 / KV implementations →
|
|
38
|
-
[`infra-cloudflare`](../infra-cloudflare/SPEC.md).
|
|
39
|
-
- DigitalOcean App Platform / DOKS / Spaces / Managed DB / Managed Redis
|
|
40
|
-
implementations → [`infra-doks`](../infra-doks/SPEC.md).
|
|
41
|
-
- Standalone Kubernetes / Docker / DO Droplet implementations — no adapter
|
|
42
|
-
package exists yet (see migration debt).
|
|
43
|
-
- Deployment orchestration, manifest generation, env materialization, and the
|
|
44
|
-
`infra/` workspace tree (`infra/manifest.ts`, `infra/generate.ts`,
|
|
45
|
-
`infra/resources/`) → [`deploy`](../deploy/SPEC.md). Per-app
|
|
46
|
-
`deployment.config.ts` files live in `apps/<app>-web/`.
|
|
47
|
-
- Env-requirement resolution against descriptors →
|
|
48
|
-
[`secrets`](../secrets/SPEC.md).
|
|
49
|
-
- AI inference selection. Inference is an `ai/provider` + `ai/adapter`
|
|
50
|
-
concern — see [`ai`](../ai/SPEC.md) and
|
|
51
|
-
[`ai-providers`](../ai-providers/SPEC.md). No `infra/inference` kind exists
|
|
52
|
-
or should be added.
|
|
53
|
-
|
|
54
|
-
## Hard rules
|
|
55
|
-
|
|
56
|
-
- Core never imports adapter packages. Dependencies are exactly
|
|
57
|
-
`@vibesdotdev/runtime` + `zod`.
|
|
58
|
-
- Shared shapes live in `./schemas`. Kind descriptor schemas compose from
|
|
59
|
-
`./schemas`. Do not redeclare an env-requirement schema or any other
|
|
60
|
-
primitive inside a kind file.
|
|
61
|
-
- New deployable resource types are added as new kinds in `src/kinds/`.
|
|
62
|
-
Provider-specific concepts (Wrangler bindings, Helm values, Spaces CORS,
|
|
63
|
-
CF Sandbox outbound proxy specifics, etc.) belong in adapter packages
|
|
64
|
-
registering implementations against the existing kinds.
|
|
65
|
-
- Inference is not an infra kind. New inference strategies (CF Unified
|
|
66
|
-
Inference, Agents bindings, etc.) are added as `ai/provider` descriptors +
|
|
67
|
-
adapters in [`ai-providers`](../ai-providers/SPEC.md).
|
|
68
|
-
- Default implementations are inert pass-throughs that expose the validated
|
|
69
|
-
descriptor as `config`. Real provider behavior must come from an adapter
|
|
70
|
-
package registering an implementation for the same kind.
|
|
71
|
-
- Kind discovery pattern is `**/*.infra.ts` for every kind. Apps and the
|
|
72
|
-
`infra/` workspace declare concrete resources in `*.infra.ts` files; do
|
|
73
|
-
not change the pattern per kind.
|
|
74
|
-
- Pure TypeScript only. No `$env`, `$server`, `$app`, `@sveltejs/kit`,
|
|
75
|
-
Svelte, Drizzle, or filesystem APIs in this package.
|
|
76
|
-
- `deploymentProviderSchema` enumerates exactly the providers backed by an
|
|
77
|
-
active adapter package. Adding a provider value without a corresponding
|
|
78
|
-
adapter is a contract lie — add the adapter or omit the value.
|
|
79
|
-
- `appDeploymentSchema` cross-validates provider against runtime and origin
|
|
80
|
-
hostnames (e.g. `cloudflare-workers` requires `edge`; `digitalocean-app`
|
|
81
|
-
requires `node` or `worker`). Nonsense combinations fail at parse time,
|
|
82
|
-
not deploy time.
|
|
83
|
-
|
|
84
|
-
## Migration debt (completed)
|
|
85
|
-
|
|
86
|
-
- [x] `envRequirementSchema` is locally redeclared in
|
|
87
|
-
`src/kinds/web-app.kind.ts`, `src/kinds/worker.kind.ts`, and
|
|
88
|
-
`src/kinds/sandbox.kind.ts` instead of imported from `./schemas`.
|
|
89
|
-
**Resolution:** Kinds now import `deploymentEnvRequirementSchema` from `./schemas`.
|
|
90
|
-
All kind files use `import { z } from 'zod/v4'` style for consistency.
|
|
91
|
-
- [x] `package.json#exports` includes `"./kinds/*": "./src/kinds/*.ts"`.
|
|
92
|
-
**Resolution:** Wildcard removed. All 26 consumers updated to use `./kinds`
|
|
93
|
-
aggregate subpath instead of deep imports.
|
|
94
|
-
- [x] `deploymentProviderSchema` declares `digitalocean-droplet`,
|
|
95
|
-
`digitalocean-kubernetes`, `kubernetes`, and `docker`, but only
|
|
96
|
-
`digitalocean-app` (via `infra-doks`) and `cloudflare-workers` (via
|
|
97
|
-
`infra-cloudflare`) have active adapter implementations.
|
|
98
|
-
**Resolution:** Trimmed to only `cloudflare-workers` and `digitalocean-app`.
|
|
99
|
-
- [x] `appDeploymentSchema` does not cross-validate provider against runtime.
|
|
100
|
-
**Resolution:** Added `.refine()` enforcing provider × runtime matrix:
|
|
101
|
-
- `cloudflare-workers`: `edge`, `worker`
|
|
102
|
-
- `digitalocean-app`: `node`, `worker`
|
|
103
|
-
- [x] `discoveryPattern` and `extractStem` are duplicated identically across all
|
|
104
|
-
9 kind files.
|
|
105
|
-
**Resolution:** Extracted shared helper in `src/kinds/discovery.ts` with
|
|
106
|
-
`INFRA_DISCOVERY_PATTERN` constant and `extractStem()` function. All 7
|
|
107
|
-
kind files now import and reuse.
|
|
108
|
-
- [x] `WebAppDescriptor` and `appDeploymentSchema` describe overlapping concepts
|
|
109
|
-
(`appDir`, `outputDir`, `runtime`, `env`).
|
|
110
|
-
**Resolution:** The parallel surfaces are **intentional**:
|
|
111
|
-
- `WebAppDescriptor` (runtime-discovered resource) lives at `infra/web-app`
|
|
112
|
-
kind with `adapter`, `domain`, `env`, etc. Used by runtime discovery.
|
|
113
|
-
- `appDeploymentSchema` (authored deployment config) lives in `./schemas` and
|
|
114
|
-
is used by `deployment.config.ts` files with `provider`, `build`, `origins`,
|
|
115
|
-
etc. Both shapes reference similar fields but serve different consumers.
|
|
116
|
-
No merging; keep parallel with potential future composition via shared
|
|
117
|
-
fragment schemas if divergence becomes problematic.
|
|
118
|
-
|
|
119
|
-
## Migration debt
|
|
120
|
-
|
|
121
|
-
- [x] **`adapter` discriminator → `config` field migration.** All 7 original
|
|
122
|
-
infra kinds declare `adapter: z.string()` as a top-level discriminator field.
|
|
123
|
-
This field is not in `RuntimeDescriptorSchema` and `createRuntimeAsset` could not
|
|
124
|
-
validate it. Every infra kind has moved `adapter` and all adapter-specific
|
|
125
|
-
fields into a `config` object validated against the kind's registered
|
|
126
|
-
`descriptorSchema`. **Affected kinds:** `infra/web-app`, `infra/worker`,
|
|
127
|
-
`infra/database`, `infra/queue`, `infra/cache`, `infra/object-storage`,
|
|
128
|
-
`infra/sandbox`, `infra/git-hosting`, `infra/package-registry`.
|
|
129
|
-
- [x] `infra/web-app`: added `WebAppConfigSchema` union
|
|
130
|
-
(cloudflare-workers, digitalocean-apps)
|
|
131
|
-
- [x] `infra/worker`: added `WorkerConfigSchema` union
|
|
132
|
-
(doks-deployment, cloudflare-workers)
|
|
133
|
-
- [x] `infra/database`: added `DatabaseConfigSchema` union
|
|
134
|
-
(doks-statefulset, do-managed-postgres, turso)
|
|
135
|
-
- [x] `infra/queue`: added `QueueConfigSchema` union
|
|
136
|
-
(doks-statefulset, cloudflare-queues)
|
|
137
|
-
- [x] `infra/cache`: added `CacheConfigSchema` union
|
|
138
|
-
(do-managed-redis, cloudflare-kv, doks-redis)
|
|
139
|
-
- [x] `infra/object-storage`: added `ObjectStorageConfigSchema` union
|
|
140
|
-
(do-spaces, cloudflare-r2)
|
|
141
|
-
- [x] `infra/sandbox`: already had all variants (cloudflare-sandbox, docker,
|
|
142
|
-
digitalocean-droplet)
|
|
143
|
-
- [x] `infra/git-hosting`: added `GitHostingConfigSchema` union (gitea-doks)
|
|
144
|
-
- [x] `infra/package-registry`: added `PackageRegistryConfigSchema` union
|
|
145
|
-
(verdaccio-doks)
|
|
146
|
-
|
|
147
|
-
## Public entrypoints
|
|
148
|
-
|
|
149
|
-
`.`, `./schemas`, `./kinds`, `./deployment`, `./plugin`.
|
|
150
|
-
|
|
151
|
-
Wildcard / migration-era subpaths: `./kinds/*` — do not normalize new code
|
|
152
|
-
against this.
|
|
153
|
-
|
|
154
|
-
## Verification
|
|
155
|
-
|
|
156
|
-
`bun test` from `packages/infra-core`. Covers all 9 schemas (accept-valid +
|
|
157
|
-
reject-invalid), all 9 kind descriptor structures, plugin registration shape
|
|
158
|
-
(id, kinds count, kind IDs, discovery pattern, no dependencies, no lifecycle
|
|
159
|
-
hooks), and all 6 factory functions. `bun --bun tsc -p tsconfig.json
|
|
160
|
-
--noEmit` is the type gate.
|
|
161
|
-
|
|
162
|
-
## Links
|
|
163
|
-
|
|
164
|
-
- [infra-cloudflare/SPEC.md](../infra-cloudflare/SPEC.md)
|
|
165
|
-
- [infra-doks/SPEC.md](../infra-doks/SPEC.md)
|
|
166
|
-
- [deploy/SPEC.md](../deploy/SPEC.md)
|
|
167
|
-
- [secrets/SPEC.md](../secrets/SPEC.md)
|
|
168
|
-
- [runtime/SPEC.md](../runtime/SPEC.md)
|
|
169
|
-
- [ai/SPEC.md](../ai/SPEC.md), [ai-providers/SPEC.md](../ai-providers/SPEC.md)
|
package/src/bootstrap/index.ts
DELETED
|
@@ -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,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
|
-
};
|