@xemahq/xema 0.25.1 → 0.27.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/appliance-base/images.lock.json +126 -126
- package/dist/assets/appliance-lean/images.lock.json +123 -123
- package/dist/assets/cloud/images.lock.json +126 -126
- package/dist/assets/core/images.lock.json +120 -120
- package/dist/assets/distribution-assets.manifest.json +15 -16
- package/dist/assets/minimal/images.lock.json +108 -108
- package/dist/assets/oss/images.lock.json +126 -126
- package/dist/assets/starter/images.lock.json +123 -123
- 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 +6 -1
- 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 +54179 -0
- package/dist/edition/verify-image-evidence.bundle.provenance.json +2871 -0
- package/dist/runtime/backing-registration.d.ts.map +1 -1
- package/dist/runtime/backing-registration.js +7 -2
- package/dist/runtime/backing-registration.js.map +1 -1
- 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 +3 -0
- package/dist/runtime/env-seeder.d.ts.map +1 -1
- package/dist/runtime/env-seeder.js +20 -3
- package/dist/runtime/env-seeder.js.map +1 -1
- package/dist/runtime/launch.d.ts +3 -1
- package/dist/runtime/launch.d.ts.map +1 -1
- package/dist/runtime/launch.js +37 -8
- 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 +3 -0
- package/dist/runtime/supervisor.d.ts.map +1 -1
- package/dist/runtime/supervisor.js +2 -0
- package/dist/runtime/supervisor.js.map +1 -1
- package/edition/README.md +315 -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 +270 -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 +207 -0
- package/edition/edition-constants.mjs +57 -0
- package/edition/edition-contract.json +23 -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 +176 -0
- package/edition/evidence-checkout.mjs +418 -0
- package/edition/evidence-grammars.mjs +16 -0
- package/edition/evidence-trust-pin.mjs +304 -0
- package/edition/evidence-trust-policy.mjs +256 -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-evidence-replay-state.mjs +242 -0
- package/edition/image-evidence.mjs +1225 -0
- package/edition/kernel-contract-authority.mjs +443 -0
- package/edition/lib.mjs +3018 -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 +99 -0
- package/edition/release-edition-artifact.mjs +158 -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 +430 -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 +18 -7
- 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 -154
- 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
|
@@ -4,14 +4,14 @@ exports.ChartPreflightFailureKind = void 0;
|
|
|
4
4
|
exports.runChartPreflight = runChartPreflight;
|
|
5
5
|
exports.assertChartPreflightPassed = assertChartPreflightPassed;
|
|
6
6
|
exports.formatChartPreflight = formatChartPreflight;
|
|
7
|
+
const chart_pull_1 = require("./chart-pull");
|
|
7
8
|
const chart_resolver_1 = require("./chart-resolver");
|
|
8
9
|
var ChartPreflightFailureKind;
|
|
9
10
|
(function (ChartPreflightFailureKind) {
|
|
10
11
|
ChartPreflightFailureKind["EmptyScan"] = "empty-scan";
|
|
11
|
-
ChartPreflightFailureKind["ChartSetUnclosed"] = "chart-set-unclosed";
|
|
12
12
|
ChartPreflightFailureKind["ChartUnavailable"] = "chart-unavailable";
|
|
13
|
-
ChartPreflightFailureKind["
|
|
14
|
-
ChartPreflightFailureKind["
|
|
13
|
+
ChartPreflightFailureKind["ChartPullRefused"] = "chart-pull-refused";
|
|
14
|
+
ChartPreflightFailureKind["LocalChartUnrecorded"] = "local-chart-unrecorded";
|
|
15
15
|
})(ChartPreflightFailureKind || (exports.ChartPreflightFailureKind = ChartPreflightFailureKind = {}));
|
|
16
16
|
async function runChartPreflight(opts) {
|
|
17
17
|
const failures = [];
|
|
@@ -19,7 +19,7 @@ async function runChartPreflight(opts) {
|
|
|
19
19
|
return {
|
|
20
20
|
resolved: [],
|
|
21
21
|
unavailable: [],
|
|
22
|
-
|
|
22
|
+
provenance: null,
|
|
23
23
|
failures: [
|
|
24
24
|
{
|
|
25
25
|
kind: ChartPreflightFailureKind.EmptyScan,
|
|
@@ -31,33 +31,13 @@ async function runChartPreflight(opts) {
|
|
|
31
31
|
passed: false,
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
|
-
const unclosed = await unclosedPublisherIndexes(opts);
|
|
35
|
-
if (unclosed.length > 0) {
|
|
36
|
-
return {
|
|
37
|
-
resolved: [],
|
|
38
|
-
unavailable: [],
|
|
39
|
-
trust: null,
|
|
40
|
-
failures: [
|
|
41
|
-
{
|
|
42
|
-
kind: ChartPreflightFailureKind.ChartSetUnclosed,
|
|
43
|
-
message: `The pinned chart set names ${unclosed.join(', ')}, which the registry ` +
|
|
44
|
-
'does not serve. An index is published only after its publisher has ' +
|
|
45
|
-
'pushed, signed and proved served every chart of its half, so a pin ' +
|
|
46
|
-
'the registry cannot resolve means the lock is ahead of the registry ' +
|
|
47
|
-
'or names a set that was pruned. Re-resolve it (xema-distributions: ' +
|
|
48
|
-
'node resolve-chart-set.mjs).',
|
|
49
|
-
},
|
|
50
|
-
],
|
|
51
|
-
passed: false,
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
34
|
const resolved = [];
|
|
55
35
|
const unavailable = [];
|
|
56
|
-
const
|
|
36
|
+
const refused = [];
|
|
57
37
|
for (const name of opts.charts) {
|
|
58
38
|
let chart;
|
|
59
39
|
try {
|
|
60
|
-
chart =
|
|
40
|
+
chart = opts.resolver.resolve(name);
|
|
61
41
|
}
|
|
62
42
|
catch (error) {
|
|
63
43
|
unavailable.push({ name, reason: messageOf(error) });
|
|
@@ -69,14 +49,19 @@ async function runChartPreflight(opts) {
|
|
|
69
49
|
}
|
|
70
50
|
if (opts.helm === undefined) {
|
|
71
51
|
throw new Error(`Chart '${name}' resolved to ${chart.ref} at ${chart.version}, but the ` +
|
|
72
|
-
'pre-flight was built without a helm
|
|
73
|
-
'
|
|
52
|
+
'pre-flight was built without a helm client and so cannot prove the ' +
|
|
53
|
+
'pulled bytes match the lock. Supply `helm`.');
|
|
74
54
|
}
|
|
75
55
|
try {
|
|
76
|
-
|
|
56
|
+
if (opts.archives !== undefined) {
|
|
57
|
+
await opts.archives.hold(chart, opts.helm);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
await (0, chart_pull_1.withPulledChart)(chart, opts.helm, () => Promise.resolve());
|
|
61
|
+
}
|
|
77
62
|
}
|
|
78
|
-
catch {
|
|
79
|
-
|
|
63
|
+
catch (error) {
|
|
64
|
+
refused.push({ name, reason: messageOf(error) });
|
|
80
65
|
}
|
|
81
66
|
}
|
|
82
67
|
if (unavailable.length > 0) {
|
|
@@ -90,53 +75,32 @@ async function runChartPreflight(opts) {
|
|
|
90
75
|
unavailable.map((entry) => ` - ${entry.name}: ${entry.reason}`).join('\n'),
|
|
91
76
|
});
|
|
92
77
|
}
|
|
93
|
-
if (
|
|
78
|
+
if (refused.length > 0) {
|
|
94
79
|
failures.push({
|
|
95
|
-
kind: ChartPreflightFailureKind.
|
|
96
|
-
message: `The
|
|
97
|
-
'does not serve
|
|
98
|
-
|
|
80
|
+
kind: ChartPreflightFailureKind.ChartPullRefused,
|
|
81
|
+
message: `The lock pins ${refused.map((entry) => entry.name).join(', ')}, but the ` +
|
|
82
|
+
'registry does not serve them at the sealed digest:\n' +
|
|
83
|
+
refused.map((entry) => ` - ${entry.name}: ${entry.reason}`).join('\n'),
|
|
99
84
|
});
|
|
100
85
|
}
|
|
101
|
-
let
|
|
102
|
-
if (unavailable.length === 0 &&
|
|
103
|
-
|
|
104
|
-
if (!
|
|
86
|
+
let provenance = null;
|
|
87
|
+
if (unavailable.length === 0 && refused.length === 0) {
|
|
88
|
+
provenance = opts.provenance.evaluate(resolved);
|
|
89
|
+
if (!provenance.passed) {
|
|
105
90
|
failures.push({
|
|
106
|
-
kind: ChartPreflightFailureKind.
|
|
107
|
-
message:
|
|
91
|
+
kind: ChartPreflightFailureKind.LocalChartUnrecorded,
|
|
92
|
+
message: provenance.message,
|
|
108
93
|
});
|
|
109
94
|
}
|
|
110
95
|
}
|
|
111
96
|
return {
|
|
112
97
|
resolved,
|
|
113
98
|
unavailable,
|
|
114
|
-
|
|
99
|
+
provenance,
|
|
115
100
|
failures,
|
|
116
101
|
passed: failures.length === 0,
|
|
117
102
|
};
|
|
118
103
|
}
|
|
119
|
-
async function unclosedPublisherIndexes(opts) {
|
|
120
|
-
const pins = opts.resolver.publisherPins();
|
|
121
|
-
if (pins.length === 0) {
|
|
122
|
-
return [];
|
|
123
|
-
}
|
|
124
|
-
if (opts.helm === undefined) {
|
|
125
|
-
throw new Error(`${opts.resolver.lockPath} pins ${String(pins.length)} publisher index(es), ` +
|
|
126
|
-
'but the pre-flight was built without a helm metadata reader and so cannot ' +
|
|
127
|
-
'prove the set was closed. Supply `helm`.');
|
|
128
|
-
}
|
|
129
|
-
const unclosed = [];
|
|
130
|
-
for (const pin of pins) {
|
|
131
|
-
try {
|
|
132
|
-
await opts.helm.showChart(`${opts.resolver.chartRepo}/${pin.index}`, pin.version);
|
|
133
|
-
}
|
|
134
|
-
catch {
|
|
135
|
-
unclosed.push(`${pin.index}@${pin.version}`);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
return unclosed;
|
|
139
|
-
}
|
|
140
104
|
function assertChartPreflightPassed(report) {
|
|
141
105
|
if (report.passed) {
|
|
142
106
|
return;
|
|
@@ -151,11 +115,8 @@ function formatChartPreflight(report) {
|
|
|
151
115
|
const remote = report.resolved.filter((chart) => chart.kind === chart_resolver_1.ChartSourceKind.Oci);
|
|
152
116
|
lines.push(`charts : ${String(report.resolved.length)} resolved ` +
|
|
153
117
|
`(${String(local.length)} local, ${String(remote.length)} from the registry)`);
|
|
154
|
-
if (report.
|
|
155
|
-
lines.push(`
|
|
156
|
-
}
|
|
157
|
-
else if (report.trust !== null) {
|
|
158
|
-
lines.push(`trust : ${report.trust.outcome} (${report.trust.mode})`);
|
|
118
|
+
if (report.provenance !== null && report.provenance.message.length > 0) {
|
|
119
|
+
lines.push(`local : ${report.provenance.message}`);
|
|
159
120
|
}
|
|
160
121
|
return lines.join('\n');
|
|
161
122
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chart-preflight.js","sourceRoot":"","sources":["../../../src/runtime/runner/chart-preflight.ts"],"names":[],"mappings":";;;AAmFA,
|
|
1
|
+
{"version":3,"file":"chart-preflight.js","sourceRoot":"","sources":["../../../src/runtime/runner/chart-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ResolvedChart } from './chart-resolver';
|
|
2
|
+
export interface ChartPullClient {
|
|
3
|
+
pull(ref: string, version: string, destination: string): Promise<string>;
|
|
4
|
+
}
|
|
5
|
+
export declare function withPulledChart<T>(chart: ResolvedChart, client: ChartPullClient, use: (archivePath: string) => Promise<T>): Promise<T>;
|
|
6
|
+
export declare class VerifiedChartArchives {
|
|
7
|
+
private readonly held;
|
|
8
|
+
private readonly onExit;
|
|
9
|
+
constructor();
|
|
10
|
+
hold(chart: ResolvedChart, client: ChartPullClient): Promise<void>;
|
|
11
|
+
use<T>(chart: ResolvedChart, client: ChartPullClient, use: (archivePath: string) => Promise<T>): Promise<T>;
|
|
12
|
+
disposeAll(): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=chart-pull.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chart-pull.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/chart-pull.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAmBtD,MAAM,WAAW,eAAe;IAK9B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1E;AAoCD,wBAAsB,eAAe,CAAC,CAAC,EACrC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,CAAC,CAAC,CAOZ;AAWD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;;IAOlD,IAAI,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAclE,GAAG,CAAC,CAAC,EACT,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,CAAC,CAAC;IAeb,UAAU,IAAI,IAAI;CAOnB"}
|
|
@@ -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"}
|