@figulus/schema 0.4.0-alpha-dev → 0.5.0-alpha-dev-2
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/.openapi-meta/index.ts +12 -0
- package/dist/core/entities/figspec.d.ts +659 -0
- package/dist/core/entities/figspec.d.ts.map +1 -0
- package/dist/core/entities/figspec.js +73 -0
- package/dist/core/entities/figspec.js.map +1 -0
- package/dist/core/entities/figstack.d.ts +139 -0
- package/dist/core/entities/figstack.d.ts.map +1 -0
- package/dist/core/entities/figstack.js +79 -0
- package/dist/core/entities/figstack.js.map +1 -0
- package/dist/core/entities/index.d.ts +3 -0
- package/dist/core/entities/index.d.ts.map +1 -0
- package/dist/core/entities/index.js +3 -0
- package/dist/core/entities/index.js.map +1 -0
- package/dist/core/execute.d.ts +64 -0
- package/dist/core/execute.d.ts.map +1 -0
- package/dist/core/execute.js +45 -0
- package/dist/core/execute.js.map +1 -0
- package/dist/core/generic.d.ts +35 -0
- package/dist/core/generic.d.ts.map +1 -0
- package/dist/core/generic.js +28 -0
- package/dist/core/generic.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/primitives.d.ts +3 -0
- package/dist/core/primitives.d.ts.map +1 -0
- package/dist/core/primitives.js +11 -0
- package/dist/core/primitives.js.map +1 -0
- package/dist/core/volumes.d.ts +160 -0
- package/dist/core/volumes.d.ts.map +1 -0
- package/dist/core/volumes.js +100 -0
- package/dist/core/volumes.js.map +1 -0
- package/dist/engine/deprecated/index.d.ts +2 -0
- package/dist/engine/deprecated/index.d.ts.map +1 -0
- package/dist/engine/deprecated/index.js +2 -0
- package/dist/engine/deprecated/index.js.map +1 -0
- package/dist/engine/deprecated/run-request.d.ts +73 -0
- package/dist/engine/deprecated/run-request.d.ts.map +1 -0
- package/dist/engine/deprecated/run-request.js +47 -0
- package/dist/engine/deprecated/run-request.js.map +1 -0
- package/dist/engine/dry-run.d.ts +15 -0
- package/dist/engine/dry-run.d.ts.map +1 -0
- package/dist/engine/dry-run.js +12 -0
- package/dist/engine/dry-run.js.map +1 -0
- package/dist/engine/health.d.ts +11 -0
- package/dist/engine/health.d.ts.map +1 -0
- package/dist/engine/health.js +9 -0
- package/dist/engine/health.js.map +1 -0
- package/dist/engine/images.d.ts +49 -0
- package/dist/engine/images.d.ts.map +1 -0
- package/dist/engine/images.js +44 -0
- package/dist/engine/images.js.map +1 -0
- package/dist/engine/index.d.ts +9 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +9 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/paths/containers.d.ts +8 -0
- package/dist/engine/paths/containers.d.ts.map +1 -0
- package/dist/engine/paths/containers.js +297 -0
- package/dist/engine/paths/containers.js.map +1 -0
- package/dist/engine/paths/dry-run.d.ts +3 -0
- package/dist/engine/paths/dry-run.d.ts.map +1 -0
- package/dist/engine/paths/dry-run.js +43 -0
- package/dist/engine/paths/dry-run.js.map +1 -0
- package/dist/engine/paths/health.d.ts +3 -0
- package/dist/engine/paths/health.d.ts.map +1 -0
- package/dist/engine/paths/health.js +36 -0
- package/dist/engine/paths/health.js.map +1 -0
- package/dist/engine/paths/images.d.ts +5 -0
- package/dist/engine/paths/images.d.ts.map +1 -0
- package/dist/engine/paths/images.js +144 -0
- package/dist/engine/paths/images.js.map +1 -0
- package/dist/engine/paths/index.d.ts +8 -0
- package/dist/engine/paths/index.d.ts.map +1 -0
- package/dist/engine/paths/index.js +8 -0
- package/dist/engine/paths/index.js.map +1 -0
- package/dist/engine/paths/sessions.d.ts +10 -0
- package/dist/engine/paths/sessions.d.ts.map +1 -0
- package/dist/engine/paths/sessions.js +484 -0
- package/dist/engine/paths/sessions.js.map +1 -0
- package/dist/engine/paths/stacks.d.ts +6 -0
- package/dist/engine/paths/stacks.d.ts.map +1 -0
- package/dist/engine/paths/stacks.js +175 -0
- package/dist/engine/paths/stacks.js.map +1 -0
- package/dist/engine/paths/volumes.d.ts +6 -0
- package/dist/engine/paths/volumes.d.ts.map +1 -0
- package/dist/engine/paths/volumes.js +164 -0
- package/dist/engine/paths/volumes.js.map +1 -0
- package/dist/engine/response.d.ts +8 -0
- package/dist/engine/response.d.ts.map +1 -0
- package/dist/engine/response.js +9 -0
- package/dist/engine/response.js.map +1 -0
- package/dist/engine/sessions.d.ts +343 -0
- package/dist/engine/sessions.d.ts.map +1 -0
- package/dist/engine/sessions.js +118 -0
- package/dist/engine/sessions.js.map +1 -0
- package/dist/engine/volumes.d.ts +52 -0
- package/dist/engine/volumes.d.ts.map +1 -0
- package/dist/engine/volumes.js +39 -0
- package/dist/engine/volumes.js.map +1 -0
- package/dist/index.d.ts +2 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -8
- package/dist/index.js.map +1 -1
- package/dist/registry/index.d.ts +3 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +3 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/json-schema.d.ts +82 -0
- package/dist/registry/json-schema.d.ts.map +1 -0
- package/dist/registry/json-schema.js +149 -0
- package/dist/registry/json-schema.js.map +1 -0
- package/dist/registry/metadata.d.ts +216 -0
- package/dist/registry/metadata.d.ts.map +1 -0
- package/dist/registry/metadata.js +143 -0
- package/dist/registry/metadata.js.map +1 -0
- package/package.json +12 -4
- package/scripts/fix-openapi-3.1.ts +183 -0
- package/scripts/generate-openapi-data.ts +51 -0
- package/scripts/generate-openapi-meta.ts +540 -0
- package/src/core/entities/figspec.ts +94 -0
- package/src/core/entities/figstack.ts +101 -0
- package/src/core/entities/index.ts +2 -0
- package/src/core/execute.ts +66 -0
- package/src/core/generic.ts +38 -0
- package/src/core/index.ts +5 -0
- package/src/core/primitives.ts +12 -0
- package/src/core/volumes.ts +124 -0
- package/src/engine/deprecated/index.ts +1 -0
- package/src/engine/deprecated/run-request.ts +53 -0
- package/src/engine/dry-run.ts +14 -0
- package/src/engine/health.ts +11 -0
- package/src/engine/images.ts +58 -0
- package/src/engine/index.ts +8 -0
- package/src/engine/paths/containers.ts +304 -0
- package/src/engine/paths/dry-run.ts +44 -0
- package/src/engine/paths/health.ts +37 -0
- package/src/engine/paths/images.ts +148 -0
- package/src/engine/paths/index.ts +7 -0
- package/src/engine/paths/sessions.ts +493 -0
- package/src/engine/paths/stacks.ts +179 -0
- package/src/engine/paths/volumes.ts +168 -0
- package/src/engine/response.ts +11 -0
- package/src/engine/sessions.ts +146 -0
- package/src/engine/volumes.ts +53 -0
- package/src/index.ts +3 -8
- package/src/registry/index.ts +2 -0
- package/src/registry/json-schema.ts +178 -0
- package/src/registry/metadata.ts +181 -0
- package/tests/figspec.test.ts +1 -1
- package/tests/schemas.test.ts +31 -31
- package/dist/figspec.d.ts +0 -4394
- package/dist/figspec.d.ts.map +0 -1
- package/dist/figspec.js +0 -214
- package/dist/figspec.js.map +0 -1
- package/dist/figstack.d.ts +0 -419
- package/dist/figstack.d.ts.map +0 -1
- package/dist/figstack.js +0 -72
- package/dist/figstack.js.map +0 -1
- package/dist/health.d.ts +0 -16
- package/dist/health.d.ts.map +0 -1
- package/dist/health.js +0 -7
- package/dist/health.js.map +0 -1
- package/dist/image.d.ts +0 -115
- package/dist/image.d.ts.map +0 -1
- package/dist/image.js +0 -42
- package/dist/image.js.map +0 -1
- package/dist/run-request.d.ts +0 -244
- package/dist/run-request.d.ts.map +0 -1
- package/dist/run-request.js +0 -43
- package/dist/run-request.js.map +0 -1
- package/dist/session.d.ts +0 -447
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -78
- package/dist/session.js.map +0 -1
- package/dist/shared.d.ts +0 -90
- package/dist/shared.d.ts.map +0 -1
- package/dist/shared.js +0 -41
- package/dist/shared.js.map +0 -1
- package/dist/volume.d.ts +0 -140
- package/dist/volume.d.ts.map +0 -1
- package/dist/volume.js +0 -37
- package/dist/volume.js.map +0 -1
- package/src/figspec.ts +0 -279
- package/src/figstack.ts +0 -92
- package/src/health.ts +0 -8
- package/src/image.ts +0 -55
- package/src/run-request.ts +0 -55
- package/src/session.ts +0 -101
- package/src/shared.ts +0 -56
- package/src/volume.ts +0 -50
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi";
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { buildExecuteStepSchema, executeMainCmdSchema, executeShutdownCmdSchema, executeStartupCmdSchema, scheduledCmdSchema } from '../execute.js';
|
|
4
|
+
import { installGroupSchema, portMappingSchema } from '../generic.js';
|
|
5
|
+
import { buildVolumeMountSchema, runVolumeMountSchema } from '../volumes.js';
|
|
6
|
+
extendZodWithOpenApi(z);
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
// Execute model
|
|
9
|
+
// ---------------------------------------------------------------------------
|
|
10
|
+
export const figSpecExecuteSchema = z.object({
|
|
11
|
+
startup: z.array(executeStartupCmdSchema).optional().describe("Commands that run before main (sync commands block main start)"),
|
|
12
|
+
main: executeMainCmdSchema,
|
|
13
|
+
shutdown: z.array(executeShutdownCmdSchema).optional().describe("Commands that run before the container stops"),
|
|
14
|
+
scheduled: z.array(scheduledCmdSchema).optional(),
|
|
15
|
+
}).openapi("FigSpecExecute");
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
// Build spec
|
|
18
|
+
// ---------------------------------------------------------------------------
|
|
19
|
+
export const figSpecBuildBaseSchema = z.object({
|
|
20
|
+
schemaVersion: z.string().optional(),
|
|
21
|
+
specName: z.string().optional(),
|
|
22
|
+
packagesToInstall: z.array(installGroupSchema).optional(),
|
|
23
|
+
platform: z.string().optional().describe("Target platform, e.g. \"linux/amd64\" or \"linux/arm64\"").openapi({ example: "linux/amd64" }),
|
|
24
|
+
env: z.record(z.string(), z.string()).optional().describe("Build-time environment variables"),
|
|
25
|
+
volumes: z.array(buildVolumeMountSchema).optional(),
|
|
26
|
+
execute: z.array(buildExecuteStepSchema).optional().describe("Ordered list of RUN instructions; each step is a separate cacheable layer"),
|
|
27
|
+
workDir: z.string().optional().describe("Working directory inside the image"),
|
|
28
|
+
user: z.string().optional().describe("User to run build commands as (e.g. \"root\")"),
|
|
29
|
+
}).openapi("FigSpecBuildBase");
|
|
30
|
+
export const figSpecBuildStandaloneSchema = figSpecBuildBaseSchema.extend({
|
|
31
|
+
baseImage: z.string(),
|
|
32
|
+
}).openapi("FigSpecBuildStandalone");
|
|
33
|
+
export const figSpecBuildWithBaseSpecSchema = figSpecBuildBaseSchema.extend({
|
|
34
|
+
baseSpec: z.string(),
|
|
35
|
+
baseImage: z.string().optional(),
|
|
36
|
+
}).openapi("FigSpecBuildWithBaseSpec");
|
|
37
|
+
export const figSpecBuildSchema = z.union([
|
|
38
|
+
figSpecBuildStandaloneSchema,
|
|
39
|
+
figSpecBuildWithBaseSpecSchema,
|
|
40
|
+
]);
|
|
41
|
+
// ---------------------------------------------------------------------------
|
|
42
|
+
// Run spec
|
|
43
|
+
// ---------------------------------------------------------------------------
|
|
44
|
+
export const figSpecRunSchema = z.object({
|
|
45
|
+
schemaVersion: z.string().optional(),
|
|
46
|
+
specName: z.string().optional(),
|
|
47
|
+
execute: figSpecExecuteSchema,
|
|
48
|
+
env: z.record(z.string(), z.string()).optional(),
|
|
49
|
+
secrets: z.record(z.string(), z.string()).optional().describe("Secret references: env_name → \"vault:path#field\""),
|
|
50
|
+
volumes: z.array(runVolumeMountSchema).optional(),
|
|
51
|
+
workDir: z.string().optional(),
|
|
52
|
+
user: z.string().optional(),
|
|
53
|
+
ports: z.array(portMappingSchema).optional(),
|
|
54
|
+
}).openapi("FigSpecRun");
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
// Top-level Figspec document
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
export const figSpecBuildInputSchema = z.union([
|
|
59
|
+
figSpecBuildSchema,
|
|
60
|
+
z.string(),
|
|
61
|
+
z.array(z.string()),
|
|
62
|
+
]).openapi("FigSpecBuildInput");
|
|
63
|
+
export const figSpecRunInputSchema = z.union([
|
|
64
|
+
figSpecRunSchema,
|
|
65
|
+
z.string(),
|
|
66
|
+
]).openapi("FigSpecRunInput");
|
|
67
|
+
export const figSpecSchema = z.object({
|
|
68
|
+
schemaVersion: z.string(),
|
|
69
|
+
specName: z.string().optional(),
|
|
70
|
+
build: figSpecBuildInputSchema,
|
|
71
|
+
run: figSpecRunInputSchema.optional(),
|
|
72
|
+
}).openapi("FigSpec");
|
|
73
|
+
//# sourceMappingURL=figspec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figspec.js","sourceRoot":"","sources":["../../../src/core/entities/figspec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const figStackDependencySchema: z.ZodObject<{
|
|
3
|
+
name: z.ZodString;
|
|
4
|
+
condition: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
5
|
+
started: "started";
|
|
6
|
+
healthy: "healthy";
|
|
7
|
+
completed: "completed";
|
|
8
|
+
}>>>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
export type FigStackDependency = z.infer<typeof figStackDependencySchema>;
|
|
11
|
+
export declare const figStackHealthCheckSchema: z.ZodObject<{
|
|
12
|
+
type: z.ZodEnum<{
|
|
13
|
+
exec: "exec";
|
|
14
|
+
http: "http";
|
|
15
|
+
tcp: "tcp";
|
|
16
|
+
}>;
|
|
17
|
+
cmd: z.ZodOptional<z.ZodString>;
|
|
18
|
+
path: z.ZodOptional<z.ZodString>;
|
|
19
|
+
port: z.ZodOptional<z.ZodInt>;
|
|
20
|
+
method: z.ZodOptional<z.ZodEnum<{
|
|
21
|
+
GET: "GET";
|
|
22
|
+
HEAD: "HEAD";
|
|
23
|
+
}>>;
|
|
24
|
+
expectedStatus: z.ZodOptional<z.ZodInt>;
|
|
25
|
+
intervalSeconds: z.ZodOptional<z.ZodInt>;
|
|
26
|
+
timeoutSeconds: z.ZodOptional<z.ZodInt>;
|
|
27
|
+
retries: z.ZodOptional<z.ZodInt>;
|
|
28
|
+
startPeriodSeconds: z.ZodOptional<z.ZodInt>;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export type FigStackHealthCheck = z.infer<typeof figStackHealthCheckSchema>;
|
|
31
|
+
export declare const figStackSpecSchema: z.ZodUnion<readonly [z.ZodObject<{}, z.core.$loose>, z.ZodString]>;
|
|
32
|
+
export declare const figStackEntrySchema: z.ZodObject<{
|
|
33
|
+
name: z.ZodString;
|
|
34
|
+
spec: z.ZodUnion<readonly [z.ZodObject<{}, z.core.$loose>, z.ZodString]>;
|
|
35
|
+
ports: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
36
|
+
container: z.ZodInt;
|
|
37
|
+
host: z.ZodOptional<z.ZodInt>;
|
|
38
|
+
}, z.core.$strip>>>;
|
|
39
|
+
dependsOn: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
40
|
+
name: z.ZodString;
|
|
41
|
+
condition: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
42
|
+
started: "started";
|
|
43
|
+
healthy: "healthy";
|
|
44
|
+
completed: "completed";
|
|
45
|
+
}>>>;
|
|
46
|
+
}, z.core.$strip>>>;
|
|
47
|
+
healthCheck: z.ZodOptional<z.ZodObject<{
|
|
48
|
+
type: z.ZodEnum<{
|
|
49
|
+
exec: "exec";
|
|
50
|
+
http: "http";
|
|
51
|
+
tcp: "tcp";
|
|
52
|
+
}>;
|
|
53
|
+
cmd: z.ZodOptional<z.ZodString>;
|
|
54
|
+
path: z.ZodOptional<z.ZodString>;
|
|
55
|
+
port: z.ZodOptional<z.ZodInt>;
|
|
56
|
+
method: z.ZodOptional<z.ZodEnum<{
|
|
57
|
+
GET: "GET";
|
|
58
|
+
HEAD: "HEAD";
|
|
59
|
+
}>>;
|
|
60
|
+
expectedStatus: z.ZodOptional<z.ZodInt>;
|
|
61
|
+
intervalSeconds: z.ZodOptional<z.ZodInt>;
|
|
62
|
+
timeoutSeconds: z.ZodOptional<z.ZodInt>;
|
|
63
|
+
retries: z.ZodOptional<z.ZodInt>;
|
|
64
|
+
startPeriodSeconds: z.ZodOptional<z.ZodInt>;
|
|
65
|
+
}, z.core.$strip>>;
|
|
66
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
67
|
+
}, z.core.$strip>;
|
|
68
|
+
export type FigStackEntry = z.infer<typeof figStackEntrySchema>;
|
|
69
|
+
export declare const figStackNetworkConfigSchema: z.ZodObject<{
|
|
70
|
+
name: z.ZodOptional<z.ZodString>;
|
|
71
|
+
subnet: z.ZodOptional<z.ZodString>;
|
|
72
|
+
external: z.ZodOptional<z.ZodString>;
|
|
73
|
+
}, z.core.$strip>;
|
|
74
|
+
export type FigStackNetworkConfig = z.infer<typeof figStackNetworkConfigSchema>;
|
|
75
|
+
export declare const figStackVolumeDeclarationSchema: z.ZodObject<{
|
|
76
|
+
name: z.ZodString;
|
|
77
|
+
external: z.ZodOptional<z.ZodBoolean>;
|
|
78
|
+
}, z.core.$strip>;
|
|
79
|
+
export type FigStackVolumeDeclaration = z.infer<typeof figStackVolumeDeclarationSchema>;
|
|
80
|
+
export declare const figStackEnvGroupSchema: z.ZodObject<{
|
|
81
|
+
vars: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
82
|
+
inject: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
83
|
+
}, z.core.$strip>;
|
|
84
|
+
export type FigStackEnvGroup = z.infer<typeof figStackEnvGroupSchema>;
|
|
85
|
+
export declare const figStackSchema: z.ZodObject<{
|
|
86
|
+
schemaVersion: z.ZodString;
|
|
87
|
+
stackName: z.ZodString;
|
|
88
|
+
containers: z.ZodArray<z.ZodObject<{
|
|
89
|
+
name: z.ZodString;
|
|
90
|
+
spec: z.ZodUnion<readonly [z.ZodObject<{}, z.core.$loose>, z.ZodString]>;
|
|
91
|
+
ports: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
92
|
+
container: z.ZodInt;
|
|
93
|
+
host: z.ZodOptional<z.ZodInt>;
|
|
94
|
+
}, z.core.$strip>>>;
|
|
95
|
+
dependsOn: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
96
|
+
name: z.ZodString;
|
|
97
|
+
condition: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
|
|
98
|
+
started: "started";
|
|
99
|
+
healthy: "healthy";
|
|
100
|
+
completed: "completed";
|
|
101
|
+
}>>>;
|
|
102
|
+
}, z.core.$strip>>>;
|
|
103
|
+
healthCheck: z.ZodOptional<z.ZodObject<{
|
|
104
|
+
type: z.ZodEnum<{
|
|
105
|
+
exec: "exec";
|
|
106
|
+
http: "http";
|
|
107
|
+
tcp: "tcp";
|
|
108
|
+
}>;
|
|
109
|
+
cmd: z.ZodOptional<z.ZodString>;
|
|
110
|
+
path: z.ZodOptional<z.ZodString>;
|
|
111
|
+
port: z.ZodOptional<z.ZodInt>;
|
|
112
|
+
method: z.ZodOptional<z.ZodEnum<{
|
|
113
|
+
GET: "GET";
|
|
114
|
+
HEAD: "HEAD";
|
|
115
|
+
}>>;
|
|
116
|
+
expectedStatus: z.ZodOptional<z.ZodInt>;
|
|
117
|
+
intervalSeconds: z.ZodOptional<z.ZodInt>;
|
|
118
|
+
timeoutSeconds: z.ZodOptional<z.ZodInt>;
|
|
119
|
+
retries: z.ZodOptional<z.ZodInt>;
|
|
120
|
+
startPeriodSeconds: z.ZodOptional<z.ZodInt>;
|
|
121
|
+
}, z.core.$strip>>;
|
|
122
|
+
env: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
123
|
+
}, z.core.$strip>>;
|
|
124
|
+
env: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
125
|
+
vars: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
126
|
+
inject: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
127
|
+
}, z.core.$strip>>>;
|
|
128
|
+
network: z.ZodOptional<z.ZodObject<{
|
|
129
|
+
name: z.ZodOptional<z.ZodString>;
|
|
130
|
+
subnet: z.ZodOptional<z.ZodString>;
|
|
131
|
+
external: z.ZodOptional<z.ZodString>;
|
|
132
|
+
}, z.core.$strip>>;
|
|
133
|
+
volumes: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
134
|
+
name: z.ZodString;
|
|
135
|
+
external: z.ZodOptional<z.ZodBoolean>;
|
|
136
|
+
}, z.core.$strip>>>;
|
|
137
|
+
}, z.core.$strip>;
|
|
138
|
+
export type FigStack = z.infer<typeof figStackSchema>;
|
|
139
|
+
//# sourceMappingURL=figstack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figstack.d.ts","sourceRoot":"","sources":["../../../src/core/entities/figstack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,eAAO,MAAM,wBAAwB;;;;;;;iBAGL,CAAC;AACjC,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAM1E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;iBAcL,CAAC;AAClC,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAO5E,eAAO,MAAM,kBAAkB,oEAGL,CAAC;AAE3B,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOL,CAAC;AAC5B,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMhE,eAAO,MAAM,2BAA2B;;;;iBAIL,CAAC;AACpC,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAMhF,eAAO,MAAM,+BAA+B;;;iBAGL,CAAC;AACxC,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAMxF,eAAO,MAAM,sBAAsB;;;iBAGL,CAAC;AAC/B,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMtE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAOL,CAAC;AACvB,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { portMappingSchema } from '../generic.js';
|
|
3
|
+
import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi";
|
|
4
|
+
extendZodWithOpenApi(z);
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// FigStackDependency
|
|
7
|
+
// ---------------------------------------------------------------------------
|
|
8
|
+
export const figStackDependencySchema = z.object({
|
|
9
|
+
name: z.string().min(1).describe("References another entry's name in this stack."),
|
|
10
|
+
condition: z.enum(['started', 'healthy', 'completed']).default('started').optional().describe("started — wait for the container to be running; healthy — wait for the health check to pass; completed — wait for the container to exit successfully."),
|
|
11
|
+
}).openapi("FigStackDependency");
|
|
12
|
+
// ---------------------------------------------------------------------------
|
|
13
|
+
// FigStackHealthCheck (discriminated union flattened into one object)
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
export const figStackHealthCheckSchema = z.object({
|
|
16
|
+
type: z.enum(['exec', 'http', 'tcp']),
|
|
17
|
+
// exec
|
|
18
|
+
cmd: z.string().optional().describe("Shell command to run inside the container (exec type only)."),
|
|
19
|
+
// http
|
|
20
|
+
path: z.string().optional().describe("HTTP path to check (http type only). Example: /health"),
|
|
21
|
+
port: z.int().optional().describe("Container port to check (http and tcp types)."),
|
|
22
|
+
method: z.enum(['GET', 'HEAD']).optional().describe("HTTP method (http type only)."),
|
|
23
|
+
expectedStatus: z.int().optional().describe("Expected HTTP status code (http type only)."),
|
|
24
|
+
// shared timing
|
|
25
|
+
intervalSeconds: z.int().optional(),
|
|
26
|
+
timeoutSeconds: z.int().optional(),
|
|
27
|
+
retries: z.int().optional(),
|
|
28
|
+
startPeriodSeconds: z.int().optional().describe("Grace period before failures count against the retry limit."),
|
|
29
|
+
}).openapi("FigStackHealthCheck");
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// FigStackEntry
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
// Inline FigSpec reference: either an object or a string reference
|
|
34
|
+
export const figStackSpecSchema = z.union([
|
|
35
|
+
z.object({}).passthrough().openapi({ type: "object" }),
|
|
36
|
+
z.string()
|
|
37
|
+
]).openapi("FigStackSpec");
|
|
38
|
+
export const figStackEntrySchema = z.object({
|
|
39
|
+
name: z.string().min(1).describe("Unique container name within the stack; also the hostname on the shared network.").openapi({ example: "postgres" }),
|
|
40
|
+
spec: figStackSpecSchema.describe("Inline FigSpec object or string reference (e.g. \"postgres#default\")."),
|
|
41
|
+
ports: z.array(portMappingSchema).optional().describe("Overrides spec.run.ports for this deployment."),
|
|
42
|
+
dependsOn: z.array(figStackDependencySchema).optional(),
|
|
43
|
+
healthCheck: figStackHealthCheckSchema.optional(),
|
|
44
|
+
env: z.record(z.string(), z.string()).optional().describe("Entry-level environment variable overrides (run-time only)."),
|
|
45
|
+
}).openapi("FigStackEntry");
|
|
46
|
+
// ---------------------------------------------------------------------------
|
|
47
|
+
// FigStackNetworkConfig
|
|
48
|
+
// ---------------------------------------------------------------------------
|
|
49
|
+
export const figStackNetworkConfigSchema = z.object({
|
|
50
|
+
name: z.string().optional().describe("Custom Docker network name. Defaults to {stackName}_network."),
|
|
51
|
+
subnet: z.string().optional().describe("Optional CIDR for predictable container IPs. Example: 172.20.0.0/16"),
|
|
52
|
+
external: z.string().optional().describe("Join an existing external Docker network by name instead of creating one."),
|
|
53
|
+
}).openapi("FigStackNetworkConfig");
|
|
54
|
+
// ---------------------------------------------------------------------------
|
|
55
|
+
// FigStackVolumeDeclaration
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
export const figStackVolumeDeclarationSchema = z.object({
|
|
58
|
+
name: z.string().min(1).describe("Exact Docker volume name — no stack prefix is applied."),
|
|
59
|
+
external: z.boolean().optional().describe("If true, the volume must already exist; the engine will not create it."),
|
|
60
|
+
}).openapi("FigStackVolumeDeclaration");
|
|
61
|
+
// ---------------------------------------------------------------------------
|
|
62
|
+
// FigStackEnvGroup
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
export const figStackEnvGroupSchema = z.object({
|
|
65
|
+
vars: z.record(z.string(), z.string()),
|
|
66
|
+
inject: z.array(z.string()).optional().describe("Container names to inject into. Omit to inject into all containers."),
|
|
67
|
+
}).openapi("FigStackEnvGroup");
|
|
68
|
+
// ---------------------------------------------------------------------------
|
|
69
|
+
// FigStack (top-level)
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
export const figStackSchema = z.object({
|
|
72
|
+
schemaVersion: z.string().openapi({ example: "0.1" }),
|
|
73
|
+
stackName: z.string().min(1).openapi({ example: "blog" }),
|
|
74
|
+
containers: z.array(figStackEntrySchema).min(1),
|
|
75
|
+
env: z.array(figStackEnvGroupSchema).optional(),
|
|
76
|
+
network: figStackNetworkConfigSchema.optional(),
|
|
77
|
+
volumes: z.array(figStackVolumeDeclarationSchema).optional(),
|
|
78
|
+
}).openapi("FigStack");
|
|
79
|
+
//# sourceMappingURL=figstack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"figstack.js","sourceRoot":"","sources":["../../../src/core/entities/figstack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/entities/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
export declare const mainCmdOnExitWithCodeSchema: z.ZodObject<{
|
|
3
|
+
cmd: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
4
|
+
exitCode: z.ZodInt;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export type MainCmdOnExitWithCode = z.infer<typeof mainCmdOnExitWithCodeSchema>;
|
|
7
|
+
export declare const mainCmdOnExitListSchema: z.ZodArray<z.ZodObject<{
|
|
8
|
+
cmd: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
9
|
+
exitCode: z.ZodInt;
|
|
10
|
+
}, z.core.$strip>>;
|
|
11
|
+
export declare const onExitBehaviorSchema: z.ZodUnion<readonly [z.ZodString, z.ZodNull, z.ZodArray<z.ZodObject<{
|
|
12
|
+
cmd: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
13
|
+
exitCode: z.ZodInt;
|
|
14
|
+
}, z.core.$strip>>]>;
|
|
15
|
+
export type OnExitBehavior = z.infer<typeof onExitBehaviorSchema>;
|
|
16
|
+
export declare const executeStartupCmdSchema: z.ZodObject<{
|
|
17
|
+
cmd: z.ZodString;
|
|
18
|
+
async: z.ZodOptional<z.ZodBoolean>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export type ExecuteStartupCmd = z.infer<typeof executeStartupCmdSchema>;
|
|
21
|
+
export declare const executeMainCmdSchema: z.ZodObject<{
|
|
22
|
+
cmd: z.ZodString;
|
|
23
|
+
onExit: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull, z.ZodArray<z.ZodObject<{
|
|
24
|
+
cmd: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
25
|
+
exitCode: z.ZodInt;
|
|
26
|
+
}, z.core.$strip>>]>>;
|
|
27
|
+
parser: z.ZodOptional<z.ZodString>;
|
|
28
|
+
}, z.core.$strip>;
|
|
29
|
+
export type ExecuteMainCmd = z.infer<typeof executeMainCmdSchema>;
|
|
30
|
+
export declare const executeShutdownCmdSchema: z.ZodObject<{
|
|
31
|
+
cmd: z.ZodString;
|
|
32
|
+
}, z.core.$strip>;
|
|
33
|
+
export type ExecuteShutdownCmd = z.infer<typeof executeShutdownCmdSchema>;
|
|
34
|
+
export declare const scheduleExpressionStructSchema: z.ZodObject<{
|
|
35
|
+
interval: z.ZodOptional<z.ZodInt>;
|
|
36
|
+
time: z.ZodOptional<z.ZodString>;
|
|
37
|
+
cron: z.ZodOptional<z.ZodString>;
|
|
38
|
+
}, z.core.$strip>;
|
|
39
|
+
export type ScheduleExpressionStruct = z.infer<typeof scheduleExpressionStructSchema>;
|
|
40
|
+
export declare const scheduleExpressionSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
41
|
+
interval: z.ZodOptional<z.ZodInt>;
|
|
42
|
+
time: z.ZodOptional<z.ZodString>;
|
|
43
|
+
cron: z.ZodOptional<z.ZodString>;
|
|
44
|
+
}, z.core.$strip>]>;
|
|
45
|
+
export type ScheduleExpression = z.infer<typeof scheduleExpressionSchema>;
|
|
46
|
+
export declare const scheduledCmdSchema: z.ZodObject<{
|
|
47
|
+
cmd: z.ZodString;
|
|
48
|
+
runAt: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
49
|
+
interval: z.ZodOptional<z.ZodInt>;
|
|
50
|
+
time: z.ZodOptional<z.ZodString>;
|
|
51
|
+
cron: z.ZodOptional<z.ZodString>;
|
|
52
|
+
}, z.core.$strip>]>;
|
|
53
|
+
onExit: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull, z.ZodArray<z.ZodObject<{
|
|
54
|
+
cmd: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
|
|
55
|
+
exitCode: z.ZodInt;
|
|
56
|
+
}, z.core.$strip>>]>>;
|
|
57
|
+
parser: z.ZodOptional<z.ZodString>;
|
|
58
|
+
}, z.core.$strip>;
|
|
59
|
+
export type ScheduledCmd = z.infer<typeof scheduledCmdSchema>;
|
|
60
|
+
export declare const buildExecuteStepSchema: z.ZodObject<{
|
|
61
|
+
cmd: z.ZodString;
|
|
62
|
+
}, z.core.$strip>;
|
|
63
|
+
export type BuildExecuteStep = z.infer<typeof buildExecuteStepSchema>;
|
|
64
|
+
//# sourceMappingURL=execute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../../src/core/execute.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAKpB,eAAO,MAAM,2BAA2B;;;iBAGL,CAAC;AACpC,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,2BAA2B,CAAC,CAAC;AAEhF,eAAO,MAAM,uBAAuB;;;kBAEnC,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;oBAIL,CAAC;AAC7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,uBAAuB;;;iBAGL,CAAC;AAChC,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,oBAAoB;;;;;;;iBAIL,CAAC;AAC7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,wBAAwB;;iBAEL,CAAC;AACjC,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,8BAA8B;;;;iBAIL,CAAC;AACvC,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAEtF,eAAO,MAAM,wBAAwB;;;;mBAGL,CAAC;AACjC,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAE1E,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAKL,CAAC;AAC3B,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,sBAAsB;;iBAEL,CAAC;AAC/B,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi";
|
|
3
|
+
extendZodWithOpenApi(z);
|
|
4
|
+
export const mainCmdOnExitWithCodeSchema = z.object({
|
|
5
|
+
cmd: z.union([z.string(), z.null()]).optional().describe("Action: a command string, \"persist\", \"shutdown\", or null"),
|
|
6
|
+
exitCode: z.int(),
|
|
7
|
+
}).openapi("MainCmdOnExitWithCode");
|
|
8
|
+
export const mainCmdOnExitListSchema = z.array(mainCmdOnExitWithCodeSchema);
|
|
9
|
+
// onExit accepts: null | "persist" | "shutdown" | command-string | dispatch-table
|
|
10
|
+
export const onExitBehaviorSchema = z.union([
|
|
11
|
+
z.string(),
|
|
12
|
+
z.null(),
|
|
13
|
+
z.array(mainCmdOnExitWithCodeSchema),
|
|
14
|
+
]).openapi("OnExitBehavior");
|
|
15
|
+
export const executeStartupCmdSchema = z.object({
|
|
16
|
+
cmd: z.string().describe("Shell command to run before the main process"),
|
|
17
|
+
async: z.boolean().optional().describe("Fire-and-forget if true; blocks main start if false"),
|
|
18
|
+
}).openapi("ExecuteStartupCmd");
|
|
19
|
+
export const executeMainCmdSchema = z.object({
|
|
20
|
+
cmd: z.string().describe("Primary command the container runs"),
|
|
21
|
+
onExit: onExitBehaviorSchema.optional(),
|
|
22
|
+
parser: z.string().optional().describe("JavaScript parser source or URI for structured output"),
|
|
23
|
+
}).openapi("ExecuteMainCmd");
|
|
24
|
+
export const executeShutdownCmdSchema = z.object({
|
|
25
|
+
cmd: z.string().describe("Shell command to run before the container stops"),
|
|
26
|
+
}).openapi("ExecuteShutdownCmd");
|
|
27
|
+
export const scheduleExpressionStructSchema = z.object({
|
|
28
|
+
interval: z.int().optional().describe("Seconds after startup, or repeat interval"),
|
|
29
|
+
time: z.string().optional().describe("Daily run time in \"HH:MM\" format"),
|
|
30
|
+
cron: z.string().optional().describe("Cron expression (e.g. \"0 9 * * *\")"),
|
|
31
|
+
}).openapi("ScheduleExpressionStruct");
|
|
32
|
+
export const scheduleExpressionSchema = z.union([
|
|
33
|
+
z.string(),
|
|
34
|
+
scheduleExpressionStructSchema,
|
|
35
|
+
]).openapi("ScheduleExpression");
|
|
36
|
+
export const scheduledCmdSchema = z.object({
|
|
37
|
+
cmd: z.string(),
|
|
38
|
+
runAt: scheduleExpressionSchema,
|
|
39
|
+
onExit: onExitBehaviorSchema.optional(),
|
|
40
|
+
parser: z.string().optional(),
|
|
41
|
+
}).openapi("ScheduledCmd");
|
|
42
|
+
export const buildExecuteStepSchema = z.object({
|
|
43
|
+
cmd: z.string().min(1).describe("Shell command to run as a separate RUN instruction (cacheable layer)").openapi({ example: "apt-get install -y curl" }),
|
|
44
|
+
}).openapi("BuildExecuteStep");
|
|
45
|
+
//# sourceMappingURL=execute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute.js","sourceRoot":"","sources":["../../src/core/execute.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
export declare const resourceLimitsSchema: z.ZodObject<{
|
|
3
|
+
memory_limit: z.ZodOptional<z.ZodString>;
|
|
4
|
+
memory_reservation: z.ZodOptional<z.ZodString>;
|
|
5
|
+
cpu_limit: z.ZodOptional<z.ZodString>;
|
|
6
|
+
cpu_reservation: z.ZodOptional<z.ZodString>;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
export type ResourceLimits = z.infer<typeof resourceLimitsSchema>;
|
|
9
|
+
export declare const portMappingSchema: z.ZodObject<{
|
|
10
|
+
container: z.ZodInt;
|
|
11
|
+
host: z.ZodOptional<z.ZodInt>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export type PortMapping = z.infer<typeof portMappingSchema>;
|
|
14
|
+
export declare const parsedOutputSchema: z.ZodObject<{
|
|
15
|
+
success: z.ZodBoolean;
|
|
16
|
+
data: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export type ParsedOutput = z.infer<typeof parsedOutputSchema>;
|
|
19
|
+
export declare const packageSpecSchema: z.ZodObject<{
|
|
20
|
+
name: z.ZodString;
|
|
21
|
+
version: z.ZodOptional<z.ZodString>;
|
|
22
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export type PackageSpec = z.infer<typeof packageSpecSchema>;
|
|
25
|
+
export declare const installGroupSchema: z.ZodObject<{
|
|
26
|
+
packageManager: z.ZodString;
|
|
27
|
+
packages: z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
28
|
+
name: z.ZodString;
|
|
29
|
+
version: z.ZodOptional<z.ZodString>;
|
|
30
|
+
args: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
31
|
+
}, z.core.$strip>]>>;
|
|
32
|
+
globalArgs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
33
|
+
}, z.core.$strip>;
|
|
34
|
+
export type InstallGroup = z.infer<typeof installGroupSchema>;
|
|
35
|
+
//# sourceMappingURL=generic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/core/generic.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAKpB,eAAO,MAAM,oBAAoB;;;;;iBAKL,CAAC;AAC7B,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAElE,eAAO,MAAM,iBAAiB;;;iBAGL,CAAC;AAC1B,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB;;;iBAGL,CAAC;AAC3B,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,iBAAiB;;;;iBAIL,CAAC;AAC1B,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,eAAO,MAAM,kBAAkB;;;;;;;;iBAIL,CAAC;AAC3B,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi";
|
|
3
|
+
extendZodWithOpenApi(z);
|
|
4
|
+
export const resourceLimitsSchema = z.object({
|
|
5
|
+
memory_limit: z.string().optional().describe("e.g. \"2G\", \"512M\"").openapi({ example: "2G" }),
|
|
6
|
+
memory_reservation: z.string().optional().describe("Soft memory limit, e.g. \"1G\"").openapi({ example: "1G" }),
|
|
7
|
+
cpu_limit: z.string().optional().describe("e.g. \"2\", \"0.5\"").openapi({ example: "2" }),
|
|
8
|
+
cpu_reservation: z.string().optional().describe("Soft CPU limit, e.g. \"1\"").openapi({ example: "1" }),
|
|
9
|
+
}).openapi("ResourceLimits");
|
|
10
|
+
export const portMappingSchema = z.object({
|
|
11
|
+
container: z.int().min(1).max(65535).describe("Container port").openapi({ example: 3000 }),
|
|
12
|
+
host: z.int().min(0).max(65535).optional().describe("Host port. 0 or omitted means same as container port.").openapi({ example: 8080 }),
|
|
13
|
+
}).openapi("PortMapping");
|
|
14
|
+
export const parsedOutputSchema = z.object({
|
|
15
|
+
success: z.boolean(),
|
|
16
|
+
data: z.record(z.string(), z.unknown()).optional().describe("Arbitrary structured data produced by the parser script"),
|
|
17
|
+
}).openapi("ParsedOutput");
|
|
18
|
+
export const packageSpecSchema = z.object({
|
|
19
|
+
name: z.string(),
|
|
20
|
+
version: z.string().optional(),
|
|
21
|
+
args: z.array(z.string()).optional(),
|
|
22
|
+
}).openapi("PackageSpec");
|
|
23
|
+
export const installGroupSchema = z.object({
|
|
24
|
+
packageManager: z.string().min(1).describe("Package manager to use (e.g. \"apt\", \"npm\", \"pip\")"),
|
|
25
|
+
packages: z.array(z.union([z.string(), packageSpecSchema])),
|
|
26
|
+
globalArgs: z.array(z.string()).optional().describe("Arguments passed to every package install invocation"),
|
|
27
|
+
}).openapi("InstallGroup");
|
|
28
|
+
//# sourceMappingURL=generic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/core/generic.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAChG,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC/G,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC1F,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;CACxG,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAG7B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1F,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;CACxI,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAG1B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;CACvH,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;AAG3B,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;AAG1B,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yDAAyD,CAAC;IACrG,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC3D,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;CAC5G,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/core/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAKpB,eAAO,MAAM,YAAY,aAMvB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import { extendZodWithOpenApi } from "@asteasolutions/zod-to-openapi";
|
|
3
|
+
extendZodWithOpenApi(z);
|
|
4
|
+
export const bigIntSchema = z
|
|
5
|
+
.bigint()
|
|
6
|
+
.describe("An integer between 3n and 5n")
|
|
7
|
+
.openapi("BigInt", {
|
|
8
|
+
format: "int64",
|
|
9
|
+
type: "integer",
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=primitives.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/core/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,oBAAoB,CAAC,CAAC,CAAC,CAAC;AAExB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC5B,MAAM,EAAE;KACR,QAAQ,CAAC,8BAA8B,CAAC;KACxC,OAAO,CAAC,QAAQ,EAAE;IACf,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,SAAS;CAClB,CAAC,CAAC"}
|