@xemahq/xema 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -20
- package/dist/assets/boot-graph.json +57 -15
- package/dist/assets/core/distribution.lock.json +667 -297
- package/dist/assets/core/images.lock.json +136 -136
- package/dist/assets/oss/distribution.lock.json +1497 -461
- package/dist/assets/oss/images.lock.json +423 -188
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +36 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +1 -1
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/biome-dev.d.ts +3 -0
- package/dist/commands/biome-dev.d.ts.map +1 -0
- package/dist/commands/biome-dev.js +176 -0
- package/dist/commands/biome-dev.js.map +1 -0
- package/dist/commands/biome-validate.d.ts +10 -0
- package/dist/commands/biome-validate.d.ts.map +1 -0
- package/dist/commands/biome-validate.js +49 -0
- package/dist/commands/biome-validate.js.map +1 -0
- package/dist/commands/biome.d.ts.map +1 -1
- package/dist/commands/biome.js +359 -25
- package/dist/commands/biome.js.map +1 -1
- package/dist/commands/canopy.d.ts +3 -0
- package/dist/commands/canopy.d.ts.map +1 -0
- package/dist/commands/canopy.js +214 -0
- package/dist/commands/canopy.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +78 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +71 -21
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/dist.js +1 -1
- package/dist/commands/dist.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +40 -6
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +1 -1
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/installation.d.ts +3 -0
- package/dist/commands/installation.d.ts.map +1 -0
- package/dist/commands/installation.js +101 -0
- package/dist/commands/installation.js.map +1 -0
- package/dist/commands/logs.d.ts.map +1 -1
- package/dist/commands/logs.js +6 -14
- package/dist/commands/logs.js.map +1 -1
- package/dist/commands/objects.d.ts.map +1 -1
- package/dist/commands/objects.js +85 -6
- package/dist/commands/objects.js.map +1 -1
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +1 -1
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +61 -9
- package/dist/commands/run.js.map +1 -1
- package/dist/commands/serve.d.ts.map +1 -1
- package/dist/commands/serve.js +33 -13
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/shell.d.ts.map +1 -1
- package/dist/commands/shell.js +190 -6
- package/dist/commands/shell.js.map +1 -1
- package/dist/commands/source.d.ts +3 -0
- package/dist/commands/source.d.ts.map +1 -0
- package/dist/commands/source.js +120 -0
- package/dist/commands/source.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +29 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/up.d.ts.map +1 -1
- package/dist/commands/up.js +55 -5
- package/dist/commands/up.js.map +1 -1
- package/dist/dev/env-defaults.d.ts.map +1 -1
- package/dist/dev/env-defaults.js +9 -6
- package/dist/dev/env-defaults.js.map +1 -1
- package/dist/dev/forked-worker.d.ts +15 -0
- package/dist/dev/forked-worker.d.ts.map +1 -1
- package/dist/dev/forked-worker.js +72 -14
- package/dist/dev/forked-worker.js.map +1 -1
- package/dist/dev/opa-policies.d.ts +3 -0
- package/dist/dev/opa-policies.d.ts.map +1 -0
- package/dist/dev/opa-policies.js +64 -0
- package/dist/dev/opa-policies.js.map +1 -0
- package/dist/lib/cli-errors.d.ts +7 -0
- package/dist/lib/cli-errors.d.ts.map +1 -0
- package/dist/lib/cli-errors.js +30 -0
- package/dist/lib/cli-errors.js.map +1 -0
- package/dist/lib/control-plane.d.ts.map +1 -1
- package/dist/lib/control-plane.js +5 -2
- package/dist/lib/control-plane.js.map +1 -1
- package/dist/lib/exit-codes.d.ts +3 -4
- package/dist/lib/exit-codes.d.ts.map +1 -1
- package/dist/lib/exit-codes.js +3 -4
- package/dist/lib/exit-codes.js.map +1 -1
- package/dist/lib/http-error.d.ts +2 -0
- package/dist/lib/http-error.d.ts.map +1 -0
- package/dist/lib/http-error.js +51 -0
- package/dist/lib/http-error.js.map +1 -0
- package/dist/lib/roster-profile.d.ts +10 -0
- package/dist/lib/roster-profile.d.ts.map +1 -0
- package/dist/lib/roster-profile.js +44 -0
- package/dist/lib/roster-profile.js.map +1 -0
- package/dist/runtime/biome-dev.d.ts +28 -0
- package/dist/runtime/biome-dev.d.ts.map +1 -0
- package/dist/runtime/biome-dev.js +131 -0
- package/dist/runtime/biome-dev.js.map +1 -0
- package/dist/runtime/biome-local-install.d.ts +29 -0
- package/dist/runtime/biome-local-install.d.ts.map +1 -0
- package/dist/runtime/biome-local-install.js +243 -0
- package/dist/runtime/biome-local-install.js.map +1 -0
- package/dist/runtime/biome-publish.d.ts +34 -0
- package/dist/runtime/biome-publish.d.ts.map +1 -0
- package/dist/runtime/biome-publish.js +214 -0
- package/dist/runtime/biome-publish.js.map +1 -0
- package/dist/runtime/biome-scaffold.d.ts +35 -0
- package/dist/runtime/biome-scaffold.d.ts.map +1 -0
- package/dist/runtime/biome-scaffold.js +153 -0
- package/dist/runtime/biome-scaffold.js.map +1 -0
- package/dist/runtime/biome-validate.d.ts +28 -0
- package/dist/runtime/biome-validate.d.ts.map +1 -0
- package/dist/runtime/biome-validate.js +450 -0
- package/dist/runtime/biome-validate.js.map +1 -0
- package/dist/runtime/boot-graph-loader.d.ts +1 -0
- package/dist/runtime/boot-graph-loader.d.ts.map +1 -1
- package/dist/runtime/boot-graph-loader.js +99 -7
- package/dist/runtime/boot-graph-loader.js.map +1 -1
- package/dist/runtime/canopy-refs.d.ts +8 -0
- package/dist/runtime/canopy-refs.d.ts.map +1 -0
- package/dist/runtime/canopy-refs.js +51 -0
- package/dist/runtime/canopy-refs.js.map +1 -0
- package/dist/runtime/canopy-replies.d.ts +14 -0
- package/dist/runtime/canopy-replies.d.ts.map +1 -0
- package/dist/runtime/canopy-replies.js +39 -0
- package/dist/runtime/canopy-replies.js.map +1 -0
- package/dist/runtime/capability-invoke.d.ts +35 -0
- package/dist/runtime/capability-invoke.d.ts.map +1 -0
- package/dist/runtime/capability-invoke.js +119 -0
- package/dist/runtime/capability-invoke.js.map +1 -0
- package/dist/runtime/config/dev-mode.d.ts +8 -0
- package/dist/runtime/config/dev-mode.d.ts.map +1 -0
- package/dist/runtime/config/dev-mode.js +84 -0
- package/dist/runtime/config/dev-mode.js.map +1 -0
- package/dist/runtime/config/init-presets.d.ts +1 -1
- package/dist/runtime/config/init-presets.d.ts.map +1 -1
- package/dist/runtime/config/init-presets.js +63 -11
- package/dist/runtime/config/init-presets.js.map +1 -1
- package/dist/runtime/config/loader.d.ts +1 -0
- package/dist/runtime/config/loader.d.ts.map +1 -1
- package/dist/runtime/config/loader.js +41 -5
- package/dist/runtime/config/loader.js.map +1 -1
- package/dist/runtime/config/schema.d.ts +27 -12
- package/dist/runtime/config/schema.d.ts.map +1 -1
- package/dist/runtime/config/schema.js +113 -8
- package/dist/runtime/config/schema.js.map +1 -1
- package/dist/runtime/config/sources-config.d.ts +14 -0
- package/dist/runtime/config/sources-config.d.ts.map +1 -0
- package/dist/runtime/config/sources-config.js +79 -0
- package/dist/runtime/config/sources-config.js.map +1 -0
- package/dist/runtime/distribution/compose.d.ts.map +1 -1
- package/dist/runtime/distribution/compose.js +3 -1
- package/dist/runtime/distribution/compose.js.map +1 -1
- package/dist/runtime/env-seeder.d.ts +5 -0
- package/dist/runtime/env-seeder.d.ts.map +1 -1
- package/dist/runtime/env-seeder.js +118 -16
- package/dist/runtime/env-seeder.js.map +1 -1
- package/dist/runtime/foreground.d.ts +4 -0
- package/dist/runtime/foreground.d.ts.map +1 -1
- package/dist/runtime/foreground.js +11 -0
- package/dist/runtime/foreground.js.map +1 -1
- package/dist/runtime/infra/infra-catalog.d.ts +1 -0
- package/dist/runtime/infra/infra-catalog.d.ts.map +1 -1
- package/dist/runtime/infra/infra-catalog.js +2 -1
- package/dist/runtime/infra/infra-catalog.js.map +1 -1
- package/dist/runtime/infra/infra-runner.d.ts +5 -0
- package/dist/runtime/infra/infra-runner.d.ts.map +1 -1
- package/dist/runtime/infra/infra-runner.js +82 -13
- package/dist/runtime/infra/infra-runner.js.map +1 -1
- package/dist/runtime/installation/compiler.d.ts +37 -0
- package/dist/runtime/installation/compiler.d.ts.map +1 -0
- package/dist/runtime/installation/compiler.js +190 -0
- package/dist/runtime/installation/compiler.js.map +1 -0
- package/dist/runtime/installation/contract.d.ts +125 -0
- package/dist/runtime/installation/contract.d.ts.map +1 -0
- package/dist/runtime/installation/contract.js +182 -0
- package/dist/runtime/installation/contract.js.map +1 -0
- package/dist/runtime/installation/diagnostics.d.ts +16 -0
- package/dist/runtime/installation/diagnostics.d.ts.map +1 -0
- package/dist/runtime/installation/diagnostics.js +21 -0
- package/dist/runtime/installation/diagnostics.js.map +1 -0
- package/dist/runtime/installation/diff.d.ts +17 -0
- package/dist/runtime/installation/diff.d.ts.map +1 -0
- package/dist/runtime/installation/diff.js +99 -0
- package/dist/runtime/installation/diff.js.map +1 -0
- package/dist/runtime/installation/format.d.ts +3 -0
- package/dist/runtime/installation/format.d.ts.map +1 -0
- package/dist/runtime/installation/format.js +22 -0
- package/dist/runtime/installation/format.js.map +1 -0
- package/dist/runtime/installation/from-current-config.d.ts +8 -0
- package/dist/runtime/installation/from-current-config.d.ts.map +1 -0
- package/dist/runtime/installation/from-current-config.js +75 -0
- package/dist/runtime/installation/from-current-config.js.map +1 -0
- package/dist/runtime/installation/index.d.ts +13 -0
- package/dist/runtime/installation/index.d.ts.map +1 -0
- package/dist/runtime/installation/index.js +29 -0
- package/dist/runtime/installation/index.js.map +1 -0
- package/dist/runtime/installation/lifecycle.d.ts +23 -0
- package/dist/runtime/installation/lifecycle.d.ts.map +1 -0
- package/dist/runtime/installation/lifecycle.js +70 -0
- package/dist/runtime/installation/lifecycle.js.map +1 -0
- package/dist/runtime/installation/serialization.d.ts +3 -0
- package/dist/runtime/installation/serialization.d.ts.map +1 -0
- package/dist/runtime/installation/serialization.js +39 -0
- package/dist/runtime/installation/serialization.js.map +1 -0
- package/dist/runtime/installation/state-store.d.ts +20 -0
- package/dist/runtime/installation/state-store.d.ts.map +1 -0
- package/dist/runtime/installation/state-store.js +257 -0
- package/dist/runtime/installation/state-store.js.map +1 -0
- package/dist/runtime/installation/status.d.ts +30 -0
- package/dist/runtime/installation/status.d.ts.map +1 -0
- package/dist/runtime/installation/status.js +138 -0
- package/dist/runtime/installation/status.js.map +1 -0
- package/dist/runtime/installation/support-bundle.d.ts +30 -0
- package/dist/runtime/installation/support-bundle.d.ts.map +1 -0
- package/dist/runtime/installation/support-bundle.js +130 -0
- package/dist/runtime/installation/support-bundle.js.map +1 -0
- package/dist/runtime/installation/validation.d.ts +8 -0
- package/dist/runtime/installation/validation.d.ts.map +1 -0
- package/dist/runtime/installation/validation.js +39 -0
- package/dist/runtime/installation/validation.js.map +1 -0
- package/dist/runtime/installation/validators/common.d.ts +4 -0
- package/dist/runtime/installation/validators/common.d.ts.map +1 -0
- package/dist/runtime/installation/validators/common.js +29 -0
- package/dist/runtime/installation/validators/common.js.map +1 -0
- package/dist/runtime/installation/validators/infrastructure.d.ts +4 -0
- package/dist/runtime/installation/validators/infrastructure.d.ts.map +1 -0
- package/dist/runtime/installation/validators/infrastructure.js +78 -0
- package/dist/runtime/installation/validators/infrastructure.js.map +1 -0
- package/dist/runtime/installation/validators/operational.d.ts +4 -0
- package/dist/runtime/installation/validators/operational.d.ts.map +1 -0
- package/dist/runtime/installation/validators/operational.js +126 -0
- package/dist/runtime/installation/validators/operational.js.map +1 -0
- package/dist/runtime/installation/validators/profile.d.ts +4 -0
- package/dist/runtime/installation/validators/profile.d.ts.map +1 -0
- package/dist/runtime/installation/validators/profile.js +78 -0
- package/dist/runtime/installation/validators/profile.js.map +1 -0
- package/dist/runtime/installation/validators/secrets.d.ts +4 -0
- package/dist/runtime/installation/validators/secrets.d.ts.map +1 -0
- package/dist/runtime/installation/validators/secrets.js +68 -0
- package/dist/runtime/installation/validators/secrets.js.map +1 -0
- package/dist/runtime/launch-plan-format.d.ts +3 -0
- package/dist/runtime/launch-plan-format.d.ts.map +1 -0
- package/dist/runtime/launch-plan-format.js +57 -0
- package/dist/runtime/launch-plan-format.js.map +1 -0
- package/dist/runtime/launch.d.ts +25 -3
- package/dist/runtime/launch.d.ts.map +1 -1
- package/dist/runtime/launch.js +264 -24
- package/dist/runtime/launch.js.map +1 -1
- package/dist/runtime/object-registry-client.d.ts +31 -0
- package/dist/runtime/object-registry-client.d.ts.map +1 -0
- package/dist/runtime/object-registry-client.js +54 -0
- package/dist/runtime/object-registry-client.js.map +1 -0
- package/dist/runtime/paths.d.ts +1 -0
- package/dist/runtime/paths.d.ts.map +1 -1
- package/dist/runtime/paths.js +2 -0
- package/dist/runtime/paths.js.map +1 -1
- package/dist/runtime/roster.d.ts +10 -4
- package/dist/runtime/roster.d.ts.map +1 -1
- package/dist/runtime/roster.js +73 -7
- package/dist/runtime/roster.js.map +1 -1
- package/dist/runtime/run-manifest.d.ts +23 -0
- package/dist/runtime/run-manifest.d.ts.map +1 -0
- package/dist/runtime/run-manifest.js +273 -0
- package/dist/runtime/run-manifest.js.map +1 -0
- package/dist/runtime/runner/container-runner.d.ts +6 -0
- package/dist/runtime/runner/container-runner.d.ts.map +1 -1
- package/dist/runtime/runner/container-runner.js +25 -6
- package/dist/runtime/runner/container-runner.js.map +1 -1
- package/dist/runtime/runner/docker-cli.d.ts +6 -1
- package/dist/runtime/runner/docker-cli.d.ts.map +1 -1
- package/dist/runtime/runner/docker-cli.js +47 -6
- package/dist/runtime/runner/docker-cli.js.map +1 -1
- package/dist/runtime/runner/native-runner.d.ts.map +1 -1
- package/dist/runtime/runner/native-runner.js +21 -14
- package/dist/runtime/runner/native-runner.js.map +1 -1
- package/dist/runtime/secrets/managed-local-store.d.ts +26 -0
- package/dist/runtime/secrets/managed-local-store.d.ts.map +1 -0
- package/dist/runtime/secrets/managed-local-store.js +202 -0
- package/dist/runtime/secrets/managed-local-store.js.map +1 -0
- package/dist/runtime/secrets/resolver.d.ts +23 -0
- package/dist/runtime/secrets/resolver.d.ts.map +1 -0
- package/dist/runtime/secrets/resolver.js +265 -0
- package/dist/runtime/secrets/resolver.js.map +1 -0
- package/dist/runtime/secrets/url-security.d.ts +3 -0
- package/dist/runtime/secrets/url-security.d.ts.map +1 -0
- package/dist/runtime/secrets/url-security.js +13 -0
- package/dist/runtime/secrets/url-security.js.map +1 -0
- package/dist/runtime/sources/credentials.d.ts.map +1 -1
- package/dist/runtime/sources/credentials.js +2 -1
- package/dist/runtime/sources/credentials.js.map +1 -1
- package/dist/runtime/sources/kinds/git.d.ts +6 -3
- package/dist/runtime/sources/kinds/git.d.ts.map +1 -1
- package/dist/runtime/sources/kinds/git.js +99 -22
- package/dist/runtime/sources/kinds/git.js.map +1 -1
- package/dist/runtime/sources/resolve-context.d.ts +7 -0
- package/dist/runtime/sources/resolve-context.d.ts.map +1 -0
- package/dist/runtime/sources/resolve-context.js +3 -0
- package/dist/runtime/sources/resolve-context.js.map +1 -0
- package/dist/runtime/sources/resolver.d.ts +2 -2
- package/dist/runtime/sources/resolver.d.ts.map +1 -1
- package/dist/runtime/sources/resolver.js +11 -5
- package/dist/runtime/sources/resolver.js.map +1 -1
- package/dist/runtime/store-client.d.ts +59 -0
- package/dist/runtime/store-client.d.ts.map +1 -0
- package/dist/runtime/store-client.js +71 -0
- package/dist/runtime/store-client.js.map +1 -0
- package/dist/runtime/supervisor.d.ts +6 -0
- package/dist/runtime/supervisor.d.ts.map +1 -1
- package/dist/runtime/supervisor.js +37 -5
- package/dist/runtime/supervisor.js.map +1 -1
- package/dist/runtime/waves.d.ts +1 -1
- package/dist/runtime/waves.d.ts.map +1 -1
- package/dist/runtime/waves.js +86 -19
- package/dist/runtime/waves.js.map +1 -1
- package/examples/01-local-native.yaml +4 -1
- package/examples/03-byo-infra.yaml +17 -7
- package/examples/05-appliance-helm.yaml +1 -1
- package/examples/06-biome-sources.yaml +4 -1
- package/package.json +6 -5
- package/xema.config.example.yaml +22 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/lib/exit-codes.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"exit-codes.js","sourceRoot":"","sources":["../../src/lib/exit-codes.ts"],"names":[],"mappings":";;;AAqBA,4BASC;AAtBD,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,iDAAM,CAAA;IACN,qEAAgB,CAAA;IAChB,+EAAqB,CAAA;IACrB,iFAAsB,CAAA;IACtB,6DAAY,CAAA;AACd,CAAC,EANW,eAAe,+BAAf,eAAe,QAM1B;AAOD,SAAgB,QAAQ,CAAC,IAAqB,EAAE,OAAgB;IAC9D,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChD,IAAI,IAAI,KAAK,eAAe,CAAC,EAAE,EAAE,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-error.d.ts","sourceRoot":"","sources":["../../src/lib/http-error.ts"],"names":[],"mappings":"AAmEA,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAY3E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractServerError = extractServerError;
|
|
4
|
+
function normalizeMessage(value) {
|
|
5
|
+
if (typeof value === 'string' && value.length > 0) {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
if (Array.isArray(value)) {
|
|
9
|
+
const parts = value.filter((v) => typeof v === 'string' && v.length > 0);
|
|
10
|
+
if (parts.length > 0) {
|
|
11
|
+
return parts.join('; ');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
function messageFromBody(body) {
|
|
17
|
+
if (typeof body !== 'object' || body === null) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
const record = body;
|
|
21
|
+
const error = record.error;
|
|
22
|
+
if (typeof error === 'object' && error !== null) {
|
|
23
|
+
const nested = normalizeMessage(error.message);
|
|
24
|
+
if (nested !== undefined) {
|
|
25
|
+
return nested;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const message = normalizeMessage(record.message);
|
|
29
|
+
if (message !== undefined) {
|
|
30
|
+
return message;
|
|
31
|
+
}
|
|
32
|
+
if (typeof error === 'string' && error.length > 0) {
|
|
33
|
+
return error;
|
|
34
|
+
}
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
function extractServerError(status, bodyText) {
|
|
38
|
+
const text = bodyText.trim();
|
|
39
|
+
if (text.length === 0) {
|
|
40
|
+
return `HTTP ${status}`;
|
|
41
|
+
}
|
|
42
|
+
let parsed;
|
|
43
|
+
try {
|
|
44
|
+
parsed = JSON.parse(text);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return text;
|
|
48
|
+
}
|
|
49
|
+
return messageFromBody(parsed) ?? text;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=http-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-error.js","sourceRoot":"","sources":["../../src/lib/http-error.ts"],"names":[],"mappings":";;AAmEA,gDAYC;AA7DD,SAAS,gBAAgB,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACtF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAGD,SAAS,eAAe,CAAC,IAAa;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,IAA+B,CAAC;IAG/C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,gBAAgB,CAAE,KAAiC,CAAC,OAAO,CAAC,CAAC;QAC5E,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC;QAChB,CAAC;IACH,CAAC;IAGD,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAGD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAQD,SAAgB,kBAAkB,CAAC,MAAc,EAAE,QAAgB;IACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,QAAQ,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare enum RosterProfile {
|
|
2
|
+
Minimal = "minimal",
|
|
3
|
+
Default = "default",
|
|
4
|
+
All = "all"
|
|
5
|
+
}
|
|
6
|
+
export declare function parseRosterProfile(raw: string): RosterProfile;
|
|
7
|
+
export declare function profileToInclude(profile: RosterProfile): 'minimal' | 'default' | 'all';
|
|
8
|
+
export declare function assertProfileExclusiveWithSubset(profileGiven: boolean, subsetGiven: boolean, subsetFlag: string): void;
|
|
9
|
+
export declare const PROFILE_OPTION_DESCRIPTION: string;
|
|
10
|
+
//# sourceMappingURL=roster-profile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roster-profile.d.ts","sourceRoot":"","sources":["../../src/lib/roster-profile.ts"],"names":[],"mappings":"AAeA,oBAAY,aAAa;IACvB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,GAAG,QAAQ;CACZ;AAGD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAa7D;AAGD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAStF;AAOD,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,OAAO,EACrB,WAAW,EAAE,OAAO,EACpB,UAAU,EAAE,MAAM,GACjB,IAAI,CAON;AAGD,eAAO,MAAM,0BAA0B,QAEuC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PROFILE_OPTION_DESCRIPTION = exports.RosterProfile = void 0;
|
|
4
|
+
exports.parseRosterProfile = parseRosterProfile;
|
|
5
|
+
exports.profileToInclude = profileToInclude;
|
|
6
|
+
exports.assertProfileExclusiveWithSubset = assertProfileExclusiveWithSubset;
|
|
7
|
+
const cli_errors_1 = require("./cli-errors");
|
|
8
|
+
var RosterProfile;
|
|
9
|
+
(function (RosterProfile) {
|
|
10
|
+
RosterProfile["Minimal"] = "minimal";
|
|
11
|
+
RosterProfile["Default"] = "default";
|
|
12
|
+
RosterProfile["All"] = "all";
|
|
13
|
+
})(RosterProfile || (exports.RosterProfile = RosterProfile = {}));
|
|
14
|
+
function parseRosterProfile(raw) {
|
|
15
|
+
switch (raw) {
|
|
16
|
+
case RosterProfile.Minimal:
|
|
17
|
+
return RosterProfile.Minimal;
|
|
18
|
+
case RosterProfile.Default:
|
|
19
|
+
return RosterProfile.Default;
|
|
20
|
+
case RosterProfile.All:
|
|
21
|
+
return RosterProfile.All;
|
|
22
|
+
default:
|
|
23
|
+
throw new cli_errors_1.CliConfigurationError(`Unknown --profile "${raw}". Valid values: minimal | default | all.`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function profileToInclude(profile) {
|
|
27
|
+
switch (profile) {
|
|
28
|
+
case RosterProfile.Minimal:
|
|
29
|
+
return 'minimal';
|
|
30
|
+
case RosterProfile.Default:
|
|
31
|
+
return 'default';
|
|
32
|
+
case RosterProfile.All:
|
|
33
|
+
return 'all';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function assertProfileExclusiveWithSubset(profileGiven, subsetGiven, subsetFlag) {
|
|
37
|
+
if (profileGiven && subsetGiven) {
|
|
38
|
+
throw new cli_errors_1.CliConfigurationError(`--profile and ${subsetFlag} are mutually exclusive — --profile selects a named ` +
|
|
39
|
+
`roster set; ${subsetFlag} selects an explicit service subset.`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.PROFILE_OPTION_DESCRIPTION = 'Roster profile: minimal (required floor + hard prerequisites) | default | all. ' +
|
|
43
|
+
'Overrides app.include; mutually exclusive with an explicit service subset.';
|
|
44
|
+
//# sourceMappingURL=roster-profile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"roster-profile.js","sourceRoot":"","sources":["../../src/lib/roster-profile.ts"],"names":[],"mappings":";;;AAsBA,gDAaC;AAGD,4CASC;AAOD,4EAWC;AAjED,6CAAqD;AAerD,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,4BAAW,CAAA;AACb,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAGD,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,aAAa,CAAC,OAAO,CAAC;QAC/B,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,aAAa,CAAC,OAAO,CAAC;QAC/B,KAAK,aAAa,CAAC,GAAG;YACpB,OAAO,aAAa,CAAC,GAAG,CAAC;QAC3B;YACE,MAAM,IAAI,kCAAqB,CAC7B,sBAAsB,GAAG,2CAA2C,CACrE,CAAC;IACN,CAAC;AACH,CAAC;AAGD,SAAgB,gBAAgB,CAAC,OAAsB;IACrD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,SAAS,CAAC;QACnB,KAAK,aAAa,CAAC,OAAO;YACxB,OAAO,SAAS,CAAC;QACnB,KAAK,aAAa,CAAC,GAAG;YACpB,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAOD,SAAgB,gCAAgC,CAC9C,YAAqB,EACrB,WAAoB,EACpB,UAAkB;IAElB,IAAI,YAAY,IAAI,WAAW,EAAE,CAAC;QAChC,MAAM,IAAI,kCAAqB,CAC7B,iBAAiB,UAAU,sDAAsD;YAC/E,eAAe,UAAU,sCAAsC,CAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAGY,QAAA,0BAA0B,GACrC,iFAAiF;IACjF,4EAA4E,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type BiomeValidationReport } from './biome-validate';
|
|
2
|
+
import { type DiscoveredBiome } from './sources/manifest-walk';
|
|
3
|
+
import type { BringUpResult } from './supervisor';
|
|
4
|
+
export declare const BIOME_HOST_BIOME_ID = "biome-host";
|
|
5
|
+
export declare function locateBiomeRoot(startPath: string): string | null;
|
|
6
|
+
export declare function discoverTargetBiome(biomeRoot: string): DiscoveredBiome;
|
|
7
|
+
export declare function devSliceBiomeIds(biome: DiscoveredBiome): string[];
|
|
8
|
+
export declare enum OwnServiceState {
|
|
9
|
+
Ready = "ready",
|
|
10
|
+
Failed = "failed"
|
|
11
|
+
}
|
|
12
|
+
export interface OwnServiceStatus {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly state: OwnServiceState;
|
|
15
|
+
readonly detail: string;
|
|
16
|
+
}
|
|
17
|
+
export declare function projectOwnServices(biome: DiscoveredBiome, result: BringUpResult): OwnServiceStatus[];
|
|
18
|
+
export declare function formatValidationResults(report: BiomeValidationReport): string;
|
|
19
|
+
export interface BiomeDevReportInput {
|
|
20
|
+
readonly biome: DiscoveredBiome;
|
|
21
|
+
readonly biomeRoot: string;
|
|
22
|
+
readonly validation: BiomeValidationReport;
|
|
23
|
+
readonly sliceSize: number;
|
|
24
|
+
readonly addedPrerequisites: readonly string[];
|
|
25
|
+
readonly ownServices?: readonly OwnServiceStatus[];
|
|
26
|
+
}
|
|
27
|
+
export declare function formatBiomeDevReport(input: BiomeDevReportInput): string;
|
|
28
|
+
//# sourceMappingURL=biome-dev.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome-dev.d.ts","sourceRoot":"","sources":["../../src/runtime/biome-dev.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,KAAK,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAsB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAmBlD,eAAO,MAAM,mBAAmB,eAAe,CAAC;AAQhD,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYhE;AAQD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,CAWtE;AAWD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,EAAE,CAejE;AAGD,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,MAAM,WAAW;CAClB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAEhC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAOD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,aAAa,GACpB,gBAAgB,EAAE,CAepB;AASD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAc7E;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;IAE3C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;IAE/C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACpD;AAOD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CA8CvE"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OwnServiceState = exports.BIOME_HOST_BIOME_ID = void 0;
|
|
4
|
+
exports.locateBiomeRoot = locateBiomeRoot;
|
|
5
|
+
exports.discoverTargetBiome = discoverTargetBiome;
|
|
6
|
+
exports.devSliceBiomeIds = devSliceBiomeIds;
|
|
7
|
+
exports.projectOwnServices = projectOwnServices;
|
|
8
|
+
exports.formatValidationResults = formatValidationResults;
|
|
9
|
+
exports.formatBiomeDevReport = formatBiomeDevReport;
|
|
10
|
+
const node_fs_1 = require("node:fs");
|
|
11
|
+
const node_path_1 = require("node:path");
|
|
12
|
+
const biome_1 = require("@xemahq/kernel-contracts/biome");
|
|
13
|
+
const biome_validate_1 = require("./biome-validate");
|
|
14
|
+
const manifest_walk_1 = require("./sources/manifest-walk");
|
|
15
|
+
exports.BIOME_HOST_BIOME_ID = 'biome-host';
|
|
16
|
+
function locateBiomeRoot(startPath) {
|
|
17
|
+
let cursor = (0, node_path_1.resolve)(startPath);
|
|
18
|
+
for (;;) {
|
|
19
|
+
if ((0, node_fs_1.existsSync)((0, node_path_1.join)(cursor, biome_1.BIOME_MANIFEST_FILENAME))) {
|
|
20
|
+
return cursor;
|
|
21
|
+
}
|
|
22
|
+
const parent = (0, node_path_1.dirname)(cursor);
|
|
23
|
+
if (parent === cursor) {
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
cursor = parent;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function discoverTargetBiome(biomeRoot) {
|
|
30
|
+
const { biomes } = (0, manifest_walk_1.walkBiomeManifests)(biomeRoot);
|
|
31
|
+
const biome = biomes[0];
|
|
32
|
+
if (biomes.length !== 1 || biome === undefined) {
|
|
33
|
+
throw new Error(`discoverTargetBiome: expected exactly the root biome at ${biomeRoot}, ` +
|
|
34
|
+
`found ${String(biomes.length)}.`);
|
|
35
|
+
}
|
|
36
|
+
return biome;
|
|
37
|
+
}
|
|
38
|
+
function devSliceBiomeIds(biome) {
|
|
39
|
+
const ids = new Set();
|
|
40
|
+
if (biome.services.length > 0) {
|
|
41
|
+
ids.add(biome.id);
|
|
42
|
+
}
|
|
43
|
+
ids.add(exports.BIOME_HOST_BIOME_ID);
|
|
44
|
+
for (const required of biome.requires) {
|
|
45
|
+
ids.add(required);
|
|
46
|
+
}
|
|
47
|
+
if (biome.manifest.xema.target === 'server') {
|
|
48
|
+
for (const dep of biome.manifest.xema.dependencies ?? []) {
|
|
49
|
+
ids.add(dep);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return [...ids];
|
|
53
|
+
}
|
|
54
|
+
var OwnServiceState;
|
|
55
|
+
(function (OwnServiceState) {
|
|
56
|
+
OwnServiceState["Ready"] = "ready";
|
|
57
|
+
OwnServiceState["Failed"] = "failed";
|
|
58
|
+
})(OwnServiceState || (exports.OwnServiceState = OwnServiceState = {}));
|
|
59
|
+
function projectOwnServices(biome, result) {
|
|
60
|
+
const running = new Map(result.running.map((r) => [r.name, r]));
|
|
61
|
+
const skipped = new Map(result.skipped.map((s) => [s.name, s]));
|
|
62
|
+
return biome.services.map((svc) => {
|
|
63
|
+
const up = running.get(svc.name);
|
|
64
|
+
if (up !== undefined) {
|
|
65
|
+
return { name: svc.name, state: OwnServiceState.Ready, detail: up.url };
|
|
66
|
+
}
|
|
67
|
+
const skip = skipped.get(svc.name);
|
|
68
|
+
return {
|
|
69
|
+
name: svc.name,
|
|
70
|
+
state: OwnServiceState.Failed,
|
|
71
|
+
detail: skip?.reason ?? 'not in the bring-up result (dropped before boot)',
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
const STATUS_GLYPH = {
|
|
76
|
+
[biome_validate_1.BiomeCheckStatus.Passed]: '✓',
|
|
77
|
+
[biome_validate_1.BiomeCheckStatus.Failed]: '✗',
|
|
78
|
+
[biome_validate_1.BiomeCheckStatus.Skipped]: '-',
|
|
79
|
+
};
|
|
80
|
+
function formatValidationResults(report) {
|
|
81
|
+
const lines = [];
|
|
82
|
+
const failed = report.results.filter((r) => r.status === biome_validate_1.BiomeCheckStatus.Failed).length;
|
|
83
|
+
lines.push(`validation : ${String(report.results.length)} check(s) — ` +
|
|
84
|
+
(failed > 0 ? `${String(failed)} FAILED` : 'all passed'));
|
|
85
|
+
for (const result of report.results) {
|
|
86
|
+
lines.push(` ${STATUS_GLYPH[result.status]} ${result.check.padEnd(13)} ${result.summary}`);
|
|
87
|
+
for (const issue of result.issues) {
|
|
88
|
+
lines.push(` - ${issue}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return lines.join('\n');
|
|
92
|
+
}
|
|
93
|
+
function formatBiomeDevReport(input) {
|
|
94
|
+
const { biome, validation } = input;
|
|
95
|
+
const lines = [];
|
|
96
|
+
const rule = '─'.repeat(72);
|
|
97
|
+
lines.push('xema biome dev — readiness report');
|
|
98
|
+
lines.push(rule);
|
|
99
|
+
lines.push(`biome : ${biome.id} v${biome.version} (${biome.tier}, ${biome.target}) at ${input.biomeRoot}`);
|
|
100
|
+
lines.push(`slice : ${String(input.sliceSize)} service(s)` +
|
|
101
|
+
(input.addedPrerequisites.length > 0
|
|
102
|
+
? ` (+${String(input.addedPrerequisites.length)} hard prerequisite(s): ` +
|
|
103
|
+
`${input.addedPrerequisites.join(', ')})`
|
|
104
|
+
: ''));
|
|
105
|
+
lines.push(formatValidationResults(validation));
|
|
106
|
+
if (validation.contributionCounts.size > 0) {
|
|
107
|
+
const byKind = [...validation.contributionCounts.entries()]
|
|
108
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
109
|
+
.map(([kind, n]) => `${kind} ×${String(n)}`)
|
|
110
|
+
.join(', ');
|
|
111
|
+
lines.push(`contribs : ${byKind}`);
|
|
112
|
+
}
|
|
113
|
+
if (input.ownServices !== undefined) {
|
|
114
|
+
if (input.ownServices.length === 0) {
|
|
115
|
+
lines.push('services : (none — this biome ships no runnable services)');
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
lines.push('services :');
|
|
119
|
+
for (const svc of input.ownServices) {
|
|
120
|
+
const glyph = svc.state === OwnServiceState.Ready ? '✓' : '✗';
|
|
121
|
+
lines.push(` ${glyph} ${svc.name.padEnd(30)} ${svc.state} ${svc.detail}`);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
lines.push(rule);
|
|
126
|
+
lines.push('next steps :');
|
|
127
|
+
lines.push(` install into a running platform : xema biome install ${biome.id} --project <id> | --org <id>`);
|
|
128
|
+
lines.push(` publish as a signed artifact : xema biome publish ${input.biomeRoot}`);
|
|
129
|
+
return lines.join('\n');
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=biome-dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome-dev.js","sourceRoot":"","sources":["../../src/runtime/biome-dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type SourceSpec } from './sources/schema';
|
|
2
|
+
import type { CredentialResolver } from './sources/credentials';
|
|
3
|
+
import type { BiomeManifest } from '@xemahq/kernel-contracts/biome';
|
|
4
|
+
export declare class LocalBiomeInstallError extends Error {
|
|
5
|
+
readonly exitCode: LocalBiomeInstallExitCode;
|
|
6
|
+
constructor(message: string, exitCode?: LocalBiomeInstallExitCode);
|
|
7
|
+
}
|
|
8
|
+
export declare enum LocalBiomeInstallExitCode {
|
|
9
|
+
GenericError = 1,
|
|
10
|
+
MissingDependency = 2,
|
|
11
|
+
ConfigurationError = 3
|
|
12
|
+
}
|
|
13
|
+
export interface FetchBiomeLocallyParams {
|
|
14
|
+
readonly biomeId: string;
|
|
15
|
+
readonly source: SourceSpec;
|
|
16
|
+
readonly credentials: CredentialResolver;
|
|
17
|
+
readonly packageOverride?: string;
|
|
18
|
+
readonly tag?: string;
|
|
19
|
+
readonly version?: string;
|
|
20
|
+
readonly log?: (line: string) => void;
|
|
21
|
+
}
|
|
22
|
+
export interface FetchedBiome {
|
|
23
|
+
readonly dir: string;
|
|
24
|
+
readonly manifest: BiomeManifest;
|
|
25
|
+
readonly biomeId: string;
|
|
26
|
+
readonly version: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function fetchBiomeLocally(params: FetchBiomeLocallyParams): Promise<FetchedBiome>;
|
|
29
|
+
//# sourceMappingURL=biome-local-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome-local-install.d.ts","sourceRoot":"","sources":["../../src/runtime/biome-local-install.ts"],"names":[],"mappings":"AAOA,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAmDpE,qBAAa,sBAAuB,SAAQ,KAAK;IAG7C,QAAQ,CAAC,QAAQ,EAAE,yBAAyB;gBAD5C,OAAO,EAAE,MAAM,EACN,QAAQ,GAAE,yBAAkE;CAKxF;AAUD,oBAAY,yBAAyB;IACnC,YAAY,IAAI;IAChB,iBAAiB,IAAI;IACrB,kBAAkB,IAAI;CACvB;AAGD,MAAM,WAAW,uBAAuB;IAEtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAE5B,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAEzC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAElC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAGD,MAAM,WAAW,YAAY;IAE3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IAEjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAUD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAiB9F"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LocalBiomeInstallExitCode = exports.LocalBiomeInstallError = void 0;
|
|
4
|
+
exports.fetchBiomeLocally = fetchBiomeLocally;
|
|
5
|
+
const node_child_process_1 = require("node:child_process");
|
|
6
|
+
const node_fs_1 = require("node:fs");
|
|
7
|
+
const node_os_1 = require("node:os");
|
|
8
|
+
const node_path_1 = require("node:path");
|
|
9
|
+
const git_1 = require("./sources/kinds/git");
|
|
10
|
+
const manifest_walk_1 = require("./sources/manifest-walk");
|
|
11
|
+
const schema_1 = require("./sources/schema");
|
|
12
|
+
const LOCAL_BIOME_CACHE_DIR = (0, node_path_1.join)((0, node_os_1.homedir)(), '.xema', 'cache', 'local-biomes');
|
|
13
|
+
const FETCH_MARKER = '.xema-fetch-ref';
|
|
14
|
+
const DEFAULT_OCI_USERNAME = 'token';
|
|
15
|
+
const DEFAULT_OCI_TAG = 'latest';
|
|
16
|
+
class LocalBiomeInstallError extends Error {
|
|
17
|
+
exitCode;
|
|
18
|
+
constructor(message, exitCode = LocalBiomeInstallExitCode.GenericError) {
|
|
19
|
+
super(message);
|
|
20
|
+
this.exitCode = exitCode;
|
|
21
|
+
this.name = 'LocalBiomeInstallError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.LocalBiomeInstallError = LocalBiomeInstallError;
|
|
25
|
+
var LocalBiomeInstallExitCode;
|
|
26
|
+
(function (LocalBiomeInstallExitCode) {
|
|
27
|
+
LocalBiomeInstallExitCode[LocalBiomeInstallExitCode["GenericError"] = 1] = "GenericError";
|
|
28
|
+
LocalBiomeInstallExitCode[LocalBiomeInstallExitCode["MissingDependency"] = 2] = "MissingDependency";
|
|
29
|
+
LocalBiomeInstallExitCode[LocalBiomeInstallExitCode["ConfigurationError"] = 3] = "ConfigurationError";
|
|
30
|
+
})(LocalBiomeInstallExitCode || (exports.LocalBiomeInstallExitCode = LocalBiomeInstallExitCode = {}));
|
|
31
|
+
async function fetchBiomeLocally(params) {
|
|
32
|
+
const { source } = params;
|
|
33
|
+
switch (source.kind) {
|
|
34
|
+
case schema_1.SourceKind.Npm:
|
|
35
|
+
return fetchFromNpm(source, params);
|
|
36
|
+
case schema_1.SourceKind.Oci:
|
|
37
|
+
return fetchFromOci(source, params);
|
|
38
|
+
case schema_1.SourceKind.Git:
|
|
39
|
+
return fetchFromGit(source, params);
|
|
40
|
+
case schema_1.SourceKind.Workspace:
|
|
41
|
+
case schema_1.SourceKind.Distribution:
|
|
42
|
+
throw new LocalBiomeInstallError(`source "${source.name}" (${source.kind}) is already a launch-time source — ` +
|
|
43
|
+
'boot it directly with `xema dev`/`xema up`; --local is only for npm/oci/git sources.', LocalBiomeInstallExitCode.ConfigurationError);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
async function fetchFromNpm(source, params) {
|
|
47
|
+
const packageName = resolveNpmPackageName(source, params.biomeId, params.packageOverride);
|
|
48
|
+
const registryUrl = (source.registryUrl ?? 'https://registry.npmjs.org').replace(/\/$/, '');
|
|
49
|
+
const token = params.credentials.resolve(source.authTokenEnv, source.name);
|
|
50
|
+
const headers = token !== undefined ? { authorization: `Bearer ${token}` } : {};
|
|
51
|
+
const packumentUrl = `${registryUrl}/${encodeURIComponent(packageName)}`;
|
|
52
|
+
const packument = await fetchJson(packumentUrl, headers, `packument for "${packageName}"`);
|
|
53
|
+
const version = resolveNpmVersion(packument, packageName, params.version);
|
|
54
|
+
const destDir = cacheDirFor(params.biomeId, version);
|
|
55
|
+
const identity = `npm:${packageName}@${version}`;
|
|
56
|
+
if (isCached(destDir, identity)) {
|
|
57
|
+
params.log?.(`biome "${params.biomeId}" (npm): reusing cached fetch (${identity}).`);
|
|
58
|
+
return validateFetched(destDir, params.biomeId, version);
|
|
59
|
+
}
|
|
60
|
+
const tarballUrl = extractTarballUrl(packument, version);
|
|
61
|
+
if (tarballUrl === null) {
|
|
62
|
+
throw new LocalBiomeInstallError(`npm: package "${packageName}@${version}" has no tarball entry in its packument.`);
|
|
63
|
+
}
|
|
64
|
+
params.log?.(`biome "${params.biomeId}" (npm): fetching ${identity} from ${registryUrl}`);
|
|
65
|
+
const tarball = await fetchBytes(tarballUrl, headers, `tarball for "${packageName}@${version}"`);
|
|
66
|
+
extractNpmTarball(tarball, destDir);
|
|
67
|
+
writeMarker(destDir, identity);
|
|
68
|
+
return validateFetched(destDir, params.biomeId, version);
|
|
69
|
+
}
|
|
70
|
+
function resolveNpmPackageName(source, biomeId, override) {
|
|
71
|
+
if (override !== undefined && override.length > 0) {
|
|
72
|
+
return override;
|
|
73
|
+
}
|
|
74
|
+
return source.scope !== undefined ? `${source.scope}/${biomeId}` : biomeId;
|
|
75
|
+
}
|
|
76
|
+
function resolveNpmVersion(packument, packageName, pinned) {
|
|
77
|
+
if (pinned !== undefined && pinned.length > 0) {
|
|
78
|
+
return pinned;
|
|
79
|
+
}
|
|
80
|
+
const distTags = packument !== null && typeof packument === 'object'
|
|
81
|
+
? packument['dist-tags']
|
|
82
|
+
: undefined;
|
|
83
|
+
const latest = distTags?.['latest'];
|
|
84
|
+
if (typeof latest !== 'string' || latest.length === 0) {
|
|
85
|
+
throw new LocalBiomeInstallError(`npm: package "${packageName}" has no dist-tags.latest — pin a version explicitly.`);
|
|
86
|
+
}
|
|
87
|
+
return latest;
|
|
88
|
+
}
|
|
89
|
+
function extractTarballUrl(packument, version) {
|
|
90
|
+
if (packument === null || typeof packument !== 'object') {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
const versions = packument['versions'];
|
|
94
|
+
if (versions === null || typeof versions !== 'object') {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
const entry = versions[version];
|
|
98
|
+
if (entry === null || entry === undefined || typeof entry !== 'object') {
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
const dist = entry['dist'];
|
|
102
|
+
if (dist === null || dist === undefined || typeof dist !== 'object') {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
const tarball = dist['tarball'];
|
|
106
|
+
return typeof tarball === 'string' ? tarball : null;
|
|
107
|
+
}
|
|
108
|
+
function extractNpmTarball(tarball, destDir) {
|
|
109
|
+
if ((0, node_fs_1.existsSync)(destDir)) {
|
|
110
|
+
(0, node_fs_1.rmSync)(destDir, { recursive: true, force: true });
|
|
111
|
+
}
|
|
112
|
+
(0, node_fs_1.mkdirSync)(destDir, { recursive: true });
|
|
113
|
+
const tmp = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'xema-npm-biome-'));
|
|
114
|
+
const tgzPath = (0, node_path_1.join)(tmp, 'package.tgz');
|
|
115
|
+
try {
|
|
116
|
+
(0, node_fs_1.writeFileSync)(tgzPath, tarball);
|
|
117
|
+
const result = (0, node_child_process_1.spawnSync)('tar', ['-xzf', tgzPath, '-C', destDir, '--strip-components', '1'], {
|
|
118
|
+
stdio: ['ignore', 'ignore', 'pipe'],
|
|
119
|
+
});
|
|
120
|
+
if (result.error !== undefined) {
|
|
121
|
+
const code = result.error.code;
|
|
122
|
+
if (code === 'ENOENT') {
|
|
123
|
+
throw new LocalBiomeInstallError('"tar" CLI not found on PATH — install it to extract npm biome packages.', LocalBiomeInstallExitCode.MissingDependency);
|
|
124
|
+
}
|
|
125
|
+
throw new LocalBiomeInstallError(`npm: tar extraction failed to start: ${result.error.message}`);
|
|
126
|
+
}
|
|
127
|
+
if (result.status !== 0) {
|
|
128
|
+
const stderr = result.stderr instanceof Buffer ? result.stderr.toString('utf8') : '';
|
|
129
|
+
throw new LocalBiomeInstallError(`npm: tar extraction exited with code ${String(result.status)}: ${stderr.slice(-200)}`);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
(0, node_fs_1.rmSync)(tmp, { recursive: true, force: true });
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
async function fetchFromOci(source, params) {
|
|
137
|
+
ensureToolInstalled('oras');
|
|
138
|
+
const tag = params.tag !== undefined && params.tag.length > 0 ? params.tag : DEFAULT_OCI_TAG;
|
|
139
|
+
const ociRef = `${source.registry.replace(/\/+$/, '')}/${params.biomeId}:${tag}`;
|
|
140
|
+
const destDir = cacheDirForOci(params.biomeId, tag);
|
|
141
|
+
const identity = `oci:${ociRef}`;
|
|
142
|
+
if (isCached(destDir, identity)) {
|
|
143
|
+
params.log?.(`biome "${params.biomeId}" (oci): reusing cached pull (${identity}).`);
|
|
144
|
+
return validateFetched(destDir, params.biomeId, tag);
|
|
145
|
+
}
|
|
146
|
+
const token = params.credentials.resolve(source.authTokenEnv, source.name);
|
|
147
|
+
const args = ['pull', '--output', destDir, ociRef];
|
|
148
|
+
if (token !== undefined) {
|
|
149
|
+
args.push('--username', DEFAULT_OCI_USERNAME, '--password-stdin');
|
|
150
|
+
}
|
|
151
|
+
if ((0, node_fs_1.existsSync)(destDir)) {
|
|
152
|
+
(0, node_fs_1.rmSync)(destDir, { recursive: true, force: true });
|
|
153
|
+
}
|
|
154
|
+
(0, node_fs_1.mkdirSync)(destDir, { recursive: true });
|
|
155
|
+
params.log?.(`biome "${params.biomeId}" (oci): pulling ${ociRef}`);
|
|
156
|
+
const result = (0, node_child_process_1.spawnSync)('oras', args, {
|
|
157
|
+
stdio: [token !== undefined ? 'pipe' : 'ignore', 'ignore', 'pipe'],
|
|
158
|
+
...(token !== undefined ? { input: `${token}\n` } : {}),
|
|
159
|
+
});
|
|
160
|
+
if (result.error !== undefined) {
|
|
161
|
+
throw new LocalBiomeInstallError(`oci: oras failed to start: ${result.error.message}`);
|
|
162
|
+
}
|
|
163
|
+
if (result.status !== 0) {
|
|
164
|
+
const stderr = result.stderr instanceof Buffer ? result.stderr.toString('utf8') : '';
|
|
165
|
+
throw new LocalBiomeInstallError(`oci: \`oras pull ${ociRef}\` exited with code ${String(result.status)}: ${stderr.slice(-200)}`);
|
|
166
|
+
}
|
|
167
|
+
writeMarker(destDir, identity);
|
|
168
|
+
return validateFetched(destDir, params.biomeId, tag);
|
|
169
|
+
}
|
|
170
|
+
function ensureToolInstalled(tool) {
|
|
171
|
+
const probe = (0, node_child_process_1.spawnSync)(tool, ['version'], { stdio: 'ignore' });
|
|
172
|
+
if (probe.error !== undefined || probe.status === null) {
|
|
173
|
+
throw new LocalBiomeInstallError(`"${tool}" CLI not found on PATH — install it to fetch OCI biome artifacts ` +
|
|
174
|
+
'(oras: https://oras.land).', LocalBiomeInstallExitCode.MissingDependency);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
function fetchFromGit(source, params) {
|
|
178
|
+
const cloneDir = (0, git_1.checkoutGitSource)(source, params.credentials, params.log);
|
|
179
|
+
return validateFetched(cloneDir, params.biomeId, source.ref ?? 'HEAD');
|
|
180
|
+
}
|
|
181
|
+
function validateFetched(root, biomeId, fallbackVersion) {
|
|
182
|
+
const { biomes } = (0, manifest_walk_1.walkBiomeManifests)(root);
|
|
183
|
+
const match = biomes.find((b) => b.id === biomeId);
|
|
184
|
+
if (match === undefined) {
|
|
185
|
+
const found = biomes.length > 0 ? biomes.map((b) => b.id).join(', ') : '(none)';
|
|
186
|
+
throw new LocalBiomeInstallError(`fetched artifact does not contain a biome with id "${biomeId}" — found: ${found}.`);
|
|
187
|
+
}
|
|
188
|
+
const biomeDir = match.biomeDir.length > 0 ? (0, node_path_1.join)(root, match.biomeDir) : root;
|
|
189
|
+
return {
|
|
190
|
+
dir: biomeDir,
|
|
191
|
+
manifest: match.manifest,
|
|
192
|
+
biomeId: match.id,
|
|
193
|
+
version: match.version.length > 0 ? match.version : fallbackVersion,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
function cacheDirFor(biomeId, version) {
|
|
197
|
+
return (0, node_path_1.join)(LOCAL_BIOME_CACHE_DIR, biomeId, sanitizeSegment(version));
|
|
198
|
+
}
|
|
199
|
+
function cacheDirForOci(biomeId, tag) {
|
|
200
|
+
return (0, node_path_1.join)(LOCAL_BIOME_CACHE_DIR, biomeId, `oci-${sanitizeSegment(tag)}`);
|
|
201
|
+
}
|
|
202
|
+
function sanitizeSegment(value) {
|
|
203
|
+
return value.replace(/[^a-zA-Z0-9._-]/g, '_');
|
|
204
|
+
}
|
|
205
|
+
function isCached(destDir, identity) {
|
|
206
|
+
const marker = (0, node_path_1.join)(destDir, FETCH_MARKER);
|
|
207
|
+
if (!(0, node_fs_1.existsSync)(marker)) {
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
return (0, node_fs_1.readFileSync)(marker, 'utf8').trim() === identity;
|
|
211
|
+
}
|
|
212
|
+
function writeMarker(destDir, identity) {
|
|
213
|
+
(0, node_fs_1.writeFileSync)((0, node_path_1.join)(destDir, FETCH_MARKER), identity, 'utf8');
|
|
214
|
+
}
|
|
215
|
+
async function fetchJson(url, headers, what) {
|
|
216
|
+
let res;
|
|
217
|
+
try {
|
|
218
|
+
res = await fetch(url, { headers });
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
222
|
+
throw new LocalBiomeInstallError(`could not reach ${url} (${what}): ${detail}`);
|
|
223
|
+
}
|
|
224
|
+
if (!res.ok) {
|
|
225
|
+
throw new LocalBiomeInstallError(`GET ${url} (${what}) returned HTTP ${String(res.status)}.`);
|
|
226
|
+
}
|
|
227
|
+
return res.json();
|
|
228
|
+
}
|
|
229
|
+
async function fetchBytes(url, headers, what) {
|
|
230
|
+
let res;
|
|
231
|
+
try {
|
|
232
|
+
res = await fetch(url, { headers });
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
const detail = err instanceof Error ? err.message : String(err);
|
|
236
|
+
throw new LocalBiomeInstallError(`could not reach ${url} (${what}): ${detail}`);
|
|
237
|
+
}
|
|
238
|
+
if (!res.ok) {
|
|
239
|
+
throw new LocalBiomeInstallError(`GET ${url} (${what}) returned HTTP ${String(res.status)}.`);
|
|
240
|
+
}
|
|
241
|
+
return Buffer.from(await res.arrayBuffer());
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=biome-local-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biome-local-install.js","sourceRoot":"","sources":["../../src/runtime/biome-local-install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare const BIOME_ARTIFACT_TYPE = "application/vnd.xema.biome.manifest.v1+json";
|
|
2
|
+
export declare const COSIGN_KEY_ENV = "COSIGN_KEY";
|
|
3
|
+
export interface PublishOptions {
|
|
4
|
+
readonly path: string;
|
|
5
|
+
readonly registry?: string;
|
|
6
|
+
readonly source?: string;
|
|
7
|
+
readonly tokenEnv?: string;
|
|
8
|
+
readonly username?: string;
|
|
9
|
+
readonly tag?: string;
|
|
10
|
+
readonly configPath?: string;
|
|
11
|
+
readonly dryRun?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface PublishPlan {
|
|
14
|
+
readonly biomeId: string;
|
|
15
|
+
readonly version: string;
|
|
16
|
+
readonly registry: string;
|
|
17
|
+
readonly tag: string;
|
|
18
|
+
readonly ociRef: string;
|
|
19
|
+
readonly files: readonly string[];
|
|
20
|
+
readonly orasArgs: readonly string[];
|
|
21
|
+
readonly cosignArgs: readonly string[];
|
|
22
|
+
readonly tokenEnv?: string;
|
|
23
|
+
readonly tokenPresent: boolean;
|
|
24
|
+
readonly cosignKeyResolved: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare class BiomePublishConfigError extends Error {
|
|
27
|
+
constructor(message: string);
|
|
28
|
+
}
|
|
29
|
+
export declare class MissingRuntimeToolError extends Error {
|
|
30
|
+
readonly tool: string;
|
|
31
|
+
constructor(tool: string, message: string);
|
|
32
|
+
}
|
|
33
|
+
export declare function publishBiome(options: PublishOptions): PublishPlan;
|
|
34
|
+
//# sourceMappingURL=biome-publish.d.ts.map
|