@xemahq/xema 0.1.5 → 0.2.1

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 (133) hide show
  1. package/README.md +85 -15
  2. package/dist/assets/boot-graph.json +72 -0
  3. package/dist/assets/core/distribution.lock.json +1244 -0
  4. package/dist/assets/core/images.lock.json +428 -0
  5. package/dist/assets/oss/distribution.lock.json +1978 -0
  6. package/dist/assets/oss/images.lock.json +594 -0
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +9 -1
  9. package/dist/cli.js.map +1 -1
  10. package/dist/commands/dev.d.ts.map +1 -1
  11. package/dist/commands/dev.js +82 -14
  12. package/dist/commands/dev.js.map +1 -1
  13. package/dist/commands/doctor.js +1 -1
  14. package/dist/commands/doctor.js.map +1 -1
  15. package/dist/commands/down.d.ts +3 -0
  16. package/dist/commands/down.d.ts.map +1 -0
  17. package/dist/commands/down.js +54 -0
  18. package/dist/commands/down.js.map +1 -0
  19. package/dist/commands/logs.d.ts +3 -0
  20. package/dist/commands/logs.d.ts.map +1 -0
  21. package/dist/commands/logs.js +61 -0
  22. package/dist/commands/logs.js.map +1 -0
  23. package/dist/commands/serve.d.ts.map +1 -1
  24. package/dist/commands/serve.js +38 -8
  25. package/dist/commands/serve.js.map +1 -1
  26. package/dist/commands/status.d.ts +3 -0
  27. package/dist/commands/status.d.ts.map +1 -0
  28. package/dist/commands/status.js +41 -0
  29. package/dist/commands/status.js.map +1 -0
  30. package/dist/commands/up.d.ts +3 -0
  31. package/dist/commands/up.d.ts.map +1 -0
  32. package/dist/commands/up.js +50 -0
  33. package/dist/commands/up.js.map +1 -0
  34. package/dist/dev/infra-preflight.js +1 -1
  35. package/dist/dev/infra-preflight.js.map +1 -1
  36. package/dist/lib/command-registry.d.ts +1 -1
  37. package/dist/lib/command-registry.d.ts.map +1 -1
  38. package/dist/lib/command-registry.js +4 -0
  39. package/dist/lib/command-registry.js.map +1 -1
  40. package/dist/runtime/boot-graph-loader.d.ts +17 -0
  41. package/dist/runtime/boot-graph-loader.d.ts.map +1 -0
  42. package/dist/runtime/boot-graph-loader.js +40 -0
  43. package/dist/runtime/boot-graph-loader.js.map +1 -0
  44. package/dist/runtime/config/loader.d.ts +11 -0
  45. package/dist/runtime/config/loader.d.ts.map +1 -0
  46. package/dist/runtime/config/loader.js +38 -0
  47. package/dist/runtime/config/loader.js.map +1 -0
  48. package/dist/runtime/config/schema.d.ts +208 -0
  49. package/dist/runtime/config/schema.d.ts.map +1 -0
  50. package/dist/runtime/config/schema.js +132 -0
  51. package/dist/runtime/config/schema.js.map +1 -0
  52. package/dist/runtime/env-seeder.d.ts +17 -0
  53. package/dist/runtime/env-seeder.d.ts.map +1 -0
  54. package/dist/runtime/env-seeder.js +89 -0
  55. package/dist/runtime/env-seeder.js.map +1 -0
  56. package/dist/runtime/foreground.d.ts +8 -0
  57. package/dist/runtime/foreground.d.ts.map +1 -0
  58. package/dist/runtime/foreground.js +71 -0
  59. package/dist/runtime/foreground.js.map +1 -0
  60. package/dist/runtime/infra/infra-catalog.d.ts +19 -0
  61. package/dist/runtime/infra/infra-catalog.d.ts.map +1 -0
  62. package/dist/runtime/infra/infra-catalog.js +128 -0
  63. package/dist/runtime/infra/infra-catalog.js.map +1 -0
  64. package/dist/runtime/infra/infra-plan.d.ts +16 -0
  65. package/dist/runtime/infra/infra-plan.d.ts.map +1 -0
  66. package/dist/runtime/infra/infra-plan.js +44 -0
  67. package/dist/runtime/infra/infra-plan.js.map +1 -0
  68. package/dist/runtime/infra/infra-runner.d.ts +26 -0
  69. package/dist/runtime/infra/infra-runner.d.ts.map +1 -0
  70. package/dist/runtime/infra/infra-runner.js +135 -0
  71. package/dist/runtime/infra/infra-runner.js.map +1 -0
  72. package/dist/runtime/launch.d.ts +24 -0
  73. package/dist/runtime/launch.d.ts.map +1 -0
  74. package/dist/runtime/launch.js +124 -0
  75. package/dist/runtime/launch.js.map +1 -0
  76. package/dist/runtime/lock-loader.d.ts +26 -0
  77. package/dist/runtime/lock-loader.d.ts.map +1 -0
  78. package/dist/runtime/lock-loader.js +61 -0
  79. package/dist/runtime/lock-loader.js.map +1 -0
  80. package/dist/runtime/paths.d.ts +14 -0
  81. package/dist/runtime/paths.d.ts.map +1 -0
  82. package/dist/runtime/paths.js +109 -0
  83. package/dist/runtime/paths.js.map +1 -0
  84. package/dist/runtime/platform-services.d.ts +2 -0
  85. package/dist/runtime/platform-services.d.ts.map +1 -0
  86. package/dist/runtime/platform-services.js +8 -0
  87. package/dist/runtime/platform-services.js.map +1 -0
  88. package/dist/runtime/port-map.d.ts +3 -0
  89. package/dist/runtime/port-map.d.ts.map +1 -0
  90. package/dist/runtime/port-map.js +25 -0
  91. package/dist/runtime/port-map.js.map +1 -0
  92. package/dist/runtime/roster.d.ts +32 -0
  93. package/dist/runtime/roster.d.ts.map +1 -0
  94. package/dist/runtime/roster.js +106 -0
  95. package/dist/runtime/roster.js.map +1 -0
  96. package/dist/runtime/runner/container-runner.d.ts +14 -0
  97. package/dist/runtime/runner/container-runner.d.ts.map +1 -0
  98. package/dist/runtime/runner/container-runner.js +61 -0
  99. package/dist/runtime/runner/container-runner.js.map +1 -0
  100. package/dist/runtime/runner/docker-cli.d.ts +11 -0
  101. package/dist/runtime/runner/docker-cli.d.ts.map +1 -0
  102. package/dist/runtime/runner/docker-cli.js +53 -0
  103. package/dist/runtime/runner/docker-cli.js.map +1 -0
  104. package/dist/runtime/runner/health-probe.d.ts +2 -0
  105. package/dist/runtime/runner/health-probe.d.ts.map +1 -0
  106. package/dist/runtime/runner/health-probe.js +38 -0
  107. package/dist/runtime/runner/health-probe.js.map +1 -0
  108. package/dist/runtime/runner/helm-runner.d.ts +19 -0
  109. package/dist/runtime/runner/helm-runner.d.ts.map +1 -0
  110. package/dist/runtime/runner/helm-runner.js +70 -0
  111. package/dist/runtime/runner/helm-runner.js.map +1 -0
  112. package/dist/runtime/runner/native-runner.d.ts +14 -0
  113. package/dist/runtime/runner/native-runner.d.ts.map +1 -0
  114. package/dist/runtime/runner/native-runner.js +92 -0
  115. package/dist/runtime/runner/native-runner.js.map +1 -0
  116. package/dist/runtime/runner/service-runner.d.ts +23 -0
  117. package/dist/runtime/runner/service-runner.d.ts.map +1 -0
  118. package/dist/runtime/runner/service-runner.js +10 -0
  119. package/dist/runtime/runner/service-runner.js.map +1 -0
  120. package/dist/runtime/supervisor.d.ts +46 -0
  121. package/dist/runtime/supervisor.d.ts.map +1 -0
  122. package/dist/runtime/supervisor.js +77 -0
  123. package/dist/runtime/supervisor.js.map +1 -0
  124. package/dist/runtime/unit-type.d.ts +9 -0
  125. package/dist/runtime/unit-type.d.ts.map +1 -0
  126. package/dist/runtime/unit-type.js +19 -0
  127. package/dist/runtime/unit-type.js.map +1 -0
  128. package/dist/runtime/waves.d.ts +15 -0
  129. package/dist/runtime/waves.d.ts.map +1 -0
  130. package/dist/runtime/waves.js +77 -0
  131. package/dist/runtime/waves.js.map +1 -0
  132. package/package.json +7 -8
  133. package/xema.config.example.yaml +46 -0
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadBootGraph = loadBootGraph;
4
+ const node_fs_1 = require("node:fs");
5
+ const paths_1 = require("./paths");
6
+ function loadBootGraph(opts = {}) {
7
+ const resolution = (0, paths_1.resolveBootGraphPath)({ explicit: opts.explicit, envVar: opts.envVar });
8
+ const raw = readJson(resolution.path);
9
+ if (typeof raw.tiers !== 'object' || raw.tiers === null) {
10
+ throw new Error(`Invalid boot-graph.json at ${resolution.path}: missing tiers object.`);
11
+ }
12
+ if (!Array.isArray(raw.infraServices)) {
13
+ throw new Error(`Invalid boot-graph.json at ${resolution.path}: missing infraServices[] array.`);
14
+ }
15
+ if (typeof raw.services !== 'object' || raw.services === null) {
16
+ throw new Error(`Invalid boot-graph.json at ${resolution.path}: missing services object.`);
17
+ }
18
+ const services = new Map();
19
+ for (const [name, node] of Object.entries(raw.services)) {
20
+ const n = node;
21
+ if (typeof n.tier !== 'string') {
22
+ throw new Error(`Invalid boot-graph.json: service "${name}" has no tier.`);
23
+ }
24
+ const requires = Array.isArray(n.startupRequires)
25
+ ? (n.startupRequires.filter((r) => typeof r === 'string'))
26
+ : [];
27
+ services.set(name, { tier: n.tier, startupRequires: requires });
28
+ }
29
+ return {
30
+ tiers: raw.tiers,
31
+ infraServices: new Set(raw.infraServices.filter((s) => typeof s === 'string')),
32
+ services,
33
+ resolution,
34
+ };
35
+ }
36
+ function readJson(path) {
37
+ const text = (0, node_fs_1.readFileSync)(path, 'utf8');
38
+ return JSON.parse(text);
39
+ }
40
+ //# sourceMappingURL=boot-graph-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boot-graph-loader.js","sourceRoot":"","sources":["../../src/runtime/boot-graph-loader.ts"],"names":[],"mappings":";;AA6BA,sCAmCC;AAhED,qCAAuC;AAEvC,mCAAwE;AA2BxE,SAAgB,aAAa,CAAC,OAA6B,EAAE;IAC3D,MAAM,UAAU,GAAG,IAAA,4BAAoB,EAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1F,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAInC,CAAC;IACF,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,IAAI,GAAG,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,CAAC,IAAI,yBAAyB,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,CAAC,IAAI,kCAAkC,CAAC,CAAC;IACnG,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,CAAC,IAAI,4BAA4B,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC;IACzD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,QAAmC,CAAC,EAAE,CAAC;QACnF,MAAM,CAAC,GAAG,IAAqD,CAAC;QAChE,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,gBAAgB,CAAC,CAAC;QAC7E,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;YAC/C,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;YACvE,CAAC,CAAC,EAAE,CAAC;QACP,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,KAA+B;QAC1C,aAAa,EAAE,IAAI,GAAG,CAAE,GAAG,CAAC,aAA2B,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;QAC1G,QAAQ;QACR,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;AACrC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type XemaConfig } from './schema';
2
+ export interface LoadConfigOptions {
3
+ readonly explicit?: string | undefined;
4
+ readonly cwd?: string;
5
+ }
6
+ export interface LoadedConfig {
7
+ readonly config: XemaConfig;
8
+ readonly source: string;
9
+ }
10
+ export declare function loadXemaConfig(opts?: LoadConfigOptions): LoadedConfig;
11
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/runtime/config/loader.ts"],"names":[],"mappings":"AAMA,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAS5D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,cAAc,CAAC,IAAI,GAAE,iBAAsB,GAAG,YAAY,CAmBzE"}
@@ -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,208 @@
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 ProcessModel {
13
+ Distributed = "distributed",
14
+ Monolith = "monolith"
15
+ }
16
+ export declare enum InfraComponent {
17
+ Postgres = "postgres",
18
+ Redis = "redis",
19
+ Etcd = "etcd",
20
+ Keycloak = "keycloak",
21
+ ObjectStore = "objectStore",
22
+ Search = "search",
23
+ Fga = "fga",
24
+ Git = "git",
25
+ Temporal = "temporal"
26
+ }
27
+ export declare enum WorkspaceDriver {
28
+ DockerLocal = "docker_local",
29
+ HostPath = "host_path"
30
+ }
31
+ export declare enum SecretSource {
32
+ Prompt = "prompt",
33
+ Env = "env",
34
+ File = "file"
35
+ }
36
+ declare const InfraComponentConfigSchema: z.ZodObject<{
37
+ mode: z.ZodEnum<typeof InfraMode>;
38
+ url: z.ZodOptional<z.ZodString>;
39
+ realm: z.ZodOptional<z.ZodString>;
40
+ bucketPrefix: z.ZodOptional<z.ZodString>;
41
+ secretRef: z.ZodOptional<z.ZodString>;
42
+ adminSecretRef: z.ZodOptional<z.ZodString>;
43
+ persist: z.ZodOptional<z.ZodObject<{
44
+ path: z.ZodOptional<z.ZodString>;
45
+ }, z.core.$strict>>;
46
+ }, z.core.$strict>;
47
+ export type InfraComponentConfig = z.infer<typeof InfraComponentConfigSchema>;
48
+ declare const AppConfigSchema: z.ZodObject<{
49
+ substrate: z.ZodDefault<z.ZodEnum<typeof Substrate>>;
50
+ processModel: z.ZodDefault<z.ZodEnum<typeof ProcessModel>>;
51
+ include: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
52
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString>>;
53
+ features: z.ZodDefault<z.ZodArray<z.ZodString>>;
54
+ web: z.ZodDefault<z.ZodObject<{
55
+ enabled: z.ZodDefault<z.ZodBoolean>;
56
+ substrate: z.ZodOptional<z.ZodEnum<typeof Substrate>>;
57
+ }, z.core.$strict>>;
58
+ }, z.core.$strict>;
59
+ export type AppConfig = z.infer<typeof AppConfigSchema>;
60
+ declare const StateConfigSchema: z.ZodObject<{
61
+ workspaces: z.ZodDefault<z.ZodObject<{
62
+ driver: z.ZodOptional<z.ZodEnum<typeof WorkspaceDriver>>;
63
+ path: z.ZodOptional<z.ZodString>;
64
+ }, z.core.$strict>>;
65
+ biomeMaterialization: z.ZodDefault<z.ZodObject<{
66
+ path: z.ZodOptional<z.ZodString>;
67
+ }, z.core.$strict>>;
68
+ }, z.core.$strict>;
69
+ export type StateConfig = z.infer<typeof StateConfigSchema>;
70
+ declare const SecretConfigSchema: z.ZodObject<{
71
+ from: z.ZodEnum<typeof SecretSource>;
72
+ path: z.ZodOptional<z.ZodString>;
73
+ env: z.ZodOptional<z.ZodString>;
74
+ }, z.core.$strict>;
75
+ export type SecretConfig = z.infer<typeof SecretConfigSchema>;
76
+ export declare const XemaConfigSchema: z.ZodObject<{
77
+ edition: z.ZodDefault<z.ZodString>;
78
+ infra: z.ZodDefault<z.ZodObject<{
79
+ postgres: z.ZodOptional<z.ZodObject<{
80
+ mode: z.ZodEnum<typeof InfraMode>;
81
+ url: z.ZodOptional<z.ZodString>;
82
+ realm: z.ZodOptional<z.ZodString>;
83
+ bucketPrefix: z.ZodOptional<z.ZodString>;
84
+ secretRef: z.ZodOptional<z.ZodString>;
85
+ adminSecretRef: z.ZodOptional<z.ZodString>;
86
+ persist: z.ZodOptional<z.ZodObject<{
87
+ path: z.ZodOptional<z.ZodString>;
88
+ }, z.core.$strict>>;
89
+ }, z.core.$strict>>;
90
+ redis: z.ZodOptional<z.ZodObject<{
91
+ mode: z.ZodEnum<typeof InfraMode>;
92
+ url: z.ZodOptional<z.ZodString>;
93
+ realm: z.ZodOptional<z.ZodString>;
94
+ bucketPrefix: z.ZodOptional<z.ZodString>;
95
+ secretRef: z.ZodOptional<z.ZodString>;
96
+ adminSecretRef: z.ZodOptional<z.ZodString>;
97
+ persist: z.ZodOptional<z.ZodObject<{
98
+ path: z.ZodOptional<z.ZodString>;
99
+ }, z.core.$strict>>;
100
+ }, z.core.$strict>>;
101
+ etcd: z.ZodOptional<z.ZodObject<{
102
+ mode: z.ZodEnum<typeof InfraMode>;
103
+ url: z.ZodOptional<z.ZodString>;
104
+ realm: z.ZodOptional<z.ZodString>;
105
+ bucketPrefix: z.ZodOptional<z.ZodString>;
106
+ secretRef: z.ZodOptional<z.ZodString>;
107
+ adminSecretRef: z.ZodOptional<z.ZodString>;
108
+ persist: z.ZodOptional<z.ZodObject<{
109
+ path: z.ZodOptional<z.ZodString>;
110
+ }, z.core.$strict>>;
111
+ }, z.core.$strict>>;
112
+ keycloak: z.ZodOptional<z.ZodObject<{
113
+ mode: z.ZodEnum<typeof InfraMode>;
114
+ url: z.ZodOptional<z.ZodString>;
115
+ realm: z.ZodOptional<z.ZodString>;
116
+ bucketPrefix: z.ZodOptional<z.ZodString>;
117
+ secretRef: z.ZodOptional<z.ZodString>;
118
+ adminSecretRef: z.ZodOptional<z.ZodString>;
119
+ persist: z.ZodOptional<z.ZodObject<{
120
+ path: z.ZodOptional<z.ZodString>;
121
+ }, z.core.$strict>>;
122
+ }, z.core.$strict>>;
123
+ objectStore: z.ZodOptional<z.ZodObject<{
124
+ mode: z.ZodEnum<typeof InfraMode>;
125
+ url: z.ZodOptional<z.ZodString>;
126
+ realm: z.ZodOptional<z.ZodString>;
127
+ bucketPrefix: z.ZodOptional<z.ZodString>;
128
+ secretRef: z.ZodOptional<z.ZodString>;
129
+ adminSecretRef: z.ZodOptional<z.ZodString>;
130
+ persist: z.ZodOptional<z.ZodObject<{
131
+ path: z.ZodOptional<z.ZodString>;
132
+ }, z.core.$strict>>;
133
+ }, z.core.$strict>>;
134
+ search: z.ZodOptional<z.ZodObject<{
135
+ mode: z.ZodEnum<typeof InfraMode>;
136
+ url: z.ZodOptional<z.ZodString>;
137
+ realm: z.ZodOptional<z.ZodString>;
138
+ bucketPrefix: z.ZodOptional<z.ZodString>;
139
+ secretRef: z.ZodOptional<z.ZodString>;
140
+ adminSecretRef: z.ZodOptional<z.ZodString>;
141
+ persist: z.ZodOptional<z.ZodObject<{
142
+ path: z.ZodOptional<z.ZodString>;
143
+ }, z.core.$strict>>;
144
+ }, z.core.$strict>>;
145
+ fga: z.ZodOptional<z.ZodObject<{
146
+ mode: z.ZodEnum<typeof InfraMode>;
147
+ url: z.ZodOptional<z.ZodString>;
148
+ realm: z.ZodOptional<z.ZodString>;
149
+ bucketPrefix: z.ZodOptional<z.ZodString>;
150
+ secretRef: z.ZodOptional<z.ZodString>;
151
+ adminSecretRef: z.ZodOptional<z.ZodString>;
152
+ persist: z.ZodOptional<z.ZodObject<{
153
+ path: z.ZodOptional<z.ZodString>;
154
+ }, z.core.$strict>>;
155
+ }, z.core.$strict>>;
156
+ git: z.ZodOptional<z.ZodObject<{
157
+ mode: z.ZodEnum<typeof InfraMode>;
158
+ url: z.ZodOptional<z.ZodString>;
159
+ realm: z.ZodOptional<z.ZodString>;
160
+ bucketPrefix: z.ZodOptional<z.ZodString>;
161
+ secretRef: z.ZodOptional<z.ZodString>;
162
+ adminSecretRef: z.ZodOptional<z.ZodString>;
163
+ persist: z.ZodOptional<z.ZodObject<{
164
+ path: z.ZodOptional<z.ZodString>;
165
+ }, z.core.$strict>>;
166
+ }, z.core.$strict>>;
167
+ temporal: z.ZodOptional<z.ZodObject<{
168
+ mode: z.ZodEnum<typeof InfraMode>;
169
+ url: z.ZodOptional<z.ZodString>;
170
+ realm: z.ZodOptional<z.ZodString>;
171
+ bucketPrefix: z.ZodOptional<z.ZodString>;
172
+ secretRef: z.ZodOptional<z.ZodString>;
173
+ adminSecretRef: z.ZodOptional<z.ZodString>;
174
+ persist: z.ZodOptional<z.ZodObject<{
175
+ path: z.ZodOptional<z.ZodString>;
176
+ }, z.core.$strict>>;
177
+ }, z.core.$strict>>;
178
+ }, z.core.$strict>>;
179
+ app: z.ZodDefault<z.ZodObject<{
180
+ substrate: z.ZodDefault<z.ZodEnum<typeof Substrate>>;
181
+ processModel: z.ZodDefault<z.ZodEnum<typeof ProcessModel>>;
182
+ include: z.ZodDefault<z.ZodUnion<readonly [z.ZodLiteral<"all">, z.ZodArray<z.ZodString>]>>;
183
+ exclude: z.ZodDefault<z.ZodArray<z.ZodString>>;
184
+ features: z.ZodDefault<z.ZodArray<z.ZodString>>;
185
+ web: z.ZodDefault<z.ZodObject<{
186
+ enabled: z.ZodDefault<z.ZodBoolean>;
187
+ substrate: z.ZodOptional<z.ZodEnum<typeof Substrate>>;
188
+ }, z.core.$strict>>;
189
+ }, z.core.$strict>>;
190
+ state: z.ZodDefault<z.ZodObject<{
191
+ workspaces: z.ZodDefault<z.ZodObject<{
192
+ driver: z.ZodOptional<z.ZodEnum<typeof WorkspaceDriver>>;
193
+ path: z.ZodOptional<z.ZodString>;
194
+ }, z.core.$strict>>;
195
+ biomeMaterialization: z.ZodDefault<z.ZodObject<{
196
+ path: z.ZodOptional<z.ZodString>;
197
+ }, z.core.$strict>>;
198
+ }, z.core.$strict>>;
199
+ secrets: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
200
+ from: z.ZodEnum<typeof SecretSource>;
201
+ path: z.ZodOptional<z.ZodString>;
202
+ env: z.ZodOptional<z.ZodString>;
203
+ }, z.core.$strict>>>;
204
+ }, z.core.$strict>;
205
+ export type XemaConfig = z.infer<typeof XemaConfigSchema>;
206
+ export declare function parseXemaConfig(raw: unknown): XemaConfig;
207
+ export {};
208
+ //# 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;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAelB,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,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.XemaConfigSchema = exports.SecretSource = exports.WorkspaceDriver = exports.InfraComponent = exports.ProcessModel = 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 ProcessModel;
19
+ (function (ProcessModel) {
20
+ ProcessModel["Distributed"] = "distributed";
21
+ ProcessModel["Monolith"] = "monolith";
22
+ })(ProcessModel || (exports.ProcessModel = ProcessModel = {}));
23
+ var InfraComponent;
24
+ (function (InfraComponent) {
25
+ InfraComponent["Postgres"] = "postgres";
26
+ InfraComponent["Redis"] = "redis";
27
+ InfraComponent["Etcd"] = "etcd";
28
+ InfraComponent["Keycloak"] = "keycloak";
29
+ InfraComponent["ObjectStore"] = "objectStore";
30
+ InfraComponent["Search"] = "search";
31
+ InfraComponent["Fga"] = "fga";
32
+ InfraComponent["Git"] = "git";
33
+ InfraComponent["Temporal"] = "temporal";
34
+ })(InfraComponent || (exports.InfraComponent = InfraComponent = {}));
35
+ var WorkspaceDriver;
36
+ (function (WorkspaceDriver) {
37
+ WorkspaceDriver["DockerLocal"] = "docker_local";
38
+ WorkspaceDriver["HostPath"] = "host_path";
39
+ })(WorkspaceDriver || (exports.WorkspaceDriver = WorkspaceDriver = {}));
40
+ var SecretSource;
41
+ (function (SecretSource) {
42
+ SecretSource["Prompt"] = "prompt";
43
+ SecretSource["Env"] = "env";
44
+ SecretSource["File"] = "file";
45
+ })(SecretSource || (exports.SecretSource = SecretSource = {}));
46
+ const PersistSchema = zod_1.z.object({ path: zod_1.z.string().min(1).optional() }).strict();
47
+ const InfraComponentConfigSchema = zod_1.z
48
+ .object({
49
+ mode: zod_1.z.nativeEnum(InfraMode),
50
+ url: zod_1.z.string().min(1).optional(),
51
+ realm: zod_1.z.string().min(1).optional(),
52
+ bucketPrefix: zod_1.z.string().min(1).optional(),
53
+ secretRef: zod_1.z.string().min(1).optional(),
54
+ adminSecretRef: zod_1.z.string().min(1).optional(),
55
+ persist: PersistSchema.optional(),
56
+ })
57
+ .strict();
58
+ const InfraConfigSchema = zod_1.z
59
+ .object({
60
+ [InfraComponent.Postgres]: InfraComponentConfigSchema.optional(),
61
+ [InfraComponent.Redis]: InfraComponentConfigSchema.optional(),
62
+ [InfraComponent.Etcd]: InfraComponentConfigSchema.optional(),
63
+ [InfraComponent.Keycloak]: InfraComponentConfigSchema.optional(),
64
+ [InfraComponent.ObjectStore]: InfraComponentConfigSchema.optional(),
65
+ [InfraComponent.Search]: InfraComponentConfigSchema.optional(),
66
+ [InfraComponent.Fga]: InfraComponentConfigSchema.optional(),
67
+ [InfraComponent.Git]: InfraComponentConfigSchema.optional(),
68
+ [InfraComponent.Temporal]: InfraComponentConfigSchema.optional(),
69
+ })
70
+ .strict();
71
+ const RosterIncludeSchema = zod_1.z.union([
72
+ zod_1.z.literal('all'),
73
+ zod_1.z.array(zod_1.z.string().min(1)),
74
+ ]);
75
+ const AppConfigSchema = zod_1.z
76
+ .object({
77
+ substrate: zod_1.z.nativeEnum(Substrate).default(Substrate.Container),
78
+ processModel: zod_1.z.nativeEnum(ProcessModel).default(ProcessModel.Distributed),
79
+ include: RosterIncludeSchema.default('all'),
80
+ exclude: zod_1.z.array(zod_1.z.string().min(1)).default([]),
81
+ features: zod_1.z.array(zod_1.z.string().min(1)).default([]),
82
+ web: zod_1.z
83
+ .object({
84
+ enabled: zod_1.z.boolean().default(false),
85
+ substrate: zod_1.z.nativeEnum(Substrate).optional(),
86
+ })
87
+ .strict()
88
+ .default({ enabled: false }),
89
+ })
90
+ .strict();
91
+ const StateConfigSchema = zod_1.z
92
+ .object({
93
+ workspaces: zod_1.z
94
+ .object({ driver: zod_1.z.nativeEnum(WorkspaceDriver).optional(), path: zod_1.z.string().min(1).optional() })
95
+ .strict()
96
+ .default({}),
97
+ biomeMaterialization: zod_1.z.object({ path: zod_1.z.string().min(1).optional() }).strict().default({}),
98
+ })
99
+ .strict();
100
+ const SecretConfigSchema = zod_1.z
101
+ .object({
102
+ from: zod_1.z.nativeEnum(SecretSource),
103
+ path: zod_1.z.string().min(1).optional(),
104
+ env: zod_1.z.string().min(1).optional(),
105
+ })
106
+ .strict();
107
+ exports.XemaConfigSchema = zod_1.z
108
+ .object({
109
+ edition: zod_1.z.string().min(1).default('oss'),
110
+ infra: InfraConfigSchema.default({}),
111
+ app: AppConfigSchema.default({
112
+ substrate: Substrate.Container,
113
+ processModel: ProcessModel.Distributed,
114
+ include: 'all',
115
+ exclude: [],
116
+ features: [],
117
+ web: { enabled: false },
118
+ }),
119
+ state: StateConfigSchema.default({ workspaces: {}, biomeMaterialization: {} }),
120
+ secrets: zod_1.z.record(zod_1.z.string().min(1), SecretConfigSchema).default({}),
121
+ })
122
+ .strict();
123
+ function parseXemaConfig(raw) {
124
+ const result = exports.XemaConfigSchema.safeParse(raw ?? {});
125
+ if (!result.success) {
126
+ throw new Error(`Invalid xema.config.yaml: ${result.error.issues
127
+ .map((i) => `[${i.path.join('.')}] ${i.message}`)
128
+ .join('; ')}`);
129
+ }
130
+ return result.data;
131
+ }
132
+ //# 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":"AAUA,OAAO,EAA2C,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAItG,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,CAyDxD"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.seedEnv = seedEnv;
4
+ const node_os_1 = require("node:os");
5
+ const node_path_1 = require("node:path");
6
+ const kernel_state_runtime_1 = require("@xemahq/kernel-state-runtime");
7
+ const service_registry_nest_1 = require("@xemahq/service-registry-nest");
8
+ const schema_1 = require("./config/schema");
9
+ const infra_catalog_1 = require("./infra/infra-catalog");
10
+ const env_defaults_1 = require("../dev/env-defaults");
11
+ const DEFAULT_CONTAINER_PORT = 3000;
12
+ function seedEnv(ctx) {
13
+ const containerPort = ctx.containerPort ?? DEFAULT_CONTAINER_PORT;
14
+ const hostOf = (name) => ctx.substrate === schema_1.Substrate.Container
15
+ ? name
16
+ : '127.0.0.1';
17
+ const portOf = (name) => ctx.substrate === schema_1.Substrate.Container ? containerPort : ctx.ports?.get(name) ?? containerPort;
18
+ const base = {};
19
+ base.REDIS_URL = infraUrl(ctx, schema_1.InfraComponent.Redis) ?? 'redis://127.0.0.1:6379';
20
+ base.OPENSEARCH_URL = infraUrl(ctx, schema_1.InfraComponent.Search) ?? 'http://127.0.0.1:9200';
21
+ base.TEMPORAL_ADDRESS = stripScheme(infraUrl(ctx, schema_1.InfraComponent.Temporal) ?? '127.0.0.1:7233');
22
+ base.TEMPORAL_NAMESPACE = 'default';
23
+ if (ctx.config.app.processModel === schema_1.ProcessModel.Monolith) {
24
+ base.XEMA_KERNEL_STATE_PROFILE = kernel_state_runtime_1.KernelStateProfile.Dev;
25
+ base[service_registry_nest_1.SERVICE_REGISTRY_ADAPTER_ENV_VAR] = service_registry_nest_1.ServiceRegistryAdapterKind.InProcess;
26
+ base.XEMA_KERNEL_STATE_FILE = (0, node_path_1.join)((0, node_os_1.homedir)(), '.xema', 'monolith', 'kernel-state.sqlite');
27
+ }
28
+ else {
29
+ const etcd = infraUrl(ctx, schema_1.InfraComponent.Etcd) ?? '127.0.0.1:2379';
30
+ base.XEMA_ETCD_ENDPOINTS = stripScheme(etcd);
31
+ base.XEMA_KERNEL_STATE_PROFILE = kernel_state_runtime_1.KernelStateProfile.Cluster;
32
+ base[service_registry_nest_1.SERVICE_REGISTRY_ADAPTER_ENV_VAR] = service_registry_nest_1.ServiceRegistryAdapterKind.KernelState;
33
+ }
34
+ const kcUrl = infraUrl(ctx, schema_1.InfraComponent.Keycloak) ?? 'http://127.0.0.1:8180';
35
+ const realm = ctx.infra.byComponent.get(schema_1.InfraComponent.Keycloak)?.config.realm ?? 'xema';
36
+ base.JWT_ISSUER = `${kcUrl}/realms/${realm}`;
37
+ base.JWT_PUBLIC_KEY_URL = `${kcUrl}/realms/${realm}/protocol/openid-connect/certs`;
38
+ for (const [envVar, serviceName] of Object.entries(env_defaults_1.SERVICE_URL_ENV_VARS)) {
39
+ base[envVar] = `http://${hostOf(serviceName)}:${String(portOf(serviceName))}`;
40
+ }
41
+ return {
42
+ base,
43
+ perService(entry) {
44
+ const overlay = {};
45
+ const selfPort = portOf(entry.name);
46
+ overlay.PORT = String(selfPort);
47
+ overlay.SERVICE_PUBLIC_URL = `http://${hostOf(entry.name)}:${String(selfPort)}`;
48
+ overlay.DATABASE_URL = databaseUrl(ctx, entry.name);
49
+ return overlay;
50
+ },
51
+ };
52
+ }
53
+ function databaseUrl(ctx, serviceName) {
54
+ const pg = ctx.infra.byComponent.get(schema_1.InfraComponent.Postgres);
55
+ const host = pg?.mode === schema_1.InfraMode.External && pg.url
56
+ ? new URL(pg.url).host
57
+ : ctx.substrate === schema_1.Substrate.Container
58
+ ? `${infra_catalog_1.INFRA_CATALOG[schema_1.InfraComponent.Postgres].managed.containerName}:5432`
59
+ : '127.0.0.1:5432';
60
+ const db = `${serviceName.replace(/-/g, '_')}_db`;
61
+ return `postgresql://postgres:postgres@${host}/${db}?schema=public&connection_limit=3`;
62
+ }
63
+ function infraUrl(ctx, component) {
64
+ const resolved = ctx.infra.byComponent.get(component);
65
+ if (!resolved) {
66
+ return undefined;
67
+ }
68
+ if (resolved.mode === schema_1.InfraMode.External) {
69
+ return resolved.url;
70
+ }
71
+ if (resolved.mode === schema_1.InfraMode.Disabled) {
72
+ return undefined;
73
+ }
74
+ return managedUrl(ctx, resolved);
75
+ }
76
+ function managedUrl(ctx, resolved) {
77
+ const spec = infra_catalog_1.INFRA_CATALOG[resolved.component].managed;
78
+ const firstPort = spec.ports[0];
79
+ const containerPort = firstPort ? firstPort[1] : 0;
80
+ const hostPort = firstPort ? firstPort[0] : 0;
81
+ if (ctx.substrate === schema_1.Substrate.Container) {
82
+ return `http://${spec.containerName}:${String(containerPort)}`;
83
+ }
84
+ return `http://127.0.0.1:${String(hostPort)}`;
85
+ }
86
+ function stripScheme(url) {
87
+ return url.replace(/^https?:\/\//, '');
88
+ }
89
+ //# 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"}