@dsh-enhanced/plugin-control-plane 0.1.48 → 0.1.49
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 +183 -15
- package/bin/dsh-live-qualification-authority.js +15 -0
- package/bin/dsh-local-release-adapter.js +328 -8
- package/bin/dsh-systemd-host-attestor.js +359 -9
- package/bin/dsh-systemd-host-authority.js +12 -0
- package/lib/adoption-coordinator.d.ts +3 -1
- package/lib/adoption-coordinator.d.ts.map +1 -1
- package/lib/adoption-coordinator.js +24 -9
- package/lib/adoption-coordinator.js.map +1 -1
- package/lib/cli.d.ts.map +1 -1
- package/lib/cli.js +33 -14
- package/lib/cli.js.map +1 -1
- package/lib/creation-capability-feedback.d.ts +23 -0
- package/lib/creation-capability-feedback.d.ts.map +1 -0
- package/lib/creation-capability-feedback.js +132 -0
- package/lib/creation-capability-feedback.js.map +1 -0
- package/lib/creation-capability-journal.d.ts +66 -0
- package/lib/creation-capability-journal.d.ts.map +1 -0
- package/lib/creation-capability-journal.js +751 -0
- package/lib/creation-capability-journal.js.map +1 -0
- package/lib/creation-capability-runtime.d.ts +63 -0
- package/lib/creation-capability-runtime.d.ts.map +1 -0
- package/lib/creation-capability-runtime.js +564 -0
- package/lib/creation-capability-runtime.js.map +1 -0
- package/lib/creation-capability-source.d.ts +37 -0
- package/lib/creation-capability-source.d.ts.map +1 -0
- package/lib/creation-capability-source.js +328 -0
- package/lib/creation-capability-source.js.map +1 -0
- package/lib/creation-capability-types.d.ts +252 -0
- package/lib/creation-capability-types.d.ts.map +1 -0
- package/lib/creation-capability-types.js +2 -0
- package/lib/creation-capability-types.js.map +1 -0
- package/lib/deployment-readiness.d.ts +16 -0
- package/lib/deployment-readiness.d.ts.map +1 -1
- package/lib/deployment-readiness.js +48 -1
- package/lib/deployment-readiness.js.map +1 -1
- package/lib/effect-blocked-replay.js +2 -2
- package/lib/effect-blocked-replay.js.map +1 -1
- package/lib/foreground-deployment-runtime.d.ts +3 -0
- package/lib/foreground-deployment-runtime.d.ts.map +1 -1
- package/lib/foreground-deployment-runtime.js +55 -13
- package/lib/foreground-deployment-runtime.js.map +1 -1
- package/lib/foreground-deployment.d.ts.map +1 -1
- package/lib/foreground-deployment.js +5 -0
- package/lib/foreground-deployment.js.map +1 -1
- package/lib/host-attestor.d.ts +2 -0
- package/lib/host-attestor.d.ts.map +1 -1
- package/lib/host-attestor.js +8 -1
- package/lib/host-attestor.js.map +1 -1
- package/lib/host-inputs.d.ts +13 -0
- package/lib/host-inputs.d.ts.map +1 -0
- package/lib/host-inputs.js +162 -0
- package/lib/host-inputs.js.map +1 -0
- package/lib/host-maintenance.d.ts +61 -0
- package/lib/host-maintenance.d.ts.map +1 -0
- package/lib/host-maintenance.js +158 -0
- package/lib/host-maintenance.js.map +1 -0
- package/lib/host-readiness.d.ts +5 -0
- package/lib/host-readiness.d.ts.map +1 -0
- package/lib/host-readiness.js +22 -0
- package/lib/host-readiness.js.map +1 -0
- package/lib/index.d.ts +16 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -1
- package/lib/live-qualification-authority.d.ts +32 -0
- package/lib/live-qualification-authority.d.ts.map +1 -0
- package/lib/live-qualification-authority.js +280 -0
- package/lib/live-qualification-authority.js.map +1 -0
- package/lib/live-qualification-client.d.ts +4 -0
- package/lib/live-qualification-client.d.ts.map +1 -0
- package/lib/live-qualification-client.js +22 -0
- package/lib/live-qualification-client.js.map +1 -0
- package/lib/live-qualification-runtime.d.ts +78 -0
- package/lib/live-qualification-runtime.d.ts.map +1 -0
- package/lib/live-qualification-runtime.js +367 -0
- package/lib/live-qualification-runtime.js.map +1 -0
- package/lib/live-qualification.d.ts +73 -0
- package/lib/live-qualification.d.ts.map +1 -0
- package/lib/live-qualification.js +164 -0
- package/lib/live-qualification.js.map +1 -0
- package/lib/owner-task-gaps.d.ts +2 -0
- package/lib/owner-task-gaps.d.ts.map +1 -1
- package/lib/owner-task-gaps.js +9 -1
- package/lib/owner-task-gaps.js.map +1 -1
- package/lib/runtime-epoch.d.ts +69 -0
- package/lib/runtime-epoch.d.ts.map +1 -0
- package/lib/runtime-epoch.js +139 -0
- package/lib/runtime-epoch.js.map +1 -0
- package/lib/runtime-observer.d.ts.map +1 -1
- package/lib/runtime-observer.js +42 -6
- package/lib/runtime-observer.js.map +1 -1
- package/lib/service.d.ts +247 -4
- package/lib/service.d.ts.map +1 -1
- package/lib/service.js +1332 -27
- package/lib/service.js.map +1 -1
- package/lib/source-adoption-authority.d.ts +3 -0
- package/lib/source-adoption-authority.d.ts.map +1 -1
- package/lib/source-adoption-authority.js +13 -3
- package/lib/source-adoption-authority.js.map +1 -1
- package/lib/source-adoption-runner.d.ts +3 -0
- package/lib/source-adoption-runner.d.ts.map +1 -1
- package/lib/source-adoption-runner.js +16 -4
- package/lib/source-adoption-runner.js.map +1 -1
- package/lib/source-baseline.d.ts +37 -0
- package/lib/source-baseline.d.ts.map +1 -0
- package/lib/source-baseline.js +250 -0
- package/lib/source-baseline.js.map +1 -0
- package/lib/source-build.d.ts +17 -1
- package/lib/source-build.d.ts.map +1 -1
- package/lib/source-build.js +501 -7
- package/lib/source-build.js.map +1 -1
- package/lib/source-context.d.ts +18 -0
- package/lib/source-context.d.ts.map +1 -1
- package/lib/source-context.js +85 -11
- package/lib/source-context.js.map +1 -1
- package/lib/source-creation.d.ts +106 -0
- package/lib/source-creation.d.ts.map +1 -0
- package/lib/source-creation.js +664 -0
- package/lib/source-creation.js.map +1 -0
- package/lib/source-job-types.d.ts +19 -0
- package/lib/source-job-types.d.ts.map +1 -1
- package/lib/source-jobs.d.ts +30 -3
- package/lib/source-jobs.d.ts.map +1 -1
- package/lib/source-jobs.js +382 -40
- package/lib/source-jobs.js.map +1 -1
- package/lib/source-maintenance.d.ts +66 -0
- package/lib/source-maintenance.d.ts.map +1 -0
- package/lib/source-maintenance.js +177 -0
- package/lib/source-maintenance.js.map +1 -0
- package/lib/source-revision.d.ts +57 -0
- package/lib/source-revision.d.ts.map +1 -0
- package/lib/source-revision.js +175 -0
- package/lib/source-revision.js.map +1 -0
- package/lib/source-workspace.d.ts +19 -14
- package/lib/source-workspace.d.ts.map +1 -1
- package/lib/source-workspace.js +90 -17
- package/lib/source-workspace.js.map +1 -1
- package/lib/sqlite.d.ts +13 -3
- package/lib/sqlite.d.ts.map +1 -1
- package/lib/sqlite.js +362 -1
- package/lib/sqlite.js.map +1 -1
- package/lib/store.d.ts +258 -3
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +2211 -95
- package/lib/store.js.map +1 -1
- package/lib/systemd-host-authority.d.ts +68 -0
- package/lib/systemd-host-authority.d.ts.map +1 -0
- package/lib/systemd-host-authority.js +424 -0
- package/lib/systemd-host-authority.js.map +1 -0
- package/lib/task-observation-evidence.d.ts +32 -0
- package/lib/task-observation-evidence.d.ts.map +1 -0
- package/lib/task-observation-evidence.js +62 -0
- package/lib/task-observation-evidence.js.map +1 -0
- package/lib/task-observation-runtime.d.ts +2 -3
- package/lib/task-observation-runtime.d.ts.map +1 -1
- package/lib/task-observation-runtime.js +7 -39
- package/lib/task-observation-runtime.js.map +1 -1
- package/lib/task-observation-store.js +1 -1
- package/lib/trust.d.ts.map +1 -1
- package/lib/trust.js +0 -0
- package/lib/trust.js.map +1 -1
- package/lib/types.d.ts +43 -6
- package/lib/types.d.ts.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +21 -14
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { validateLiveQualificationTerms } from './live-qualification.js';
|
|
1
2
|
/** Host-owned continuation from a completed source release into normal activation. */
|
|
2
3
|
import { validateAdoptionHandoffTerms } from './adoption-handoff.js';
|
|
3
4
|
import { lstat, realpath } from 'node:fs/promises';
|
|
@@ -6,7 +7,7 @@ import { Ed25519ApprovalAuthority, parseApprovalReceipt } from './approval.js';
|
|
|
6
7
|
import { discover, loadCatalogWithMetadata } from './catalog.js';
|
|
7
8
|
import { activatePluginPlan, probePluginPlan } from './cli.js';
|
|
8
9
|
import { requestSourceAuthorityReceipt, validateSourceApprovalClientConfig } from './source-approval-client.js';
|
|
9
|
-
import { controlPlaneDigest } from './store.js';
|
|
10
|
+
import { controlPlaneDigest, validateHostDeploymentInputs } from './store.js';
|
|
10
11
|
import { resolveTrustKey } from './trust.js';
|
|
11
12
|
const PROFILE = /^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u;
|
|
12
13
|
const AWAITING = new Set(['awaiting-reload', 'awaiting-readiness', 'awaiting-effect-blocked-replay', 'awaiting-shadow', 'awaiting-canary', 'awaiting-soak', 'awaiting-health']);
|
|
@@ -14,15 +15,22 @@ export function validateSourceAdoptionConfig(value) {
|
|
|
14
15
|
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
15
16
|
throw new Error('plugin-control-plane: invalid source adoption config');
|
|
16
17
|
const item = value;
|
|
17
|
-
if (Object.keys(item).sort().join('\0') !== ['authority', ...(Object.hasOwn(item, 'handoff') ? ['handoff'] : []), 'planTtlMs', 'profile', 'timeoutMs'].join('\0')
|
|
18
|
+
if (Object.keys(item).sort().join('\0') !== ['authority', ...(Object.hasOwn(item, 'handoff') ? ['handoff'] : []), ...(Object.hasOwn(item, 'hostDeploymentInputs') ? ['hostDeploymentInputs'] : []), ...(Object.hasOwn(item, 'liveQualification') ? ['liveQualification'] : []), 'planTtlMs', 'profile', 'timeoutMs'].join('\0')
|
|
18
19
|
|| typeof item.profile !== 'string' || item.profile.normalize('NFC').trim() !== item.profile || !PROFILE.test(item.profile)
|
|
19
20
|
|| !Number.isSafeInteger(item.planTtlMs) || Number(item.planTtlMs) < 60_000 || Number(item.planTtlMs) > 86_400_000
|
|
20
21
|
|| !Number.isSafeInteger(item.timeoutMs) || Number(item.timeoutMs) < 1_000 || Number(item.timeoutMs) > 3_600_000) {
|
|
21
22
|
throw new Error('plugin-control-plane: invalid source adoption config');
|
|
22
23
|
}
|
|
23
24
|
validateSourceApprovalClientConfig(item.authority);
|
|
25
|
+
if (Object.hasOwn(item, 'hostDeploymentInputs'))
|
|
26
|
+
validateHostDeploymentInputs(item.hostDeploymentInputs);
|
|
24
27
|
if (Object.hasOwn(item, 'handoff'))
|
|
25
28
|
validateAdoptionHandoffTerms(item.handoff);
|
|
29
|
+
if (Object.hasOwn(item, 'liveQualification')) {
|
|
30
|
+
validateLiveQualificationTerms(item.liveQualification);
|
|
31
|
+
if (!item.handoff)
|
|
32
|
+
throw new Error('bounded-live adoption requires an external coordinator');
|
|
33
|
+
}
|
|
26
34
|
}
|
|
27
35
|
function same(left, right) { return controlPlaneDigest(left) === controlPlaneDigest(right); }
|
|
28
36
|
async function canonicalTarget(trust, profile) {
|
|
@@ -66,7 +74,7 @@ async function recoverAwaiting(store, trust, plan, timeoutMs) {
|
|
|
66
74
|
const recoverySignal = AbortSignal.timeout(timeoutMs);
|
|
67
75
|
let rollback = plan;
|
|
68
76
|
if (plan.status !== 'rollback-pending') {
|
|
69
|
-
if ((!AWAITING.has(plan.status) && plan.status !== 'staging' && plan.status !== 'commit-pending') || plan.activation === undefined)
|
|
77
|
+
if ((!AWAITING.has(plan.status) && plan.status !== 'awaiting-live-tasks' && plan.status !== 'staging' && plan.status !== 'commit-pending') || plan.activation === undefined)
|
|
70
78
|
return;
|
|
71
79
|
// The Store rejects a live lease. Expired staging/commit work can instead
|
|
72
80
|
// be converted to the same durable rollback path as an awaiting failure.
|
|
@@ -114,13 +122,17 @@ export async function adoptSourceRelease(options) {
|
|
|
114
122
|
plan = options.withSourceFence(() => options.store.createPlan({ candidate: admitted, catalog: { digest: catalog.digest, provenance: catalog.provenance }, matchedCapabilities: admitted.capabilities,
|
|
115
123
|
profile: options.config.profile, target, installationId: options.trust.installationId, ledger: options.trust.ledger,
|
|
116
124
|
executor: { id: options.trust.executor.id, version: options.trust.executor.version, path: options.trust.executor.path, sha256: options.trust.executor.sha256 },
|
|
117
|
-
ttlMs: options.config.planTtlMs, gapId: source.gapId, sourcePlanId: source.id, ...(options.config.handoff ? { handoff: options.config.handoff } : {}), idempotencyKey: `source-adoption:${source.id}` }).result);
|
|
125
|
+
ttlMs: options.config.planTtlMs, gapId: source.gapId, sourcePlanId: source.id, ...(options.config.handoff ? { handoff: options.config.handoff } : {}), ...(options.config.liveQualification ? { liveQualification: options.config.liveQualification } : {}), ...(options.config.hostDeploymentInputs ? { hostDeploymentInputs: options.config.hostDeploymentInputs } : {}), idempotencyKey: `source-adoption:${source.id}` }).result);
|
|
118
126
|
}
|
|
119
127
|
assertPlanBinding(plan, source.id, options.trust, target, catalog, admitted);
|
|
120
128
|
created = plan;
|
|
121
129
|
trustBound = true;
|
|
122
130
|
if (!same(plan.dossier.handoff ?? null, options.config.handoff ?? null))
|
|
123
131
|
throw new Error('plugin-control-plane: adoption handoff configuration changed');
|
|
132
|
+
if (!same(plan.dossier.hostDeploymentInputs ?? null, options.config.hostDeploymentInputs ?? null))
|
|
133
|
+
throw new Error('plugin-control-plane: Host deployment inputs changed');
|
|
134
|
+
if (!same(plan.dossier.liveQualification ?? null, options.config.liveQualification ?? null))
|
|
135
|
+
throw new Error('plugin-control-plane: live qualification contract changed');
|
|
124
136
|
let requestedApproval = false;
|
|
125
137
|
for (let step = 0; step < 32; step++) {
|
|
126
138
|
await options.assertCurrent();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-adoption-runner.js","sourceRoot":"","sources":["../src/source-adoption-runner.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,OAAO,EAAE,4BAA4B,EAA6B,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,6BAA6B,EAAE,kCAAkC,EAAmC,MAAM,6BAA6B,CAAA;AAChJ,OAAO,EAAE,kBAAkB,EAA0B,MAAM,YAAY,CAAA;AACvE,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAA;AAG3E,MAAM,OAAO,GAAG,oCAAoC,CAAA;AACpD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAiC,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAU/M,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACxI,MAAM,IAAI,GAAG,KAAgC,CAAA;IAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;WAC5J,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;WACxH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,UAAU;WAC/G,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,EAAE,CAAC;QACnH,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,kCAAkC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AAChF,CAAC;AAED,SAAS,IAAI,CAAC,IAAa,EAAE,KAAc,IAAa,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;AAEvH,KAAK,UAAU,eAAe,CAAC,KAA+B,EAAE,OAAe;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,IAAI,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAChI,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAA;QACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,cAAc,EAAE,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC5L,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAA;QAC7G,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IAClM,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA0B,EAAE,YAAoB,EAAE,KAA+B,EAAE,MAAsC,EAAE,OAA2B,EAAE,SAA4C;IAC7N,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;WAC5G,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;WAC9K,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,iCAAiC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QAC/J,MAAM,IAAI,KAAK,CAAC,yCAAyC,YAAY,gDAAgD,CAAC,CAAA;IACxH,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,eAAe,CAAC,IAA0B,EAAE,KAA+B,EAAE,OAAe;IACnG,OAAO,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;WACnH,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;WACvG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;WAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;AAChJ,CAAC;AAED,SAAS,SAAS,CAAC,KAA+B,EAAE,OAAgD;IAClG,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAChF,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;AACjF,CAAC;AAED,SAAS,QAAQ,CAAC,IAA0B,IAAa,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAA,CAAC,CAAC;AAE9H,KAAK,UAAU,eAAe,CAAC,KAAwB,EAAE,KAA+B,EAAE,IAA0B,EAAE,SAAiB;IACrI,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAM;QAC1I,0EAA0E;QAC1E,yEAAyE;QACzE,QAAQ,GAAG,KAAK,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAA;IAC5K,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;IAC7I,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB,IAAI,QAAQ,CAAC,UAAU,EAAE,uBAAuB,EAAE,CAAC;QAC3F,MAAM,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;IACrK,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAQxC;IACC,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACpE,IAAI,UAAU,GAAG,OAAO,KAAK,SAAS,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACzG,IAAI,CAAC;QACH,4BAA4B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;QACpG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAChE,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAA;QAC5K,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAChE,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAA;QAChF,uEAAuE;QACvE,yEAAyE;QACzE,uEAAuE;QACvE,oCAAoC;QACpC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;eAClD,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,KAAK,wBAAwB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACvK,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;QAC3G,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3E,IAAI,IAAI,GAAG,OAAO,CAAA;QAClB,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAAC,MAAM,CAAC,cAAc,EAAE,CAAA;QACtD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,mBAAmB,EAAE,QAAQ,CAAC,YAAY;gBAClM,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;gBACnH,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC9J,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,mBAAmB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;QACpN,CAAC;QACD,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAAC,OAAO,GAAG,IAAI,CAAC;QAAC,UAAU,GAAG,IAAI,CAAA;QAC/G,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;QACxJ,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAC7B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAAC,MAAM,CAAC,cAAc,EAAE,CAAA;YACtD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;YAC/H,IAAI,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAA;YACrC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,CAAA;YACvG,IAAI,OAAO,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBAC1C,IAAI,iBAAiB;oBAAE,OAAO,OAAO,CAAA;gBACrC,iBAAiB,GAAG,IAAI,CAAA;gBACxB,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACjF,IAAI,eAAe,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;gBACrH,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,wBAAiC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAA;gBAC3K,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;oBAC7F,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;oBAC1C,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;wBAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAA;oBAC3M,OAAO,MAAM,CAAA;gBACf,CAAC,EAAE,MAAM,CAAC,CAAA;gBACV,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;gBAAC,MAAM,CAAC,cAAc,EAAE,CAAA;gBACtD,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO;oBACnG,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,4BAA4B,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;YACrL,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAClC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBACjI,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;oBAC/C,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;oBAC/C,OAAO,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;gBACjJ,CAAC;gBACD,sEAAsE;gBACtE,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC1C,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE,uBAAuB,EAAE,CAAC;gBAChG,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACvL,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBACzJ,IAAI,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;YACjJ,CAAC;iBAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;gBAC/H,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACvL,CAAC;;gBAAM,OAAO,OAAO,CAAA;YACrB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,MAAM,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAA;QAChI,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAC5B,yEAAyE;oBACzE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO;wBAAE,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC/E,CAAC;;oBAAM,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACzH,CAAC;YAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"source-adoption-runner.js","sourceRoot":"","sources":["../src/source-adoption-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAA+B,MAAM,yBAAyB,CAAA;AACrG,sFAAsF;AACtF,OAAO,EAAE,4BAA4B,EAA6B,MAAM,uBAAuB,CAAA;AAC/F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,wBAAwB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AAC9E,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAA;AAChE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC9D,OAAO,EAAE,6BAA6B,EAAE,kCAAkC,EAAmC,MAAM,6BAA6B,CAAA;AAChJ,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAA0B,MAAM,YAAY,CAAA;AACrG,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAA;AAG3E,MAAM,OAAO,GAAG,oCAAoC,CAAA;AACpD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAiC,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,gCAAgC,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,iBAAiB,CAAC,CAAC,CAAA;AAY/M,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACxI,MAAM,IAAI,GAAG,KAAgC,CAAA;IAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;WAC1T,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;WACxH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,UAAU;WAC/G,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,EAAE,CAAC;QACnH,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,kCAAkC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAClD,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,sBAAsB,CAAC;QAAE,4BAA4B,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;IACxG,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9E,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC;QAC7C,8BAA8B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;IAC9F,CAAC;AACH,CAAC;AAED,SAAS,IAAI,CAAC,IAAa,EAAE,KAAc,IAAa,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;AAEvH,KAAK,UAAU,eAAe,CAAC,KAA+B,EAAE,OAAe;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAChD,IAAI,MAAM,QAAQ,CAAC,QAAQ,CAAC,KAAK,OAAO,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAChI,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,CAAA;QACzC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,cAAc,EAAE,IAAI,MAAM,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,WAAW,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC5L,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAA;QAC7G,IAAI,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IAClM,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;AACxE,CAAC;AAED,SAAS,iBAAiB,CAAC,IAA0B,EAAE,YAAoB,EAAE,KAA+B,EAAE,MAAsC,EAAE,OAA2B,EAAE,SAA4C;IAC7N,IAAI,IAAI,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC;WAC5G,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;WAC9K,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,KAAK,iCAAiC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QAC/J,MAAM,IAAI,KAAK,CAAC,yCAAyC,YAAY,gDAAgD,CAAC,CAAA;IACxH,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,SAAS,eAAe,CAAC,IAA0B,EAAE,KAA+B,EAAE,OAAe;IACnG,OAAO,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;WACnH,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC;WACvG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;WAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAA;AAChJ,CAAC;AAED,SAAS,SAAS,CAAC,KAA+B,EAAE,OAAgD;IAClG,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;IAChF,OAAO,IAAI,wBAAwB,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;AACjF,CAAC;AAED,SAAS,QAAQ,CAAC,IAA0B,IAAa,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,aAAa,CAAA,CAAC,CAAC;AAE9H,KAAK,UAAU,eAAe,CAAC,KAAwB,EAAE,KAA+B,EAAE,IAA0B,EAAE,SAAiB;IACrI,MAAM,cAAc,GAAG,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACrD,IAAI,QAAQ,GAAG,IAAI,CAAA;IACnB,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,qBAAqB,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,OAAM;QACnL,0EAA0E;QAC1E,yEAAyE;QACzE,QAAQ,GAAG,KAAK,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC,CAAA;IAC5K,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;IAC7I,IAAI,QAAQ,CAAC,MAAM,KAAK,kBAAkB,IAAI,QAAQ,CAAC,UAAU,EAAE,uBAAuB,EAAE,CAAC;QAC3F,MAAM,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAA;IACrK,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAQxC;IACC,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACpE,IAAI,UAAU,GAAG,OAAO,KAAK,SAAS,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACzG,IAAI,CAAC;QACH,4BAA4B,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;QAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;QACpG,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QAChE,IAAI,MAAM,CAAC,MAAM,KAAK,kBAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAA;QAC5K,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QAChE,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAA;QAChF,uEAAuE;QACvE,yEAAyE;QACzE,uEAAuE;QACvE,oCAAoC;QACpC,IAAI,QAAQ,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC;eAClD,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,KAAK,wBAAwB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACvK,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAA;QAC3G,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC3E,IAAI,IAAI,GAAG,OAAO,CAAA;QAClB,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;QAAC,MAAM,CAAC,cAAc,EAAE,CAAA;QACtD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,EAAE,mBAAmB,EAAE,QAAQ,CAAC,YAAY;gBAClM,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM;gBACnH,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC9J,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,oBAAoB,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,EAAE,mBAAmB,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;QACza,CAAC;QACD,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QAAC,OAAO,GAAG,IAAI,CAAC;QAAC,UAAU,GAAG,IAAI,CAAA;QAC/G,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;QACxJ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,oBAAoB,IAAI,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;QAC1K,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,IAAI,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,IAAI,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;QACzK,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAC7B,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC;YACrC,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;YAAC,MAAM,CAAC,cAAc,EAAE,CAAA;YACtD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAC,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;YAC/H,IAAI,QAAQ,CAAC,OAAO,CAAC;gBAAE,OAAO,OAAO,CAAA;YACrC,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,CAAA;YACvG,IAAI,OAAO,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBAC1C,IAAI,iBAAiB;oBAAE,OAAO,OAAO,CAAA;gBACrC,iBAAiB,GAAG,IAAI,CAAA;gBACxB,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACjF,IAAI,eAAe,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;gBACrH,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,wBAAiC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,eAAe,CAAC,EAAE,CAAA;gBAC3K,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;oBAC7F,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAA;oBAC1C,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU;wBAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAA;oBAC3M,OAAO,MAAM,CAAA;gBACf,CAAC,EAAE,MAAM,CAAC,CAAA;gBACV,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC;gBAAC,MAAM,CAAC,cAAc,EAAE,CAAA;gBACtD,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO;oBACnG,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,4BAA4B,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,MAAM,CAAA;YACrL,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClC,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;oBAClC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;gBACjI,CAAC;qBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,EAAE,CAAC;oBAC/C,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;oBAC/C,OAAO,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;gBACjJ,CAAC;gBACD,sEAAsE;gBACtE,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YAC1C,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE,uBAAuB,EAAE,CAAC;gBAChG,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACvL,CAAC;iBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;gBACzJ,IAAI,GAAG,MAAM,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;YACjJ,CAAC;iBAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAA;gBAC/H,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;YACvL,CAAC;;gBAAM,OAAO,OAAO,CAAA;YACrB,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,KAAK,KAAK,MAAM,CAAC,KAAK;gBAAE,OAAO,IAAI,CAAA;QAChI,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,KAAK,SAAS,IAAI,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAC5B,yEAAyE;oBACzE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO;wBAAE,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBAC/E,CAAC;;oBAAM,MAAM,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;YACzH,CAAC;YAAC,MAAM,CAAC,CAAC,qCAAqC,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type PluginControlTrustConfig } from './trust.js';
|
|
2
|
+
import { type SourceMaintenanceRecord } from './source-maintenance.js';
|
|
3
|
+
import type { PluginSourcePlan, SourceReleaseOperation } from './types.js';
|
|
4
|
+
export interface SourceBaselineConfig {
|
|
5
|
+
ref: string;
|
|
6
|
+
remote: string;
|
|
7
|
+
targetBranch: string;
|
|
8
|
+
initialCommit: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function validateSourceBaselineConfig(value: unknown): asserts value is SourceBaselineConfig;
|
|
11
|
+
/** Historical receipts are verified at their signed observation time. */
|
|
12
|
+
export declare function verifySourceBaselineHistory(input: {
|
|
13
|
+
repository: string;
|
|
14
|
+
config: SourceBaselineConfig;
|
|
15
|
+
trust: PluginControlTrustConfig;
|
|
16
|
+
history: readonly {
|
|
17
|
+
plan: PluginSourcePlan;
|
|
18
|
+
operation: SourceReleaseOperation;
|
|
19
|
+
}[];
|
|
20
|
+
maintenance: readonly SourceMaintenanceRecord[];
|
|
21
|
+
signal: AbortSignal;
|
|
22
|
+
}): Promise<readonly string[]>;
|
|
23
|
+
/** Advance only an owner-pinned private Git ref; never touch HEAD, index, or worktree. */
|
|
24
|
+
export declare function resolveSourceBaseline(input: {
|
|
25
|
+
repository: string;
|
|
26
|
+
config: SourceBaselineConfig;
|
|
27
|
+
environment: NodeJS.ProcessEnv;
|
|
28
|
+
signal: AbortSignal;
|
|
29
|
+
assertCurrent: () => void | Promise<void>;
|
|
30
|
+
readHistory: () => readonly {
|
|
31
|
+
plan: PluginSourcePlan;
|
|
32
|
+
operation: SourceReleaseOperation;
|
|
33
|
+
}[];
|
|
34
|
+
readMaintenance?: () => readonly SourceMaintenanceRecord[];
|
|
35
|
+
trust: PluginControlTrustConfig;
|
|
36
|
+
}): Promise<string>;
|
|
37
|
+
//# sourceMappingURL=source-baseline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-baseline.d.ts","sourceRoot":"","sources":["../src/source-baseline.ts"],"names":[],"mappings":"AAKA,OAAO,EAAmB,KAAK,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAC3E,OAAO,EACL,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAQ1E,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,oBAAoB,CAWlG;AAuID,yEAAyE;AACzE,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAC;IAC1G,KAAK,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,SAAS;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,sBAAsB,CAAA;KAAE,EAAE,CAAC;IACnH,WAAW,EAAE,SAAS,uBAAuB,EAAE,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAEpG;AAED,0FAA0F;AAC1F,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAC;IACpG,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,WAAW,EAAE,MAAM,SAAS;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,sBAAsB,CAAA;KAAE,EAAE,CAAC;IAC5F,eAAe,CAAC,EAAE,MAAM,SAAS,uBAAuB,EAAE,CAAC;IAC3D,KAAK,EAAE,wBAAwB,CAAA;CAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAwEpD"}
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
import { lstat, realpath } from 'node:fs/promises';
|
|
2
|
+
import { isAbsolute, join, resolve } from 'node:path';
|
|
3
|
+
import { Ed25519SourceReleaseAuthority } from './release.js';
|
|
4
|
+
import { runLocalCommand } from './source-workspace.js';
|
|
5
|
+
import { controlPlaneDigest } from './store.js';
|
|
6
|
+
import { resolveTrustKey } from './trust.js';
|
|
7
|
+
import { sourceBaselineChain, verifySourceMaintenanceRecords } from './source-maintenance.js';
|
|
8
|
+
const COMMIT = /^[a-f0-9]{40}$/u;
|
|
9
|
+
const NAME = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/u;
|
|
10
|
+
const ZERO = '0'.repeat(40);
|
|
11
|
+
const gitOptions = ['-c', 'core.hooksPath=/dev/null', '-c', 'protocol.allow=never', '-c', 'protocol.file.allow=always',
|
|
12
|
+
'-c', 'gc.auto=0', '-c', 'fetch.writeCommitGraph=false'];
|
|
13
|
+
export function validateSourceBaselineConfig(value) {
|
|
14
|
+
if (!value || typeof value !== 'object' || Array.isArray(value))
|
|
15
|
+
throw new Error('source baseline config must be an object');
|
|
16
|
+
const item = value;
|
|
17
|
+
const name = typeof item.ref === 'string' ? item.ref.slice('refs/dsh-source/'.length) : '';
|
|
18
|
+
if (Object.keys(item).sort().join('\0') !== ['ref', 'remote', 'targetBranch', 'initialCommit'].sort().join('\0')
|
|
19
|
+
|| typeof item.ref !== 'string' || item.ref !== `refs/dsh-source/${name}` || name.length > 64 || !NAME.test(name)
|
|
20
|
+
|| typeof item.remote !== 'string' || !isAbsolute(item.remote) || resolve(item.remote) !== item.remote
|
|
21
|
+
|| typeof item.targetBranch !== 'string' || item.targetBranch.length > 64 || !NAME.test(item.targetBranch)
|
|
22
|
+
|| typeof item.initialCommit !== 'string' || !COMMIT.test(item.initialCommit)) {
|
|
23
|
+
throw new Error('source baseline config is invalid');
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function gitEnvironment(_environment) {
|
|
27
|
+
// Do not inherit GIT_CONFIG_*, Git directory/worktree overrides, hooks,
|
|
28
|
+
// URL/protocol helpers, or credential variables from the caller.
|
|
29
|
+
return { LANG: 'C', LC_ALL: 'C', GIT_CONFIG_NOSYSTEM: '1', GIT_CONFIG_GLOBAL: '/dev/null',
|
|
30
|
+
GIT_CONFIG_SYSTEM: '/dev/null', GIT_CONFIG_COUNT: '0', GIT_ALLOW_PROTOCOL: 'file',
|
|
31
|
+
GIT_NO_REPLACE_OBJECTS: '1', GIT_TERMINAL_PROMPT: '0', GIT_NO_LAZY_FETCH: '1',
|
|
32
|
+
GIT_LFS_SKIP_SMUDGE: '1' };
|
|
33
|
+
}
|
|
34
|
+
async function git(args, cwd, environment, signal) {
|
|
35
|
+
signal.throwIfAborted();
|
|
36
|
+
return (await runLocalCommand('git', [...gitOptions, ...args], cwd, environment, { capture: true, maximumOutput: 16_384, timeoutMs: 30_000, signal })).trimEnd();
|
|
37
|
+
}
|
|
38
|
+
async function directRef(cwd, ref, environment, signal) {
|
|
39
|
+
const output = await git(['for-each-ref', '--format=%(refname)%00%(objectname)%00%(symref)', ref], cwd, environment, signal);
|
|
40
|
+
if (output === '')
|
|
41
|
+
return undefined;
|
|
42
|
+
const lines = output.split('\n');
|
|
43
|
+
if (lines.length !== 1)
|
|
44
|
+
throw new Error('source baseline ref has unexpected children');
|
|
45
|
+
const fields = lines[0].split('\0');
|
|
46
|
+
if (fields.length !== 3 || fields[0] !== ref || !COMMIT.test(fields[1]) || fields[2] !== '') {
|
|
47
|
+
throw new Error('source baseline ref is symbolic or malformed');
|
|
48
|
+
}
|
|
49
|
+
return fields[1];
|
|
50
|
+
}
|
|
51
|
+
async function canonicalRepository(repository, environment, signal) {
|
|
52
|
+
if (!isAbsolute(repository) || resolve(repository) !== repository || await realpath(repository) !== repository) {
|
|
53
|
+
throw new Error('source baseline repository is not canonical');
|
|
54
|
+
}
|
|
55
|
+
if (await git(['rev-parse', '--show-toplevel'], repository, environment, signal) !== repository
|
|
56
|
+
|| await git(['rev-parse', '--is-bare-repository'], repository, environment, signal) !== 'false'
|
|
57
|
+
|| await git(['rev-parse', '--show-object-format=storage'], repository, environment, signal) !== 'sha1') {
|
|
58
|
+
throw new Error('source baseline repository is not a SHA-1 top-level worktree');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** Fail closed if any main or linked worktree would follow the managed ref. */
|
|
62
|
+
async function assertNoCheckedOutManagedRef(repository, managedRef, environment, signal) {
|
|
63
|
+
const listing = await git(['worktree', 'list', '--porcelain', '-z'], repository, environment, signal);
|
|
64
|
+
if (!listing.endsWith('\0\0'))
|
|
65
|
+
throw new Error('source baseline worktree listing is malformed');
|
|
66
|
+
const records = listing.slice(0, -2).split('\0\0');
|
|
67
|
+
if (records.length < 1 || records.length > 128)
|
|
68
|
+
throw new Error('source baseline worktree count is outside bound');
|
|
69
|
+
const common = await git(['rev-parse', '--path-format=absolute', '--git-common-dir'], repository, environment, signal);
|
|
70
|
+
const seen = new Set();
|
|
71
|
+
for (const record of records) {
|
|
72
|
+
signal.throwIfAborted();
|
|
73
|
+
const fields = record.split('\0');
|
|
74
|
+
if (fields.length < 3 || fields.length > 4 || !fields[0]?.startsWith('worktree ')
|
|
75
|
+
|| !fields[1]?.startsWith('HEAD ') || !COMMIT.test(fields[1].slice(5))) {
|
|
76
|
+
throw new Error('source baseline worktree listing has malformed records');
|
|
77
|
+
}
|
|
78
|
+
const path = fields[0].slice('worktree '.length), state = fields[2];
|
|
79
|
+
if (!isAbsolute(path) || resolve(path) !== path || await realpath(path) !== path || seen.has(path)
|
|
80
|
+
|| (fields[3] !== undefined && !fields[3].startsWith('locked '))) {
|
|
81
|
+
throw new Error('source baseline worktree path or state is unsafe');
|
|
82
|
+
}
|
|
83
|
+
seen.add(path);
|
|
84
|
+
if (await git(['rev-parse', '--show-toplevel'], path, environment, signal) !== path
|
|
85
|
+
|| await git(['rev-parse', '--path-format=absolute', '--git-common-dir'], path, environment, signal) !== common) {
|
|
86
|
+
throw new Error('source baseline worktree changed identity');
|
|
87
|
+
}
|
|
88
|
+
if (state.startsWith('branch ')) {
|
|
89
|
+
const listed = state.slice('branch '.length);
|
|
90
|
+
if (!listed.startsWith('refs/') || listed.includes('\n') || listed.includes('\0')) {
|
|
91
|
+
throw new Error('source baseline worktree branch is malformed');
|
|
92
|
+
}
|
|
93
|
+
const resolved = await git(['symbolic-ref', 'HEAD'], path, environment, signal);
|
|
94
|
+
if (resolved !== listed)
|
|
95
|
+
throw new Error('source baseline worktree HEAD changed during inspection');
|
|
96
|
+
if (resolved === managedRef)
|
|
97
|
+
throw new Error('source baseline managed ref is checked out by a worktree');
|
|
98
|
+
}
|
|
99
|
+
else if (state === 'detached') {
|
|
100
|
+
if (await git(['rev-parse', '--symbolic-full-name', 'HEAD'], path, environment, signal) !== 'HEAD') {
|
|
101
|
+
throw new Error('source baseline detached worktree HEAD changed during inspection');
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else
|
|
105
|
+
throw new Error('source baseline worktree state is unsafe');
|
|
106
|
+
}
|
|
107
|
+
if (!seen.has(repository))
|
|
108
|
+
throw new Error('source baseline repository is missing from its worktree list');
|
|
109
|
+
}
|
|
110
|
+
async function canonicalBareRemote(remote, environment, signal) {
|
|
111
|
+
if (await realpath(remote) !== remote)
|
|
112
|
+
throw new Error('source baseline remote is not canonical');
|
|
113
|
+
const stat = await lstat(remote, { bigint: true }), uid = process.getuid?.();
|
|
114
|
+
if (!stat.isDirectory() || (stat.mode & 63n) !== 0n
|
|
115
|
+
|| (uid !== undefined && stat.uid !== 0n && stat.uid !== BigInt(uid))) {
|
|
116
|
+
throw new Error('source baseline remote is not a private directory');
|
|
117
|
+
}
|
|
118
|
+
for (const forbidden of ['objects/info/alternates', 'objects/info/http-alternates']) {
|
|
119
|
+
try {
|
|
120
|
+
await lstat(join(remote, forbidden));
|
|
121
|
+
throw new Error('source baseline remote has external object alternates');
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
if (error.code !== 'ENOENT')
|
|
125
|
+
throw error;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (await git(['rev-parse', '--is-bare-repository'], remote, environment, signal) !== 'true'
|
|
129
|
+
|| await git(['rev-parse', '--show-object-format=storage'], remote, environment, signal) !== 'sha1') {
|
|
130
|
+
throw new Error('source baseline remote is not a SHA-1 bare repository');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
async function trustedChain(input) {
|
|
134
|
+
const { repository, config, trust, history, maintenance } = input;
|
|
135
|
+
if (history.length > 1024)
|
|
136
|
+
throw new Error('source baseline release history exceeds bound');
|
|
137
|
+
for (const { plan, operation } of history) {
|
|
138
|
+
input.signal.throwIfAborted();
|
|
139
|
+
const request = operation.request, receipt = operation.receipt;
|
|
140
|
+
if (plan.status !== 'release-complete' || plan.repository !== repository || plan.release?.id !== request.release.id
|
|
141
|
+
|| plan.release.fence !== request.release.fence || operation.status !== 'applied' || operation.phase !== 'merge'
|
|
142
|
+
|| request.phase !== 'merge' || !receipt || receipt.phase !== 'merge' || receipt.outcome !== 'passed'
|
|
143
|
+
|| receipt.evidence.kind !== 'merge' || operation.planId !== plan.id || operation.operationId !== request.operationId
|
|
144
|
+
|| operation.requestDigest !== receipt.requestDigest || operation.fence !== request.release.fence
|
|
145
|
+
|| request.plan.id !== plan.id || request.plan.digest !== plan.digest || request.plan.revision > plan.revision
|
|
146
|
+
|| request.installationId !== trust.installationId || controlPlaneDigest(request.ledger) !== controlPlaneDigest(trust.ledger)
|
|
147
|
+
|| request.requestedAt !== operation.createdAt || !Number.isSafeInteger(operation.completedAt)
|
|
148
|
+
|| !Number.isSafeInteger(operation.appliedAt) || operation.completedAt < receipt.observedAt
|
|
149
|
+
|| operation.appliedAt < operation.completedAt
|
|
150
|
+
|| request.input.targetBranch !== config.targetBranch || receipt.evidence.targetBranch !== config.targetBranch
|
|
151
|
+
|| !COMMIT.test(plan.baseCommit) || !COMMIT.test(receipt.evidence.mergeCommit)) {
|
|
152
|
+
throw new Error('source baseline history contains an unbound or incomplete merge');
|
|
153
|
+
}
|
|
154
|
+
const key = resolveTrustKey(trust, 'release', receipt.authority, receipt.keyId);
|
|
155
|
+
const verifier = new Ed25519SourceReleaseAuthority(key.publicKeyPem, key.authority, key.keyId, () => receipt.observedAt);
|
|
156
|
+
await verifier.verify(receipt, { ...plan, revision: request.plan.revision }, request);
|
|
157
|
+
}
|
|
158
|
+
if (maintenance.length) {
|
|
159
|
+
const first = maintenance[0];
|
|
160
|
+
const key = resolveTrustKey(trust, 'host-attestation', first.authority, first.keyId);
|
|
161
|
+
verifySourceMaintenanceRecords(maintenance, { installationId: trust.installationId, ledger: trust.ledger,
|
|
162
|
+
repository, baseline: config, hostIdentity: key });
|
|
163
|
+
}
|
|
164
|
+
return sourceBaselineChain(config, history, maintenance);
|
|
165
|
+
}
|
|
166
|
+
/** Historical receipts are verified at their signed observation time. */
|
|
167
|
+
export async function verifySourceBaselineHistory(input) {
|
|
168
|
+
return trustedChain(input);
|
|
169
|
+
}
|
|
170
|
+
/** Advance only an owner-pinned private Git ref; never touch HEAD, index, or worktree. */
|
|
171
|
+
export async function resolveSourceBaseline(input) {
|
|
172
|
+
validateSourceBaselineConfig(input.config);
|
|
173
|
+
const { repository, config } = input, signal = AbortSignal.any([input.signal, AbortSignal.timeout(30_000)]);
|
|
174
|
+
const environment = gitEnvironment(input.environment);
|
|
175
|
+
const current = async () => {
|
|
176
|
+
signal.throwIfAborted();
|
|
177
|
+
await new Promise((resolvePromise, reject) => {
|
|
178
|
+
const cancel = () => reject(signal.reason);
|
|
179
|
+
signal.addEventListener('abort', cancel, { once: true });
|
|
180
|
+
Promise.resolve().then(input.assertCurrent).then(() => {
|
|
181
|
+
signal.removeEventListener('abort', cancel);
|
|
182
|
+
resolvePromise();
|
|
183
|
+
}, error => { signal.removeEventListener('abort', cancel); reject(error); });
|
|
184
|
+
});
|
|
185
|
+
signal.throwIfAborted();
|
|
186
|
+
};
|
|
187
|
+
await current();
|
|
188
|
+
await canonicalRepository(repository, environment, signal);
|
|
189
|
+
await canonicalBareRemote(config.remote, environment, signal);
|
|
190
|
+
const history = input.readHistory(), maintenance = input.readMaintenance?.() ?? [];
|
|
191
|
+
const historyDigest = controlPlaneDigest({ history, maintenance });
|
|
192
|
+
const trustDigest = controlPlaneDigest(input.trust);
|
|
193
|
+
const chain = await trustedChain({ repository, config, trust: input.trust, history, maintenance, signal });
|
|
194
|
+
const final = chain.at(-1);
|
|
195
|
+
const remoteRef = `refs/heads/${config.targetBranch}`;
|
|
196
|
+
const verifyState = async () => {
|
|
197
|
+
await current();
|
|
198
|
+
if (controlPlaneDigest({ history: input.readHistory(), maintenance: input.readMaintenance?.() ?? [] }) !== historyDigest
|
|
199
|
+
|| controlPlaneDigest(input.trust) !== trustDigest) {
|
|
200
|
+
throw new Error('source baseline authority changed during synchronization');
|
|
201
|
+
}
|
|
202
|
+
await canonicalRepository(repository, environment, signal);
|
|
203
|
+
await assertNoCheckedOutManagedRef(repository, config.ref, environment, signal);
|
|
204
|
+
await canonicalBareRemote(config.remote, environment, signal);
|
|
205
|
+
if (await directRef(config.remote, remoteRef, environment, signal) !== final) {
|
|
206
|
+
throw new Error('source baseline bare branch does not match signed release history');
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
await verifyState();
|
|
210
|
+
let present = await directRef(repository, config.ref, environment, signal);
|
|
211
|
+
if (present !== undefined && !chain.includes(present))
|
|
212
|
+
throw new Error('source baseline managed ref diverged from signed history');
|
|
213
|
+
// An explicit SHA fetch imports only the known target object; it never
|
|
214
|
+
// writes FETCH_HEAD, tags, tracking refs, HEAD, the index, or the worktree.
|
|
215
|
+
await git(['fetch', '--no-tags', '--no-write-fetch-head', '--no-recurse-submodules', '--no-auto-gc',
|
|
216
|
+
config.remote, final], repository, environment, signal);
|
|
217
|
+
if (await git(['cat-file', '-t', final], repository, environment, signal) !== 'commit') {
|
|
218
|
+
throw new Error('source baseline target object is not a commit');
|
|
219
|
+
}
|
|
220
|
+
for (let index = 0; index < chain.length - 1; index++) {
|
|
221
|
+
await git(['merge-base', '--is-ancestor', chain[index], chain[index + 1]], repository, environment, signal);
|
|
222
|
+
}
|
|
223
|
+
await verifyState();
|
|
224
|
+
for (let index = present === undefined ? 0 : chain.indexOf(present) + 1; index < chain.length; index++) {
|
|
225
|
+
const target = chain[index], expected = index === 0 ? ZERO : chain[index - 1];
|
|
226
|
+
await verifyState();
|
|
227
|
+
if (await directRef(repository, config.ref, environment, signal) !== (index === 0 ? undefined : expected)) {
|
|
228
|
+
if (await directRef(repository, config.ref, environment, signal) === final)
|
|
229
|
+
break;
|
|
230
|
+
throw new Error('source baseline managed ref changed before CAS');
|
|
231
|
+
}
|
|
232
|
+
await assertNoCheckedOutManagedRef(repository, config.ref, environment, signal);
|
|
233
|
+
try {
|
|
234
|
+
await git(['update-ref', '--no-deref', '-m', 'dsh signed source baseline', config.ref, target, expected], repository, environment, signal);
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
if (await directRef(repository, config.ref, environment, signal) !== final)
|
|
238
|
+
throw error;
|
|
239
|
+
break;
|
|
240
|
+
}
|
|
241
|
+
present = target;
|
|
242
|
+
await verifyState();
|
|
243
|
+
}
|
|
244
|
+
await verifyState();
|
|
245
|
+
if (await directRef(repository, config.ref, environment, signal) !== final) {
|
|
246
|
+
throw new Error('source baseline managed ref did not reach signed target');
|
|
247
|
+
}
|
|
248
|
+
return final;
|
|
249
|
+
}
|
|
250
|
+
//# sourceMappingURL=source-baseline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-baseline.js","sourceRoot":"","sources":["../src/source-baseline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACrD,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAiC,MAAM,YAAY,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAC5B,MAAM,yBAAyB,CAAA;AAG/D,MAAM,MAAM,GAAG,iBAAiB,CAAA;AAChC,MAAM,IAAI,GAAG,kCAAkC,CAAA;AAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAC3B,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,0BAA0B,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,4BAA4B;IACpH,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,8BAA8B,CAAU,CAAA;AASnE,MAAM,UAAU,4BAA4B,CAAC,KAAc;IACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC5H,MAAM,IAAI,GAAG,KAAgC,CAAA;IAC7C,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1F,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;WAC3G,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,mBAAmB,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;WAC9G,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM;WACnG,OAAO,IAAI,CAAC,YAAY,KAAK,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;WACvG,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,YAA+B;IACrD,wEAAwE;IACxE,iEAAiE;IACjE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,iBAAiB,EAAE,WAAW;QACvF,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,EAAE,kBAAkB,EAAE,MAAM;QACjF,sBAAsB,EAAE,GAAG,EAAE,mBAAmB,EAAE,GAAG,EAAE,iBAAiB,EAAE,GAAG;QAC7E,mBAAmB,EAAE,GAAG,EAAE,CAAA;AAC9B,CAAC;AAED,KAAK,UAAU,GAAG,CAAC,IAAuB,EAAE,GAAW,EAAE,WAA8B,EAAE,MAAmB;IAC1G,MAAM,CAAC,cAAc,EAAE,CAAA;IACvB,OAAO,CAAC,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,EAC7E,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;AACnF,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,GAAW,EAAE,WAA8B,EAAE,MAAmB;IACpG,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,cAAc,EAAE,iDAAiD,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IAC5H,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,SAAS,CAAA;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IACtF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC7F,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAA;AAClB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,WAA8B,EAAE,MAAmB;IACxG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,UAAU,IAAI,MAAM,QAAQ,CAAC,UAAU,CAAC,KAAK,UAAU,EAAE,CAAC;QAC/G,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAA;IAChE,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,UAAU;WAC1F,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,sBAAsB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,OAAO;WAC7F,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,8BAA8B,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;QAC1G,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;IACjF,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,KAAK,UAAU,4BAA4B,CAAC,UAAkB,EAAE,UAAkB,EAChF,WAA8B,EAAE,MAAmB;IACnD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACrG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAC/F,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;IAClH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACtH,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,cAAc,EAAE,CAAA;QACvB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACjC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;eAC5E,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAA;QAC3E,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAA;QACpE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;eAC7F,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAA;QACrE,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACd,IAAI,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,IAAI;eAC9E,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,wBAAwB,EAAE,kBAAkB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;YAClH,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;YAC5C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClF,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;YACjE,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;YAC/E,IAAI,QAAQ,KAAK,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;YACnG,IAAI,QAAQ,KAAK,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;QAC1G,CAAC;aAAM,IAAI,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,IAAI,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,sBAAsB,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;gBACnG,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;YACrF,CAAC;QACH,CAAC;;YAAM,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IACpE,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;AAC5G,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,MAAc,EAAE,WAA8B,EAAE,MAAmB;IACpG,IAAI,MAAM,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IACjG,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAA;IAC5E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,GAAM,CAAC,KAAK,EAAE;WACjD,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,EAAE,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAA;IACtE,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,CAAC,yBAAyB,EAAE,8BAA8B,CAAC,EAAE,CAAC;QACpF,IAAI,CAAC;YAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;QAAC,CAAC;QACtH,OAAO,KAAK,EAAE,CAAC;YAAC,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ;gBAAE,MAAM,KAAK,CAAA;QAAC,CAAC;IACvF,CAAC;IACD,IAAI,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,sBAAsB,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,MAAM;WACvF,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,8BAA8B,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;QACtG,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;IAC1E,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAE4C;IACtE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IACjE,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAC3F,KAAK,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,OAAO,EAAE,CAAC;QAC1C,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;QAC7B,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;QAC9D,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,EAAE;eAC9G,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC,MAAM,KAAK,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO;eAC7G,OAAO,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;eAClG,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,IAAI,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,IAAI,SAAS,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW;eAClH,SAAS,CAAC,aAAa,KAAK,OAAO,CAAC,aAAa,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,KAAK;eAC9F,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;eAC3G,OAAO,CAAC,cAAc,KAAK,KAAK,CAAC,cAAc,IAAI,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC;eAC1H,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC;eAC3F,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,WAAY,GAAG,OAAO,CAAC,UAAU;eACzF,SAAS,CAAC,SAAU,GAAG,SAAS,CAAC,WAAY;eAC7C,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY;eAC3G,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACjF,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA;QACpF,CAAC;QACD,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC/E,MAAM,QAAQ,GAAG,IAAI,6BAA6B,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACxH,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAA;IACvF,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAE,CAAA;QAC7B,MAAM,GAAG,GAAG,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAA;QACpF,8BAA8B,CAAC,WAAW,EAAE,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM;YACtG,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;AAC1D,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAEsB;IACtE,OAAO,YAAY,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC;AAED,0FAA0F;AAC1F,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,KAIT;IACjC,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC3G,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IACrD,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,MAAM,CAAC,cAAc,EAAE,CAAA;QACvB,MAAM,IAAI,OAAO,CAAO,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE;YACjD,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAC1C,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACxD,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpD,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAAC,cAAc,EAAE,CAAA;YAC/D,CAAC,EAAE,KAAK,CAAC,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,cAAc,EAAE,CAAA;IACzB,CAAC,CAAA;IACD,MAAM,OAAO,EAAE,CAAA;IACf,MAAM,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IAC1D,MAAM,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IAC7D,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,EAAE,WAAW,GAAG,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAA;IAClF,MAAM,aAAa,GAAG,kBAAkB,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;IAClE,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;IAC1G,MAAM,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAA;IAC3B,MAAM,SAAS,GAAG,cAAc,MAAM,CAAC,YAAY,EAAE,CAAA;IACrD,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;QAC5C,MAAM,OAAO,EAAE,CAAA;QACf,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,eAAe,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,aAAa;eACnH,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;QAC7E,CAAC;QACD,MAAM,mBAAmB,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QAC1D,MAAM,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QAC/E,MAAM,mBAAmB,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QAC7D,IAAI,MAAM,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;YAC7E,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;QACtF,CAAC;IACH,CAAC,CAAA;IACD,MAAM,WAAW,EAAE,CAAA;IACnB,IAAI,OAAO,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IAC1E,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAClI,uEAAuE;IACvE,4EAA4E;IAC5E,MAAM,GAAG,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,cAAc;QACjG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACzD,IAAI,MAAM,GAAG,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QACvF,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;IAClE,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;QACtD,MAAM,GAAG,CAAC,CAAC,YAAY,EAAE,eAAe,EAAE,KAAK,CAAC,KAAK,CAAE,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IAC/G,CAAC;IACD,MAAM,WAAW,EAAE,CAAA;IACnB,KAAK,IAAI,KAAK,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACvG,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAE,EAAE,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAE,CAAA;QAC/E,MAAM,WAAW,EAAE,CAAA;QACnB,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1G,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,KAAK;gBAAE,MAAK;YACjF,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAA;QACnE,CAAC;QACD,MAAM,4BAA4B,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QAC/E,IAAI,CAAC;YAAC,MAAM,GAAG,CAAC,CAAC,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,4BAA4B,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QAAC,CAAC;QAClJ,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,KAAK;gBAAE,MAAM,KAAK,CAAA;YACvF,MAAK;QACP,CAAC;QACD,OAAO,GAAG,MAAM,CAAA;QAChB,MAAM,WAAW,EAAE,CAAA;IACrB,CAAC;IACD,MAAM,WAAW,EAAE,CAAA;IACnB,IAAI,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC"}
|
package/lib/source-build.d.ts
CHANGED
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { type SourceRevisionBinding } from './source-revision.js';
|
|
2
|
+
import type { CreationCapabilitySourceSnapshot } from './creation-capability-source.js';
|
|
3
|
+
import type { PluginCreationVerificationCertificate } from '@dsh-enhanced/assistant-growth-contract';
|
|
4
|
+
import { type SourceCreationBinding } from './source-creation.js';
|
|
1
5
|
import type { SourcePreparedEvidence } from './types.js';
|
|
2
6
|
export interface SourceBuildConfig {
|
|
3
7
|
/** Canonical owner-controlled docker client. */
|
|
@@ -27,9 +31,11 @@ export interface SourceBuildResult {
|
|
|
27
31
|
patchDigest: string;
|
|
28
32
|
checkedAt: number;
|
|
29
33
|
evidence: SourcePreparedEvidence;
|
|
34
|
+
/** Host-only bytes from the same verified in-container pack read. Never persisted in source evidence. */
|
|
35
|
+
packArtifact?: Buffer;
|
|
30
36
|
}
|
|
31
37
|
/** Exact in-container command recorded in prepared source evidence. */
|
|
32
|
-
export declare const PREPARED_SOURCE_BUILD_SCRIPT
|
|
38
|
+
export declare const PREPARED_SOURCE_BUILD_SCRIPT: string;
|
|
33
39
|
export declare function validateSourceBuildConfig(config: SourceBuildConfig): void;
|
|
34
40
|
/**
|
|
35
41
|
* Archive an exact temporary-index tree into a disposable, mount-free Docker
|
|
@@ -51,6 +57,16 @@ export declare function runDockerPreparedChecks(input: {
|
|
|
51
57
|
id: string;
|
|
52
58
|
containerName: string;
|
|
53
59
|
};
|
|
60
|
+
/** Frozen owner grant and generator proof for Host-scaffolded creation only. */
|
|
61
|
+
creation?: SourceCreationBinding;
|
|
62
|
+
revision?: {
|
|
63
|
+
binding: SourceRevisionBinding;
|
|
64
|
+
parentSource: CreationCapabilitySourceSnapshot;
|
|
65
|
+
parentCertificate: PluginCreationVerificationCertificate;
|
|
66
|
+
files: readonly import('./source-workspace.js').ScopedPluginFile[];
|
|
67
|
+
};
|
|
68
|
+
/** Host-only request to return the exact already-verified pack bytes for independent verification. */
|
|
69
|
+
capturePack?: true;
|
|
54
70
|
}): Promise<SourceBuildResult>;
|
|
55
71
|
/** Reconcile only a labeled, image-bound durable container, then prove absence. */
|
|
56
72
|
export declare function removeSourceJobContainer(config: SourceBuildConfig, job: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-build.d.ts","sourceRoot":"","sources":["../src/source-build.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source-build.d.ts","sourceRoot":"","sources":["../src/source-build.ts"],"names":[],"mappings":"AAMA,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAC/F,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,iCAAiC,CAAA;AACvF,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,yCAAyC,CAAA;AACpG,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AAE/F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAExD,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAA;IAClB,gFAAgF;IAChF,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,iFAAiF;IACjF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,sEAAsE;IACtE,OAAO,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;IACnC,0FAA0F;IAC1F,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;iFAC6E;IAC7E,iBAAiB,CAAC,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5C;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,sBAAsB,CAAA;IAChC,yGAAyG;IACzG,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AASD,uEAAuE;AACvE,eAAO,MAAM,4BAA4B,QAsaxC,CAAA;AAYD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CA2BzE;AAiDD;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,MAAM,EAAE,iBAAiB,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACxB,WAAW,EAAE,MAAM,CAAC,UAAU,CAAA;IAC9B,MAAM,EAAE,WAAW,CAAA;IACnB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,UAAU,EAAE,MAAM,CAAA;IAClB,kEAAkE;IAClE,SAAS,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAA;IACjD,gFAAgF;IAChF,QAAQ,CAAC,EAAE,qBAAqB,CAAA;IAChC,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,qBAAqB,CAAC;QAAC,YAAY,EAAE,gCAAgC,CAAC;QAAC,iBAAiB,EAAE,qCAAqC,CAAC;QAAC,KAAK,EAAE,SAAS,OAAO,uBAAuB,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAA;IAC3N,sGAAsG;IACtG,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAgK7B;AAED,mFAAmF;AACnF,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBnI"}
|