@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.
Files changed (107) hide show
  1. package/LICENSE +176 -175
  2. package/README.md +117 -1
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +13 -1
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/biome.d.ts.map +1 -1
  7. package/dist/commands/biome.js +83 -6
  8. package/dist/commands/biome.js.map +1 -1
  9. package/dist/commands/dev.d.ts.map +1 -1
  10. package/dist/commands/dev.js +34 -10
  11. package/dist/commands/dev.js.map +1 -1
  12. package/dist/commands/doctor.d.ts +2 -0
  13. package/dist/commands/doctor.d.ts.map +1 -1
  14. package/dist/commands/doctor.js +48 -1
  15. package/dist/commands/doctor.js.map +1 -1
  16. package/dist/commands/down.d.ts.map +1 -1
  17. package/dist/commands/down.js +39 -5
  18. package/dist/commands/down.js.map +1 -1
  19. package/dist/commands/init.d.ts +3 -0
  20. package/dist/commands/init.d.ts.map +1 -0
  21. package/dist/commands/init.js +192 -0
  22. package/dist/commands/init.js.map +1 -0
  23. package/dist/commands/serve.d.ts.map +1 -1
  24. package/dist/commands/serve.js +13 -1
  25. package/dist/commands/serve.js.map +1 -1
  26. package/dist/commands/status.d.ts.map +1 -1
  27. package/dist/commands/status.js +30 -4
  28. package/dist/commands/status.js.map +1 -1
  29. package/dist/commands/up.d.ts.map +1 -1
  30. package/dist/commands/up.js +11 -0
  31. package/dist/commands/up.js.map +1 -1
  32. package/dist/runtime/config/init-presets.d.ts +37 -0
  33. package/dist/runtime/config/init-presets.d.ts.map +1 -0
  34. package/dist/runtime/config/init-presets.js +145 -0
  35. package/dist/runtime/config/init-presets.js.map +1 -0
  36. package/dist/runtime/config/schema.d.ts +27 -0
  37. package/dist/runtime/config/schema.d.ts.map +1 -1
  38. package/dist/runtime/config/schema.js +2 -0
  39. package/dist/runtime/config/schema.js.map +1 -1
  40. package/dist/runtime/launch.d.ts.map +1 -1
  41. package/dist/runtime/launch.js +22 -2
  42. package/dist/runtime/launch.js.map +1 -1
  43. package/dist/runtime/paths.d.ts +1 -0
  44. package/dist/runtime/paths.d.ts.map +1 -1
  45. package/dist/runtime/paths.js +27 -0
  46. package/dist/runtime/paths.js.map +1 -1
  47. package/dist/runtime/roster.d.ts +10 -2
  48. package/dist/runtime/roster.d.ts.map +1 -1
  49. package/dist/runtime/roster.js +50 -1
  50. package/dist/runtime/roster.js.map +1 -1
  51. package/dist/runtime/runner/helm-cli.d.ts +20 -0
  52. package/dist/runtime/runner/helm-cli.d.ts.map +1 -0
  53. package/dist/runtime/runner/helm-cli.js +58 -0
  54. package/dist/runtime/runner/helm-cli.js.map +1 -0
  55. package/dist/runtime/runner/helm-runner.d.ts +1 -2
  56. package/dist/runtime/runner/helm-runner.d.ts.map +1 -1
  57. package/dist/runtime/runner/helm-runner.js +11 -24
  58. package/dist/runtime/runner/helm-runner.js.map +1 -1
  59. package/dist/runtime/runner/native-runner.d.ts.map +1 -1
  60. package/dist/runtime/runner/native-runner.js +6 -5
  61. package/dist/runtime/runner/native-runner.js.map +1 -1
  62. package/dist/runtime/sources/credentials.d.ts +11 -0
  63. package/dist/runtime/sources/credentials.d.ts.map +1 -0
  64. package/dist/runtime/sources/credentials.js +68 -0
  65. package/dist/runtime/sources/credentials.js.map +1 -0
  66. package/dist/runtime/sources/kinds/distribution.d.ts +5 -0
  67. package/dist/runtime/sources/kinds/distribution.d.ts.map +1 -0
  68. package/dist/runtime/sources/kinds/distribution.js +33 -0
  69. package/dist/runtime/sources/kinds/distribution.js.map +1 -0
  70. package/dist/runtime/sources/kinds/git.d.ts +5 -0
  71. package/dist/runtime/sources/kinds/git.d.ts.map +1 -0
  72. package/dist/runtime/sources/kinds/git.js +70 -0
  73. package/dist/runtime/sources/kinds/git.js.map +1 -0
  74. package/dist/runtime/sources/kinds/workspace.d.ts +5 -0
  75. package/dist/runtime/sources/kinds/workspace.d.ts.map +1 -0
  76. package/dist/runtime/sources/kinds/workspace.js +24 -0
  77. package/dist/runtime/sources/kinds/workspace.js.map +1 -0
  78. package/dist/runtime/sources/manifest-walk.d.ts +22 -0
  79. package/dist/runtime/sources/manifest-walk.d.ts.map +1 -0
  80. package/dist/runtime/sources/manifest-walk.js +87 -0
  81. package/dist/runtime/sources/manifest-walk.js.map +1 -0
  82. package/dist/runtime/sources/resolver.d.ts +15 -0
  83. package/dist/runtime/sources/resolver.d.ts.map +1 -0
  84. package/dist/runtime/sources/resolver.js +75 -0
  85. package/dist/runtime/sources/resolver.js.map +1 -0
  86. package/dist/runtime/sources/schema.d.ts +101 -0
  87. package/dist/runtime/sources/schema.d.ts.map +1 -0
  88. package/dist/runtime/sources/schema.js +71 -0
  89. package/dist/runtime/sources/schema.js.map +1 -0
  90. package/dist/runtime/sources/types.d.ts +10 -0
  91. package/dist/runtime/sources/types.d.ts.map +1 -0
  92. package/dist/runtime/sources/types.js +3 -0
  93. package/dist/runtime/sources/types.js.map +1 -0
  94. package/dist/runtime/waves.d.ts +1 -0
  95. package/dist/runtime/waves.d.ts.map +1 -1
  96. package/dist/runtime/waves.js +19 -0
  97. package/dist/runtime/waves.js.map +1 -1
  98. package/examples/01-local-monolith.yaml +1 -1
  99. package/examples/02-local-container-full.yaml +1 -1
  100. package/examples/03-byo-infra.yaml +1 -1
  101. package/examples/05-appliance-helm.yaml +1 -1
  102. package/examples/06-biome-sources.yaml +51 -0
  103. package/package.json +5 -2
  104. package/dist/dev/dev-orchestrator.d.ts +0 -7
  105. package/dist/dev/dev-orchestrator.d.ts.map +0 -1
  106. package/dist/dev/dev-orchestrator.js +0 -367
  107. package/dist/dev/dev-orchestrator.js.map +0 -1
@@ -4,7 +4,9 @@ exports.registerCommand = registerCommand;
4
4
  const node_child_process_1 = require("node:child_process");
5
5
  const node_fs_1 = require("node:fs");
6
6
  const node_path_1 = require("node:path");
7
+ const control_plane_1 = require("../lib/control-plane");
7
8
  const exit_codes_1 = require("../lib/exit-codes");
9
+ const BIOME_ID_RE = /^[a-z][a-z0-9-]*$/;
8
10
  function registerCommand(program) {
9
11
  const biome = program
10
12
  .command('biome')
@@ -18,12 +20,16 @@ function registerCommand(program) {
18
20
  'which is part of Phase K carve-out. Tracked in plan v4.3 §6 J.1.');
19
21
  });
20
22
  biome
21
- .command('install <ref>')
22
- .description('Install a biome (OCI / file / https / sideload)')
23
- .action((ref) => {
24
- (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.NotImplemented, `xema biome install ${ref}: requires a running biome-host-api / ` +
25
- 'biome-fetcher-api. Wiring lives in plan v4.3 §6 Phase J.2 ' +
26
- 'follow-up (full 11-service composition).');
23
+ .command('install <biomeId>')
24
+ .description('Install a catalog biome (by id) into a running platform')
25
+ .option('--project <id>', 'Install into this project (REQUIRED for npm/OCI remote-bundle biomes)')
26
+ .option('--org', 'Install at org scope (in-process / kernel biomes only rejects bundle biomes)')
27
+ .option('--endpoint <url>', 'Platform API base URL fronting biome-host-api (or env XEMA_ENDPOINT)')
28
+ .option('--token <jwt>', 'Org-scoped bearer token (or env XEMA_TOKEN)')
29
+ .option('--config <path>', 'Path to a JSON file with the biome install config (default: {})')
30
+ .option('--version <semver>', 'Pin a catalog version (default: latest at install time)')
31
+ .action(async (biomeId, opts) => {
32
+ await runBiomeInstall(biomeId, opts);
27
33
  });
28
34
  biome
29
35
  .command('publish <path>')
@@ -40,6 +46,77 @@ function registerCommand(program) {
40
46
  runBiomeLint({ strict: opts.strict === true });
41
47
  });
42
48
  }
49
+ async function runBiomeInstall(biomeId, opts) {
50
+ if (!BIOME_ID_RE.test(biomeId)) {
51
+ return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.ConfigurationError, `Invalid biome id "${biomeId}" — expected lowercase kebab-case (a biome's xema.id).`);
52
+ }
53
+ if (opts.project !== undefined && opts.org === true) {
54
+ return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.ConfigurationError, 'Choose either --project <id> or --org, not both.');
55
+ }
56
+ if (opts.project === undefined && opts.org !== true) {
57
+ return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.ConfigurationError, 'Specify a scope: --project <id> (required for npm/OCI biomes) or --org (in-process biomes only).');
58
+ }
59
+ const target = (0, control_plane_1.resolveTarget)(opts);
60
+ const configJson = loadInstallConfig(opts.config);
61
+ const body = {
62
+ biomeId,
63
+ configJson,
64
+ integrations: [],
65
+ resources: [],
66
+ ...(opts.version !== undefined ? { version: opts.version } : {}),
67
+ };
68
+ const path = opts.project !== undefined
69
+ ? `/projects/${encodeURIComponent(opts.project)}/biome-installations`
70
+ : '/org-biome-installations';
71
+ const url = `${target.baseUrl}${path}`;
72
+ let res;
73
+ try {
74
+ res = await fetch(url, {
75
+ method: 'POST',
76
+ headers: { authorization: `Bearer ${target.token}`, 'content-type': 'application/json' },
77
+ body: JSON.stringify(body),
78
+ });
79
+ }
80
+ catch (err) {
81
+ const detail = err instanceof Error ? err.message : String(err);
82
+ return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.GenericError, `Platform unreachable at ${url}: ${detail}`);
83
+ }
84
+ const text = await res.text();
85
+ if (!res.ok) {
86
+ const hint = res.status === 404
87
+ ? ` (is "${biomeId}" registered in the platform's biome catalog?)`
88
+ : '';
89
+ return (0, exit_codes_1.exitWith)(res.status === 404 ? exit_codes_1.XemaCliExitCode.NotFound : exit_codes_1.XemaCliExitCode.GenericError, `biome install POST ${path} → ${res.status}: ${text || res.statusText}${hint}`);
90
+ }
91
+ const parsed = (text.length > 0 ? JSON.parse(text) : {});
92
+ const d = parsed.data ?? {};
93
+ console.log(`Installed "${biomeId}"${d.version ? ` v${d.version}` : ''}` +
94
+ `${d.state ? ` (state: ${d.state})` : ''}${d.id ? ` id=${d.id}` : ''}.`);
95
+ (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.Ok);
96
+ }
97
+ function loadInstallConfig(path) {
98
+ if (path === undefined) {
99
+ return {};
100
+ }
101
+ let raw;
102
+ try {
103
+ raw = (0, node_fs_1.readFileSync)(path, 'utf8');
104
+ }
105
+ catch {
106
+ return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.NotFound, `--config file not found: ${path}`);
107
+ }
108
+ try {
109
+ const parsed = JSON.parse(raw);
110
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
111
+ return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.ConfigurationError, `--config ${path} must be a JSON object.`);
112
+ }
113
+ return parsed;
114
+ }
115
+ catch (err) {
116
+ const detail = err instanceof Error ? err.message : String(err);
117
+ return (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.ConfigurationError, `Invalid JSON in --config ${path}: ${detail}`);
118
+ }
119
+ }
43
120
  function findToolingBoundariesDir() {
44
121
  let cursor = process.cwd();
45
122
  for (let i = 0; i < 12; i += 1) {
@@ -1 +1 @@
1
- {"version":3,"file":"biome.js","sourceRoot":"","sources":["../../src/commands/biome.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"biome.js","sourceRoot":"","sources":["../../src/commands/biome.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2BtD"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+BtD"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerCommand = registerCommand;
4
4
  const node_child_process_1 = require("node:child_process");
5
+ const node_fs_1 = require("node:fs");
5
6
  const node_path_1 = require("node:path");
6
7
  const env_defaults_1 = require("../dev/env-defaults");
7
8
  const infra_preflight_1 = require("../dev/infra-preflight");
@@ -16,19 +17,23 @@ function registerCommand(program) {
16
17
  .description('Boots the lock-resolved roster as host processes (in-process Nest + ' +
17
18
  'forked Prisma services). Probes Postgres / Redis / event-hub-api first; ' +
18
19
  'exits with an actionable `docker compose up` message if any are down. ' +
19
- 'Per-service skip-mode tolerates individual failures.')
20
+ 'Per-service skip-mode tolerates individual failures.\n\n' +
21
+ 'Pass one or more SERVICE names to boot only that subset — their hard ' +
22
+ 'prerequisites (identity-api, foundational services) are pulled in ' +
23
+ 'automatically, so a lone service still boots a correct graph.')
24
+ .argument('[services...]', 'Boot only these services (subset); omit to boot all')
20
25
  .option('--edition <id>', 'Distribution edition (default: oss)')
21
26
  .option('--web', 'Also start the host-shell frontend')
22
27
  .option('--monolith', 'Single-process mode (in-process registry + SQLite, no etcd)')
23
28
  .option('--watch', 'Restart the composition when service output changes (realtime dev)')
24
29
  .option('--skip-preflight', 'Skip the infra TCP probe (debugging only — masks real outages).')
25
- .action(async (opts) => {
30
+ .action(async (services, opts) => {
26
31
  try {
27
32
  if (opts.watch && process.env[WATCH_CHILD_ENV] !== '1') {
28
- reexecUnderWatch(opts);
33
+ reexecUnderWatch(services, opts);
29
34
  return;
30
35
  }
31
- await runDev(opts);
36
+ await runDev(services, opts);
32
37
  }
33
38
  catch (err) {
34
39
  const message = err instanceof Error ? err.message : String(err);
@@ -36,9 +41,16 @@ function registerCommand(program) {
36
41
  }
37
42
  });
38
43
  }
39
- function reexecUnderWatch(opts) {
40
- const cliEntry = (0, node_path_1.join)(__dirname, '..', 'cli.js');
41
- const args = ['--watch', cliEntry, 'dev'];
44
+ function reexecUnderWatch(services, opts) {
45
+ const srcEntry = (0, node_path_1.join)(__dirname, '..', '..', 'src', 'cli.ts');
46
+ if (!(0, node_fs_1.existsSync)(srcEntry)) {
47
+ (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.MissingDependency, 'xema dev --watch needs a source checkout — it boots src/cli.ts via tsx (no ' +
48
+ `prebuild). Source entry not found at ${srcEntry}. For an installed binary ` +
49
+ 'run a plain `xema dev` (boots from dist, no hot-reload).');
50
+ return;
51
+ }
52
+ const tsxCli = resolveTsxCli();
53
+ const args = [tsxCli, 'watch', srcEntry, 'dev', ...services];
42
54
  if (opts.edition) {
43
55
  args.push('--edition', opts.edition);
44
56
  }
@@ -51,7 +63,7 @@ function reexecUnderWatch(opts) {
51
63
  if (opts.skipPreflight) {
52
64
  args.push('--skip-preflight');
53
65
  }
54
- console.log('xema dev --watch — restarting on source change (Node --watch). Ctrl+C to stop.');
66
+ console.log('xema dev --watch — booting from src via tsx; any .ts change restarts. Ctrl+C to stop.');
55
67
  const child = (0, node_child_process_1.spawn)(process.execPath, args, {
56
68
  stdio: 'inherit',
57
69
  env: { ...process.env, [WATCH_CHILD_ENV]: '1', NODE_OPTIONS: watchNodeOptions() },
@@ -60,6 +72,16 @@ function reexecUnderWatch(opts) {
60
72
  process.exit(code ?? 0);
61
73
  });
62
74
  }
75
+ function resolveTsxCli() {
76
+ try {
77
+ return require.resolve('tsx/cli');
78
+ }
79
+ catch {
80
+ (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.MissingDependency, 'xema dev --watch requires the `tsx` dependency, but it could not be resolved. ' +
81
+ 'Reinstall dependencies (`pnpm install`) and retry.');
82
+ throw new Error('unreachable');
83
+ }
84
+ }
63
85
  function watchNodeOptions() {
64
86
  const existing = process.env.NODE_OPTIONS ?? '';
65
87
  if (existing.includes('--conditions=xema-source')) {
@@ -67,13 +89,15 @@ function watchNodeOptions() {
67
89
  }
68
90
  return `${existing} --conditions=xema-source`.trim();
69
91
  }
70
- async function runDev(opts) {
92
+ async function runDev(services, opts) {
71
93
  const applied = (0, env_defaults_1.applyDevEnvDefaults)();
72
94
  const monolith = Boolean(opts.monolith);
95
+ const include = services.length > 0 ? [...services] : 'all';
73
96
  console.log('xema dev — native single-binary composition (lock-driven)');
74
97
  console.log('-'.repeat(60));
75
98
  console.log(` Env defaults : ${String(applied.length)} applied (user values preserved)`);
76
99
  console.log(` Process model: ${monolith ? 'monolith (1 process, SQLite, no etcd)' : 'distributed'}`);
100
+ console.log(` Services : ${include === 'all' ? 'all' : `${include.join(', ')} (+ hard prerequisites)`}`);
77
101
  if (opts.skipPreflight !== true) {
78
102
  const report = await (0, infra_preflight_1.runInfraPreflight)();
79
103
  if (!report.allReachable) {
@@ -92,7 +116,7 @@ async function runDev(opts) {
92
116
  app: {
93
117
  substrate: schema_1.Substrate.Native,
94
118
  processModel: monolith ? schema_1.ProcessModel.Monolith : schema_1.ProcessModel.Distributed,
95
- include: 'all',
119
+ include,
96
120
  },
97
121
  });
98
122
  await (0, foreground_1.bringUpForeground)({ config, includeWeb: Boolean(opts.web), detach: false });
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export interface DoctorResult {
11
11
  }
12
12
  export interface RunDoctorOptions {
13
13
  readonly infra?: boolean;
14
+ readonly sources?: boolean;
15
+ readonly configPath?: string;
14
16
  }
15
17
  export declare function runDoctor(opts?: RunDoctorOptions): Promise<DoctorResult>;
16
18
  //# sourceMappingURL=doctor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqBtD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAWD,wBAAsB,SAAS,CAC7B,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAkCvB"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8BtD;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAWD,wBAAsB,SAAS,CAC7B,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAuCvB"}
@@ -7,6 +7,8 @@ const node_os_1 = require("node:os");
7
7
  const node_path_1 = require("node:path");
8
8
  const infra_preflight_1 = require("../dev/infra-preflight");
9
9
  const exit_codes_1 = require("../lib/exit-codes");
10
+ const loader_1 = require("../runtime/config/loader");
11
+ const resolver_1 = require("../runtime/sources/resolver");
10
12
  function registerCommand(program) {
11
13
  program
12
14
  .command('doctor')
@@ -16,8 +18,14 @@ function registerCommand(program) {
16
18
  'also probe the Postgres/Redis/event-hub-api dependencies that ' +
17
19
  '`xema dev` needs.')
18
20
  .option('--infra', 'Also TCP-probe the infra dependencies of `xema dev` (Postgres, Redis, event-hub-api).')
21
+ .option('--sources', 'List the configured biome sources (registry/git/distribution) + token presence.')
22
+ .option('--config <path>', 'Path to xema.config.yaml (for --sources).')
19
23
  .action(async (opts) => {
20
- const result = await runDoctor({ infra: opts.infra === true });
24
+ const result = await runDoctor({
25
+ infra: opts.infra === true,
26
+ sources: opts.sources === true,
27
+ ...(opts.config !== undefined ? { configPath: opts.config } : {}),
28
+ });
21
29
  if (result.failed) {
22
30
  (0, exit_codes_1.exitWith)(exit_codes_1.XemaCliExitCode.GenericError);
23
31
  }
@@ -46,6 +54,10 @@ async function runDoctor(opts = {}) {
46
54
  const report = await (0, infra_preflight_1.runInfraPreflight)();
47
55
  printInfraReport(report);
48
56
  }
57
+ if (opts.sources === true) {
58
+ console.log('');
59
+ printSourcesReport(opts.configPath);
60
+ }
49
61
  return { checks, failed };
50
62
  }
51
63
  function checkNodeVersion() {
@@ -125,4 +137,39 @@ function printInfraReport(report) {
125
137
  console.log('of in-process and forked-worker boot. Individual boot failures are');
126
138
  console.log('routed through skip-mode (see native-runner.ts header for details).');
127
139
  }
140
+ function printSourcesReport(configPath) {
141
+ console.log('xema doctor --sources — biome source registry');
142
+ console.log('-'.repeat(60));
143
+ let statuses;
144
+ try {
145
+ const loaded = (0, loader_1.loadXemaConfig)(configPath !== undefined ? { explicit: configPath } : {});
146
+ statuses = (0, resolver_1.describeSources)(loaded.config.sources);
147
+ console.log(`config: ${loaded.source}`);
148
+ }
149
+ catch (err) {
150
+ const message = err instanceof Error ? err.message : String(err);
151
+ console.log(`Could not load config: ${message}`);
152
+ return;
153
+ }
154
+ if (statuses.length === 0) {
155
+ console.log('');
156
+ console.log('No biome sources configured. The base distribution (workspace in a ' +
157
+ 'monorepo, vendored otherwise) is used. Add a `sources:` block to ' +
158
+ 'xema.config.yaml to pull biomes from extra registries/gits.');
159
+ return;
160
+ }
161
+ console.log('');
162
+ const nameWidth = Math.max(...statuses.map((s) => s.name.length), 6);
163
+ for (const s of statuses) {
164
+ const auth = s.tokenEnv === undefined ? 'no auth' : tokenLabel(s);
165
+ const when = s.launchTime ? 'launch' : 'install';
166
+ console.log(` ${s.name.padEnd(nameWidth, ' ')} ${s.kind.padEnd(12, ' ')} ${when.padEnd(8, ' ')} ${auth} ${s.detail}`);
167
+ }
168
+ }
169
+ function tokenLabel(s) {
170
+ if (s.tokenPresent) {
171
+ return `token ${s.tokenEnv} ✓`;
172
+ }
173
+ return `token ${s.tokenEnv} ✗ MISSING`;
174
+ }
128
175
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":";;AA+BA,0CA8BC;AA4BD,8BAyCC;AAlID,qCAA+C;AAC/C,qCAAkC;AAClC,yCAAiC;AAEjC,4DAKgC;AAChC,kDAA8D;AAC9D,qDAA0D;AAC1D,0DAAiF;AAmBjF,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,OAAO,CAAC,qCAAqC,CAAC;SAC9C,WAAW,CACV,kEAAkE;QAChE,+DAA+D;QAC/D,gEAAgE;QAChE,mBAAmB,CACtB;SACA,MAAM,CACL,SAAS,EACT,uFAAuF,CACxF;SACA,MAAM,CACL,WAAW,EACX,iFAAiF,CAClF;SACA,MAAM,CAAC,iBAAiB,EAAE,2CAA2C,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,IAA6D,EAAE,EAAE;QAC9E,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI;YAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI;YAC9B,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClE,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,IAAA,qBAAQ,EAAC,4BAAe,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC;QACD,IAAA,qBAAQ,EAAC,4BAAe,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC;AA4BM,KAAK,UAAU,SAAS,CAC7B,OAAyB,EAAE;IAE3B,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAChC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAC7B,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EACxC,CAAC,CACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACrC,OAAO,CAAC,GAAG,CACT,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,MAAM,MAAM,GAAG,MAAM,IAAA,mCAAiB,GAAE,CAAC;QACzC,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5D,MAAM,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC;IACvB,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,EAAE;QACF,MAAM,EAAE,EAAE;YACR,CAAC,CAAC,IAAI,GAAG,cAAc;YACvB,CAAC,CAAC,IAAI,GAAG,+BAA+B;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,GAAG,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,IAAA,oBAAU,EAAC,GAAG,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,gEAAgE,GAAG,EAAE;SAC9E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,GAAG,CAAC,CAAC;IAC3B,OAAO;QACL,IAAI,EAAE,UAAU;QAChB,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE;QACtB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE;YACxB,CAAC,CAAC,cAAc,GAAG,EAAE;YACrB,CAAC,CAAC,kCAAkC,GAAG,EAAE;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB;IAC9B,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC;IACpE,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,iBAAiB;YACvB,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,yBAAyB,IAAI,kCAAkC;SACxE,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC;IAC5B,OAAO;QACL,IAAI,EAAE,iBAAiB;QACvB,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACnB,CAAC,CAAC,YAAY,IAAI,CAAC,IAAI,cAAc,IAAI,EAAE;YAC3C,CAAC,CAAC,6BAA6B,IAAI,EAAE;KACxC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAA4B;IACpD,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,GAAG,4CAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAQ,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EACjE,EAAE,CACH,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC;QACzB,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QAC7C,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,CAAC,CAAC,SAAS;YACrB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,IAAI,aAAa,iCAAiC,GAAG,CAAC,kBAAkB,IAAI,CAAC;QAClG,OAAO,CAAC,GAAG,CACT,IAAI,MAAM,KAAK,IAAA,0BAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,kBAAkB,CAAC;aAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,CAAC,GAAG,CACT,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,mCAAmC,CACrF,CAAC;QACF,OAAO,CAAC,GAAG,CACT,2CAA2C,YAAY,EAAE,CAC1D,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CACT,uEAAuE,CACxE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,oEAAoE,CACrE,CAAC;IACF,OAAO,CAAC,GAAG,CACT,qEAAqE,CACtE,CAAC;AACJ,CAAC;AAOD,SAAS,kBAAkB,CAAC,UAAmB;IAC7C,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,IAAI,QAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,uBAAc,EAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxF,QAAQ,GAAG,IAAA,0BAAe,EAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,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,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;QACjD,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CACT,qEAAqE;YACnE,mEAAmE;YACnE,6DAA6D,CAChE,CAAC;QACF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClE,MAAM,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACjD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAC5G,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,CAAe;IACjC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC,CAAC,QAAQ,IAAI,CAAC;IACjC,CAAC;IACD,OAAO,SAAS,CAAC,CAAC,QAAQ,YAAY,CAAC;AACzC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkBtD"}
1
+ {"version":3,"file":"down.d.ts","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoBtD"}
@@ -2,16 +2,20 @@
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");
5
6
  const schema_1 = require("../runtime/config/schema");
6
7
  const docker_cli_1 = require("../runtime/runner/docker-cli");
8
+ const helm_cli_1 = require("../runtime/runner/helm-cli");
7
9
  function registerCommand(program) {
8
10
  program
9
11
  .command('down')
10
- .summary('Stop everything xema up started (container substrate)')
11
- .description('Stop + remove all launcher-owned containers (services + managed infra). ' +
12
- 'Non-destructive by default; --purge also deletes the named data volumes ' +
13
- '(Postgres, object store, search, workspace pools, …).')
14
- .option('--purge', 'Also delete persistent data volumes (DESTRUCTIVE)')
12
+ .summary('Stop everything xema up started (container or helm substrate)')
13
+ .description('Stop + remove everything the launcher started, per the configured substrate. ' +
14
+ 'Container: remove launcher-owned containers (services + managed infra); ' +
15
+ '--purge also deletes named data volumes. Helm: uninstall every release in ' +
16
+ 'the namespace (XEMA_NAMESPACE, default "xema").')
17
+ .option('--config <path>', 'Path to xema.config.yaml (selects the substrate)')
18
+ .option('--purge', 'Also delete persistent data volumes (DESTRUCTIVE; container substrate)')
15
19
  .action(async (opts) => {
16
20
  try {
17
21
  await runDown(opts);
@@ -23,6 +27,36 @@ function registerCommand(program) {
23
27
  });
24
28
  }
25
29
  async function runDown(opts) {
30
+ const { config } = (0, loader_1.loadXemaConfig)({ explicit: opts.config });
31
+ if (config.app.substrate === schema_1.Substrate.Helm) {
32
+ await runHelmDown(opts);
33
+ return;
34
+ }
35
+ await runContainerDown(opts);
36
+ }
37
+ async function runHelmDown(opts) {
38
+ const helm = new helm_cli_1.HelmCli();
39
+ if (!(await helm.available())) {
40
+ console.log('helm is not reachable — nothing to uninstall.');
41
+ return;
42
+ }
43
+ const releases = await helm.listReleases();
44
+ if (releases.length === 0) {
45
+ console.log(`No Helm releases found in namespace "${helm.namespace}".`);
46
+ }
47
+ else {
48
+ console.log(`Uninstalling ${String(releases.length)} release(s) from "${helm.namespace}"...`);
49
+ for (const release of releases) {
50
+ await helm.uninstall(release);
51
+ console.log(` uninstalled ${release}`);
52
+ }
53
+ }
54
+ if (opts.purge) {
55
+ console.log('Note: --purge does not delete Kubernetes PersistentVolumeClaims. Persistent ' +
56
+ 'data is retained; remove PVCs with `kubectl delete pvc` if intended.');
57
+ }
58
+ }
59
+ async function runContainerDown(opts) {
26
60
  const docker = new docker_cli_1.DockerCli();
27
61
  if (!(await docker.available())) {
28
62
  console.log('No container runtime reachable — nothing to stop (native services stop with `xema up`).');
@@ -1 +1 @@
1
- {"version":3,"file":"down.js","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":";;AAkBA,0CAkBC;AApCD,kDAA8D;AAC9D,qDAA0D;AAC1D,6DAAyD;AAgBzD,SAAgB,eAAe,CAAC,OAAgB;IAC9C,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,OAAO,CAAC,uDAAuD,CAAC;SAChE,WAAW,CACV,0EAA0E;QACxE,0EAA0E;QAC1E,uDAAuD,CAC1D;SACA,MAAM,CAAC,SAAS,EAAE,mDAAmD,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,IAAiB,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,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,qBAAqB,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAiB;IACtC,MAAM,MAAM,GAAG,IAAI,sBAAS,EAAE,CAAC;IAC/B,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACvG,OAAO;IACT,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,kBAAkB,EAAE,CAAC;IACrD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,uBAAc,CAAC,EAAE,CAAC;YACtD,MAAM,MAAM,GAAG,QAAQ,SAAS,OAAO,CAAC;YACxC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"down.js","sourceRoot":"","sources":["../../src/commands/down.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Command } from 'commander';
2
+ export declare function registerCommand(program: Command): void;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBzC,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuBtD"}