@xemahq/xema 0.1.4 → 0.2.0
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/README.md +64 -15
- package/dist/assets/boot-graph.json +72 -0
- package/dist/assets/core/distribution.lock.json +1244 -0
- package/dist/assets/core/images.lock.json +428 -0
- package/dist/assets/oss/distribution.lock.json +1978 -0
- package/dist/assets/oss/images.lock.json +594 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +36 -14
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts +3 -0
- package/dist/commands/down.d.ts.map +1 -0
- package/dist/commands/down.js +54 -0
- package/dist/commands/down.js.map +1 -0
- package/dist/commands/logs.d.ts +3 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +61 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +38 -8
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +41 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/up.d.ts +3 -0
- package/dist/commands/up.d.ts.map +1 -0
- package/dist/commands/up.js +44 -0
- package/dist/commands/up.js.map +1 -0
- package/dist/dev/infra-preflight.js +1 -1
- package/dist/dev/infra-preflight.js.map +1 -1
- package/dist/lib/command-registry.d.ts +1 -1
- package/dist/lib/command-registry.d.ts.map +1 -1
- package/dist/lib/command-registry.js +4 -0
- package/dist/lib/command-registry.js.map +1 -1
- package/dist/runtime/boot-graph-loader.d.ts +17 -0
- package/dist/runtime/boot-graph-loader.d.ts.map +1 -0
- package/dist/runtime/boot-graph-loader.js +40 -0
- package/dist/runtime/boot-graph-loader.js.map +1 -0
- package/dist/runtime/config/loader.d.ts +11 -0
- package/dist/runtime/config/loader.d.ts.map +1 -0
- package/dist/runtime/config/loader.js +38 -0
- package/dist/runtime/config/loader.js.map +1 -0
- package/dist/runtime/config/schema.d.ts +202 -0
- package/dist/runtime/config/schema.d.ts.map +1 -0
- package/dist/runtime/config/schema.js +125 -0
- package/dist/runtime/config/schema.js.map +1 -0
- package/dist/runtime/env-seeder.d.ts +17 -0
- package/dist/runtime/env-seeder.d.ts.map +1 -0
- package/dist/runtime/env-seeder.js +80 -0
- package/dist/runtime/env-seeder.js.map +1 -0
- package/dist/runtime/foreground.d.ts +8 -0
- package/dist/runtime/foreground.d.ts.map +1 -0
- package/dist/runtime/foreground.js +71 -0
- package/dist/runtime/foreground.js.map +1 -0
- package/dist/runtime/infra/infra-catalog.d.ts +19 -0
- package/dist/runtime/infra/infra-catalog.d.ts.map +1 -0
- package/dist/runtime/infra/infra-catalog.js +128 -0
- package/dist/runtime/infra/infra-catalog.js.map +1 -0
- package/dist/runtime/infra/infra-plan.d.ts +16 -0
- package/dist/runtime/infra/infra-plan.d.ts.map +1 -0
- package/dist/runtime/infra/infra-plan.js +44 -0
- package/dist/runtime/infra/infra-plan.js.map +1 -0
- package/dist/runtime/infra/infra-runner.d.ts +26 -0
- package/dist/runtime/infra/infra-runner.d.ts.map +1 -0
- package/dist/runtime/infra/infra-runner.js +135 -0
- package/dist/runtime/infra/infra-runner.js.map +1 -0
- package/dist/runtime/launch.d.ts +24 -0
- package/dist/runtime/launch.d.ts.map +1 -0
- package/dist/runtime/launch.js +116 -0
- package/dist/runtime/launch.js.map +1 -0
- package/dist/runtime/lock-loader.d.ts +26 -0
- package/dist/runtime/lock-loader.d.ts.map +1 -0
- package/dist/runtime/lock-loader.js +61 -0
- package/dist/runtime/lock-loader.js.map +1 -0
- package/dist/runtime/paths.d.ts +14 -0
- package/dist/runtime/paths.d.ts.map +1 -0
- package/dist/runtime/paths.js +109 -0
- package/dist/runtime/paths.js.map +1 -0
- package/dist/runtime/platform-services.d.ts +2 -0
- package/dist/runtime/platform-services.d.ts.map +1 -0
- package/dist/runtime/platform-services.js +8 -0
- package/dist/runtime/platform-services.js.map +1 -0
- package/dist/runtime/port-map.d.ts +3 -0
- package/dist/runtime/port-map.d.ts.map +1 -0
- package/dist/runtime/port-map.js +25 -0
- package/dist/runtime/port-map.js.map +1 -0
- package/dist/runtime/roster.d.ts +32 -0
- package/dist/runtime/roster.d.ts.map +1 -0
- package/dist/runtime/roster.js +106 -0
- package/dist/runtime/roster.js.map +1 -0
- package/dist/runtime/runner/container-runner.d.ts +14 -0
- package/dist/runtime/runner/container-runner.d.ts.map +1 -0
- package/dist/runtime/runner/container-runner.js +61 -0
- package/dist/runtime/runner/container-runner.js.map +1 -0
- package/dist/runtime/runner/docker-cli.d.ts +11 -0
- package/dist/runtime/runner/docker-cli.d.ts.map +1 -0
- package/dist/runtime/runner/docker-cli.js +53 -0
- package/dist/runtime/runner/docker-cli.js.map +1 -0
- package/dist/runtime/runner/health-probe.d.ts +2 -0
- package/dist/runtime/runner/health-probe.d.ts.map +1 -0
- package/dist/runtime/runner/health-probe.js +38 -0
- package/dist/runtime/runner/health-probe.js.map +1 -0
- package/dist/runtime/runner/helm-runner.d.ts +19 -0
- package/dist/runtime/runner/helm-runner.d.ts.map +1 -0
- package/dist/runtime/runner/helm-runner.js +70 -0
- package/dist/runtime/runner/helm-runner.js.map +1 -0
- package/dist/runtime/runner/native-runner.d.ts +9 -0
- package/dist/runtime/runner/native-runner.d.ts.map +1 -0
- package/dist/runtime/runner/native-runner.js +85 -0
- package/dist/runtime/runner/native-runner.js.map +1 -0
- package/dist/runtime/runner/service-runner.d.ts +23 -0
- package/dist/runtime/runner/service-runner.d.ts.map +1 -0
- package/dist/runtime/runner/service-runner.js +10 -0
- package/dist/runtime/runner/service-runner.js.map +1 -0
- package/dist/runtime/supervisor.d.ts +46 -0
- package/dist/runtime/supervisor.d.ts.map +1 -0
- package/dist/runtime/supervisor.js +77 -0
- package/dist/runtime/supervisor.js.map +1 -0
- package/dist/runtime/unit-type.d.ts +9 -0
- package/dist/runtime/unit-type.d.ts.map +1 -0
- package/dist/runtime/unit-type.js +19 -0
- package/dist/runtime/unit-type.js.map +1 -0
- package/dist/runtime/waves.d.ts +15 -0
- package/dist/runtime/waves.d.ts.map +1 -0
- package/dist/runtime/waves.js +77 -0
- package/dist/runtime/waves.js.map +1 -0
- package/package.json +9 -10
- package/xema.config.example.yaml +45 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadXemaConfig = loadXemaConfig;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_os_1 = require("node:os");
|
|
6
|
+
const node_path_1 = require("node:path");
|
|
7
|
+
const yaml_1 = require("yaml");
|
|
8
|
+
const schema_1 = require("./schema");
|
|
9
|
+
function loadXemaConfig(opts = {}) {
|
|
10
|
+
const cwd = opts.cwd ?? process.cwd();
|
|
11
|
+
if (opts.explicit) {
|
|
12
|
+
const explicitPath = (0, node_path_1.isAbsolute)(opts.explicit) ? opts.explicit : (0, node_path_1.resolve)(cwd, opts.explicit);
|
|
13
|
+
if (!(0, node_fs_1.existsSync)(explicitPath)) {
|
|
14
|
+
throw new Error(`--config path does not exist: ${explicitPath}`);
|
|
15
|
+
}
|
|
16
|
+
return { config: readConfigFile(explicitPath), source: explicitPath };
|
|
17
|
+
}
|
|
18
|
+
const candidates = [(0, node_path_1.join)(cwd, 'xema.config.yaml'), (0, node_path_1.join)((0, node_os_1.homedir)(), '.xema', 'config.yaml')];
|
|
19
|
+
for (const path of candidates) {
|
|
20
|
+
if ((0, node_fs_1.existsSync)(path)) {
|
|
21
|
+
return { config: readConfigFile(path), source: path };
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return { config: (0, schema_1.parseXemaConfig)({}), source: '<defaults>' };
|
|
25
|
+
}
|
|
26
|
+
function readConfigFile(path) {
|
|
27
|
+
const text = (0, node_fs_1.readFileSync)(path, 'utf8');
|
|
28
|
+
let raw;
|
|
29
|
+
try {
|
|
30
|
+
raw = (0, yaml_1.parse)(text);
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
34
|
+
throw new Error(`Failed to parse ${path} as YAML: ${message}`);
|
|
35
|
+
}
|
|
36
|
+
return (0, schema_1.parseXemaConfig)(raw);
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../../src/runtime/config/loader.ts"],"names":[],"mappings":";;AAyBA,wCAmBC;AA5CD,qCAAmD;AACnD,qCAAkC;AAClC,yCAAsD;AAEtD,+BAA0C;AAE1C,qCAA4D;AAmB5D,SAAgB,cAAc,CAAC,OAA0B,EAAE;IACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEtC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,IAAA,sBAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7F,IAAI,CAAC,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,iCAAiC,YAAY,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IACxE,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,IAAA,gBAAI,EAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;IAC5F,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,IAAA,wBAAe,EAAC,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,IAAI,GAAY,CAAC;IACjB,IAAI,CAAC;QACH,GAAG,GAAG,IAAA,YAAS,EAAC,IAAI,CAAY,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,aAAa,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,IAAA,wBAAe,EAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare enum InfraMode {
|
|
3
|
+
Managed = "managed",
|
|
4
|
+
External = "external",
|
|
5
|
+
Disabled = "disabled"
|
|
6
|
+
}
|
|
7
|
+
export declare enum Substrate {
|
|
8
|
+
Container = "container",
|
|
9
|
+
Native = "native",
|
|
10
|
+
Helm = "helm"
|
|
11
|
+
}
|
|
12
|
+
export declare enum InfraComponent {
|
|
13
|
+
Postgres = "postgres",
|
|
14
|
+
Redis = "redis",
|
|
15
|
+
Etcd = "etcd",
|
|
16
|
+
Keycloak = "keycloak",
|
|
17
|
+
ObjectStore = "objectStore",
|
|
18
|
+
Search = "search",
|
|
19
|
+
Fga = "fga",
|
|
20
|
+
Git = "git",
|
|
21
|
+
Temporal = "temporal"
|
|
22
|
+
}
|
|
23
|
+
export declare enum WorkspaceDriver {
|
|
24
|
+
DockerLocal = "docker_local",
|
|
25
|
+
HostPath = "host_path"
|
|
26
|
+
}
|
|
27
|
+
export declare enum SecretSource {
|
|
28
|
+
Prompt = "prompt",
|
|
29
|
+
Env = "env",
|
|
30
|
+
File = "file"
|
|
31
|
+
}
|
|
32
|
+
declare const InfraComponentConfigSchema: z.ZodObject<{
|
|
33
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
34
|
+
url: z.ZodOptional<z.ZodString>;
|
|
35
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
36
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
37
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
38
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
39
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
40
|
+
path: z.ZodOptional<z.ZodString>;
|
|
41
|
+
}, z.core.$strict>>;
|
|
42
|
+
}, z.core.$strict>;
|
|
43
|
+
export type InfraComponentConfig = z.infer<typeof InfraComponentConfigSchema>;
|
|
44
|
+
declare const AppConfigSchema: z.ZodObject<{
|
|
45
|
+
substrate: z.ZodDefault<z.ZodEnum<typeof Substrate>>;
|
|
46
|
+
include: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
|
|
47
|
+
exclude: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
48
|
+
features: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
49
|
+
web: z.ZodDefault<z.ZodObject<{
|
|
50
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
51
|
+
substrate: z.ZodOptional<z.ZodEnum<typeof Substrate>>;
|
|
52
|
+
}, z.core.$strict>>;
|
|
53
|
+
}, z.core.$strict>;
|
|
54
|
+
export type AppConfig = z.infer<typeof AppConfigSchema>;
|
|
55
|
+
declare const StateConfigSchema: z.ZodObject<{
|
|
56
|
+
workspaces: z.ZodDefault<z.ZodObject<{
|
|
57
|
+
driver: z.ZodOptional<z.ZodEnum<typeof WorkspaceDriver>>;
|
|
58
|
+
path: z.ZodOptional<z.ZodString>;
|
|
59
|
+
}, z.core.$strict>>;
|
|
60
|
+
biomeMaterialization: z.ZodDefault<z.ZodObject<{
|
|
61
|
+
path: z.ZodOptional<z.ZodString>;
|
|
62
|
+
}, z.core.$strict>>;
|
|
63
|
+
}, z.core.$strict>;
|
|
64
|
+
export type StateConfig = z.infer<typeof StateConfigSchema>;
|
|
65
|
+
declare const SecretConfigSchema: z.ZodObject<{
|
|
66
|
+
from: z.ZodEnum<typeof SecretSource>;
|
|
67
|
+
path: z.ZodOptional<z.ZodString>;
|
|
68
|
+
env: z.ZodOptional<z.ZodString>;
|
|
69
|
+
}, z.core.$strict>;
|
|
70
|
+
export type SecretConfig = z.infer<typeof SecretConfigSchema>;
|
|
71
|
+
export declare const XemaConfigSchema: z.ZodObject<{
|
|
72
|
+
edition: z.ZodDefault<z.ZodString>;
|
|
73
|
+
infra: z.ZodDefault<z.ZodObject<{
|
|
74
|
+
postgres: z.ZodOptional<z.ZodObject<{
|
|
75
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
76
|
+
url: z.ZodOptional<z.ZodString>;
|
|
77
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
78
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
79
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
80
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
81
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
82
|
+
path: z.ZodOptional<z.ZodString>;
|
|
83
|
+
}, z.core.$strict>>;
|
|
84
|
+
}, z.core.$strict>>;
|
|
85
|
+
redis: z.ZodOptional<z.ZodObject<{
|
|
86
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
87
|
+
url: z.ZodOptional<z.ZodString>;
|
|
88
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
89
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
90
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
91
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
92
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
93
|
+
path: z.ZodOptional<z.ZodString>;
|
|
94
|
+
}, z.core.$strict>>;
|
|
95
|
+
}, z.core.$strict>>;
|
|
96
|
+
etcd: z.ZodOptional<z.ZodObject<{
|
|
97
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
98
|
+
url: z.ZodOptional<z.ZodString>;
|
|
99
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
100
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
101
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
102
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
103
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
104
|
+
path: z.ZodOptional<z.ZodString>;
|
|
105
|
+
}, z.core.$strict>>;
|
|
106
|
+
}, z.core.$strict>>;
|
|
107
|
+
keycloak: z.ZodOptional<z.ZodObject<{
|
|
108
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
109
|
+
url: z.ZodOptional<z.ZodString>;
|
|
110
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
111
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
112
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
113
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
114
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
115
|
+
path: z.ZodOptional<z.ZodString>;
|
|
116
|
+
}, z.core.$strict>>;
|
|
117
|
+
}, z.core.$strict>>;
|
|
118
|
+
objectStore: z.ZodOptional<z.ZodObject<{
|
|
119
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
120
|
+
url: z.ZodOptional<z.ZodString>;
|
|
121
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
122
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
123
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
124
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
125
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
126
|
+
path: z.ZodOptional<z.ZodString>;
|
|
127
|
+
}, z.core.$strict>>;
|
|
128
|
+
}, z.core.$strict>>;
|
|
129
|
+
search: z.ZodOptional<z.ZodObject<{
|
|
130
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
131
|
+
url: z.ZodOptional<z.ZodString>;
|
|
132
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
133
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
134
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
135
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
136
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
137
|
+
path: z.ZodOptional<z.ZodString>;
|
|
138
|
+
}, z.core.$strict>>;
|
|
139
|
+
}, z.core.$strict>>;
|
|
140
|
+
fga: z.ZodOptional<z.ZodObject<{
|
|
141
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
142
|
+
url: z.ZodOptional<z.ZodString>;
|
|
143
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
144
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
145
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
146
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
147
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
148
|
+
path: z.ZodOptional<z.ZodString>;
|
|
149
|
+
}, z.core.$strict>>;
|
|
150
|
+
}, z.core.$strict>>;
|
|
151
|
+
git: z.ZodOptional<z.ZodObject<{
|
|
152
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
153
|
+
url: z.ZodOptional<z.ZodString>;
|
|
154
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
155
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
156
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
157
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
158
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
159
|
+
path: z.ZodOptional<z.ZodString>;
|
|
160
|
+
}, z.core.$strict>>;
|
|
161
|
+
}, z.core.$strict>>;
|
|
162
|
+
temporal: z.ZodOptional<z.ZodObject<{
|
|
163
|
+
mode: z.ZodEnum<typeof InfraMode>;
|
|
164
|
+
url: z.ZodOptional<z.ZodString>;
|
|
165
|
+
realm: z.ZodOptional<z.ZodString>;
|
|
166
|
+
bucketPrefix: z.ZodOptional<z.ZodString>;
|
|
167
|
+
secretRef: z.ZodOptional<z.ZodString>;
|
|
168
|
+
adminSecretRef: z.ZodOptional<z.ZodString>;
|
|
169
|
+
persist: z.ZodOptional<z.ZodObject<{
|
|
170
|
+
path: z.ZodOptional<z.ZodString>;
|
|
171
|
+
}, z.core.$strict>>;
|
|
172
|
+
}, z.core.$strict>>;
|
|
173
|
+
}, z.core.$strict>>;
|
|
174
|
+
app: z.ZodDefault<z.ZodObject<{
|
|
175
|
+
substrate: z.ZodDefault<z.ZodEnum<typeof Substrate>>;
|
|
176
|
+
include: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
|
|
177
|
+
exclude: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
178
|
+
features: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
179
|
+
web: z.ZodDefault<z.ZodObject<{
|
|
180
|
+
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
181
|
+
substrate: z.ZodOptional<z.ZodEnum<typeof Substrate>>;
|
|
182
|
+
}, z.core.$strict>>;
|
|
183
|
+
}, z.core.$strict>>;
|
|
184
|
+
state: z.ZodDefault<z.ZodObject<{
|
|
185
|
+
workspaces: z.ZodDefault<z.ZodObject<{
|
|
186
|
+
driver: z.ZodOptional<z.ZodEnum<typeof WorkspaceDriver>>;
|
|
187
|
+
path: z.ZodOptional<z.ZodString>;
|
|
188
|
+
}, z.core.$strict>>;
|
|
189
|
+
biomeMaterialization: z.ZodDefault<z.ZodObject<{
|
|
190
|
+
path: z.ZodOptional<z.ZodString>;
|
|
191
|
+
}, z.core.$strict>>;
|
|
192
|
+
}, z.core.$strict>>;
|
|
193
|
+
secrets: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
194
|
+
from: z.ZodEnum<typeof SecretSource>;
|
|
195
|
+
path: z.ZodOptional<z.ZodString>;
|
|
196
|
+
env: z.ZodOptional<z.ZodString>;
|
|
197
|
+
}, z.core.$strict>>>;
|
|
198
|
+
}, z.core.$strict>;
|
|
199
|
+
export type XemaConfig = z.infer<typeof XemaConfigSchema>;
|
|
200
|
+
export declare function parseXemaConfig(raw: unknown): XemaConfig;
|
|
201
|
+
export {};
|
|
202
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/runtime/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,oBAAY,SAAS;IAEnB,OAAO,YAAY;IAEnB,QAAQ,aAAa;IAErB,QAAQ,aAAa;CACtB;AAGD,oBAAY,SAAS;IACnB,SAAS,cAAc;IACvB,MAAM,WAAW;IAEjB,IAAI,SAAS;CACd;AAGD,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,QAAQ,aAAa;CACtB;AAGD,oBAAY,eAAe;IAEzB,WAAW,iBAAiB;IAE5B,QAAQ,cAAc;CACvB;AAGD,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;CACd;AAID,QAAA,MAAM,0BAA0B;;;;;;;;;;kBAUrB,CAAC;AACZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAuB9E,QAAA,MAAM,eAAe;;;;;;;;;kBAcV,CAAC;AACZ,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD,QAAA,MAAM,iBAAiB;;;;;;;;kBAQZ,CAAC;AACZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,QAAA,MAAM,kBAAkB;;;;kBAMb,CAAC;AACZ,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAclB,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAUxD"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XemaConfigSchema = exports.SecretSource = exports.WorkspaceDriver = exports.InfraComponent = exports.Substrate = exports.InfraMode = void 0;
|
|
4
|
+
exports.parseXemaConfig = parseXemaConfig;
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
var InfraMode;
|
|
7
|
+
(function (InfraMode) {
|
|
8
|
+
InfraMode["Managed"] = "managed";
|
|
9
|
+
InfraMode["External"] = "external";
|
|
10
|
+
InfraMode["Disabled"] = "disabled";
|
|
11
|
+
})(InfraMode || (exports.InfraMode = InfraMode = {}));
|
|
12
|
+
var Substrate;
|
|
13
|
+
(function (Substrate) {
|
|
14
|
+
Substrate["Container"] = "container";
|
|
15
|
+
Substrate["Native"] = "native";
|
|
16
|
+
Substrate["Helm"] = "helm";
|
|
17
|
+
})(Substrate || (exports.Substrate = Substrate = {}));
|
|
18
|
+
var InfraComponent;
|
|
19
|
+
(function (InfraComponent) {
|
|
20
|
+
InfraComponent["Postgres"] = "postgres";
|
|
21
|
+
InfraComponent["Redis"] = "redis";
|
|
22
|
+
InfraComponent["Etcd"] = "etcd";
|
|
23
|
+
InfraComponent["Keycloak"] = "keycloak";
|
|
24
|
+
InfraComponent["ObjectStore"] = "objectStore";
|
|
25
|
+
InfraComponent["Search"] = "search";
|
|
26
|
+
InfraComponent["Fga"] = "fga";
|
|
27
|
+
InfraComponent["Git"] = "git";
|
|
28
|
+
InfraComponent["Temporal"] = "temporal";
|
|
29
|
+
})(InfraComponent || (exports.InfraComponent = InfraComponent = {}));
|
|
30
|
+
var WorkspaceDriver;
|
|
31
|
+
(function (WorkspaceDriver) {
|
|
32
|
+
WorkspaceDriver["DockerLocal"] = "docker_local";
|
|
33
|
+
WorkspaceDriver["HostPath"] = "host_path";
|
|
34
|
+
})(WorkspaceDriver || (exports.WorkspaceDriver = WorkspaceDriver = {}));
|
|
35
|
+
var SecretSource;
|
|
36
|
+
(function (SecretSource) {
|
|
37
|
+
SecretSource["Prompt"] = "prompt";
|
|
38
|
+
SecretSource["Env"] = "env";
|
|
39
|
+
SecretSource["File"] = "file";
|
|
40
|
+
})(SecretSource || (exports.SecretSource = SecretSource = {}));
|
|
41
|
+
const PersistSchema = zod_1.z.object({ path: zod_1.z.string().min(1).optional() }).strict();
|
|
42
|
+
const InfraComponentConfigSchema = zod_1.z
|
|
43
|
+
.object({
|
|
44
|
+
mode: zod_1.z.nativeEnum(InfraMode),
|
|
45
|
+
url: zod_1.z.string().min(1).optional(),
|
|
46
|
+
realm: zod_1.z.string().min(1).optional(),
|
|
47
|
+
bucketPrefix: zod_1.z.string().min(1).optional(),
|
|
48
|
+
secretRef: zod_1.z.string().min(1).optional(),
|
|
49
|
+
adminSecretRef: zod_1.z.string().min(1).optional(),
|
|
50
|
+
persist: PersistSchema.optional(),
|
|
51
|
+
})
|
|
52
|
+
.strict();
|
|
53
|
+
const InfraConfigSchema = zod_1.z
|
|
54
|
+
.object({
|
|
55
|
+
[InfraComponent.Postgres]: InfraComponentConfigSchema.optional(),
|
|
56
|
+
[InfraComponent.Redis]: InfraComponentConfigSchema.optional(),
|
|
57
|
+
[InfraComponent.Etcd]: InfraComponentConfigSchema.optional(),
|
|
58
|
+
[InfraComponent.Keycloak]: InfraComponentConfigSchema.optional(),
|
|
59
|
+
[InfraComponent.ObjectStore]: InfraComponentConfigSchema.optional(),
|
|
60
|
+
[InfraComponent.Search]: InfraComponentConfigSchema.optional(),
|
|
61
|
+
[InfraComponent.Fga]: InfraComponentConfigSchema.optional(),
|
|
62
|
+
[InfraComponent.Git]: InfraComponentConfigSchema.optional(),
|
|
63
|
+
[InfraComponent.Temporal]: InfraComponentConfigSchema.optional(),
|
|
64
|
+
})
|
|
65
|
+
.strict();
|
|
66
|
+
const RosterIncludeSchema = zod_1.z.union([
|
|
67
|
+
zod_1.z.literal('all'),
|
|
68
|
+
zod_1.z.array(zod_1.z.string().min(1)),
|
|
69
|
+
]);
|
|
70
|
+
const AppConfigSchema = zod_1.z
|
|
71
|
+
.object({
|
|
72
|
+
substrate: zod_1.z.nativeEnum(Substrate).default(Substrate.Container),
|
|
73
|
+
include: RosterIncludeSchema.default('all'),
|
|
74
|
+
exclude: zod_1.z.array(zod_1.z.string().min(1)).default([]),
|
|
75
|
+
features: zod_1.z.array(zod_1.z.string().min(1)).default([]),
|
|
76
|
+
web: zod_1.z
|
|
77
|
+
.object({
|
|
78
|
+
enabled: zod_1.z.boolean().default(false),
|
|
79
|
+
substrate: zod_1.z.nativeEnum(Substrate).optional(),
|
|
80
|
+
})
|
|
81
|
+
.strict()
|
|
82
|
+
.default({ enabled: false }),
|
|
83
|
+
})
|
|
84
|
+
.strict();
|
|
85
|
+
const StateConfigSchema = zod_1.z
|
|
86
|
+
.object({
|
|
87
|
+
workspaces: zod_1.z
|
|
88
|
+
.object({ driver: zod_1.z.nativeEnum(WorkspaceDriver).optional(), path: zod_1.z.string().min(1).optional() })
|
|
89
|
+
.strict()
|
|
90
|
+
.default({}),
|
|
91
|
+
biomeMaterialization: zod_1.z.object({ path: zod_1.z.string().min(1).optional() }).strict().default({}),
|
|
92
|
+
})
|
|
93
|
+
.strict();
|
|
94
|
+
const SecretConfigSchema = zod_1.z
|
|
95
|
+
.object({
|
|
96
|
+
from: zod_1.z.nativeEnum(SecretSource),
|
|
97
|
+
path: zod_1.z.string().min(1).optional(),
|
|
98
|
+
env: zod_1.z.string().min(1).optional(),
|
|
99
|
+
})
|
|
100
|
+
.strict();
|
|
101
|
+
exports.XemaConfigSchema = zod_1.z
|
|
102
|
+
.object({
|
|
103
|
+
edition: zod_1.z.string().min(1).default('oss'),
|
|
104
|
+
infra: InfraConfigSchema.default({}),
|
|
105
|
+
app: AppConfigSchema.default({
|
|
106
|
+
substrate: Substrate.Container,
|
|
107
|
+
include: 'all',
|
|
108
|
+
exclude: [],
|
|
109
|
+
features: [],
|
|
110
|
+
web: { enabled: false },
|
|
111
|
+
}),
|
|
112
|
+
state: StateConfigSchema.default({ workspaces: {}, biomeMaterialization: {} }),
|
|
113
|
+
secrets: zod_1.z.record(zod_1.z.string().min(1), SecretConfigSchema).default({}),
|
|
114
|
+
})
|
|
115
|
+
.strict();
|
|
116
|
+
function parseXemaConfig(raw) {
|
|
117
|
+
const result = exports.XemaConfigSchema.safeParse(raw ?? {});
|
|
118
|
+
if (!result.success) {
|
|
119
|
+
throw new Error(`Invalid xema.config.yaml: ${result.error.issues
|
|
120
|
+
.map((i) => `[${i.path.join('.')}] ${i.message}`)
|
|
121
|
+
.join('; ')}`);
|
|
122
|
+
}
|
|
123
|
+
return result.data;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/runtime/config/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Substrate, type XemaConfig } from './config/schema';
|
|
2
|
+
import type { InfraPlan } from './infra/infra-plan';
|
|
3
|
+
import type { RosterEntry } from './roster';
|
|
4
|
+
export interface SeededEnv {
|
|
5
|
+
readonly base: Readonly<Record<string, string>>;
|
|
6
|
+
perService(entry: RosterEntry): Readonly<Record<string, string>>;
|
|
7
|
+
}
|
|
8
|
+
export interface EnvSeederContext {
|
|
9
|
+
readonly config: XemaConfig;
|
|
10
|
+
readonly infra: InfraPlan;
|
|
11
|
+
readonly roster: readonly RosterEntry[];
|
|
12
|
+
readonly substrate: Substrate;
|
|
13
|
+
readonly ports?: ReadonlyMap<string, number>;
|
|
14
|
+
readonly containerPort?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function seedEnv(ctx: EnvSeederContext): SeededEnv;
|
|
17
|
+
//# sourceMappingURL=env-seeder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-seeder.d.ts","sourceRoot":"","sources":["../../src/runtime/env-seeder.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIxF,OAAO,KAAK,EAAE,SAAS,EAA0B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAa5C,MAAM,WAAW,SAAS;IAExB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEhD,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE7C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAID,wBAAgB,OAAO,CAAC,GAAG,EAAE,gBAAgB,GAAG,SAAS,CAkDxD"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.seedEnv = seedEnv;
|
|
4
|
+
const kernel_state_runtime_1 = require("@xemahq/kernel-state-runtime");
|
|
5
|
+
const service_registry_nest_1 = require("@xemahq/service-registry-nest");
|
|
6
|
+
const schema_1 = require("./config/schema");
|
|
7
|
+
const infra_catalog_1 = require("./infra/infra-catalog");
|
|
8
|
+
const env_defaults_1 = require("../dev/env-defaults");
|
|
9
|
+
const DEFAULT_CONTAINER_PORT = 3000;
|
|
10
|
+
function seedEnv(ctx) {
|
|
11
|
+
const containerPort = ctx.containerPort ?? DEFAULT_CONTAINER_PORT;
|
|
12
|
+
const hostOf = (name) => ctx.substrate === schema_1.Substrate.Container
|
|
13
|
+
? name
|
|
14
|
+
: '127.0.0.1';
|
|
15
|
+
const portOf = (name) => ctx.substrate === schema_1.Substrate.Container ? containerPort : ctx.ports?.get(name) ?? containerPort;
|
|
16
|
+
const base = {};
|
|
17
|
+
base.REDIS_URL = infraUrl(ctx, schema_1.InfraComponent.Redis) ?? 'redis://127.0.0.1:6379';
|
|
18
|
+
base.OPENSEARCH_URL = infraUrl(ctx, schema_1.InfraComponent.Search) ?? 'http://127.0.0.1:9200';
|
|
19
|
+
base.TEMPORAL_ADDRESS = stripScheme(infraUrl(ctx, schema_1.InfraComponent.Temporal) ?? '127.0.0.1:7233');
|
|
20
|
+
base.TEMPORAL_NAMESPACE = 'default';
|
|
21
|
+
const etcd = infraUrl(ctx, schema_1.InfraComponent.Etcd) ?? '127.0.0.1:2379';
|
|
22
|
+
base.XEMA_ETCD_ENDPOINTS = stripScheme(etcd);
|
|
23
|
+
base.XEMA_KERNEL_STATE_PROFILE = kernel_state_runtime_1.KernelStateProfile.Cluster;
|
|
24
|
+
base[service_registry_nest_1.SERVICE_REGISTRY_ADAPTER_ENV_VAR] = service_registry_nest_1.ServiceRegistryAdapterKind.KernelState;
|
|
25
|
+
const kcUrl = infraUrl(ctx, schema_1.InfraComponent.Keycloak) ?? 'http://127.0.0.1:8180';
|
|
26
|
+
const realm = ctx.infra.byComponent.get(schema_1.InfraComponent.Keycloak)?.config.realm ?? 'xema';
|
|
27
|
+
base.JWT_ISSUER = `${kcUrl}/realms/${realm}`;
|
|
28
|
+
base.JWT_PUBLIC_KEY_URL = `${kcUrl}/realms/${realm}/protocol/openid-connect/certs`;
|
|
29
|
+
for (const [envVar, serviceName] of Object.entries(env_defaults_1.SERVICE_URL_ENV_VARS)) {
|
|
30
|
+
base[envVar] = `http://${hostOf(serviceName)}:${String(portOf(serviceName))}`;
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
base,
|
|
34
|
+
perService(entry) {
|
|
35
|
+
const overlay = {};
|
|
36
|
+
const selfPort = portOf(entry.name);
|
|
37
|
+
overlay.PORT = String(selfPort);
|
|
38
|
+
overlay.SERVICE_PUBLIC_URL = `http://${hostOf(entry.name)}:${String(selfPort)}`;
|
|
39
|
+
overlay.DATABASE_URL = databaseUrl(ctx, entry.name);
|
|
40
|
+
return overlay;
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function databaseUrl(ctx, serviceName) {
|
|
45
|
+
const pg = ctx.infra.byComponent.get(schema_1.InfraComponent.Postgres);
|
|
46
|
+
const host = pg?.mode === schema_1.InfraMode.External && pg.url
|
|
47
|
+
? new URL(pg.url).host
|
|
48
|
+
: ctx.substrate === schema_1.Substrate.Container
|
|
49
|
+
? `${infra_catalog_1.INFRA_CATALOG[schema_1.InfraComponent.Postgres].managed.containerName}:5432`
|
|
50
|
+
: '127.0.0.1:5432';
|
|
51
|
+
const db = `${serviceName.replace(/-/g, '_')}_db`;
|
|
52
|
+
return `postgresql://postgres:postgres@${host}/${db}?schema=public&connection_limit=3`;
|
|
53
|
+
}
|
|
54
|
+
function infraUrl(ctx, component) {
|
|
55
|
+
const resolved = ctx.infra.byComponent.get(component);
|
|
56
|
+
if (!resolved) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
if (resolved.mode === schema_1.InfraMode.External) {
|
|
60
|
+
return resolved.url;
|
|
61
|
+
}
|
|
62
|
+
if (resolved.mode === schema_1.InfraMode.Disabled) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
return managedUrl(ctx, resolved);
|
|
66
|
+
}
|
|
67
|
+
function managedUrl(ctx, resolved) {
|
|
68
|
+
const spec = infra_catalog_1.INFRA_CATALOG[resolved.component].managed;
|
|
69
|
+
const firstPort = spec.ports[0];
|
|
70
|
+
const containerPort = firstPort ? firstPort[1] : 0;
|
|
71
|
+
const hostPort = firstPort ? firstPort[0] : 0;
|
|
72
|
+
if (ctx.substrate === schema_1.Substrate.Container) {
|
|
73
|
+
return `http://${spec.containerName}:${String(containerPort)}`;
|
|
74
|
+
}
|
|
75
|
+
return `http://127.0.0.1:${String(hostPort)}`;
|
|
76
|
+
}
|
|
77
|
+
function stripScheme(url) {
|
|
78
|
+
return url.replace(/^https?:\/\//, '');
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=env-seeder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env-seeder.js","sourceRoot":"","sources":["../../src/runtime/env-seeder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type XemaConfig } from './config/schema';
|
|
2
|
+
export interface ForegroundOptions {
|
|
3
|
+
readonly config: XemaConfig;
|
|
4
|
+
readonly includeWeb: boolean;
|
|
5
|
+
readonly detach: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare function bringUpForeground(opts: ForegroundOptions): Promise<void>;
|
|
8
|
+
//# sourceMappingURL=foreground.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foreground.d.ts","sourceRoot":"","sources":["../../src/runtime/foreground.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAU7D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC9E"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.bringUpForeground = bringUpForeground;
|
|
4
|
+
const schema_1 = require("./config/schema");
|
|
5
|
+
const launch_1 = require("./launch");
|
|
6
|
+
async function bringUpForeground(opts) {
|
|
7
|
+
const onEvent = (event) => {
|
|
8
|
+
if (event.kind === 'wave-start') {
|
|
9
|
+
console.log(`wave ${String(event.wave)} (${event.tier ?? ''})`);
|
|
10
|
+
}
|
|
11
|
+
else if (event.kind === 'service-ready') {
|
|
12
|
+
console.log(` ✓ ${event.service ?? ''} ${event.detail ?? ''}`);
|
|
13
|
+
}
|
|
14
|
+
else if (event.kind === 'service-skipped') {
|
|
15
|
+
console.log(` ⚠ skipped ${event.service ?? ''}: ${event.detail ?? ''}`);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const handle = await (0, launch_1.launch)({
|
|
19
|
+
config: opts.config,
|
|
20
|
+
includeWeb: opts.includeWeb,
|
|
21
|
+
onEvent,
|
|
22
|
+
log: (line) => console.log(line),
|
|
23
|
+
});
|
|
24
|
+
printSummary(handle);
|
|
25
|
+
if (opts.detach) {
|
|
26
|
+
if (opts.config.app.substrate !== schema_1.Substrate.Container) {
|
|
27
|
+
console.log('');
|
|
28
|
+
console.log('⚠ --detach is only meaningful for the container substrate; native services ' +
|
|
29
|
+
'are owned by this process and stop when it exits.');
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.log('');
|
|
33
|
+
console.log('Detached. Container workloads keep running (managed by the container runtime).');
|
|
34
|
+
console.log('Use `xema status` / `xema logs` / `xema down` to manage them.');
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
console.log('');
|
|
39
|
+
console.log('Press Ctrl+C to shut down.');
|
|
40
|
+
await waitForSignal(handle);
|
|
41
|
+
}
|
|
42
|
+
function printSummary(handle) {
|
|
43
|
+
const { running, skipped } = handle.result;
|
|
44
|
+
console.log('');
|
|
45
|
+
console.log('-'.repeat(60));
|
|
46
|
+
console.log(`Booted ${String(running.length)}/${String(handle.roster.length)} services` +
|
|
47
|
+
(skipped.length > 0 ? `, skipped ${String(skipped.length)}` : ''));
|
|
48
|
+
for (const svc of running) {
|
|
49
|
+
console.log(` ${svc.name.padEnd(30, ' ')} ${svc.url} (${svc.handle})`);
|
|
50
|
+
}
|
|
51
|
+
for (const s of skipped) {
|
|
52
|
+
console.log(` ⚠ ${s.name}: ${s.reason}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
function waitForSignal(handle) {
|
|
56
|
+
return new Promise((resolve) => {
|
|
57
|
+
const shutdown = (signal) => {
|
|
58
|
+
console.log('');
|
|
59
|
+
console.log(`received ${signal}; shutting down...`);
|
|
60
|
+
handle
|
|
61
|
+
.shutdown()
|
|
62
|
+
.catch(() => undefined)
|
|
63
|
+
.finally(() => {
|
|
64
|
+
resolve();
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
process.on('SIGINT', shutdown);
|
|
68
|
+
process.on('SIGTERM', shutdown);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=foreground.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"foreground.js","sourceRoot":"","sources":["../../src/runtime/foreground.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { InfraComponent } from '../config/schema';
|
|
2
|
+
export interface ManagedInfraSpec {
|
|
3
|
+
readonly image: string;
|
|
4
|
+
readonly containerName: string;
|
|
5
|
+
readonly ports: ReadonlyArray<readonly [number, number]>;
|
|
6
|
+
readonly dataPath?: string;
|
|
7
|
+
readonly healthCmd?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface InfraCatalogEntry {
|
|
10
|
+
readonly component: InfraComponent;
|
|
11
|
+
readonly mandatory: boolean;
|
|
12
|
+
readonly managed: ManagedInfraSpec;
|
|
13
|
+
readonly defaultLocalUrl?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const INFRA_CATALOG: Readonly<Record<InfraComponent, InfraCatalogEntry>>;
|
|
16
|
+
export declare const INFRA_COMPONENTS: readonly InfraComponent[];
|
|
17
|
+
export declare const OBJECT_STORE_BUCKETS: readonly string[];
|
|
18
|
+
export declare const SHARED_BIOMES_DATABASE = "xema_biomes";
|
|
19
|
+
//# sourceMappingURL=infra-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infra-catalog.d.ts","sourceRoot":"","sources":["../../../src/runtime/infra/infra-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAclD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAEnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAgH5E,CAAC;AAGH,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAErD,CAAC;AAOF,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAOhD,CAAC;AAGH,eAAO,MAAM,sBAAsB,gBAAgB,CAAC"}
|