@xemahq/xema 0.26.0 → 0.28.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 +70 -37
- package/dist/assets/distribution-assets.manifest.json +1 -2
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/dev.js +1 -0
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/down.d.ts.map +1 -1
- package/dist/commands/down.js +7 -1
- package/dist/commands/down.js.map +1 -1
- package/dist/commands/edition.d.ts +3 -0
- package/dist/commands/edition.d.ts.map +1 -0
- package/dist/commands/edition.js +46 -0
- package/dist/commands/edition.js.map +1 -0
- package/dist/commands/init.js +2 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/serve.js +1 -0
- package/dist/commands/serve.js.map +1 -1
- package/dist/commands/up.js +1 -0
- package/dist/commands/up.js.map +1 -1
- package/dist/dev/env-defaults.d.ts.map +1 -1
- package/dist/dev/env-defaults.js +5 -2
- package/dist/dev/env-defaults.js.map +1 -1
- package/dist/dev/infra-preflight.d.ts +3 -2
- package/dist/dev/infra-preflight.d.ts.map +1 -1
- package/dist/dev/infra-preflight.js +18 -8
- package/dist/dev/infra-preflight.js.map +1 -1
- package/dist/edition/verify-image-evidence.bundle.mjs +54283 -0
- package/dist/edition/verify-image-evidence.bundle.provenance.json +2877 -0
- package/dist/runtime/config/schema.d.ts +1 -0
- package/dist/runtime/config/schema.d.ts.map +1 -1
- package/dist/runtime/custody/local-custody.d.ts +12 -0
- package/dist/runtime/custody/local-custody.d.ts.map +1 -0
- package/dist/runtime/custody/local-custody.js +22 -0
- package/dist/runtime/custody/local-custody.js.map +1 -0
- package/dist/runtime/custody/openbao-custody-bootstrap.d.ts +18 -0
- package/dist/runtime/custody/openbao-custody-bootstrap.d.ts.map +1 -0
- package/dist/runtime/custody/openbao-custody-bootstrap.js +50 -0
- package/dist/runtime/custody/openbao-custody-bootstrap.js.map +1 -0
- package/dist/runtime/custody/openbao-custody-store.d.ts +18 -0
- package/dist/runtime/custody/openbao-custody-store.d.ts.map +1 -0
- package/dist/runtime/custody/openbao-custody-store.js +55 -0
- package/dist/runtime/custody/openbao-custody-store.js.map +1 -0
- package/dist/runtime/custody/openbao-http-client.d.ts +34 -0
- package/dist/runtime/custody/openbao-http-client.d.ts.map +1 -0
- package/dist/runtime/custody/openbao-http-client.js +154 -0
- package/dist/runtime/custody/openbao-http-client.js.map +1 -0
- package/dist/runtime/custody/openbao-local-constants.d.ts +22 -0
- package/dist/runtime/custody/openbao-local-constants.d.ts.map +1 -0
- package/dist/runtime/custody/openbao-local-constants.js +48 -0
- package/dist/runtime/custody/openbao-local-constants.js.map +1 -0
- package/dist/runtime/custody/openbao-local-runner.d.ts +16 -0
- package/dist/runtime/custody/openbao-local-runner.d.ts.map +1 -0
- package/dist/runtime/custody/openbao-local-runner.js +86 -0
- package/dist/runtime/custody/openbao-local-runner.js.map +1 -0
- package/dist/runtime/edition/run-entry.d.ts +9 -0
- package/dist/runtime/edition/run-entry.d.ts.map +1 -0
- package/dist/runtime/edition/run-entry.js +36 -0
- package/dist/runtime/edition/run-entry.js.map +1 -0
- package/dist/runtime/edition/verb-map.d.ts +60 -0
- package/dist/runtime/edition/verb-map.d.ts.map +1 -0
- package/dist/runtime/edition/verb-map.js +146 -0
- package/dist/runtime/edition/verb-map.js.map +1 -0
- package/dist/runtime/env-seeder.d.ts +2 -0
- package/dist/runtime/env-seeder.d.ts.map +1 -1
- package/dist/runtime/env-seeder.js +18 -3
- package/dist/runtime/env-seeder.js.map +1 -1
- package/dist/runtime/launch.d.ts +2 -1
- package/dist/runtime/launch.d.ts.map +1 -1
- package/dist/runtime/launch.js +31 -7
- package/dist/runtime/launch.js.map +1 -1
- package/dist/runtime/paths.d.ts +1 -2
- package/dist/runtime/paths.d.ts.map +1 -1
- package/dist/runtime/paths.js +0 -10
- package/dist/runtime/paths.js.map +1 -1
- package/dist/runtime/runner/chart-local-provenance.d.ts +20 -0
- package/dist/runtime/runner/chart-local-provenance.d.ts.map +1 -0
- package/dist/runtime/runner/chart-local-provenance.js +114 -0
- package/dist/runtime/runner/chart-local-provenance.js.map +1 -0
- package/dist/runtime/runner/chart-preflight.d.ts +8 -8
- package/dist/runtime/runner/chart-preflight.d.ts.map +1 -1
- package/dist/runtime/runner/chart-preflight.js +30 -69
- package/dist/runtime/runner/chart-preflight.js.map +1 -1
- package/dist/runtime/runner/chart-pull.d.ts +14 -0
- package/dist/runtime/runner/chart-pull.d.ts.map +1 -0
- package/dist/runtime/runner/chart-pull.js +96 -0
- package/dist/runtime/runner/chart-pull.js.map +1 -0
- package/dist/runtime/runner/chart-resolver.d.ts +4 -12
- package/dist/runtime/runner/chart-resolver.d.ts.map +1 -1
- package/dist/runtime/runner/chart-resolver.js +16 -62
- package/dist/runtime/runner/chart-resolver.js.map +1 -1
- package/dist/runtime/runner/chart-set-lock.d.ts +6 -20
- package/dist/runtime/runner/chart-set-lock.d.ts.map +1 -1
- package/dist/runtime/runner/chart-set-lock.js +55 -99
- package/dist/runtime/runner/chart-set-lock.js.map +1 -1
- package/dist/runtime/runner/helm-cli.d.ts +3 -1
- package/dist/runtime/runner/helm-cli.d.ts.map +1 -1
- package/dist/runtime/runner/helm-cli.js +9 -7
- package/dist/runtime/runner/helm-cli.js.map +1 -1
- package/dist/runtime/runner/helm-runner.d.ts +4 -4
- package/dist/runtime/runner/helm-runner.d.ts.map +1 -1
- package/dist/runtime/runner/helm-runner.js +18 -16
- package/dist/runtime/runner/helm-runner.js.map +1 -1
- package/dist/runtime/sources/kinds/git.d.ts +1 -2
- package/dist/runtime/sources/kinds/git.d.ts.map +1 -1
- package/dist/runtime/sources/kinds/git.js +8 -5
- package/dist/runtime/sources/kinds/git.js.map +1 -1
- package/dist/runtime/sources/manifest-walk.d.ts +3 -1
- package/dist/runtime/sources/manifest-walk.d.ts.map +1 -1
- package/dist/runtime/sources/manifest-walk.js +8 -3
- package/dist/runtime/sources/manifest-walk.js.map +1 -1
- package/dist/runtime/sources/schema.d.ts +3 -0
- package/dist/runtime/sources/schema.d.ts.map +1 -1
- package/dist/runtime/sources/schema.js +6 -1
- package/dist/runtime/sources/schema.js.map +1 -1
- package/dist/runtime/supervisor.d.ts +2 -0
- package/dist/runtime/supervisor.d.ts.map +1 -1
- package/dist/runtime/supervisor.js +1 -0
- package/dist/runtime/supervisor.js.map +1 -1
- package/edition/README.md +313 -0
- package/edition/assemble-producer-input.mjs +1251 -0
- package/edition/authorization-base.mjs +347 -0
- package/edition/biome-content.mjs +268 -0
- package/edition/build-biome-index.mjs +175 -0
- package/edition/build-platform-service-index.mjs +288 -0
- package/edition/build-runtime-image-source-index.mjs +821 -0
- package/edition/built-verifier.mjs +55 -0
- package/edition/catalogue-edition.mjs +49 -0
- package/edition/catalogue-fetch.mjs +64 -0
- package/edition/catalogue.mjs +135 -0
- package/edition/chart-set-source-commit.mjs +92 -0
- package/edition/check-committed-image-evidence.mjs +383 -0
- package/edition/checkout-indexed-source-repositories.mjs +105 -0
- package/edition/comment-blanker.mjs +75 -0
- package/edition/connector-source-authority.mjs +60 -0
- package/edition/customer-definition.mjs +183 -0
- package/edition/customer-flags.mjs +7 -0
- package/edition/develop-customer-edition.mjs +99 -0
- package/edition/develop-edition-resolve.mjs +65 -0
- package/edition/develop-edition.mjs +274 -0
- package/edition/develop-freeze.mjs +173 -0
- package/edition/develop-image-coordinate.mjs +54 -0
- package/edition/develop-seal.mjs +77 -0
- package/edition/develop-snapshot-inputs.mjs +104 -0
- package/edition/dist-check.mjs +986 -0
- package/edition/distribution-evidence-set.mjs +987 -0
- package/edition/distribution-paths.mjs +191 -0
- package/edition/edition-artifact.mjs +284 -0
- package/edition/edition-biome-manifests.mjs +85 -0
- package/edition/edition-channel.mjs +6 -0
- package/edition/edition-chart-set.mjs +93 -0
- package/edition/edition-config.mjs +205 -0
- package/edition/edition-constants.mjs +57 -0
- package/edition/edition-contract.json +30 -0
- package/edition/edition-list.mjs +35 -0
- package/edition/edition-locks.mjs +69 -0
- package/edition/edition-protocol.mjs +228 -0
- package/edition/edition-workspace.mjs +187 -0
- package/edition/evidence-checkout.mjs +439 -0
- package/edition/evidence-grammars.mjs +16 -0
- package/edition/evidence-trust-pin.mjs +304 -0
- package/edition/evidence-trust-policy.mjs +294 -0
- package/edition/external-source-walk.mjs +463 -0
- package/edition/first-party-source-ids.mjs +59 -0
- package/edition/fleet-coordinate-finality.mjs +350 -0
- package/edition/git-source-auth.mjs +52 -0
- package/edition/image-delivery-entitlement-descriptor.mjs +106 -0
- package/edition/image-evidence-replay-state.mjs +242 -0
- package/edition/image-evidence.mjs +1233 -0
- package/edition/kernel-contract-authority.mjs +443 -0
- package/edition/lib.mjs +3021 -0
- package/edition/no-follow-file.mjs +94 -0
- package/edition/oci-evidence-verbs.mjs +392 -0
- package/edition/oci-image-source-evidence.mjs +239 -0
- package/edition/oras.mjs +648 -0
- package/edition/pin-source.mjs +227 -0
- package/edition/plan-image-evidence-refresh.mjs +408 -0
- package/edition/platform-lock-readability.mjs +892 -0
- package/edition/platform-service-class.mjs +18 -0
- package/edition/platform-service-source-authority.mjs +105 -0
- package/edition/positive-closure.mjs +162 -0
- package/edition/produce-distribution-completeness-evidence.mjs +311 -0
- package/edition/produce-image-delivery-entitlement-evidence.mjs +294 -0
- package/edition/produce-image-source-evidence.mjs +765 -0
- package/edition/producer-evidence-bundle.mjs +157 -0
- package/edition/registry-credentials.mjs +193 -0
- package/edition/release-catalogue.mjs +39 -0
- package/edition/release-channel-guard.mjs +109 -0
- package/edition/release-edition-artifact.mjs +157 -0
- package/edition/remedy-command.mjs +89 -0
- package/edition/repin-evidence-trust.mjs +101 -0
- package/edition/required-resource-provider.mjs +58 -0
- package/edition/resolve-chart-set.mjs +415 -0
- package/edition/resolve-customer-edition.mjs +288 -0
- package/edition/resolve-distribution.mjs +2318 -0
- package/edition/resolve-edition.mjs +186 -0
- package/edition/resolve-images.mjs +1606 -0
- package/edition/seal-image-digests.mjs +855 -0
- package/edition/sealed-evidence-accept.mjs +82 -0
- package/edition/source-authority.mjs +725 -0
- package/edition/source-closure.mjs +116 -0
- package/edition/strict-json.mjs +121 -0
- package/edition/string-order.mjs +5 -0
- package/edition/trust-policy-arming.mjs +120 -0
- package/edition/trusted-executable.mjs +166 -0
- package/edition/verifier-binding.mjs +45 -0
- package/edition/verifier-files.mjs +8 -0
- package/edition/verifier-kernel-schemas.mjs +22 -0
- package/edition/verifier-provenance.mjs +64 -0
- package/edition/verify-image-evidence.mjs +458 -0
- package/edition/verify-image-platforms.mjs +495 -0
- package/edition/why.mjs +56 -0
- package/edition/workspace-sections.mjs +195 -0
- package/examples/06-biome-sources.yaml +1 -0
- package/package.json +14 -6
- package/dist/commands/dist.d.ts +0 -16
- package/dist/commands/dist.d.ts.map +0 -1
- package/dist/commands/dist.js +0 -182
- package/dist/commands/dist.js.map +0 -1
- package/dist/runtime/distribution/available-biome.d.ts +0 -10
- package/dist/runtime/distribution/available-biome.d.ts.map +0 -1
- package/dist/runtime/distribution/available-biome.js +0 -156
- package/dist/runtime/distribution/available-biome.js.map +0 -1
- package/dist/runtime/distribution/compose.d.ts +0 -23
- package/dist/runtime/distribution/compose.d.ts.map +0 -1
- package/dist/runtime/distribution/compose.js +0 -48
- package/dist/runtime/distribution/compose.js.map +0 -1
- package/dist/runtime/runner/chart-trust.d.ts +0 -57
- package/dist/runtime/runner/chart-trust.d.ts.map +0 -1
- package/dist/runtime/runner/chart-trust.js +0 -270
- package/dist/runtime/runner/chart-trust.js.map +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VerifiedChartArchives = void 0;
|
|
4
|
+
exports.withPulledChart = withPulledChart;
|
|
5
|
+
const node_fs_1 = require("node:fs");
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const chart_set_lock_1 = require("./chart-set-lock");
|
|
9
|
+
async function pullVerified(chart, client) {
|
|
10
|
+
const dir = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)((0, node_os_1.tmpdir)(), 'xema-chart-'));
|
|
11
|
+
try {
|
|
12
|
+
const output = await client.pull(chart.ref, chart.version, dir);
|
|
13
|
+
const reported = reportedDigest(output, chart);
|
|
14
|
+
if (reported !== chart.digest) {
|
|
15
|
+
throw new Error(`Chart '${chart.name}' at ${chart.version} pulled from ${chart.ref} has ` +
|
|
16
|
+
`digest ${reported}, but the lock pins ${chart.digest}. The registry ` +
|
|
17
|
+
'serves different bytes than were sealed (a re-pointed tag, or a ' +
|
|
18
|
+
'mirror out of step). Refusing to install it.');
|
|
19
|
+
}
|
|
20
|
+
return { dir, archive: archiveIn(dir, chart) };
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
(0, node_fs_1.rmSync)(dir, { recursive: true, force: true });
|
|
24
|
+
throw error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async function withPulledChart(chart, client, use) {
|
|
28
|
+
const { dir, archive } = await pullVerified(chart, client);
|
|
29
|
+
try {
|
|
30
|
+
return await use(archive);
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
(0, node_fs_1.rmSync)(dir, { recursive: true, force: true });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
class VerifiedChartArchives {
|
|
37
|
+
held = new Map();
|
|
38
|
+
onExit = () => this.disposeAll();
|
|
39
|
+
constructor() {
|
|
40
|
+
process.once('exit', this.onExit);
|
|
41
|
+
}
|
|
42
|
+
async hold(chart, client) {
|
|
43
|
+
const { dir } = await pullVerified(chart, client);
|
|
44
|
+
const key = holdKey(chart);
|
|
45
|
+
const previous = this.held.get(key);
|
|
46
|
+
if (previous !== undefined) {
|
|
47
|
+
(0, node_fs_1.rmSync)(previous, { recursive: true, force: true });
|
|
48
|
+
}
|
|
49
|
+
this.held.set(key, dir);
|
|
50
|
+
}
|
|
51
|
+
async use(chart, client, use) {
|
|
52
|
+
const key = holdKey(chart);
|
|
53
|
+
const dir = this.held.get(key);
|
|
54
|
+
if (dir === undefined) {
|
|
55
|
+
return withPulledChart(chart, client, use);
|
|
56
|
+
}
|
|
57
|
+
this.held.delete(key);
|
|
58
|
+
try {
|
|
59
|
+
return await use(archiveIn(dir, chart));
|
|
60
|
+
}
|
|
61
|
+
finally {
|
|
62
|
+
(0, node_fs_1.rmSync)(dir, { recursive: true, force: true });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
disposeAll() {
|
|
66
|
+
for (const dir of this.held.values()) {
|
|
67
|
+
(0, node_fs_1.rmSync)(dir, { recursive: true, force: true });
|
|
68
|
+
}
|
|
69
|
+
this.held.clear();
|
|
70
|
+
process.removeListener('exit', this.onExit);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.VerifiedChartArchives = VerifiedChartArchives;
|
|
74
|
+
function holdKey(chart) {
|
|
75
|
+
return `${chart.ref}@${chart.version}@${chart.digest}`;
|
|
76
|
+
}
|
|
77
|
+
function reportedDigest(output, chart) {
|
|
78
|
+
const match = /^Digest:\s*(\S+)\s*$/m.exec(output);
|
|
79
|
+
const digest = match?.[1];
|
|
80
|
+
if (digest === undefined || !chart_set_lock_1.CHART_DIGEST_PATTERN.test(digest)) {
|
|
81
|
+
throw new Error(`helm pull of '${chart.name}' at ${chart.version} reported no usable ` +
|
|
82
|
+
"'Digest: sha256:…' line, so the pulled bytes cannot be compared with " +
|
|
83
|
+
'the lock. Refusing to install them.');
|
|
84
|
+
}
|
|
85
|
+
return digest;
|
|
86
|
+
}
|
|
87
|
+
function archiveIn(dir, chart) {
|
|
88
|
+
const archives = (0, node_fs_1.readdirSync)(dir).filter((entry) => entry.endsWith('.tgz'));
|
|
89
|
+
const [only] = archives;
|
|
90
|
+
if (archives.length !== 1 || only === undefined) {
|
|
91
|
+
throw new Error(`helm pull of '${chart.name}' at ${chart.version} left ${String(archives.length)} ` +
|
|
92
|
+
'archive(s) in its private directory; expected exactly one.');
|
|
93
|
+
}
|
|
94
|
+
return (0, node_path_1.join)(dir, only);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=chart-pull.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-pull.js","sourceRoot":"","sources":["../../../src/runtime/runner/chart-pull.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type ChartMetadataReader, type ChartSetPublisherPin, type ChartSetRoster } from './chart-set-lock';
|
|
2
1
|
export declare const CHARTS_DIR_ENV = "XEMA_CHARTS_DIR";
|
|
3
2
|
export declare const CHART_REPO_ENV = "XEMA_CHART_REPO";
|
|
4
3
|
export declare const CHARTS_DIR_NAME = "charts";
|
|
@@ -12,14 +11,12 @@ export interface ResolvedChart {
|
|
|
12
11
|
readonly kind: ChartSourceKind;
|
|
13
12
|
readonly ref: string;
|
|
14
13
|
readonly version: string;
|
|
15
|
-
readonly
|
|
14
|
+
readonly digest: string;
|
|
16
15
|
}
|
|
17
16
|
export interface ChartResolverOptions {
|
|
18
17
|
readonly chartsDir?: string;
|
|
19
18
|
readonly chartRepo?: string;
|
|
20
|
-
readonly versionOverride?: string;
|
|
21
19
|
readonly lockPath?: string;
|
|
22
|
-
readonly helm?: ChartMetadataReader;
|
|
23
20
|
readonly env?: NodeJS.ProcessEnv;
|
|
24
21
|
}
|
|
25
22
|
export declare class ChartResolver {
|
|
@@ -28,17 +25,12 @@ export declare class ChartResolver {
|
|
|
28
25
|
private readonly declaredLockPath;
|
|
29
26
|
private lockPathMemo;
|
|
30
27
|
private readonly env;
|
|
31
|
-
private
|
|
32
|
-
private readonly helm;
|
|
33
|
-
private roster;
|
|
28
|
+
private lock;
|
|
34
29
|
constructor(opts?: ChartResolverOptions);
|
|
35
30
|
get remotePlaneEnabled(): boolean;
|
|
36
31
|
get lockPath(): string;
|
|
37
|
-
resolve(name: string):
|
|
38
|
-
private
|
|
39
|
-
publisherPins(): readonly ChartSetPublisherPin[];
|
|
40
|
-
chartSetRoster(): Promise<ChartSetRoster | null>;
|
|
41
|
-
private readChartSetRoster;
|
|
32
|
+
resolve(name: string): ResolvedChart;
|
|
33
|
+
private sealedLock;
|
|
42
34
|
}
|
|
43
35
|
export declare function defaultChartsDir(env?: NodeJS.ProcessEnv): string;
|
|
44
36
|
export declare function newestLocalArchive(dir: string, name: string): string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-resolver.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/chart-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chart-resolver.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/chart-resolver.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAGhD,eAAO,MAAM,cAAc,oBAAoB,CAAC;AAGhD,eAAO,MAAM,eAAe,WAAW,CAAC;AAMxC,oBAAY,eAAe;IAEzB,cAAc,oBAAoB;IAElC,YAAY,kBAAkB;IAE9B,GAAG,QAAQ;CACZ;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAK/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAKrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IAEnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAqB;IACtD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IAExC,OAAO,CAAC,IAAI,CAAsD;gBAEtD,IAAI,GAAE,oBAAyB;IAW3C,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAQD,IAAI,QAAQ,IAAI,MAAM,CAGrB;IAED,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAyCpC,OAAO,CAAC,UAAU;CAInB;AAGD,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAQ7E;AAgBD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA6B3E;AAWD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA2BxE"}
|
|
@@ -24,17 +24,13 @@ class ChartResolver {
|
|
|
24
24
|
declaredLockPath;
|
|
25
25
|
lockPathMemo;
|
|
26
26
|
env;
|
|
27
|
-
|
|
28
|
-
helm;
|
|
29
|
-
roster;
|
|
27
|
+
lock;
|
|
30
28
|
constructor(opts = {}) {
|
|
31
29
|
const env = opts.env ?? process.env;
|
|
32
30
|
this.env = env;
|
|
33
31
|
this.chartsDir = opts.chartsDir ?? defaultChartsDir(env);
|
|
34
32
|
this.chartRepo = opts.chartRepo ?? env[exports.CHART_REPO_ENV] ?? helm_cli_1.DEFAULT_HELM_CHART_REPO;
|
|
35
|
-
this.versionOverride = opts.versionOverride ?? env[chart_set_lock_1.CHART_VERSION_ENV] ?? '';
|
|
36
33
|
this.declaredLockPath = opts.lockPath;
|
|
37
|
-
this.helm = opts.helm;
|
|
38
34
|
}
|
|
39
35
|
get remotePlaneEnabled() {
|
|
40
36
|
return this.chartRepo.length > 0;
|
|
@@ -43,26 +39,14 @@ class ChartResolver {
|
|
|
43
39
|
this.lockPathMemo ??= this.declaredLockPath ?? (0, chart_set_lock_1.defaultChartSetLockPath)(this.env);
|
|
44
40
|
return this.lockPathMemo;
|
|
45
41
|
}
|
|
46
|
-
|
|
42
|
+
resolve(name) {
|
|
47
43
|
const directory = (0, node_path_1.join)(this.chartsDir, name);
|
|
48
44
|
if (pathExists((0, node_path_1.join)(directory, 'Chart.yaml'))) {
|
|
49
|
-
return {
|
|
50
|
-
name,
|
|
51
|
-
kind: ChartSourceKind.LocalDirectory,
|
|
52
|
-
ref: directory,
|
|
53
|
-
version: '',
|
|
54
|
-
extraArgs: [],
|
|
55
|
-
};
|
|
45
|
+
return { name, kind: ChartSourceKind.LocalDirectory, ref: directory, version: '', digest: '' };
|
|
56
46
|
}
|
|
57
47
|
const archive = newestLocalArchive(this.chartsDir, name);
|
|
58
48
|
if (archive !== null) {
|
|
59
|
-
return {
|
|
60
|
-
name,
|
|
61
|
-
kind: ChartSourceKind.LocalArchive,
|
|
62
|
-
ref: archive,
|
|
63
|
-
version: '',
|
|
64
|
-
extraArgs: [],
|
|
65
|
-
};
|
|
49
|
+
return { name, kind: ChartSourceKind.LocalArchive, ref: archive, version: '', digest: '' };
|
|
66
50
|
}
|
|
67
51
|
if (!this.remotePlaneEnabled) {
|
|
68
52
|
throw new Error(`Chart '${name}' is not in ${exports.CHARTS_DIR_ENV}=${this.chartsDir} (expected ` +
|
|
@@ -70,56 +54,26 @@ class ChartResolver {
|
|
|
70
54
|
`plane is disabled (${exports.CHART_REPO_ENV} is empty). Stage the chart locally, ` +
|
|
71
55
|
`or unset ${exports.CHART_REPO_ENV} to allow the published plane.`);
|
|
72
56
|
}
|
|
73
|
-
const
|
|
74
|
-
if (
|
|
57
|
+
const member = this.sealedLock()?.members.get(name);
|
|
58
|
+
if (member === undefined) {
|
|
75
59
|
throw new Error(`Chart '${name}' is not in ${exports.CHARTS_DIR_ENV}=${this.chartsDir}, and the ` +
|
|
76
|
-
`
|
|
77
|
-
`
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
`(xema-distributions: node resolve-chart-set.mjs), or pin one version ` +
|
|
82
|
-
`for this run with ${chart_set_lock_1.CHART_VERSION_ENV}.`);
|
|
60
|
+
`sealed chart set (${this.lockPath}) does not carry it — refusing to ` +
|
|
61
|
+
`pull an unpinned chart from ${this.chartRepo}. Every remote chart is ` +
|
|
62
|
+
'installed at the version AND digest the lock seals; a chart missing ' +
|
|
63
|
+
'from it was never sealed into this set (or there is no lock). Re-seal ' +
|
|
64
|
+
'the lock (xema-distributions: node resolve-chart-set.mjs).');
|
|
83
65
|
}
|
|
84
66
|
return {
|
|
85
67
|
name,
|
|
86
68
|
kind: ChartSourceKind.Oci,
|
|
87
69
|
ref: `${this.chartRepo}/${name}`,
|
|
88
|
-
version,
|
|
89
|
-
|
|
70
|
+
version: member.version,
|
|
71
|
+
digest: member.digest,
|
|
90
72
|
};
|
|
91
73
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
const roster = await this.chartSetRoster();
|
|
97
|
-
return roster?.versions.get(name) ?? '';
|
|
98
|
-
}
|
|
99
|
-
publisherPins() {
|
|
100
|
-
if (!this.remotePlaneEnabled) {
|
|
101
|
-
return [];
|
|
102
|
-
}
|
|
103
|
-
return (0, chart_set_lock_1.loadChartSetLock)(this.lockPath)?.publishers ?? [];
|
|
104
|
-
}
|
|
105
|
-
async chartSetRoster() {
|
|
106
|
-
this.roster ??= this.readChartSetRoster();
|
|
107
|
-
return this.roster;
|
|
108
|
-
}
|
|
109
|
-
async readChartSetRoster() {
|
|
110
|
-
if (!this.remotePlaneEnabled) {
|
|
111
|
-
return null;
|
|
112
|
-
}
|
|
113
|
-
const lock = (0, chart_set_lock_1.loadChartSetLock)(this.lockPath);
|
|
114
|
-
if (lock === null) {
|
|
115
|
-
return null;
|
|
116
|
-
}
|
|
117
|
-
if (this.helm === undefined) {
|
|
118
|
-
throw new Error(`${this.lockPath} pins a chart set, but this resolver was built without a ` +
|
|
119
|
-
'helm metadata reader, so the pinned roster cannot be read. Construct ' +
|
|
120
|
-
'the ChartResolver with `helm` (a HelmCli).');
|
|
121
|
-
}
|
|
122
|
-
return (0, chart_set_lock_1.loadChartSetRoster)(lock, this.chartRepo, this.helm);
|
|
74
|
+
sealedLock() {
|
|
75
|
+
this.lock ??= { value: (0, chart_set_lock_1.loadChartSetLock)(this.lockPath) };
|
|
76
|
+
return this.lock.value;
|
|
123
77
|
}
|
|
124
78
|
}
|
|
125
79
|
exports.ChartResolver = ChartResolver;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-resolver.js","sourceRoot":"","sources":["../../../src/runtime/runner/chart-resolver.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"chart-resolver.js","sourceRoot":"","sources":["../../../src/runtime/runner/chart-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,17 @@
|
|
|
1
|
-
export declare const CHART_SET_ROSTER_ANNOTATION = "xema.dev/chart-set-charts";
|
|
2
1
|
export declare const CHART_SET_LOCK_ENV = "XEMA_CHART_SET_LOCK";
|
|
3
|
-
export declare const CHART_VERSION_ENV = "XEMA_CHART_VERSION";
|
|
4
2
|
export declare const CHART_SET_LOCK_FILENAME = "chart-set.lock.json";
|
|
5
|
-
export
|
|
6
|
-
|
|
3
|
+
export declare const CHART_SET_LOCK_SCHEMA_VERSION = 3;
|
|
4
|
+
export declare const CHART_DIGEST_PATTERN: RegExp;
|
|
5
|
+
export interface ChartSetMember {
|
|
7
6
|
readonly version: string;
|
|
7
|
+
readonly digest: string;
|
|
8
8
|
}
|
|
9
9
|
export interface ChartSetLock {
|
|
10
10
|
readonly path: string;
|
|
11
|
-
readonly
|
|
11
|
+
readonly registry: string;
|
|
12
|
+
readonly members: ReadonlyMap<string, ChartSetMember>;
|
|
12
13
|
}
|
|
13
14
|
export declare function defaultChartSetLockPath(env?: NodeJS.ProcessEnv): string;
|
|
14
15
|
export declare function loadChartSetLock(path: string): ChartSetLock | null;
|
|
15
|
-
export interface ChartMetadataReader {
|
|
16
|
-
showChart(ref: string, version: string): Promise<string>;
|
|
17
|
-
}
|
|
18
|
-
export interface ChartSetRoster {
|
|
19
|
-
readonly versions: ReadonlyMap<string, string>;
|
|
20
|
-
readonly publishers: number;
|
|
21
|
-
readonly lockPath: string;
|
|
22
|
-
}
|
|
23
|
-
export declare function loadChartSetRoster(lock: ChartSetLock, chartRepo: string, helm: ChartMetadataReader): Promise<ChartSetRoster>;
|
|
24
|
-
interface ChartSetMember {
|
|
25
|
-
readonly name: string;
|
|
26
|
-
readonly version: string;
|
|
27
|
-
}
|
|
28
|
-
export declare function parseChartSetRosterAnnotation(shownChart: string, ref: string, version: string): readonly ChartSetMember[];
|
|
29
16
|
export declare function isMissingPath(error: unknown): boolean;
|
|
30
|
-
export {};
|
|
31
17
|
//# sourceMappingURL=chart-set-lock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-set-lock.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/chart-set-lock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"chart-set-lock.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/chart-set-lock.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAGxD,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAG7D,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAG/C,eAAO,MAAM,oBAAoB,QAA0B,CAAC;AAG5D,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAE3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACvD;AAGD,wBAAgB,uBAAuB,CACrC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAQR;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAuBlE;AAkFD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMrD"}
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CHART_DIGEST_PATTERN = exports.CHART_SET_LOCK_SCHEMA_VERSION = exports.CHART_SET_LOCK_FILENAME = exports.CHART_SET_LOCK_ENV = void 0;
|
|
4
4
|
exports.defaultChartSetLockPath = defaultChartSetLockPath;
|
|
5
5
|
exports.loadChartSetLock = loadChartSetLock;
|
|
6
|
-
exports.loadChartSetRoster = loadChartSetRoster;
|
|
7
|
-
exports.parseChartSetRosterAnnotation = parseChartSetRosterAnnotation;
|
|
8
6
|
exports.isMissingPath = isMissingPath;
|
|
9
7
|
const node_fs_1 = require("node:fs");
|
|
10
|
-
const yaml_1 = require("yaml");
|
|
11
8
|
const appliance_context_1 = require("./appliance-context");
|
|
12
|
-
exports.CHART_SET_ROSTER_ANNOTATION = 'xema.dev/chart-set-charts';
|
|
13
9
|
exports.CHART_SET_LOCK_ENV = 'XEMA_CHART_SET_LOCK';
|
|
14
|
-
exports.CHART_VERSION_ENV = 'XEMA_CHART_VERSION';
|
|
15
10
|
exports.CHART_SET_LOCK_FILENAME = 'chart-set.lock.json';
|
|
11
|
+
exports.CHART_SET_LOCK_SCHEMA_VERSION = 3;
|
|
12
|
+
exports.CHART_DIGEST_PATTERN = /^sha256:[a-f0-9]{64}$/;
|
|
16
13
|
function defaultChartSetLockPath(env = process.env) {
|
|
17
14
|
const declared = env[exports.CHART_SET_LOCK_ENV];
|
|
18
15
|
if (declared !== undefined && declared.length > 0) {
|
|
@@ -36,114 +33,73 @@ function loadChartSetLock(path) {
|
|
|
36
33
|
parsed = JSON.parse(raw);
|
|
37
34
|
}
|
|
38
35
|
catch (error) {
|
|
39
|
-
throw new Error(`${path} is not valid JSON (${String(error)}).
|
|
40
|
-
'
|
|
41
|
-
'copy must be replaced, not worked around.');
|
|
36
|
+
throw new Error(`${path} is not valid JSON (${String(error)}). A truncated or hand-edited ` +
|
|
37
|
+
'copy must be re-sealed, not worked around.');
|
|
42
38
|
}
|
|
43
|
-
|
|
44
|
-
if (publishers.length === 0) {
|
|
45
|
-
throw new Error(`${path} exists but carries no readable 'publishers[].index/.version'. It ` +
|
|
46
|
-
'is written by xema-distributions’ resolve-chart-set.mjs; a truncated or ' +
|
|
47
|
-
'hand-edited copy must be replaced, not worked around.');
|
|
48
|
-
}
|
|
49
|
-
return { path, publishers };
|
|
39
|
+
return parseChartSetLock(parsed, path);
|
|
50
40
|
}
|
|
51
|
-
function
|
|
52
|
-
|
|
53
|
-
|
|
41
|
+
function parseChartSetLock(parsed, path) {
|
|
42
|
+
const root = asRecord(parsed);
|
|
43
|
+
if (root === null) {
|
|
44
|
+
throw new Error(`${path} is not a JSON object; refusing the chart-set lock.`);
|
|
54
45
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
if (root.schemaVersion !== exports.CHART_SET_LOCK_SCHEMA_VERSION) {
|
|
47
|
+
throw new Error(`${path} has schemaVersion ${JSON.stringify(root.schemaVersion)}; only ` +
|
|
48
|
+
`schemaVersion ${String(exports.CHART_SET_LOCK_SCHEMA_VERSION)} (a digest per ` +
|
|
49
|
+
'chart) is read. Re-seal the lock; older locks are refused, not migrated.');
|
|
58
50
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (typeof candidate !== 'object' || candidate === null) {
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
const record = candidate;
|
|
65
|
-
if (typeof record.index !== 'string' ||
|
|
66
|
-
record.index.length === 0 ||
|
|
67
|
-
typeof record.version !== 'string' ||
|
|
68
|
-
record.version.length === 0) {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
pins.push({ index: record.index, version: record.version });
|
|
51
|
+
if (typeof root.registry !== 'string' || root.registry.length === 0) {
|
|
52
|
+
throw new Error(`${path} carries no 'registry'; refusing the chart-set lock.`);
|
|
72
53
|
}
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const
|
|
77
|
-
for (const
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
54
|
+
if (!Array.isArray(root.publishers) || root.publishers.length === 0) {
|
|
55
|
+
throw new Error(`${path} carries no 'publishers'; refusing the chart-set lock.`);
|
|
56
|
+
}
|
|
57
|
+
const members = new Map();
|
|
58
|
+
for (const candidate of root.publishers) {
|
|
59
|
+
const publisher = asRecord(candidate);
|
|
60
|
+
const index = publisher?.index;
|
|
61
|
+
if (publisher === null || typeof index !== 'string' || index.length === 0) {
|
|
62
|
+
throw new Error(`${path} has a publisher entry without an 'index'.`);
|
|
82
63
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
'names a set the registry does not serve — re-resolve the lock ' +
|
|
87
|
-
'(xema-distributions: node resolve-chart-set.mjs).');
|
|
64
|
+
const charts = asRecord(publisher.charts);
|
|
65
|
+
if (charts === null || Object.keys(charts).length === 0) {
|
|
66
|
+
throw new Error(`${path}: publisher '${index}' carries no 'charts' map.`);
|
|
88
67
|
}
|
|
89
|
-
const
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
68
|
+
for (const [name, value] of Object.entries(charts)) {
|
|
69
|
+
if (members.has(name)) {
|
|
70
|
+
throw new Error(`${path}: chart '${name}' is sealed by more than one publisher; the ` +
|
|
71
|
+
'halves are disjoint by construction, so the lock is corrupt.');
|
|
93
72
|
}
|
|
73
|
+
members.set(name, parseMember(name, value, path));
|
|
94
74
|
}
|
|
95
75
|
}
|
|
96
|
-
return {
|
|
76
|
+
return { path, registry: root.registry, members };
|
|
97
77
|
}
|
|
98
|
-
function
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
78
|
+
function parseMember(name, value, path) {
|
|
79
|
+
const record = asRecord(value);
|
|
80
|
+
if (record === null) {
|
|
81
|
+
throw new Error(`${path}: member '${name}' is not a {version, digest} object ` +
|
|
82
|
+
'(a bare string is a pre-digest lock); refusing the whole lock.');
|
|
102
83
|
}
|
|
103
|
-
|
|
104
|
-
|
|
84
|
+
const extra = Object.keys(record).filter((key) => key !== 'version' && key !== 'digest');
|
|
85
|
+
if (extra.length > 0) {
|
|
86
|
+
throw new Error(`${path}: member '${name}' carries unexpected field(s) ${extra.join(', ')}; ` +
|
|
87
|
+
'a member is exactly {version, digest}.');
|
|
105
88
|
}
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
:
|
|
109
|
-
const roster = typeof annotations === 'object' && annotations !== null
|
|
110
|
-
? annotations[exports.CHART_SET_ROSTER_ANNOTATION]
|
|
111
|
-
: undefined;
|
|
112
|
-
if (typeof roster !== 'string' || roster.trim().length === 0) {
|
|
113
|
-
throw new Error(`${ref} at ${version} carries no '${exports.CHART_SET_ROSTER_ANNOTATION}' chart ` +
|
|
114
|
-
'roster. An index is published only after its charts are, so an empty ' +
|
|
115
|
-
'one is a corrupt or hand-made artifact, not an empty set.');
|
|
89
|
+
const { version, digest } = record;
|
|
90
|
+
if (typeof version !== 'string' || version.length === 0) {
|
|
91
|
+
throw new Error(`${path}: member '${name}' has no version.`);
|
|
116
92
|
}
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
if (trimmed.length === 0) {
|
|
121
|
-
continue;
|
|
122
|
-
}
|
|
123
|
-
let parsed;
|
|
124
|
-
try {
|
|
125
|
-
parsed = JSON.parse(trimmed);
|
|
126
|
-
}
|
|
127
|
-
catch {
|
|
128
|
-
throw new Error(`${ref} at ${version} carries a chart-roster line that is not JSON: ${trimmed}`);
|
|
129
|
-
}
|
|
130
|
-
const record = typeof parsed === 'object' && parsed !== null
|
|
131
|
-
? parsed
|
|
132
|
-
: {};
|
|
133
|
-
if (typeof record.name !== 'string' ||
|
|
134
|
-
record.name.length === 0 ||
|
|
135
|
-
typeof record.version !== 'string' ||
|
|
136
|
-
record.version.length === 0) {
|
|
137
|
-
throw new Error(`${ref} at ${version} carries a chart-roster entry with no name/version: ${trimmed}`);
|
|
138
|
-
}
|
|
139
|
-
members.push({ name: record.name, version: record.version });
|
|
140
|
-
}
|
|
141
|
-
if (members.length === 0) {
|
|
142
|
-
throw new Error(`${ref} at ${version} carries an EMPTY chart roster. An index is published ` +
|
|
143
|
-
'only after its charts are, so an empty one is a corrupt or hand-made ' +
|
|
144
|
-
'artifact, not an empty set.');
|
|
93
|
+
if (typeof digest !== 'string' || !exports.CHART_DIGEST_PATTERN.test(digest)) {
|
|
94
|
+
throw new Error(`${path}: member '${name}' has a missing or malformed digest ` +
|
|
95
|
+
`(${JSON.stringify(digest)}); expected sha256:<64 hex>.`);
|
|
145
96
|
}
|
|
146
|
-
return
|
|
97
|
+
return { version, digest };
|
|
98
|
+
}
|
|
99
|
+
function asRecord(value) {
|
|
100
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
101
|
+
? value
|
|
102
|
+
: null;
|
|
147
103
|
}
|
|
148
104
|
function isMissingPath(error) {
|
|
149
105
|
const code = typeof error === 'object' && error !== null
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-set-lock.js","sourceRoot":"","sources":["../../../src/runtime/runner/chart-set-lock.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"chart-set-lock.js","sourceRoot":"","sources":["../../../src/runtime/runner/chart-set-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,12 +11,14 @@ export declare class HelmCli {
|
|
|
11
11
|
private readonly kubeconfig;
|
|
12
12
|
constructor(opts?: HelmCliOptions);
|
|
13
13
|
exec(args: readonly string[]): Promise<string>;
|
|
14
|
+
execCombined(args: readonly string[]): Promise<string>;
|
|
15
|
+
private run;
|
|
14
16
|
execQuiet(args: readonly string[]): Promise<string>;
|
|
15
17
|
available(): Promise<boolean>;
|
|
16
18
|
listTable(): Promise<string>;
|
|
17
19
|
listReleaseStates(): Promise<readonly HelmReleaseState[]>;
|
|
18
20
|
getReleaseValues(release: string): Promise<Readonly<Record<string, unknown>>>;
|
|
19
|
-
|
|
21
|
+
pull(ref: string, version: string, destination: string): Promise<string>;
|
|
20
22
|
login(host: string, username: string, secret: string): Promise<void>;
|
|
21
23
|
uninstall(release: string): Promise<void>;
|
|
22
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helm-cli.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/helm-cli.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAiB7C,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAEpC,IAAI,GAAE,cAAmB;IAMrC,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"helm-cli.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/helm-cli.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,sBAAsB,SAAS,CAAC;AAiB7C,eAAO,MAAM,uBAAuB,kCAAkC,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;gBAEpC,IAAI,GAAE,cAAmB;IAMrC,IAAI,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ9C,YAAY,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAItD,OAAO,CAAC,GAAG;IAiBL,SAAS,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IASnD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAM7B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAS5B,iBAAiB,IAAI,OAAO,CAAC,SAAS,gBAAgB,EAAE,CAAC;IAoBzD,gBAAgB,CACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IA4BvC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA6B9E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC9D,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGhD;AAMD,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,YAAY,iBAAiB;IAC7B,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,eAAe,qBAAqB;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;CACpC"}
|