@xemahq/xema 0.2.4 → 0.4.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/LICENSE +176 -175
- package/README.md +117 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +13 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/biome.d.ts.map +1 -1
- package/dist/commands/biome.js +83 -6
- package/dist/commands/biome.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +34 -10
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +48 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +39 -5
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +192 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +13 -1
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +30 -4
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +11 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/runtime/config/init-presets.d.ts +37 -0
- package/dist/runtime/config/init-presets.d.ts.map +1 -0
- package/dist/runtime/config/init-presets.js +145 -0
- package/dist/runtime/config/init-presets.js.map +1 -0
- package/dist/runtime/config/schema.d.ts +27 -0
- package/dist/runtime/config/schema.d.ts.map +1 -1
- package/dist/runtime/config/schema.js +2 -0
- package/dist/runtime/config/schema.js.map +1 -1
- package/dist/runtime/launch.d.ts.map +1 -1
- package/dist/runtime/launch.js +22 -2
- package/dist/runtime/launch.js.map +1 -1
- package/dist/runtime/paths.d.ts +1 -0
- package/dist/runtime/paths.d.ts.map +1 -1
- package/dist/runtime/paths.js +27 -0
- package/dist/runtime/paths.js.map +1 -1
- package/dist/runtime/roster.d.ts +10 -2
- package/dist/runtime/roster.d.ts.map +1 -1
- package/dist/runtime/roster.js +50 -1
- package/dist/runtime/roster.js.map +1 -1
- package/dist/runtime/runner/helm-cli.d.ts +20 -0
- package/dist/runtime/runner/helm-cli.d.ts.map +1 -0
- package/dist/runtime/runner/helm-cli.js +58 -0
- package/dist/runtime/runner/helm-cli.js.map +1 -0
- package/dist/runtime/runner/helm-runner.d.ts +1 -2
- package/dist/runtime/runner/helm-runner.d.ts.map +1 -1
- package/dist/runtime/runner/helm-runner.js +11 -24
- package/dist/runtime/runner/helm-runner.js.map +1 -1
- package/dist/runtime/runner/native-runner.d.ts.map +1 -1
- package/dist/runtime/runner/native-runner.js +6 -5
- package/dist/runtime/runner/native-runner.js.map +1 -1
- package/dist/runtime/sources/credentials.d.ts +11 -0
- package/dist/runtime/sources/credentials.d.ts.map +1 -0
- package/dist/runtime/sources/credentials.js +68 -0
- package/dist/runtime/sources/credentials.js.map +1 -0
- package/dist/runtime/sources/kinds/distribution.d.ts +5 -0
- package/dist/runtime/sources/kinds/distribution.d.ts.map +1 -0
- package/dist/runtime/sources/kinds/distribution.js +33 -0
- package/dist/runtime/sources/kinds/distribution.js.map +1 -0
- package/dist/runtime/sources/kinds/git.d.ts +5 -0
- package/dist/runtime/sources/kinds/git.d.ts.map +1 -0
- package/dist/runtime/sources/kinds/git.js +70 -0
- package/dist/runtime/sources/kinds/git.js.map +1 -0
- package/dist/runtime/sources/kinds/workspace.d.ts +5 -0
- package/dist/runtime/sources/kinds/workspace.d.ts.map +1 -0
- package/dist/runtime/sources/kinds/workspace.js +24 -0
- package/dist/runtime/sources/kinds/workspace.js.map +1 -0
- package/dist/runtime/sources/manifest-walk.d.ts +22 -0
- package/dist/runtime/sources/manifest-walk.d.ts.map +1 -0
- package/dist/runtime/sources/manifest-walk.js +87 -0
- package/dist/runtime/sources/manifest-walk.js.map +1 -0
- package/dist/runtime/sources/resolver.d.ts +15 -0
- package/dist/runtime/sources/resolver.d.ts.map +1 -0
- package/dist/runtime/sources/resolver.js +75 -0
- package/dist/runtime/sources/resolver.js.map +1 -0
- package/dist/runtime/sources/schema.d.ts +101 -0
- package/dist/runtime/sources/schema.d.ts.map +1 -0
- package/dist/runtime/sources/schema.js +71 -0
- package/dist/runtime/sources/schema.js.map +1 -0
- package/dist/runtime/sources/types.d.ts +10 -0
- package/dist/runtime/sources/types.d.ts.map +1 -0
- package/dist/runtime/sources/types.js +3 -0
- package/dist/runtime/sources/types.js.map +1 -0
- package/dist/runtime/waves.d.ts +1 -0
- package/dist/runtime/waves.d.ts.map +1 -1
- package/dist/runtime/waves.js +19 -0
- package/dist/runtime/waves.js.map +1 -1
- package/examples/01-local-monolith.yaml +1 -1
- package/examples/02-local-container-full.yaml +1 -1
- package/examples/03-byo-infra.yaml +1 -1
- package/examples/05-appliance-helm.yaml +1 -1
- package/examples/06-biome-sources.yaml +51 -0
- package/package.json +5 -2
- package/dist/dev/dev-orchestrator.d.ts +0 -7
- package/dist/dev/dev-orchestrator.d.ts.map +0 -1
- package/dist/dev/dev-orchestrator.js +0 -367
- package/dist/dev/dev-orchestrator.js.map +0 -1
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerCommand = registerCommand;
|
|
4
|
+
const node_fs_1 = require("node:fs");
|
|
5
|
+
const node_path_1 = require("node:path");
|
|
6
|
+
const promises_1 = require("node:readline/promises");
|
|
7
|
+
const yaml_1 = require("yaml");
|
|
8
|
+
const exit_codes_1 = require("../lib/exit-codes");
|
|
9
|
+
const init_presets_1 = require("../runtime/config/init-presets");
|
|
10
|
+
const paths_1 = require("../runtime/paths");
|
|
11
|
+
const DEFAULT_OUTPUT = 'xema.config.yaml';
|
|
12
|
+
const DEFAULT_PRESET = init_presets_1.InitPreset.LocalContainer;
|
|
13
|
+
function registerCommand(program) {
|
|
14
|
+
program
|
|
15
|
+
.command('init')
|
|
16
|
+
.summary('Scaffold a xema.config.yaml (interactive or --preset)')
|
|
17
|
+
.description('Create a xema.config.yaml. Run with no flags for an interactive wizard ' +
|
|
18
|
+
`over the real scenarios (${init_presets_1.INIT_PRESETS.join(', ')}), or pass --preset ` +
|
|
19
|
+
'<name> (+ --yes) to generate one non-interactively.')
|
|
20
|
+
.option('--preset <name>', `One of: ${init_presets_1.INIT_PRESETS.join(' | ')}`)
|
|
21
|
+
.option('--output <path>', `Output path (default: ${DEFAULT_OUTPUT})`)
|
|
22
|
+
.option('--edition <id>', 'Distribution edition (default: oss)')
|
|
23
|
+
.option('--web', 'Enable the web host shell (where the preset supports it)')
|
|
24
|
+
.option('--yes', 'Non-interactive: accept defaults (preset defaults to local-container)')
|
|
25
|
+
.option('--force', 'Overwrite an existing config file')
|
|
26
|
+
.action(async (opts) => {
|
|
27
|
+
try {
|
|
28
|
+
await runInit(opts);
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
32
|
+
(0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.GenericError, `xema init failed: ${message}`);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
async function runInit(opts) {
|
|
37
|
+
const outputPath = (0, node_path_1.resolve)(process.cwd(), opts.output ?? DEFAULT_OUTPUT);
|
|
38
|
+
if ((0, node_fs_1.existsSync)(outputPath) && opts.force !== true) {
|
|
39
|
+
return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.ConfigurationError, `${outputPath} already exists. Pass --force to overwrite, or --output <path> to write elsewhere.`);
|
|
40
|
+
}
|
|
41
|
+
const resolved = await resolvePresetAndInputs(opts);
|
|
42
|
+
warnIfUnknownEdition(resolved.inputs.edition);
|
|
43
|
+
const config = (0, init_presets_1.buildPresetConfig)(resolved.preset, resolved.inputs);
|
|
44
|
+
const meta = init_presets_1.PRESET_METAS[resolved.preset];
|
|
45
|
+
(0, node_fs_1.writeFileSync)(outputPath, renderConfigFile(resolved.preset, config), 'utf8');
|
|
46
|
+
console.log('');
|
|
47
|
+
console.log(`✓ Wrote ${outputPath} (${meta.label})`);
|
|
48
|
+
console.log('');
|
|
49
|
+
console.log('Next steps:');
|
|
50
|
+
if (meta.needsExternalInfra) {
|
|
51
|
+
console.log(' 1. Make sure your infra is running (or run `xema doctor --infra`).');
|
|
52
|
+
console.log(` 2. ${meta.nextStep}`);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log(` • ${meta.nextStep}`);
|
|
56
|
+
}
|
|
57
|
+
console.log('');
|
|
58
|
+
console.log('Tune it later: infra modes (managed | external <url> | disabled), app.substrate,');
|
|
59
|
+
console.log('app.include, and a `sources:` block for extra biome registries (see `xema doctor --sources`).');
|
|
60
|
+
}
|
|
61
|
+
async function resolvePresetAndInputs(opts) {
|
|
62
|
+
if (opts.preset !== undefined) {
|
|
63
|
+
const preset = (0, init_presets_1.parseInitPreset)(opts.preset);
|
|
64
|
+
if (preset === null) {
|
|
65
|
+
return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.ConfigurationError, `Unknown --preset "${opts.preset}". Valid: ${init_presets_1.INIT_PRESETS.join(', ')}.`);
|
|
66
|
+
}
|
|
67
|
+
return { preset, inputs: inputsFromFlags(opts) };
|
|
68
|
+
}
|
|
69
|
+
if (opts.yes === true) {
|
|
70
|
+
return { preset: DEFAULT_PRESET, inputs: inputsFromFlags(opts) };
|
|
71
|
+
}
|
|
72
|
+
if (process.stdin.isTTY !== true || process.stdout.isTTY !== true) {
|
|
73
|
+
return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.ConfigurationError, 'Not a TTY — cannot run the interactive wizard. Pass --preset <name> ' +
|
|
74
|
+
`(${init_presets_1.INIT_PRESETS.join(' | ')}) or --yes.`);
|
|
75
|
+
}
|
|
76
|
+
return runWizard(opts);
|
|
77
|
+
}
|
|
78
|
+
function warnIfUnknownEdition(edition) {
|
|
79
|
+
const available = (0, paths_1.listAvailableEditions)();
|
|
80
|
+
if (available.length > 0 && !available.includes(edition)) {
|
|
81
|
+
console.log(`⚠ edition "${edition}" is not among the known distributions ` +
|
|
82
|
+
`(${available.join(', ')}); \`xema up\` will fail unless its lock is provided ` +
|
|
83
|
+
`via --lock / XEMA_DISTRIBUTION_LOCK_PATH.`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function inputsFromFlags(opts) {
|
|
87
|
+
return {
|
|
88
|
+
edition: opts.edition ?? 'oss',
|
|
89
|
+
web: opts.web === true,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
async function runWizard(opts) {
|
|
93
|
+
const rl = (0, promises_1.createInterface)({ input: process.stdin, output: process.stdout });
|
|
94
|
+
try {
|
|
95
|
+
console.log('xema init — scaffold a xema.config.yaml');
|
|
96
|
+
console.log('-'.repeat(50));
|
|
97
|
+
const presets = init_presets_1.INIT_PRESETS;
|
|
98
|
+
const choice = await promptChoice(rl, 'What are you setting up?', presets.map((p) => {
|
|
99
|
+
const m = init_presets_1.PRESET_METAS[p];
|
|
100
|
+
return { label: m.label, hint: m.description };
|
|
101
|
+
}));
|
|
102
|
+
const preset = presets[choice] ?? DEFAULT_PRESET;
|
|
103
|
+
const meta = init_presets_1.PRESET_METAS[preset];
|
|
104
|
+
const edition = await promptEdition(rl, opts.edition ?? 'oss');
|
|
105
|
+
let urls = {};
|
|
106
|
+
if (meta.needsExternalInfra) {
|
|
107
|
+
console.log('');
|
|
108
|
+
console.log('External infrastructure URLs (press Enter to accept the local default):');
|
|
109
|
+
urls = await promptExternalInfra(rl, preset);
|
|
110
|
+
}
|
|
111
|
+
let web = opts.web === true;
|
|
112
|
+
if (meta.supportsWeb) {
|
|
113
|
+
web = await promptYesNo(rl, 'Start the web host shell?', false);
|
|
114
|
+
}
|
|
115
|
+
return { preset, inputs: { edition, web, ...urls } };
|
|
116
|
+
}
|
|
117
|
+
finally {
|
|
118
|
+
rl.close();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async function promptExternalInfra(rl, preset) {
|
|
122
|
+
const out = {};
|
|
123
|
+
out.postgresUrl = await promptText(rl, ' Postgres URL', init_presets_1.DEFAULT_LOCAL_URLS.postgres);
|
|
124
|
+
if (preset === init_presets_1.InitPreset.LocalMonolith) {
|
|
125
|
+
out.redisUrl = await promptText(rl, ' Redis URL', init_presets_1.DEFAULT_LOCAL_URLS.redis);
|
|
126
|
+
}
|
|
127
|
+
out.keycloakUrl = await promptText(rl, ' Keycloak URL', init_presets_1.DEFAULT_LOCAL_URLS.keycloak);
|
|
128
|
+
out.keycloakRealm = await promptText(rl, ' Keycloak realm', init_presets_1.DEFAULT_LOCAL_URLS.keycloakRealm);
|
|
129
|
+
if (preset === init_presets_1.InitPreset.ByoInfra) {
|
|
130
|
+
out.objectStoreUrl = await promptText(rl, ' Object-store URL', init_presets_1.DEFAULT_LOCAL_URLS.objectStore);
|
|
131
|
+
}
|
|
132
|
+
return out;
|
|
133
|
+
}
|
|
134
|
+
async function promptChoice(rl, question, items) {
|
|
135
|
+
console.log('');
|
|
136
|
+
console.log(question);
|
|
137
|
+
items.forEach((item, i) => {
|
|
138
|
+
console.log(` ${String(i + 1)}) ${item.label}`);
|
|
139
|
+
if (item.hint !== undefined) {
|
|
140
|
+
console.log(` ${item.hint}`);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
for (;;) {
|
|
144
|
+
const raw = (await rl.question(`Choice [1-${String(items.length)}] (1): `)).trim();
|
|
145
|
+
if (raw.length === 0) {
|
|
146
|
+
return 0;
|
|
147
|
+
}
|
|
148
|
+
const n = Number.parseInt(raw, 10);
|
|
149
|
+
if (Number.isInteger(n) && n >= 1 && n <= items.length) {
|
|
150
|
+
return n - 1;
|
|
151
|
+
}
|
|
152
|
+
console.log(` Please enter a number between 1 and ${String(items.length)}.`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async function promptEdition(rl, def) {
|
|
156
|
+
const available = (0, paths_1.listAvailableEditions)();
|
|
157
|
+
if (available.length === 0) {
|
|
158
|
+
return promptText(rl, 'Distribution edition', def);
|
|
159
|
+
}
|
|
160
|
+
const ordered = available.includes(def) ? [def, ...available.filter((e) => e !== def)] : [def, ...available];
|
|
161
|
+
const idx = await promptChoice(rl, 'Distribution edition (defined by xema-distributions)', ordered.map((e) => ({ label: e })));
|
|
162
|
+
return ordered[idx] ?? def;
|
|
163
|
+
}
|
|
164
|
+
async function promptText(rl, question, def) {
|
|
165
|
+
const raw = (await rl.question(`${question} (${def}): `)).trim();
|
|
166
|
+
return raw.length > 0 ? raw : def;
|
|
167
|
+
}
|
|
168
|
+
async function promptYesNo(rl, question, def) {
|
|
169
|
+
const suffix = def ? '(Y/n)' : '(y/N)';
|
|
170
|
+
const raw = (await rl.question(`${question} ${suffix}: `)).trim().toLowerCase();
|
|
171
|
+
if (raw.length === 0) {
|
|
172
|
+
return def;
|
|
173
|
+
}
|
|
174
|
+
return raw === 'y' || raw === 'yes';
|
|
175
|
+
}
|
|
176
|
+
function renderConfigFile(preset, config) {
|
|
177
|
+
const meta = init_presets_1.PRESET_METAS[preset];
|
|
178
|
+
const header = [
|
|
179
|
+
'# xema.config.yaml',
|
|
180
|
+
`# Generated by \`xema init\` — preset: ${preset}`,
|
|
181
|
+
`# ${meta.description}`,
|
|
182
|
+
'#',
|
|
183
|
+
`# Next: ${meta.nextStep}`,
|
|
184
|
+
'# Infra modes: managed (launcher runs it) | external (give a url) | disabled.',
|
|
185
|
+
'# Full annotated reference + more scenarios:',
|
|
186
|
+
'# https://github.com/xema-dev/xema-cli/tree/main/apps/xema-cli/examples',
|
|
187
|
+
'',
|
|
188
|
+
'',
|
|
189
|
+
].join('\n');
|
|
190
|
+
return header + (0, yaml_1.stringify)(config, { aliasDuplicateObjects: false });
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuBtD"}
|
package/dist/commands/serve.js
CHANGED
|
@@ -14,6 +14,7 @@ function registerCommand(program) {
|
|
|
14
14
|
.requiredOption('--profile <profile>', 'Deployment profile: single-instance | cluster | appliance')
|
|
15
15
|
.option('--config <path>', 'Path to xema.config.yaml')
|
|
16
16
|
.option('--web', 'Also start the host-shell frontend')
|
|
17
|
+
.option('--only <services>', 'Boot only these comma-separated services (+ their hard prerequisites)')
|
|
17
18
|
.action(async (opts) => {
|
|
18
19
|
try {
|
|
19
20
|
await runServe(opts);
|
|
@@ -27,7 +28,18 @@ function registerCommand(program) {
|
|
|
27
28
|
async function runServe(opts) {
|
|
28
29
|
const substrate = profileToSubstrate(opts.profile);
|
|
29
30
|
const loaded = (0, loader_1.loadXemaConfig)({ explicit: opts.config });
|
|
30
|
-
const
|
|
31
|
+
const appConfig = { ...loaded.config.app, substrate };
|
|
32
|
+
if (opts.only !== undefined) {
|
|
33
|
+
const services = opts.only
|
|
34
|
+
.split(',')
|
|
35
|
+
.map((s) => s.trim())
|
|
36
|
+
.filter((s) => s.length > 0);
|
|
37
|
+
if (services.length === 0) {
|
|
38
|
+
throw new Error('--only requires at least one service name.');
|
|
39
|
+
}
|
|
40
|
+
appConfig.include = services;
|
|
41
|
+
}
|
|
42
|
+
const config = { ...loaded.config, app: appConfig };
|
|
31
43
|
console.log(`xema serve — profile=${opts.profile} (substrate=${substrate})`);
|
|
32
44
|
console.log(` config: ${loaded.source}`);
|
|
33
45
|
console.log('');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CActD"}
|
package/dist/commands/status.js
CHANGED
|
@@ -2,15 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.registerCommand = registerCommand;
|
|
4
4
|
const exit_codes_1 = require("../lib/exit-codes");
|
|
5
|
+
const loader_1 = require("../runtime/config/loader");
|
|
6
|
+
const schema_1 = require("../runtime/config/schema");
|
|
5
7
|
const docker_cli_1 = require("../runtime/runner/docker-cli");
|
|
8
|
+
const helm_cli_1 = require("../runtime/runner/helm-cli");
|
|
6
9
|
function registerCommand(program) {
|
|
7
10
|
program
|
|
8
11
|
.command('status')
|
|
9
12
|
.summary('Show launcher-owned workloads and their health')
|
|
10
|
-
.description('List
|
|
11
|
-
.
|
|
13
|
+
.description('List what xema up started (containers, or Helm releases) with status.')
|
|
14
|
+
.option('--config <path>', 'Path to xema.config.yaml (selects the substrate)')
|
|
15
|
+
.action(async (opts) => {
|
|
12
16
|
try {
|
|
13
|
-
await runStatus();
|
|
17
|
+
await runStatus(opts);
|
|
14
18
|
}
|
|
15
19
|
catch (err) {
|
|
16
20
|
const message = err instanceof Error ? err.message : String(err);
|
|
@@ -18,7 +22,29 @@ function registerCommand(program) {
|
|
|
18
22
|
}
|
|
19
23
|
});
|
|
20
24
|
}
|
|
21
|
-
async function runStatus() {
|
|
25
|
+
async function runStatus(opts) {
|
|
26
|
+
const { config } = (0, loader_1.loadXemaConfig)({ explicit: opts.config });
|
|
27
|
+
if (config.app.substrate === schema_1.Substrate.Helm) {
|
|
28
|
+
await runHelmStatus();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
await runContainerStatus();
|
|
32
|
+
}
|
|
33
|
+
async function runHelmStatus() {
|
|
34
|
+
const helm = new helm_cli_1.HelmCli();
|
|
35
|
+
if (!(await helm.available())) {
|
|
36
|
+
console.log('helm is not reachable — no Helm release status available.');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const table = await helm.listTable();
|
|
40
|
+
if (table.trim().length === 0) {
|
|
41
|
+
console.log(`No Helm releases in namespace "${helm.namespace}".`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
console.log(`Helm releases in namespace "${helm.namespace}":`);
|
|
45
|
+
console.log(table.trimEnd());
|
|
46
|
+
}
|
|
47
|
+
async function runContainerStatus() {
|
|
22
48
|
const docker = new docker_cli_1.DockerCli();
|
|
23
49
|
if (!(await docker.available())) {
|
|
24
50
|
console.log('No container runtime reachable. (Native services report status only within `xema up`.)');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"up.d.ts","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2BtD"}
|
package/dist/commands/up.js
CHANGED
|
@@ -17,6 +17,7 @@ function registerCommand(program) {
|
|
|
17
17
|
.option('--web', 'Also start the host-shell frontend')
|
|
18
18
|
.option('--all', 'Start everything including the frontend')
|
|
19
19
|
.option('--monolith', 'Single-process native mode (in-process registry + SQLite, no etcd)')
|
|
20
|
+
.option('--only <services>', 'Boot only these comma-separated services (+ their hard prerequisites)')
|
|
20
21
|
.option('--detach', 'Leave container workloads running and return (container substrate only)')
|
|
21
22
|
.action(async (opts) => {
|
|
22
23
|
try {
|
|
@@ -37,6 +38,16 @@ async function runUp(opts) {
|
|
|
37
38
|
if (opts.monolith) {
|
|
38
39
|
config.app = { ...config.app, substrate: schema_1.Substrate.Native, processModel: schema_1.ProcessModel.Monolith };
|
|
39
40
|
}
|
|
41
|
+
if (opts.only !== undefined) {
|
|
42
|
+
const services = opts.only
|
|
43
|
+
.split(',')
|
|
44
|
+
.map((s) => s.trim())
|
|
45
|
+
.filter((s) => s.length > 0);
|
|
46
|
+
if (services.length === 0) {
|
|
47
|
+
throw new Error('--only requires at least one service name.');
|
|
48
|
+
}
|
|
49
|
+
config.app = { ...config.app, include: services };
|
|
50
|
+
}
|
|
40
51
|
const includeWeb = Boolean(opts.web) || Boolean(opts.all);
|
|
41
52
|
console.log('xema up — one-command launcher');
|
|
42
53
|
console.log('-'.repeat(60));
|
package/dist/commands/up.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":";;AAwBA,0CA2BC;AAnDD,kDAA8D;AAC9D,qDAA0D;AAC1D,qDAAmE;AACnE,sDAA0D;AAqB1D,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,OAAO,CAAC,yCAAyC,CAAC;SAClD,WAAW,CACV,6EAA6E;QAC3E,8EAA8E;QAC9E,wDAAwD,CAC3D;SACA,MAAM,CAAC,iBAAiB,EAAE,0BAA0B,CAAC;SACrD,MAAM,CAAC,gBAAgB,EAAE,gDAAgD,CAAC;SAC1E,MAAM,CAAC,OAAO,EAAE,oCAAoC,CAAC;SACrD,MAAM,CAAC,OAAO,EAAE,yCAAyC,CAAC;SAC1D,MAAM,CAAC,YAAY,EAAE,oEAAoE,CAAC;SAC1F,MAAM,CACL,mBAAmB,EACnB,uEAAuE,CACxE;SACA,MAAM,CAAC,UAAU,EAAE,yEAAyE,CAAC;SAC7F,MAAM,CAAC,KAAK,EAAE,IAAe,EAAE,EAAE;QAChC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,IAAA,qBAAQ,EAAC,4BAAe,CAAC,YAAY,EAAE,mBAAmB,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,KAAK,CAAC,IAAe;IAClC,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,kBAAS,CAAC,MAAM,EAAE,YAAY,EAAE,qBAAY,CAAC,QAAQ,EAAE,CAAC;IACnG,CAAC;IACD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI;aACvB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC/B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QACD,MAAM,CAAC,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpD,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,IAAA,8BAAiB,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Substrate } from './schema';
|
|
2
|
+
export declare enum InitPreset {
|
|
3
|
+
LocalMonolith = "local-monolith",
|
|
4
|
+
LocalContainer = "local-container",
|
|
5
|
+
ByoInfra = "byo-infra",
|
|
6
|
+
Appliance = "appliance"
|
|
7
|
+
}
|
|
8
|
+
export declare const INIT_PRESETS: readonly InitPreset[];
|
|
9
|
+
export declare const DEFAULT_LOCAL_URLS: {
|
|
10
|
+
readonly postgres: "postgresql://postgres:postgres@127.0.0.1:5432";
|
|
11
|
+
readonly redis: "redis://127.0.0.1:6379";
|
|
12
|
+
readonly keycloak: "http://127.0.0.1:8180";
|
|
13
|
+
readonly objectStore: "http://127.0.0.1:9000";
|
|
14
|
+
readonly keycloakRealm: "xema";
|
|
15
|
+
};
|
|
16
|
+
export interface PresetInputs {
|
|
17
|
+
readonly edition: string;
|
|
18
|
+
readonly web: boolean;
|
|
19
|
+
readonly postgresUrl?: string;
|
|
20
|
+
readonly redisUrl?: string;
|
|
21
|
+
readonly keycloakUrl?: string;
|
|
22
|
+
readonly keycloakRealm?: string;
|
|
23
|
+
readonly objectStoreUrl?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface PresetMeta {
|
|
26
|
+
readonly preset: InitPreset;
|
|
27
|
+
readonly label: string;
|
|
28
|
+
readonly description: string;
|
|
29
|
+
readonly substrate: Substrate;
|
|
30
|
+
readonly needsExternalInfra: boolean;
|
|
31
|
+
readonly supportsWeb: boolean;
|
|
32
|
+
readonly nextStep: string;
|
|
33
|
+
}
|
|
34
|
+
export declare const PRESET_METAS: Readonly<Record<InitPreset, PresetMeta>>;
|
|
35
|
+
export declare function parseInitPreset(value: string): InitPreset | null;
|
|
36
|
+
export declare function buildPresetConfig(preset: InitPreset, inputs: PresetInputs): Record<string, unknown>;
|
|
37
|
+
//# sourceMappingURL=init-presets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-presets.d.ts","sourceRoot":"","sources":["../../../src/runtime/config/init-presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,SAAS,EAAmB,MAAM,UAAU,CAAC;AAW/E,oBAAY,UAAU;IAEpB,aAAa,mBAAmB;IAEhC,cAAc,oBAAoB;IAElC,QAAQ,cAAc;IAEtB,SAAS,cAAc;CACxB;AAED,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAK7C,CAAC;AAGF,eAAO,MAAM,kBAAkB;;;;;;CAMrB,CAAC;AAGX,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,QAAQ,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAErC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CA2CjE,CAAC;AAGF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAEhE;AAUD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAInG"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PRESET_METAS = exports.DEFAULT_LOCAL_URLS = exports.INIT_PRESETS = exports.InitPreset = void 0;
|
|
4
|
+
exports.parseInitPreset = parseInitPreset;
|
|
5
|
+
exports.buildPresetConfig = buildPresetConfig;
|
|
6
|
+
const schema_1 = require("./schema");
|
|
7
|
+
var InitPreset;
|
|
8
|
+
(function (InitPreset) {
|
|
9
|
+
InitPreset["LocalMonolith"] = "local-monolith";
|
|
10
|
+
InitPreset["LocalContainer"] = "local-container";
|
|
11
|
+
InitPreset["ByoInfra"] = "byo-infra";
|
|
12
|
+
InitPreset["Appliance"] = "appliance";
|
|
13
|
+
})(InitPreset || (exports.InitPreset = InitPreset = {}));
|
|
14
|
+
exports.INIT_PRESETS = [
|
|
15
|
+
InitPreset.LocalMonolith,
|
|
16
|
+
InitPreset.LocalContainer,
|
|
17
|
+
InitPreset.ByoInfra,
|
|
18
|
+
InitPreset.Appliance,
|
|
19
|
+
];
|
|
20
|
+
exports.DEFAULT_LOCAL_URLS = {
|
|
21
|
+
postgres: 'postgresql://postgres:postgres@127.0.0.1:5432',
|
|
22
|
+
redis: 'redis://127.0.0.1:6379',
|
|
23
|
+
keycloak: 'http://127.0.0.1:8180',
|
|
24
|
+
objectStore: 'http://127.0.0.1:9000',
|
|
25
|
+
keycloakRealm: 'xema',
|
|
26
|
+
};
|
|
27
|
+
exports.PRESET_METAS = {
|
|
28
|
+
[InitPreset.LocalMonolith]: {
|
|
29
|
+
preset: InitPreset.LocalMonolith,
|
|
30
|
+
label: 'Local dev — lowest RAM (single native process)',
|
|
31
|
+
description: 'Native single-process mode (in-process registry + SQLite, no etcd). You run ' +
|
|
32
|
+
'infra yourself (e.g. docker compose up postgres redis keycloak).',
|
|
33
|
+
substrate: schema_1.Substrate.Native,
|
|
34
|
+
needsExternalInfra: true,
|
|
35
|
+
supportsWeb: false,
|
|
36
|
+
nextStep: 'xema dev (or: xema up --monolith)',
|
|
37
|
+
},
|
|
38
|
+
[InitPreset.LocalContainer]: {
|
|
39
|
+
preset: InitPreset.LocalContainer,
|
|
40
|
+
label: 'Local full stack — containers (launcher manages infra)',
|
|
41
|
+
description: 'Container substrate: the launcher brings up + bootstraps managed infra, pulls ' +
|
|
42
|
+
'service images, and (optionally) starts the web shell. Needs Docker/Podman.',
|
|
43
|
+
substrate: schema_1.Substrate.Container,
|
|
44
|
+
needsExternalInfra: false,
|
|
45
|
+
supportsWeb: true,
|
|
46
|
+
nextStep: 'xema up',
|
|
47
|
+
},
|
|
48
|
+
[InitPreset.ByoInfra]: {
|
|
49
|
+
preset: InitPreset.ByoInfra,
|
|
50
|
+
label: 'Bring-your-own infrastructure (containers)',
|
|
51
|
+
description: 'Containers for services, but Postgres / Keycloak / object-store are yours ' +
|
|
52
|
+
'(provide URLs); the launcher manages only the rest (redis, etcd, search, temporal).',
|
|
53
|
+
substrate: schema_1.Substrate.Container,
|
|
54
|
+
needsExternalInfra: true,
|
|
55
|
+
supportsWeb: true,
|
|
56
|
+
nextStep: 'xema up',
|
|
57
|
+
},
|
|
58
|
+
[InitPreset.Appliance]: {
|
|
59
|
+
preset: InitPreset.Appliance,
|
|
60
|
+
label: 'Cluster / appliance (Kubernetes via Helm)',
|
|
61
|
+
description: 'Deploys to Kubernetes via `helm upgrade --install` with managed infra charts.',
|
|
62
|
+
substrate: schema_1.Substrate.Helm,
|
|
63
|
+
needsExternalInfra: false,
|
|
64
|
+
supportsWeb: true,
|
|
65
|
+
nextStep: 'xema serve --profile appliance',
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
function parseInitPreset(value) {
|
|
69
|
+
return exports.INIT_PRESETS.find((p) => p === value) ?? null;
|
|
70
|
+
}
|
|
71
|
+
const MANAGED = { mode: schema_1.InfraMode.Managed };
|
|
72
|
+
function buildPresetConfig(preset, inputs) {
|
|
73
|
+
const config = buildMinimal(preset, inputs);
|
|
74
|
+
(0, schema_1.parseXemaConfig)(config);
|
|
75
|
+
return config;
|
|
76
|
+
}
|
|
77
|
+
function buildMinimal(preset, inputs) {
|
|
78
|
+
const realm = inputs.keycloakRealm ?? exports.DEFAULT_LOCAL_URLS.keycloakRealm;
|
|
79
|
+
switch (preset) {
|
|
80
|
+
case InitPreset.LocalMonolith:
|
|
81
|
+
return {
|
|
82
|
+
edition: inputs.edition,
|
|
83
|
+
app: { substrate: schema_1.Substrate.Native, processModel: schema_1.ProcessModel.Monolith },
|
|
84
|
+
infra: {
|
|
85
|
+
postgres: { mode: schema_1.InfraMode.External, url: inputs.postgresUrl ?? exports.DEFAULT_LOCAL_URLS.postgres },
|
|
86
|
+
redis: { mode: schema_1.InfraMode.External, url: inputs.redisUrl ?? exports.DEFAULT_LOCAL_URLS.redis },
|
|
87
|
+
keycloak: {
|
|
88
|
+
mode: schema_1.InfraMode.External,
|
|
89
|
+
url: inputs.keycloakUrl ?? exports.DEFAULT_LOCAL_URLS.keycloak,
|
|
90
|
+
realm,
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
case InitPreset.LocalContainer:
|
|
95
|
+
return {
|
|
96
|
+
edition: inputs.edition,
|
|
97
|
+
app: { substrate: schema_1.Substrate.Container, web: { enabled: inputs.web } },
|
|
98
|
+
infra: {
|
|
99
|
+
postgres: MANAGED,
|
|
100
|
+
redis: MANAGED,
|
|
101
|
+
etcd: MANAGED,
|
|
102
|
+
keycloak: MANAGED,
|
|
103
|
+
objectStore: MANAGED,
|
|
104
|
+
search: MANAGED,
|
|
105
|
+
temporal: MANAGED,
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
case InitPreset.ByoInfra:
|
|
109
|
+
return {
|
|
110
|
+
edition: inputs.edition,
|
|
111
|
+
app: { substrate: schema_1.Substrate.Container, web: { enabled: inputs.web } },
|
|
112
|
+
infra: {
|
|
113
|
+
postgres: { mode: schema_1.InfraMode.External, url: inputs.postgresUrl ?? exports.DEFAULT_LOCAL_URLS.postgres },
|
|
114
|
+
keycloak: {
|
|
115
|
+
mode: schema_1.InfraMode.External,
|
|
116
|
+
url: inputs.keycloakUrl ?? exports.DEFAULT_LOCAL_URLS.keycloak,
|
|
117
|
+
realm,
|
|
118
|
+
},
|
|
119
|
+
objectStore: {
|
|
120
|
+
mode: schema_1.InfraMode.External,
|
|
121
|
+
url: inputs.objectStoreUrl ?? exports.DEFAULT_LOCAL_URLS.objectStore,
|
|
122
|
+
},
|
|
123
|
+
redis: MANAGED,
|
|
124
|
+
etcd: MANAGED,
|
|
125
|
+
search: MANAGED,
|
|
126
|
+
temporal: MANAGED,
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
case InitPreset.Appliance:
|
|
130
|
+
return {
|
|
131
|
+
edition: inputs.edition,
|
|
132
|
+
app: { substrate: schema_1.Substrate.Helm, web: { enabled: inputs.web } },
|
|
133
|
+
infra: {
|
|
134
|
+
postgres: MANAGED,
|
|
135
|
+
redis: MANAGED,
|
|
136
|
+
etcd: MANAGED,
|
|
137
|
+
keycloak: MANAGED,
|
|
138
|
+
objectStore: MANAGED,
|
|
139
|
+
search: MANAGED,
|
|
140
|
+
temporal: MANAGED,
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=init-presets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-presets.js","sourceRoot":"","sources":["../../../src/runtime/config/init-presets.ts"],"names":[],"mappings":"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"}
|
|
@@ -201,6 +201,33 @@ export declare const XemaConfigSchema: z.ZodObject<{
|
|
|
201
201
|
path: z.ZodOptional<z.ZodString>;
|
|
202
202
|
env: z.ZodOptional<z.ZodString>;
|
|
203
203
|
}, z.core.$strict>>>;
|
|
204
|
+
sources: z.ZodDefault<z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
205
|
+
kind: z.ZodLiteral<import("../sources/schema").SourceKind.Workspace>;
|
|
206
|
+
root: z.ZodOptional<z.ZodString>;
|
|
207
|
+
name: z.ZodString;
|
|
208
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
209
|
+
kind: z.ZodLiteral<import("../sources/schema").SourceKind.Distribution>;
|
|
210
|
+
edition: z.ZodString;
|
|
211
|
+
ref: z.ZodOptional<z.ZodString>;
|
|
212
|
+
name: z.ZodString;
|
|
213
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
214
|
+
kind: z.ZodLiteral<import("../sources/schema").SourceKind.Npm>;
|
|
215
|
+
registryUrl: z.ZodOptional<z.ZodString>;
|
|
216
|
+
scope: z.ZodOptional<z.ZodString>;
|
|
217
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
218
|
+
name: z.ZodString;
|
|
219
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
220
|
+
kind: z.ZodLiteral<import("../sources/schema").SourceKind.Oci>;
|
|
221
|
+
registry: z.ZodString;
|
|
222
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
223
|
+
name: z.ZodString;
|
|
224
|
+
}, z.core.$strict>, z.ZodObject<{
|
|
225
|
+
kind: z.ZodLiteral<import("../sources/schema").SourceKind.Git>;
|
|
226
|
+
url: z.ZodString;
|
|
227
|
+
ref: z.ZodOptional<z.ZodString>;
|
|
228
|
+
authTokenEnv: z.ZodOptional<z.ZodString>;
|
|
229
|
+
name: z.ZodString;
|
|
230
|
+
}, z.core.$strict>], "kind">>>;
|
|
204
231
|
}, z.core.$strict>;
|
|
205
232
|
export type XemaConfig = z.infer<typeof XemaConfigSchema>;
|
|
206
233
|
export declare function parseXemaConfig(raw: unknown): XemaConfig;
|
|
@@ -1 +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;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/runtime/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,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;AAUD,oBAAY,YAAY;IACtB,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;CACtB;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;;;;;;;;;;kBAeV,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAqBlB,CAAC;AAEZ,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAG1D,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAUxD"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.XemaConfigSchema = exports.SecretSource = exports.WorkspaceDriver = exports.InfraComponent = exports.ProcessModel = exports.Substrate = exports.InfraMode = void 0;
|
|
4
4
|
exports.parseXemaConfig = parseXemaConfig;
|
|
5
5
|
const zod_1 = require("zod");
|
|
6
|
+
const schema_1 = require("../sources/schema");
|
|
6
7
|
var InfraMode;
|
|
7
8
|
(function (InfraMode) {
|
|
8
9
|
InfraMode["Managed"] = "managed";
|
|
@@ -118,6 +119,7 @@ exports.XemaConfigSchema = zod_1.z
|
|
|
118
119
|
}),
|
|
119
120
|
state: StateConfigSchema.default({ workspaces: {}, biomeMaterialization: {} }),
|
|
120
121
|
secrets: zod_1.z.record(zod_1.z.string().min(1), SecretConfigSchema).default({}),
|
|
122
|
+
sources: schema_1.SourcesConfigSchema,
|
|
121
123
|
})
|
|
122
124
|
.strict();
|
|
123
125
|
function parseXemaConfig(raw) {
|