gate-evm-tools 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-runtime/delivery/development-inputs.d.ts +14 -0
- package/dist-runtime/delivery/development-inputs.js +76 -0
- package/dist-runtime/delivery/development-inputs.js.map +1 -0
- package/dist-runtime/delivery/development.d.ts +1 -0
- package/dist-runtime/delivery/development.js +3 -0
- package/dist-runtime/delivery/development.js.map +1 -1
- package/dist-runtime/delivery/history-package.d.ts +2 -0
- package/dist-runtime/delivery/history-package.js +70 -0
- package/dist-runtime/delivery/history-package.js.map +1 -0
- package/dist-runtime/delivery/release-history-capture.js +22 -26
- package/dist-runtime/delivery/release-history-capture.js.map +1 -1
- package/dist-runtime/delivery/release-history.d.ts +2 -1
- package/dist-runtime/delivery/release-history.js +11 -40
- package/dist-runtime/delivery/release-history.js.map +1 -1
- package/dist-runtime/runtime-identity.json +2 -2
- package/docs/delivery-release.md +17 -1
- package/package.json +1 -1
- package/runtime/delivery/development-inputs.ts +42 -0
- package/runtime/delivery/development.ts +1 -0
- package/runtime/delivery/history-package.ts +50 -0
- package/runtime/delivery/release-history-capture.ts +19 -9
- package/runtime/delivery/release-history.ts +12 -16
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { DeliveryAggregate, DeliveryAggregateOptions } from './aggregate';
|
|
2
|
+
/** Publish complete bytes without replacing another writer's immutable file. */
|
|
3
|
+
export declare function writeImmutableDeliveryFile(root: string, relative: string, bytes: Buffer): {
|
|
4
|
+
path: string;
|
|
5
|
+
sha256: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function persistDevelopmentInputs(input: {
|
|
8
|
+
root: string;
|
|
9
|
+
source: DeliveryAggregateOptions;
|
|
10
|
+
aggregate: DeliveryAggregate;
|
|
11
|
+
}): {
|
|
12
|
+
sourcePath: string;
|
|
13
|
+
aggregatePath: string;
|
|
14
|
+
};
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.writeImmutableDeliveryFile = writeImmutableDeliveryFile;
|
|
7
|
+
exports.persistDevelopmentInputs = persistDevelopmentInputs;
|
|
8
|
+
/** One immutable copy of the original development preparation, reused by release history. */
|
|
9
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
10
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
11
|
+
const node_crypto_1 = require("node:crypto");
|
|
12
|
+
const canonicalData_1 = require("../workflow/lib/canonicalData");
|
|
13
|
+
const materialization_1 = require("./materialization");
|
|
14
|
+
const input_files_1 = require("./input-files");
|
|
15
|
+
const project_files_1 = require("./project-files");
|
|
16
|
+
const plan_1 = require("./plan");
|
|
17
|
+
const protocol_1 = require("./protocol");
|
|
18
|
+
/** Publish complete bytes without replacing another writer's immutable file. */
|
|
19
|
+
function writeImmutableDeliveryFile(root, relative, bytes) {
|
|
20
|
+
const file = (0, materialization_1.developmentPath)(root, relative);
|
|
21
|
+
const existing = () => { if (!(0, input_files_1.readInputBytes)(root, relative).equals(bytes))
|
|
22
|
+
throw Error(`Immutable delivery file conflict: ${relative}`); };
|
|
23
|
+
if (node_fs_1.default.existsSync(file)) {
|
|
24
|
+
existing();
|
|
25
|
+
return { path: relative, sha256: (0, materialization_1.byteHash)(bytes) };
|
|
26
|
+
}
|
|
27
|
+
node_fs_1.default.mkdirSync(node_path_1.default.dirname(file), { recursive: true, mode: 0o700 });
|
|
28
|
+
const temporary = `${file}.${(0, node_crypto_1.randomUUID)()}.tmp`, fd = node_fs_1.default.openSync(temporary, 'wx', 0o600);
|
|
29
|
+
try {
|
|
30
|
+
node_fs_1.default.writeFileSync(fd, bytes);
|
|
31
|
+
node_fs_1.default.fsyncSync(fd);
|
|
32
|
+
}
|
|
33
|
+
finally {
|
|
34
|
+
node_fs_1.default.closeSync(fd);
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
try {
|
|
38
|
+
node_fs_1.default.linkSync(temporary, file);
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
if (error.code !== 'EEXIST')
|
|
42
|
+
throw error;
|
|
43
|
+
existing();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
finally {
|
|
47
|
+
node_fs_1.default.unlinkSync(temporary);
|
|
48
|
+
}
|
|
49
|
+
const directory = node_fs_1.default.openSync(node_path_1.default.dirname(file), 'r');
|
|
50
|
+
try {
|
|
51
|
+
node_fs_1.default.fsyncSync(directory);
|
|
52
|
+
}
|
|
53
|
+
finally {
|
|
54
|
+
node_fs_1.default.closeSync(directory);
|
|
55
|
+
}
|
|
56
|
+
return { path: relative, sha256: (0, materialization_1.byteHash)(bytes) };
|
|
57
|
+
}
|
|
58
|
+
function persistDevelopmentInputs(input) {
|
|
59
|
+
const root = node_fs_1.default.realpathSync(input.root), { source, aggregate } = input, plan = (0, plan_1.parseDeliveryPlan)(aggregate.collections[0]?.plan);
|
|
60
|
+
if (source.selection !== 'development' || source.targets.length !== 1 || aggregate.collections.length !== 1 || plan.environment !== 'dev'
|
|
61
|
+
|| (0, project_files_1.projectRoot)(source.workspaceRoot, source.projectRoot) !== root || source.targets[0].executionId !== plan.executionId || source.targets[0].request.network !== plan.target)
|
|
62
|
+
throw Error('Development inputs require the original single-target preparation');
|
|
63
|
+
const id = (0, protocol_1.safeId)(plan.executionId, 'executionId'), base = `.gate-delivery/development/${id}`;
|
|
64
|
+
const sourcePath = `${base}.source.json`, aggregatePath = `${base}.aggregate.json`;
|
|
65
|
+
// Check both existing inputs before publishing either file.
|
|
66
|
+
const entries = [[sourcePath, source], [aggregatePath, aggregate]];
|
|
67
|
+
for (const [file, value] of entries)
|
|
68
|
+
if (node_fs_1.default.existsSync((0, materialization_1.developmentPath)(root, file)) && (0, canonicalData_1.canonicalJson)(JSON.parse((0, input_files_1.readInputBytes)(root, file).toString())) !== (0, canonicalData_1.canonicalJson)(value))
|
|
69
|
+
throw Error(`Immutable delivery file conflict: ${file}`);
|
|
70
|
+
// Existing preparation bytes remain authoritative, including their original JSON formatting.
|
|
71
|
+
for (const [file, value] of entries)
|
|
72
|
+
if (!node_fs_1.default.existsSync((0, materialization_1.developmentPath)(root, file)))
|
|
73
|
+
writeImmutableDeliveryFile(root, file, Buffer.from((0, canonicalData_1.canonicalJson)(value) + '\n'));
|
|
74
|
+
return { sourcePath, aggregatePath };
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=development-inputs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"development-inputs.js","sourceRoot":"","sources":["../../runtime/delivery/development-inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ import type { DeploymentChange } from '../workflow/lib/deploymentRecords';
|
|
|
7
7
|
import { type PreparationEntry } from './journal';
|
|
8
8
|
import type { DeliveryCollection } from './planning';
|
|
9
9
|
import type { DeliveryAggregate, DeliveryAggregateOptions } from './aggregate';
|
|
10
|
+
export { persistDevelopmentInputs } from './development-inputs';
|
|
10
11
|
import { type EoaExecutionOptions, type EoaHashReferences } from './eoa';
|
|
11
12
|
export declare function expectedDevelopmentAssertions(collection: Pick<DeliveryCollection, 'plan' | 'verification'>, steps: readonly WorkflowStep[]): VerificationObservation[];
|
|
12
13
|
/** Pure candidate merge; preparations must come from the sealed journal parser. */
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.persistDevelopmentInputs = void 0;
|
|
6
7
|
exports.expectedDevelopmentAssertions = expectedDevelopmentAssertions;
|
|
7
8
|
exports.mergeDevelopmentRegistration = mergeDevelopmentRegistration;
|
|
8
9
|
exports.createDevelopmentDelivery = createDevelopmentDelivery;
|
|
@@ -27,6 +28,8 @@ const verification_1 = require("./verification");
|
|
|
27
28
|
const plan_1 = require("./plan");
|
|
28
29
|
const identities_1 = require("./identities");
|
|
29
30
|
const journal_1 = require("./journal");
|
|
31
|
+
var development_inputs_1 = require("./development-inputs");
|
|
32
|
+
Object.defineProperty(exports, "persistDevelopmentInputs", { enumerable: true, get: function () { return development_inputs_1.persistDevelopmentInputs; } });
|
|
30
33
|
const aggregate_inputs_1 = require("./aggregate-inputs");
|
|
31
34
|
const config_1 = require("./config");
|
|
32
35
|
const input_files_1 = require("./input-files");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"development.js","sourceRoot":"","sources":["../../runtime/delivery/development.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"development.js","sourceRoot":"","sources":["../../runtime/delivery/development.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.readHistoricalPackage = readHistoricalPackage;
|
|
4
|
+
/** Verify retained producer bytes in memory. Historical code is never extracted or executed. */
|
|
5
|
+
const node_crypto_1 = require("node:crypto");
|
|
6
|
+
const node_zlib_1 = require("node:zlib");
|
|
7
|
+
const materialization_1 = require("./materialization");
|
|
8
|
+
const protocol_1 = require("./protocol");
|
|
9
|
+
const canonicalData_1 = require("../workflow/lib/canonicalData");
|
|
10
|
+
function readHistoricalPackage(archive, archiveFile, aggregate) {
|
|
11
|
+
if (archiveFile !== `.gate-delivery/packages/${(0, materialization_1.byteHash)(archive)}.json.gz`)
|
|
12
|
+
throw Error('Historical archive content address mismatch');
|
|
13
|
+
const snapshot = (0, protocol_1.object)(JSON.parse((0, node_zlib_1.gunzipSync)(archive, { maxOutputLength: 128 * 1024 * 1024 }).toString()), 'historical package snapshot', ['schema', 'version', 'runtimeIdentity', 'observedPackage', 'files']);
|
|
14
|
+
if (snapshot.schema !== 'gate-delivery-package-snapshot' || snapshot.version !== 2 || !Array.isArray(snapshot.files))
|
|
15
|
+
throw Error('Invalid historical package snapshot archive');
|
|
16
|
+
const original = aggregate.inputs.runtime.package;
|
|
17
|
+
const same = (a, b, label) => { if ((0, canonicalData_1.canonicalJson)(a) !== (0, canonicalData_1.canonicalJson)(b))
|
|
18
|
+
throw Error(`${label} mismatch`); };
|
|
19
|
+
same(snapshot.observedPackage, original, 'Historical snapshot provenance');
|
|
20
|
+
same(snapshot.runtimeIdentity, aggregate.inputs.runtime.declared, 'Historical snapshot runtime');
|
|
21
|
+
const files = new Map();
|
|
22
|
+
for (const raw of snapshot.files) {
|
|
23
|
+
const file = (0, protocol_1.object)(raw, 'historical package member', ['path', 'digest', 'base64']), relative = (0, protocol_1.portablePath)(file.path, 'historical package member');
|
|
24
|
+
if (relative.split('/').includes('node_modules') || files.has(relative) || typeof file.base64 !== 'string')
|
|
25
|
+
throw Error('Invalid historical package member');
|
|
26
|
+
const bytes = Buffer.from(file.base64, 'base64');
|
|
27
|
+
if (bytes.toString('base64') !== file.base64 || (0, materialization_1.byteHash)(bytes) !== file.digest)
|
|
28
|
+
throw Error('Historical snapshot archive bytes mismatch');
|
|
29
|
+
files.set(relative, bytes);
|
|
30
|
+
}
|
|
31
|
+
const payload = [...files].map(([path, bytes]) => ({ path, digest: (0, materialization_1.byteHash)(bytes) }));
|
|
32
|
+
same(payload, original.payload, 'Historical archive complete payload');
|
|
33
|
+
same((0, materialization_1.byteHash)(payload.map(f => `${f.path}\0${f.digest}\n`).join('')), original.payloadDigest, 'Historical payload digest');
|
|
34
|
+
// Match the producer's sorted directory traversal, including file/directory prefix ordering.
|
|
35
|
+
const children = new Map();
|
|
36
|
+
for (const relative of files.keys()) {
|
|
37
|
+
const parts = relative.split('/');
|
|
38
|
+
let directory = '';
|
|
39
|
+
for (let i = 0; i < parts.length; i++) {
|
|
40
|
+
if (files.has(directory))
|
|
41
|
+
throw Error('Historical package file/directory collision');
|
|
42
|
+
if (!children.has(directory))
|
|
43
|
+
children.set(directory, new Set());
|
|
44
|
+
children.get(directory).add(parts[i]);
|
|
45
|
+
directory = directory ? `${directory}/${parts[i]}` : parts[i];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const digest = (0, node_crypto_1.createHash)('sha256');
|
|
49
|
+
const visit = (directory) => {
|
|
50
|
+
const names = children.get(directory);
|
|
51
|
+
if (!names)
|
|
52
|
+
throw Error('Historical executable directory missing');
|
|
53
|
+
for (const name of [...names].sort()) {
|
|
54
|
+
const relative = `${directory}/${name}`, bytes = files.get(relative);
|
|
55
|
+
if (bytes) {
|
|
56
|
+
if (/\.(?:c?js)$/.test(relative)) {
|
|
57
|
+
digest.update(relative);
|
|
58
|
+
digest.update(bytes);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
else
|
|
62
|
+
visit(relative);
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
for (const directory of ['dist-runtime', 'dist', 'dist-cjs', 'bin'])
|
|
66
|
+
visit(directory);
|
|
67
|
+
same(digest.digest('hex'), aggregate.inputs.runtime.declared.digest, 'Historical executable runtime digest');
|
|
68
|
+
return files;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=history-package.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-package.js","sourceRoot":"","sources":["../../runtime/delivery/history-package.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.captureDevelopmentReleaseHistory = captureDevelopmentReleaseHistory;
|
|
7
|
-
/**
|
|
7
|
+
/** Preserve accepted development inputs and one shared, compressed producer snapshot. */
|
|
8
8
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
9
9
|
const node_path_1 = __importDefault(require("node:path"));
|
|
10
10
|
const node_zlib_1 = require("node:zlib");
|
|
@@ -14,18 +14,29 @@ const materialization_1 = require("./materialization");
|
|
|
14
14
|
const canonicalData_1 = require("../workflow/lib/canonicalData");
|
|
15
15
|
const plan_1 = require("./plan");
|
|
16
16
|
const protocol_1 = require("./protocol");
|
|
17
|
+
const development_inputs_1 = require("./development-inputs");
|
|
17
18
|
function captureDevelopmentReleaseHistory(input) {
|
|
18
19
|
const root = node_fs_1.default.realpathSync(input.root), a = input.aggregate, plan = (0, plan_1.parseDeliveryPlan)(a.collections[0]?.plan);
|
|
19
20
|
if (input.source.selection !== 'development' || a.collections.length !== 1 || plan.environment !== 'dev' || (0, project_files_1.projectRoot)(input.source.workspaceRoot, input.source.projectRoot) !== root)
|
|
20
21
|
throw Error('Historical capture requires original development source');
|
|
21
22
|
(0, protocol_1.safeId)(plan.executionId, 'executionId');
|
|
22
|
-
const base = `.gate-delivery/history/${plan.executionId}`,
|
|
23
|
+
const base = `.gate-delivery/history/${plan.executionId}`, readyFile = `${base}/READY.json`;
|
|
23
24
|
const acceptanceFile = `.gate-delivery/development/${plan.executionId}.acceptance.json`, acceptance = JSON.parse((0, input_files_1.readInputBytes)(root, acceptanceFile).toString());
|
|
24
25
|
if (acceptance.status !== 'accepted' || acceptance.planHash !== plan.planHash || acceptance.inputsHash !== a.inputsHash || (0, canonicalData_1.semanticHash)(acceptance.runtimeIdentity) !== (0, canonicalData_1.semanticHash)(plan.runtimeIdentity))
|
|
25
26
|
throw Error('Historical capture requires actual accepted development');
|
|
26
27
|
const original = a.inputs.runtime.package;
|
|
27
28
|
if (original.name !== 'gate-evm-tools' || original.lockLocation !== 'node_modules/gate-evm-tools')
|
|
28
29
|
throw Error('Unsupported historical producer location');
|
|
30
|
+
// A completed capture can be reused after the installed producer changes.
|
|
31
|
+
if (node_fs_1.default.existsSync((0, materialization_1.developmentPath)(root, readyFile))) {
|
|
32
|
+
const ready = JSON.parse((0, input_files_1.readInputBytes)(root, readyFile).toString());
|
|
33
|
+
if (ready.schema !== 'gate-delivery-history-ready' || ready.version !== 2 || ready.generation !== 'complete' || ready.planHash !== plan.planHash || ready.aggregateHash !== (0, canonicalData_1.semanticHash)(a) || ready.sourceHash !== (0, canonicalData_1.semanticHash)(input.source) || ready.descriptor?.version !== 2 || ready.descriptor.readyFile !== readyFile || !Array.isArray(ready.files) || !ready.files.length)
|
|
34
|
+
throw Error('Conflicting historical capture');
|
|
35
|
+
for (const f of ready.files)
|
|
36
|
+
if ((0, materialization_1.byteHash)((0, input_files_1.readInputBytes)(root, f.path)) !== f.sha256)
|
|
37
|
+
throw Error('Captured historical file drift');
|
|
38
|
+
return ready.descriptor;
|
|
39
|
+
}
|
|
29
40
|
const files = [];
|
|
30
41
|
const visit = (relative) => { const dir = (0, project_files_1.confinedFile)(root, `${original.lockLocation}/${relative}`.replace(/\/$/, ''), 'directory'); for (const name of node_fs_1.default.readdirSync(dir).sort()) {
|
|
31
42
|
const rel = relative ? `${relative}/${name}` : name;
|
|
@@ -44,33 +55,18 @@ function captureDevelopmentReleaseHistory(input) {
|
|
|
44
55
|
files.sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0);
|
|
45
56
|
if ((0, canonicalData_1.semanticHash)(files.map(({ path, digest }) => ({ path, digest }))) !== (0, canonicalData_1.semanticHash)(original.payload))
|
|
46
57
|
throw Error('Historical capture must precede producer/runtime replacement');
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
const ready = JSON.parse((0, input_files_1.readInputBytes)(root, readyPath).toString());
|
|
50
|
-
if (ready.schema !== 'gate-delivery-history-ready' || ready.generation !== 'complete' || ready.planHash !== plan.planHash || ready.aggregateHash !== (0, canonicalData_1.semanticHash)(a))
|
|
51
|
-
throw Error('Conflicting historical capture');
|
|
52
|
-
for (const f of ready.files)
|
|
53
|
-
if ((0, materialization_1.byteHash)((0, input_files_1.readInputBytes)(root, f.path)) !== f.sha256)
|
|
54
|
-
throw Error('Captured historical file drift');
|
|
55
|
-
return descriptor;
|
|
56
|
-
}
|
|
58
|
+
const archive = (0, node_zlib_1.gzipSync)(Buffer.from((0, canonicalData_1.canonicalJson)({ schema: 'gate-delivery-package-snapshot', version: 2, runtimeIdentity: plan.runtimeIdentity, observedPackage: original, files })));
|
|
59
|
+
const archiveFile = `.gate-delivery/packages/${(0, materialization_1.byteHash)(archive)}.json.gz`;
|
|
57
60
|
const saved = [];
|
|
58
|
-
const write = (relative, bytes) =>
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
finally {
|
|
64
|
-
node_fs_1.default.closeSync(fd);
|
|
65
|
-
} saved.push({ path: relative, sha256: (0, materialization_1.byteHash)(bytes) }); };
|
|
66
|
-
for (const file of files)
|
|
67
|
-
write(`${base}/package/${file.path}`, Buffer.from(file.base64, 'base64'));
|
|
61
|
+
const write = (relative, bytes) => saved.push((0, development_inputs_1.writeImmutableDeliveryFile)(root, relative, bytes));
|
|
62
|
+
const { sourcePath: sourceFile, aggregatePath: aggregateFile } = (0, development_inputs_1.persistDevelopmentInputs)(input);
|
|
63
|
+
const descriptor = { version: 2, aggregateFile, sourceFile, acceptanceFile, readyFile, inputsRoot: `${base}/inputs`, archiveFile };
|
|
64
|
+
for (const relative of [sourceFile, aggregateFile, acceptanceFile])
|
|
65
|
+
saved.push({ path: relative, sha256: (0, materialization_1.byteHash)((0, input_files_1.readInputBytes)(root, relative)) });
|
|
68
66
|
for (const name of [`${a.inputs.business.businessRoot}/task.yaml`, `${a.inputs.business.businessRoot}/parameters.yaml`, `${a.inputs.business.businessRoot}/parameters.provenance.json`, 'config.yaml', 'hardhat.config.ts', 'package-lock.json', 'contractInfo.json', 'deploymentInfo.json'])
|
|
69
67
|
write(`${base}/inputs/${name}`, (0, input_files_1.readInputBytes)(root, name));
|
|
70
|
-
write(
|
|
71
|
-
|
|
72
|
-
write(descriptor.archiveFile, (0, node_zlib_1.gzipSync)(Buffer.from((0, canonicalData_1.canonicalJson)({ schema: 'gate-delivery-package-snapshot', version: 1, runtimeIdentity: plan.runtimeIdentity, observedPackage: original, files }))));
|
|
73
|
-
(0, materialization_1.atomicDevelopmentWrite)(root, readyPath, (0, canonicalData_1.canonicalJson)({ schema: 'gate-delivery-history-ready', version: 1, generation: 'complete', planHash: plan.planHash, aggregateHash: (0, canonicalData_1.semanticHash)(a), descriptor, files: saved }) + '\n');
|
|
68
|
+
write(archiveFile, archive);
|
|
69
|
+
(0, development_inputs_1.writeImmutableDeliveryFile)(root, readyFile, Buffer.from((0, canonicalData_1.canonicalJson)({ schema: 'gate-delivery-history-ready', version: 2, generation: 'complete', planHash: plan.planHash, aggregateHash: (0, canonicalData_1.semanticHash)(a), sourceHash: (0, canonicalData_1.semanticHash)(input.source), descriptor, files: saved }) + '\n'));
|
|
74
70
|
return descriptor;
|
|
75
71
|
}
|
|
76
72
|
//# sourceMappingURL=release-history-capture.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-history-capture.js","sourceRoot":"","sources":["../../runtime/delivery/release-history-capture.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"release-history-capture.js","sourceRoot":"","sources":["../../runtime/delivery/release-history-capture.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export { aggregateInputHash } from './execution-identity';
|
|
2
2
|
import type { DeliveryAggregate, DeliveryAggregateOptions } from './aggregate';
|
|
3
3
|
export interface HistoricalDevelopmentFiles {
|
|
4
|
+
version: 2;
|
|
4
5
|
aggregateFile: string;
|
|
5
6
|
sourceFile: string;
|
|
6
7
|
acceptanceFile: string;
|
|
7
|
-
|
|
8
|
+
readyFile: string;
|
|
8
9
|
inputsRoot: string;
|
|
9
10
|
archiveFile: string;
|
|
10
11
|
}
|
|
@@ -13,8 +13,6 @@ const execution_identity_1 = require("./execution-identity");
|
|
|
13
13
|
var execution_identity_2 = require("./execution-identity");
|
|
14
14
|
Object.defineProperty(exports, "aggregateInputHash", { enumerable: true, get: function () { return execution_identity_2.aggregateInputHash; } });
|
|
15
15
|
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
-
const node_crypto_1 = require("node:crypto");
|
|
17
|
-
const node_zlib_1 = require("node:zlib");
|
|
18
16
|
const ethers_1 = require("ethers");
|
|
19
17
|
const workflow_1 = require("gate-evm-tools/workflow");
|
|
20
18
|
const input_files_1 = require("./input-files");
|
|
@@ -23,6 +21,7 @@ const source_1 = require("./source");
|
|
|
23
21
|
const configuration_definition_1 = require("./configuration-definition");
|
|
24
22
|
const config_1 = require("./config");
|
|
25
23
|
const protocol_1 = require("./protocol");
|
|
24
|
+
const history_package_1 = require("./history-package");
|
|
26
25
|
const project_1 = require("./project");
|
|
27
26
|
const plan_1 = require("./plan");
|
|
28
27
|
const journal_1 = require("./journal");
|
|
@@ -53,6 +52,9 @@ function validateHistoricalDevelopmentFiles(input) {
|
|
|
53
52
|
const workspace = (0, project_files_1.projectRoot)(input.workspaceRoot, '.'), root = (0, project_files_1.projectRoot)(workspace, input.projectRoot), { history } = input, files = new Map();
|
|
54
53
|
if (node_fs_1.default.realpathSync(input.root) !== root)
|
|
55
54
|
throw Error('Historical current project root mismatch');
|
|
55
|
+
(0, protocol_1.object)(history, 'historical descriptor', ['version', 'aggregateFile', 'sourceFile', 'acceptanceFile', 'readyFile', 'inputsRoot', 'archiveFile']);
|
|
56
|
+
if (history.version !== 2)
|
|
57
|
+
throw Error('Unsupported historical descriptor version');
|
|
56
58
|
const read = (relative) => { const bytes = (0, input_files_1.readInputBytes)(root, relative); files.set(relative, (0, input_files_1.inputDigest)(bytes)); return bytes; };
|
|
57
59
|
const aggregate = JSON.parse(read(history.aggregateFile).toString()), source = JSON.parse(read(history.sourceFile).toString()), acceptance = JSON.parse(read(history.acceptanceFile).toString());
|
|
58
60
|
if (source.projectRoot !== input.projectRoot)
|
|
@@ -62,14 +64,17 @@ function validateHistoricalDevelopmentFiles(input) {
|
|
|
62
64
|
(0, release_graph_1.sameReleaseData)((0, execution_identity_1.aggregateInputHash)(aggregate), aggregate.inputsHash, 'Historical aggregate inputs');
|
|
63
65
|
(0, release_graph_1.sameReleaseData)((0, canonicalData_1.semanticHash)(aggregate.inputs.sourceDefinitions), aggregate.sourceDefinitionHash, 'Historical source hash');
|
|
64
66
|
const collection = aggregate.collections[0], plan = (0, plan_1.parseDeliveryPlan)(collection.plan), target = aggregate.inputs.business.targets[0];
|
|
67
|
+
const id = (0, protocol_1.safeId)(plan.executionId, 'executionId'), base = `.gate-delivery/history/${id}`;
|
|
68
|
+
if (history.aggregateFile !== `.gate-delivery/development/${id}.aggregate.json` || history.sourceFile !== `.gate-delivery/development/${id}.source.json` || history.acceptanceFile !== `.gate-delivery/development/${id}.acceptance.json` || history.readyFile !== `${base}/READY.json` || history.inputsRoot !== `${base}/inputs` || !/^\.gate-delivery\/packages\/[a-f0-9]{64}\.json\.gz$/.test(history.archiveFile))
|
|
69
|
+
throw Error('Noncanonical historical descriptor');
|
|
65
70
|
if (plan.environment !== 'dev' || plan.target !== target.id || source.targets[0].request.network !== plan.target || source.targets[0].executionId !== plan.executionId)
|
|
66
71
|
throw Error('Historical development identity mismatch');
|
|
67
72
|
for (const key of ['executionId', 'planHash', 'target', 'inputsHash', 'sourceDefinitionHash', 'runtimeIdentity'])
|
|
68
73
|
(0, release_graph_1.sameReleaseData)(acceptance[key], plan[key], `Historical acceptance ${key}`);
|
|
69
74
|
if (acceptance.version !== 1 || acceptance.status !== 'accepted')
|
|
70
75
|
throw Error('Missing historical acceptance');
|
|
71
|
-
const
|
|
72
|
-
if (ready.schema !== 'gate-delivery-history-ready' || ready.version !==
|
|
76
|
+
const ready = JSON.parse(read(history.readyFile).toString());
|
|
77
|
+
if (ready.schema !== 'gate-delivery-history-ready' || ready.version !== 2 || ready.generation !== 'complete' || ready.planHash !== plan.planHash || ready.aggregateHash !== (0, canonicalData_1.semanticHash)(aggregate) || ready.sourceHash !== (0, canonicalData_1.semanticHash)(source) || !Array.isArray(ready.files) || !ready.files.length)
|
|
73
78
|
throw Error('Historical snapshot generation is not READY');
|
|
74
79
|
(0, release_graph_1.sameReleaseData)(ready.descriptor, history, 'Historical READY descriptor');
|
|
75
80
|
for (const file of ready.files)
|
|
@@ -79,41 +84,7 @@ function validateHistoricalDevelopmentFiles(input) {
|
|
|
79
84
|
(0, release_graph_1.sameReleaseData)(aggregate.inputs.runtime.declared, plan.runtimeIdentity, 'Historical runtime identity');
|
|
80
85
|
if (original.name !== 'gate-evm-tools' || original.version !== plan.runtimeIdentity.version || original.source.identity !== original.integrity)
|
|
81
86
|
throw Error('Historical producer provenance mismatch');
|
|
82
|
-
const archive = read(history.archiveFile),
|
|
83
|
-
if (snapshot.schema !== 'gate-delivery-package-snapshot' || snapshot.version !== 1 || !Array.isArray(snapshot.files))
|
|
84
|
-
throw Error('Invalid historical package snapshot archive');
|
|
85
|
-
const archived = snapshot.files.map((f) => { const bytes = Buffer.from(f.base64, 'base64'); if (bytes.toString('base64') !== f.base64 || (0, materialization_1.byteHash)(bytes) !== f.digest)
|
|
86
|
-
throw Error('Historical snapshot archive bytes mismatch'); return { path: f.path, digest: f.digest }; });
|
|
87
|
-
(0, release_graph_1.sameReleaseData)(archived, original.payload, 'Historical archive complete payload');
|
|
88
|
-
(0, release_graph_1.sameReleaseData)(snapshot.observedPackage, original, 'Historical snapshot provenance');
|
|
89
|
-
(0, release_graph_1.sameReleaseData)(snapshot.runtimeIdentity, plan.runtimeIdentity, 'Historical snapshot runtime');
|
|
90
|
-
const payload = [];
|
|
91
|
-
const visit = (relative) => { const dir = (0, project_files_1.confinedFile)(root, `${history.packageRoot}/${relative}`.replace(/\/$/, ''), 'directory'); for (const name of node_fs_1.default.readdirSync(dir).sort()) {
|
|
92
|
-
if (name === 'node_modules')
|
|
93
|
-
throw Error('Historical producer nested package unsupported');
|
|
94
|
-
const rel = relative ? `${relative}/${name}` : name, p = (0, project_files_1.confinedFile)(root, `${history.packageRoot}/${rel}`, node_fs_1.default.lstatSync(node_path_1.default.join(dir, name)).isDirectory() ? 'directory' : 'file');
|
|
95
|
-
if (node_fs_1.default.lstatSync(p).isDirectory())
|
|
96
|
-
visit(rel);
|
|
97
|
-
else
|
|
98
|
-
payload.push({ path: rel, digest: (0, input_files_1.inputDigest)(read(`${history.packageRoot}/${rel}`)) });
|
|
99
|
-
} };
|
|
100
|
-
visit('');
|
|
101
|
-
payload.sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0);
|
|
102
|
-
(0, release_graph_1.sameReleaseData)(payload, original.payload, 'Historical producer actual payload');
|
|
103
|
-
(0, release_graph_1.sameReleaseData)((0, materialization_1.byteHash)(payload.map(f => `${f.path}\0${f.digest}\n`).join('')), original.payloadDigest, 'Historical payload digest');
|
|
104
|
-
const digest = (0, node_crypto_1.createHash)('sha256');
|
|
105
|
-
const hashDir = (dir) => { for (const name of node_fs_1.default.readdirSync((0, project_files_1.confinedFile)(root, `${history.packageRoot}/${dir}`, 'directory')).sort()) {
|
|
106
|
-
const rel = `${dir}/${name}`, file = (0, project_files_1.confinedFile)(root, `${history.packageRoot}/${rel}`, node_fs_1.default.lstatSync(node_path_1.default.join(root, history.packageRoot, rel)).isDirectory() ? 'directory' : 'file');
|
|
107
|
-
if (node_fs_1.default.lstatSync(file).isDirectory())
|
|
108
|
-
hashDir(rel);
|
|
109
|
-
else if (/\.(?:c?js)$/.test(rel)) {
|
|
110
|
-
digest.update(rel);
|
|
111
|
-
digest.update(read(`${history.packageRoot}/${rel}`));
|
|
112
|
-
}
|
|
113
|
-
} };
|
|
114
|
-
for (const dir of ['dist-runtime', 'dist', 'dist-cjs', 'bin'])
|
|
115
|
-
hashDir(dir);
|
|
116
|
-
(0, release_graph_1.sameReleaseData)(digest.digest('hex'), plan.runtimeIdentity.digest, 'Historical executable runtime digest');
|
|
87
|
+
const archive = read(history.archiveFile), packageFiles = (0, history_package_1.readHistoricalPackage)(archive, history.archiveFile, aggregate);
|
|
117
88
|
const business = aggregate.inputs.business.businessRoot, mutable = new Set([`${business}/task.yaml`, `${business}/parameters.yaml`, `${business}/parameters.provenance.json`, 'config.yaml', 'hardhat.config.ts']);
|
|
118
89
|
const old = (file) => read(`${history.inputsRoot}/${file}`), now = (file) => read(file);
|
|
119
90
|
const evolving = new Set([`${business}/manifest.yaml`, `${business}/parameters.schema.json`].filter(file => {
|
|
@@ -138,7 +109,7 @@ function validateHistoricalDevelopmentFiles(input) {
|
|
|
138
109
|
for (const file of aggregate.inputs.files) {
|
|
139
110
|
if (evolving.has(file.path))
|
|
140
111
|
continue;
|
|
141
|
-
const bytes = ownPayload.has(file.path) ?
|
|
112
|
+
const bytes = ownPayload.has(file.path) ? packageFiles.get(file.path.slice(original.lockLocation.length + 1)) : mutable.has(file.path) ? old(file.path) : now(file.path);
|
|
142
113
|
if ((0, input_files_1.inputDigest)(bytes) !== file.digest)
|
|
143
114
|
throw Error(`Historical immutable input drift: ${file.path}`);
|
|
144
115
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"release-history.js","sourceRoot":"","sources":["../../runtime/delivery/release-history.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"release-history.js","sourceRoot":"","sources":["../../runtime/delivery/release-history.ts"],"names":[],"mappings":";;;;;;AAqCA,gFA4GC;AAED,4EA0BC;AA7KD,0GAA0G;AAC1G,mDAA+E;AAC/E,sDAAyB;AACzB,6DAAwD;AACxD,2DAAwD;AAAhD,wHAAA,kBAAkB,OAAA;AAC1B,0DAA6B;AAC7B,mCAAgD;AAChD,sDAAyM;AACzM,+CAA4E;AAC5E,mDAA4C;AAC5C,qCAAwE;AACxE,yEAAwE;AACxE,qCAAoD;AACpD,yCAAyC;AACzC,uDAAwD;AACxD,uCAAsD;AACtD,iCAAyC;AACzC,uCAAkD;AAClD,+CAA4D;AAC5D,iDAAgD;AAChD,uDAAwD;AACxD,iDAA4D;AAC5D,+BAAwC;AACxC,2DAA2D;AAC3D,iEAAoF;AACpF,uDAAkE;AAClE,6CAAyF;AACzF,mDAAwD;AAExD,iEAAiG;AACjG,6DAA6D;AAC7D,6CAAuF;AACvF,6DAAyE;AACzE,qCAA8C;AAE9C,SAAS,MAAM,CAAC,GAAO,IAAM,MAAM,CAAC,GAAC,IAAA,4BAAe,EAAC,GAAG,CAAC,CAAC,CAAA,QAAO,CAAC,CAAC,IAAI,EAAC,CAAC;IAAA,KAAK,QAAQ,CAAC,CAAA,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAAA,KAAK,QAAQ,CAAC,CAAA,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAAA,KAAK,OAAO,CAAC,CAAA,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAAA,KAAK,QAAQ,CAAC,CAAA,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,CAAC,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAA,OAAO,CAAC,CAAA,OAAO,CAAC,CAAC,KAAK,CAAC;AAAA,CAAC,CAAA,CAAC;AACjT,4GAA4G;AAC5G,SAAgB,kCAAkC,CAAC,KAA8F;IAChJ,MAAM,SAAS,GAAC,IAAA,2BAAW,EAAC,KAAK,CAAC,aAAa,EAAC,GAAG,CAAC,EAAC,IAAI,GAAC,IAAA,2BAAW,EAAC,SAAS,EAAC,KAAK,CAAC,WAAW,CAAC,EAAC,EAAC,OAAO,EAAC,GAAC,KAAK,EAAC,KAAK,GAAC,IAAI,GAAG,EAAiB,CAAC;IAClJ,IAAG,iBAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAG,IAAI;QAAC,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9F,IAAA,iBAAM,EAAC,OAAO,EAAC,uBAAuB,EAAC,CAAC,SAAS,EAAC,eAAe,EAAC,YAAY,EAAC,gBAAgB,EAAC,WAAW,EAAC,YAAY,EAAC,aAAa,CAAC,CAAC,CAAC;IACzI,IAAG,OAAO,CAAC,OAAO,KAAG,CAAC;QAAC,MAAM,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAChF,MAAM,IAAI,GAAC,CAAC,QAAe,EAAC,EAAE,GAAC,MAAM,KAAK,GAAC,IAAA,4BAAc,EAAC,IAAI,EAAC,QAAQ,CAAC,CAAC,CAAA,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAC,IAAA,yBAAW,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA,OAAO,KAAK,CAAC,CAAA,CAAC,CAAC;IAC/H,MAAM,SAAS,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,EAAE,CAAsB,EAAC,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAA6B,EAAC,UAAU,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1O,IAAG,MAAM,CAAC,WAAW,KAAG,KAAK,CAAC,WAAW;QAAC,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACpG,IAAG,MAAM,CAAC,SAAS,KAAG,aAAa,IAAE,MAAM,CAAC,OAAO,CAAC,MAAM,KAAG,CAAC,IAAE,SAAS,CAAC,WAAW,CAAC,MAAM,KAAG,CAAC,IAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAG,CAAC;QAAC,MAAM,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACpM,IAAA,+BAAI,EAAC,IAAA,uCAAkB,EAAC,SAAS,CAAC,EAAC,SAAS,CAAC,UAAU,EAAC,6BAA6B,CAAC,CAAC;IAAA,IAAA,+BAAI,EAAC,IAAA,4BAAY,EAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAC,SAAS,CAAC,oBAAoB,EAAC,wBAAwB,CAAC,CAAC;IACtM,MAAM,UAAU,GAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,EAAC,IAAI,GAAC,IAAA,wBAAiB,EAAC,UAAU,CAAC,IAAI,CAAC,EAAC,MAAM,GAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9H,MAAM,EAAE,GAAC,IAAA,iBAAM,EAAC,IAAI,CAAC,WAAW,EAAC,aAAa,CAAC,EAAC,IAAI,GAAC,0BAA0B,EAAE,EAAE,CAAC;IACpF,IAAG,OAAO,CAAC,aAAa,KAAG,8BAA8B,EAAE,iBAAiB,IAAE,OAAO,CAAC,UAAU,KAAG,8BAA8B,EAAE,cAAc,IAAE,OAAO,CAAC,cAAc,KAAG,8BAA8B,EAAE,kBAAkB,IAAE,OAAO,CAAC,SAAS,KAAG,GAAG,IAAI,aAAa,IAAE,OAAO,CAAC,UAAU,KAAG,GAAG,IAAI,SAAS,IAAE,CAAC,qDAAqD,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAAC,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpb,IAAG,IAAI,CAAC,WAAW,KAAG,KAAK,IAAE,IAAI,CAAC,MAAM,KAAG,MAAM,CAAC,EAAE,IAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,KAAG,IAAI,CAAC,MAAM,IAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,KAAG,IAAI,CAAC,WAAW;QAAC,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAChN,KAAI,MAAM,GAAG,IAAI,CAAC,aAAa,EAAC,UAAU,EAAC,QAAQ,EAAC,YAAY,EAAC,sBAAsB,EAAC,iBAAiB,CAAU;QAAC,IAAA,+BAAI,EAAC,UAAU,CAAC,GAAG,CAAC,EAAC,IAAI,CAAC,GAAG,CAAC,EAAC,yBAAyB,GAAG,EAAE,CAAC,CAAC;IACnL,IAAG,UAAU,CAAC,OAAO,KAAG,CAAC,IAAE,UAAU,CAAC,MAAM,KAAG,UAAU;QAAC,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACvG,MAAM,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,IAAG,KAAK,CAAC,MAAM,KAAG,6BAA6B,IAAE,KAAK,CAAC,OAAO,KAAG,CAAC,IAAE,KAAK,CAAC,UAAU,KAAG,UAAU,IAAE,KAAK,CAAC,QAAQ,KAAG,IAAI,CAAC,QAAQ,IAAE,KAAK,CAAC,aAAa,KAAG,IAAA,4BAAY,EAAC,SAAS,CAAC,IAAE,KAAK,CAAC,UAAU,KAAG,IAAA,4BAAY,EAAC,MAAM,CAAC,IAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;QAAC,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACvU,IAAA,+BAAI,EAAC,KAAK,CAAC,UAAU,EAAC,OAAO,EAAC,6BAA6B,CAAC,CAAC;IAAA,KAAI,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;QAAC,IAAG,IAAA,0BAAQ,EAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAG,IAAI,CAAC,MAAM;YAAC,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5L,MAAM,QAAQ,GAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IAChD,IAAA,+BAAI,EAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAC,IAAI,CAAC,eAAe,EAAC,6BAA6B,CAAC,CAAC;IAC3F,IAAG,QAAQ,CAAC,IAAI,KAAG,gBAAgB,IAAE,QAAQ,CAAC,OAAO,KAAG,IAAI,CAAC,eAAe,CAAC,OAAO,IAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,KAAG,QAAQ,CAAC,SAAS;QAAC,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC3L,MAAM,OAAO,GAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAC,YAAY,GAAC,IAAA,uCAAqB,EAAC,OAAO,EAAC,OAAO,CAAC,WAAW,EAAC,SAAS,CAAC,CAAC;IAClH,MAAM,QAAQ,GAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAC,OAAO,GAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,YAAY,EAAC,GAAG,QAAQ,kBAAkB,EAAC,GAAG,QAAQ,6BAA6B,EAAC,aAAa,EAAC,mBAAmB,CAAC,CAAC,CAAC;IAC1M,MAAM,GAAG,GAAC,CAAC,IAAW,EAAC,EAAE,CAAA,IAAI,CAAC,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC,EAAC,GAAG,GAAC,CAAC,IAAW,EAAC,EAAE,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7F,MAAM,QAAQ,GAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,gBAAgB,EAAC,GAAG,QAAQ,yBAAyB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAA,EAAE;QACtG,MAAM,YAAY,GAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE,CAAA,KAAK,CAAC,IAAI,KAAG,IAAI,CAAC,CAAC;QACzE,OAAO,YAAY,KAAG,SAAS,IAAE,IAAA,yBAAW,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,KAAG,YAAY,CAAC,MAAM,CAAC;IAC/E,CAAC,CAAC,CAAC,CAAC;IACJ,IAAG,QAAQ,CAAC,IAAI,EAAC,CAAC;QACjB,MAAM,QAAQ,GAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAA,EAAE,CAAA,KAAK,CAAC,MAAM,KAAG,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC;QACtG,IAAG,CAAC,QAAQ;YAAC,MAAM,KAAK,CAAC,gFAAgF,CAAC,CAAC;QAC3G,MAAM,QAAQ,GAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,GAAG,QAAQ,YAAY,CAAC,EAAC,MAAM,CAAQ,CAAC;QAC9E,MAAM,QAAQ,GAAC,IAAA,4CAAuB,EAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,GAAG,QAAQ,kBAAkB,CAAC,EAAC,MAAM,CAAC,EAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,GAAG,QAAQ,6BAA6B,CAAC,EAAC,MAAM,CAAC,EAAC,CAAC,IAAI,CAAC,MAAM,EAAC,GAAG,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAC/N,MAAM,OAAO,GAAC,IAAA,iDAAoC,EAAC,QAAQ,EAAC,EAAC,MAAM,EAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,GAAG,QAAQ,yBAAyB,CAAC,EAAC,MAAM,CAAQ;YAC9I,MAAM,EAAC,IAAI,CAAC,MAAM,EAAC,MAAM,EAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,OAAO,EAAC,QAAQ,CAAC,MAAM,EAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,EAAoB,CAAC,CAAC;QAC3I,MAAM,QAAQ,GAAC,IAAA,iBAAM,EAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,GAAG,QAAQ,gBAAgB,CAAC,EAAC,MAAM,CAAC,EAAC,eAAe,EAAC,CAAC,IAAI,EAAC,aAAa,EAAC,OAAO,CAAC,CAAC,CAAC;QAChI,IAAG,QAAQ,CAAC,EAAE,KAAG,IAAI,CAAC,YAAY,IAAE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAC,MAAM,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC9H,IAAA,wDAAmC,EAAC,EAAC,MAAM,EAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAC,KAAK,EAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,6BAAoB,CAAC,EAAC,QAAQ,EAAC,OAAO,EAAC,MAAM,EAAC,MAA2C,EAAC,CAAC,CAAC;IAClM,CAAC;IACD,MAAM,UAAU,GAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,GAAG,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9F,4HAA4H;IAC5H,KAAI,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,KAAK,EAAC,CAAC;QAAA,IAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAC,SAAS;QAAA,MAAM,KAAK,GAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAC,CAAC,CAAC,CAAE,CAAA,CAAC,CAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAA,IAAG,IAAA,yBAAW,EAAC,KAAK,CAAC,KAAG,IAAI,CAAC,MAAM;YAAC,MAAM,KAAK,CAAC,qCAAqC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAAA,CAAC;IAC/U,MAAM,OAAO,GAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,GAAG,QAAQ,YAAY,CAAC,EAAC,MAAM,CAAQ,EAAC,OAAO,GAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,GAAG,QAAQ,YAAY,CAAC,EAAC,MAAM,CAAQ,CAAC;IACpJ,MAAM,EAAC,wBAAwB,EAAC,WAAW,EAAC,GAAG,OAAO,EAAC,GAAC,OAAO,CAAC;IAChE,IAAA,+BAAI,EAAC,EAAC,GAAG,OAAO,EAAC,qBAAqB,EAAC,OAAO,CAAC,qBAAqB,EAAC,GAAG,CAAC,OAAO,CAAC,wBAAwB,KAAG,SAAS,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,EAAC,wBAAwB,EAAC,OAAO,CAAC,wBAAwB,EAAC,CAAC,EAAC,EAAC,OAAO,EAAC,uCAAuC,CAAC,CAAC;IACxO,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAE,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAQ,EAAC,EAAE,CAAA,CAAC,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACjM,MAAM,IAAI,GAAC,IAAI,GAAG,CAAS,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC1D,KAAI,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAC,4BAA4B,CAAC,EAAC,CAAC;QACnE,MAAM,MAAM,GAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,MAAM,CAAQ,EAAC,KAAK,GAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,IAAI,EAAE,CAAC,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,MAAM,CAAQ,CAAC;QACzM,MAAM,SAAS,GAAC,IAAI,KAAG,iBAAiB,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,SAAS,CAAC;QAC5D,IAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAC,KAAI,MAAM,CAAC,EAAE,EAAC,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;gBAAC,IAAA,+BAAI,EAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,EAAC,UAAU,EAAC,yCAAyC,CAAC,CAAC;QACvK,MAAM,UAAU,GAAC,CAAC,KAAS,EAAC,EAAE,CAAA,CAAC,EAAC,GAAG,KAAK,EAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,EAAC,SAAS,EAAC,MAAM,CAAC,SAAS,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC,SAAS,CAAC,EAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAE,CAAC,KAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC;QACvO,IAAA,+BAAI,EAAC,UAAU,CAAC,KAAK,CAAC,EAAC,UAAU,CAAC,MAAM,CAAC,EAAC,4CAA4C,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,SAAS,GAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,aAAa,CAAC,EAAC,MAAM,CAAQ,EAAC,SAAS,GAAC,IAAA,gCAAkB,EAAC,GAAG,CAAC,aAAa,CAAC,EAAC,MAAM,CAAQ,CAAC;IACpI,6GAA6G;IAC7G,MAAM,SAAS,GAAC,CAAC,KAAa,EAAC,EAAE;QAChC,MAAM,MAAM,GAAC,IAAA,iBAAM,EAAC,KAAK,EAAC,aAAa,CAAC,EAAC,SAAS,GAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,KAAG,WAAW,IAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3I,IAAG,MAAM,CAAC,SAAS,KAAG,SAAS,EAAC,CAAC;YAChC,MAAM,EAAC,IAAI,EAAC,KAAK,EAAC,GAAG,QAAQ,EAAC,GAAC,IAAA,iBAAM,EAAC,MAAM,CAAC,SAAS,EAAC,WAAW,EAAC,CAAC,aAAa,EAAC,KAAK,EAAC,MAAM,CAAC,CAAC,CAAC;YACjG,IAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;gBAAC,SAAS,CAAC,SAAS,GAAC,QAAQ,CAAC;QAC9D,CAAC;QACD,OAAO,SAAS,CAAC;IAClB,CAAC,CAAC;IACF,IAAA,+BAAI,EAAC,SAAS,CAAC,SAAS,CAAC,EAAC,SAAS,CAAC,SAAS,CAAC,EAAC,sCAAsC,CAAC,CAAC;IACvF,MAAM,QAAQ,GAAC,IAAA,uDAA4B,EAAC,GAAG,CAAC,mBAAmB,CAAC,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,EAAC,OAAO,GAAC,IAAA,uDAA4B,EAAC,GAAG,CAAC,mBAAmB,CAAC,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC;IACnL,mGAAmG;IACnG,KAAI,MAAM,CAAC,IAAI,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAC,IAAA,+BAAI,EAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC,KAAK,EAAC,8BAA8B,CAAC,CAAC;IAC9H,IAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAC,CAAC,CAAC,IAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,KAAK,CAAC,kCAAkC,CAAC,CAAC;IAC5I,IAAA,+BAAI,EAAC,EAAC,GAAG,OAAO,EAAC,QAAQ,EAAC,QAAQ,CAAC,QAAQ,EAAC,EAAC,QAAQ,EAAC,2CAA2C,CAAC,CAAC;IACnG,IAAA,+BAAI,EAAC,IAAA,mCAA0B,EAAC,GAAG,CAAC,aAAa,CAAC,EAAC,GAAG,CAAC,mBAAmB,CAAC,EAAC,CAAC,EAAC,OAAO,EAAC,IAAI,CAAC,MAAM,EAAC,WAAW,EAAC,KAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,8BAA8B,CAAC,CAAC;IACjK,yFAAyF;IACzF,MAAM,eAAe,GAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,EAAE,KAAK,IAAE,EAAE,CAAC,EAAC,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,OAAO,EAAE,KAAK,IAAE,EAAE,CAAC,CAAC,CAAC;IAC7J,KAAI,MAAM,IAAI,IAAI,eAAe;QAAC,IAAG,IAAA,yBAAW,EAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAG,IAAI,CAAC,MAAM;YAAC,MAAM,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC5I,MAAM,OAAO,GAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAC,IAAI,GAAC,IAAA,4BAAc,EAAC,SAAS,EAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAC,MAAM,GAAC,IAAA,2BAAkB,EAAC,IAAI,CAAC,CAAC;IAAA,IAAG,MAAM,CAAC,MAAM,KAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM;QAAC,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC/P,MAAM,UAAU,GAAC,IAAA,oCAA2B,EAAC,IAAI,EAAC,EAAC,KAAK,EAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAC,IAAI,EAAC,UAAU,EAAC,CAAC,CAAC,QAAQ,CAAC;IAClI,MAAM,SAAS,GAAC,CAAC,CAAK,EAAC,EAAE,GAAC,MAAM,IAAI,GAAC,IAAI,CAAC,KAAK,CAAC,IAAA,6BAAa,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,KAAI,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK;QAAC,IAAG,CAAC,CAAC,KAAK,EAAE,UAAU,IAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAC,uBAAuB,CAAC;YAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,qBAAqB,GAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA,OAAO,IAAI,CAAC,CAAA,CAAC,CAAC;IACnQ,MAAM,UAAU,GAAE,SAAS,CAAC,MAAM,CAAC,iBAA2B,CAAC;IAAA,IAAG,UAAU,CAAC,MAAM,KAAG,CAAC,IAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,KAAG,OAAO;QAAC,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAAA,IAAA,+BAAI,EAAC,SAAS,CAAC,UAAU,CAAC,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,EAAC,4DAA4D,CAAC,CAAC;IAC3R,MAAM,QAAQ,GAAC,IAAA,2CAA6B,EAAC,UAAU,EAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACzF,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAE,UAAU,CAAC,UAAU,CAAC,MAAM,KAAG,QAAQ,CAAC,MAAM;QAAC,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAChJ,KAAI,MAAM,CAAC,KAAK,EAAC,GAAG,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,OAAO,EAAE,EAAC,CAAC;QAAA,MAAM,SAAS,GAAC,IAAA,2CAA4B,EAAC,GAAG,CAAC,CAAC;QAAA,IAAA,+BAAI,EAAC,EAAC,GAAG,SAAS,EAAC,MAAM,EAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,MAAM,EAAC,EAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,qCAAqC,CAAC,CAAC;QAAA,MAAM,UAAU,GAAC,IAAA,uBAAiB,EAAC,SAAS,CAAC,GAAG,EAAC,SAAS,CAAC,MAAM,EAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAA,IAAG,UAAU,CAAC,MAAM,KAAG,UAAU,CAAC,QAAQ;YAAC,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAAA,CAAC;IAC5a,MAAM,YAAY,GAAC,IAAA,iCAAuB,EAAC,UAAU,CAAC,YAAY,EAAC,IAAI,CAAC,YAAY,EAAC,IAAI,CAAC,eAAe,EAAC,EAAC,MAAM,EAAC,IAAI,CAAC,MAAM,EAAC,OAAO,EAAC,IAAI,CAAC,OAAO,EAAC,eAAe,EAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;IAC9M,IAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAE,UAAU,CAAC,SAAS,CAAC,MAAM,KAAG,IAAI,CAAC,YAAY,CAAC,MAAM;QAAC,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACrL,MAAM,SAAS,GAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAK,EAAC,KAAY,EAAC,EAAE,CAAA,IAAA,+BAAgB,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC,CAAC;IAAA,IAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAK,EAAC,EAAE,CAAA,CAAC,CAAC,KAAK,KAAG,mBAAmB,CAAC,IAAE,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAK,EAAC,EAAE,CAAA,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,KAAG,SAAS,CAAC,MAAM;QAAC,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC3R,MAAM,OAAO,GAAC,IAAA,wCAAsB,EAAC,IAAI,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAAA,IAAG,CAAC,OAAO,IAAE,OAAO,CAAC,KAAK,KAAG,WAAW,IAAE,OAAO,CAAC,QAAQ,KAAG,UAAU,CAAC,QAAQ,IAAE,OAAO,CAAC,UAAU,KAAG,UAAU,CAAC,eAAe,EAAE,UAAU;QAAC,MAAM,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACvQ,IAAI,CAAC,kCAAkC,IAAI,CAAC,WAAW,OAAO,CAAC,CAAC;IAChE,MAAM,sBAAsB,GAAC,CAAC,IAAW,EAAC,EAAE;QAC3C,MAAM,KAAK,GAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAK,EAAC,EAAE,CAAA,CAAC,CAAC,IAAI,KAAG,IAAI,CAAC,CAAC;QAAA,IAAG,CAAC,KAAK;YAAC,MAAM,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACzH,0FAA0F;QAC1F,IAAA,qDAA8B,EAAC,IAAI,EAAC,KAAK,CAAC,KAAK,EAAC,IAAA,4BAAc,EAAC,IAAI,EAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAChG,MAAM,QAAQ,GAAC,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;QAC/C,IAAG,iBAAE,CAAC,UAAU,CAAC,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAC,QAAQ,CAAC,CAAC,IAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,KAAG,KAAK,CAAC,KAAK;YAAC,MAAM,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACnK,KAAK,CAAC,GAAG,CAAC,IAAI,EAAC,IAAA,yBAAW,EAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC,CAAC;IACF,KAAI,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK;QAAC,IAAG,IAAA,0BAAQ,EAAC,IAAA,iDAA0B,EAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAG,IAAI,CAAC,SAAS;YAAC,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACjN,MAAM,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC/E,KAAI,MAAM,CAAC,GAAG,EAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAC,QAAQ,EAAC,UAAU,CAAC,QAAQ,EAAC,WAAW,EAAC,IAAI,CAAC,WAAW,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,UAAU,EAAC,IAAI,CAAC,UAAU,EAAC,oBAAoB,EAAC,IAAI,CAAC,oBAAoB,EAAC,eAAe,EAAC,IAAI,CAAC,eAAe,EAAC,YAAY,EAAC,SAAS,EAAC,UAAU,EAAC,UAAU,CAAC,UAAU,EAAC,CAAC;QAAC,IAAA,+BAAI,EAAC,MAAM,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;IACjW,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAAC,MAAM,KAAK,CAAC,sCAAsC,CAAC,CAAC;IACtF,MAAM,YAAY,GAA2B,EAAE,EAAC,SAAS,GAAK,EAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,EAAE,EAAC,CAAC;IACjF,KAAI,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAC,CAAC;QAAA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,GAAC,MAAM,CAAC,OAAO,CAAC;QAAA,MAAM,GAAG,GAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAAA,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,EAAC,QAAQ,EAAC,MAAM,CAAC,cAAc,EAAC,OAAO,EAAC,MAAM,CAAC,qBAAqB,IAAE,MAAM,CAAC,OAAO,EAAC,CAAC,CAAC;QAAA,IAAG,MAAM,CAAC,SAAS;YAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,EAAC,GAAG,GAAG,QAAQ,EAAC,QAAQ,EAAC,MAAM,CAAC,SAAS,KAAG,aAAa,CAAA,CAAC,CAAA,6BAA6B,CAAA,CAAC,CAAA,cAAc,EAAC,OAAO,EAAC,MAAM,CAAC,OAAO,EAAC,CAAC,CAAC;QAAA,IAAG,MAAM,CAAC,SAAS,KAAG,aAAa;YAAC,YAAY,CAAC,IAAI,CAAC,EAAC,GAAG,EAAC,GAAG,GAAG,aAAa,EAAC,QAAQ,EAAC,YAAY,EAAC,OAAO,EAAC,MAAM,CAAC,iBAAiB,EAAC,CAAC,CAAC;IAAA,CAAC;IACjjB,MAAM,IAAI,GAAC,CAAC,YAAY,CAAC,MAAM,CAAA,CAAC,CAAA,IAAA,oCAAoB,EAAC,EAAC,MAAM,EAAC,IAAI,CAAC,MAAM,EAAC,SAAS,EAAC,IAAA,yCAAyB,EAAC,UAAU,CAAC,EAAC,QAAQ,EAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAC,QAAQ,EAAC,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAC,QAAQ,EAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,KAAG,IAAI,CAAC,MAAM,CAAE,CAAC,QAAQ,EAAC,SAAS,EAAC,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,IAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAK,EAAC,EAAE,CAAA,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,QAAQ,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC;IACzd,IAAG,IAAI,EAAC,CAAC;QAAA,IAAG,MAAM,CAAC,OAAO,CAAC,MAAM;YAAC,MAAM,KAAK,CAAC,oDAAoD,CAAC,CAAC;QAAA,MAAM,CAAC,MAAM,CAAC,SAAS,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAAA,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAAA,IAAA,+BAAI,EAAC,UAAU,CAAC,eAAe,CAAC,SAAS,EAAC,IAAI,CAAC,SAAS,EAAC,+BAA+B,CAAC,CAAC;IAAA,CAAC;IAC3Q,MAAM,IAAI,GAAC,UAAU,CAAC,SAAS,CAAC;IAAA,IAAG,IAAI,EAAE,OAAO,KAAG,CAAC,IAAE,IAAI,CAAC,WAAW,KAAG,IAAI,CAAC,WAAW,IAAE,IAAI,CAAC,QAAQ,KAAG,IAAI,CAAC,QAAQ,IAAE,IAAI,CAAC,MAAM,KAAG,IAAI,CAAC,MAAM,IAAE,OAAO,IAAI,CAAC,OAAO,KAAG,QAAQ,IAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,6BAA6B,IAAI,CAAC,WAAW,GAAG,CAAC;QAAC,MAAM,KAAK,CAAC,iCAAiC,CAAC,CAAC;IAC/S,IAAA,+BAAI,EAAC,IAAA,0BAAQ,EAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC,EAAC,IAAI,CAAC,YAAY,EAAC,qBAAqB,CAAC,CAAC;IAAA,IAAA,+BAAI,EAAC,IAAA,0BAAQ,EAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,EAAC,IAAI,CAAC,YAAY,EAAC,gCAAgC,CAAC,CAAC;IAAA,IAAA,+BAAI,EAAC,IAAA,0BAAQ,EAAC,IAAA,6BAAa,EAAC,SAAS,CAAC,GAAC,IAAI,CAAC,EAAC,IAAI,CAAC,aAAa,EAAC,yCAAyC,CAAC,CAAC;IAChU,MAAM,GAAG,GAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAAA,IAAA,+BAAI,EAAC,IAAA,0BAAQ,EAAC,GAAG,CAAC,EAAC,IAAI,CAAC,OAAO,EAAC,+BAA+B,CAAC,CAAC;IAAA,IAAA,2CAA8B,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAC,IAAI,CAAC,MAAM,EAAC,YAAY,CAAC,CAAC;IAAA,IAAA,+BAAI,EAAC,IAAI,CAAC,SAAS,EAAC,IAAI,EAAE,SAAS,IAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAC,gCAAgC,CAAC,CAAC;IACtS,MAAM,SAAS,GAAC,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC;IAAA,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAK,EAAC,EAAE,CAAA,CAAC,CAAC,CAAC,SAAS,KAAG,MAAM,IAAE,CAAC,CAAC,SAAS,KAAG,aAAa,CAAC,CAAC,IAAE,CAAC,SAAS,CAAC,MAAM;QAAC,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAAA,KAAI,MAAM,CAAC,IAAI,SAAS;QAAC,IAAA,+BAAI,EAAC,IAAA,0BAAQ,EAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,8BAA8B,CAAC,CAAC;IACrU,OAAO,IAAA,0BAAU,EAAC,EAAC,SAAS,EAAC,MAAM,EAAC,UAAU,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAC,MAAM,CAAC,EAAC,EAAE,CAAA,CAAC,EAAC,IAAI,EAAC,MAAM,EAAC,CAAC,CAAC,EAAC,WAAW,EAAC,EAAC,OAAO,EAAC,CAAC,EAAC,oBAAoB,EAAC,SAAS,CAAC,UAAU,EAAC,iBAAiB,EAAC,IAAI,CAAC,eAAe,EAAC,wBAAwB,EAAC,IAAA,0BAAQ,EAAC,OAAO,CAAC,EAAC,qBAAqB,EAAC,QAAQ,CAAC,SAAS,EAAC,YAAY,EAAC,oCAAoC,EAAC,iBAAiB,EAAC,IAAI,CAAC,MAAM,EAAC,oBAAoB,EAAC,OAAO,CAAC,qBAAqB,EAAC,wBAAwB,EAAC,OAAO,CAAC,qBAAqB,EAAC,IAAI,EAAC,2CAA2C,EAAC,EAAC,CAAC,CAAC;AACthB,CAAC;AACD,gHAAgH;AACzG,KAAK,UAAU,gCAAgC,CAAC,MAA4D,EAAC,IAAW;IAC9H,MAAM,EAAC,IAAI,EAAC,UAAU,EAAC,SAAS,EAAC,GAAC,MAAM,EAAC,QAAQ,GAAC,IAAA,qCAA2B,EAAC,IAAI,EAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,QAAQ,GAAC,IAAI,wBAAe,CAAC,QAAQ,CAAC,GAAG,EAAC,SAAS,EAAC,EAAC,aAAa,EAAC,KAAK,EAAC,CAAC,CAAC;IAChL,IAAG,CAAC;QAAA,MAAM,GAAG,GAAC,EAAC,OAAO,EAAC,CAAC,MAAa,EAAC,MAAyB,EAAC,EAAE,CAAA,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,GAAG,MAAM,CAAC,CAAC,EAAC,CAAC;QAAA,MAAM,OAAO,GAAC,EAAC,WAAW,EAAC,IAAI,CAAC,WAAW,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,WAAW,EAAC,IAAI,CAAC,UAAU,EAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,EAAC,UAAU,EAAC,IAAA,4BAAY,EAAC,EAAC,UAAU,EAAC,IAAI,EAAC,CAAC,EAAC,OAAO,EAAC,IAAI,CAAC,OAAO,EAAC,MAAM,EAAC,IAAI,CAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,IAAI,EAAC,eAAwB,EAAC,KAAK,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,EAAC,EAAC,CAAC;QAC9a,KAAI,MAAM,CAAC,KAAK,EAAC,WAAW,CAAC,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE;YAAC,IAAA,+BAAI,EAAC,MAAM,IAAA,uCAAqB,EAAC,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAC,GAAG,EAAC,KAAK,EAAC,eAAe,EAAC,WAAW,CAAC,eAAe,EAAC,CAAC,EAAC,WAAW,EAAC,sCAAsC,CAAC,CAAC;QACpO,qFAAqF;QACrF,oEAAoE;QACpE,MAAM,OAAO,GAAC,IAAA,wCAAsB,EAAC,IAAI,EAAC,IAAI,CAAC,WAAW,CAAC,EAAC,YAAY,GAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAA4B,EAAC,EAAE,CAAA,CAAC,CAAC,IAAI,KAAG,qBAAqB,CAAC,CAAC;QAC7J,IAAG,CAAC,YAAY;YAAC,MAAM,KAAK,CAAC,wCAAwC,CAAC,CAAC;QACvE,MAAM,QAAQ,GAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAE,EAAE,EAAC,GAAG,GAAC,IAAI,CAAC,KAAK,CAAC,IAAA,4BAAc,EAAC,IAAI,EAAC,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpK,MAAM,QAAQ,GAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,KAAG,IAAI,CAAC,MAAM,CAAE,CAAC,QAAQ,EAAC,OAAO,GAAC,IAAI,0BAAe,CAAC,SAAkB,EAAC,EAAE,EAAC,KAAK,CAAC,CAAC;QAC3I,KAAI,MAAM,CAAC,KAAK,EAAC,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAwB;YAAC,IAAG,CAAC,CAAC,SAAS,KAAG,aAAa,IAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAC,GAAG,KAAK,aAAa,CAAC,EAAC,CAAC;gBAChJ,MAAM,KAAK,GAAC,CAAC,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;gBAAA,IAAG,CAAC,KAAK,IAAE,KAAK,KAAG,IAAA,kCAAuB,EAAC,CAAC,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,CAAC,eAAe;oBAAC,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACvL,MAAM,IAAI,GAAC,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,EAAC,6BAAkB,CAAC,CAAC;gBAAA,IAAG,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,IAAI,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,KAAG,KAAK;oBAAC,MAAM,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBACnN,KAAI,MAAM,IAAI,IAAI,CAAC,qCAA0B,EAAC,+BAAoB,CAAC,EAAC,CAAC;oBACpE,MAAM,OAAO,GAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,GAAG,KAAG,IAAI,CAAC,CAAC;oBAAA,IAAG,OAAO,CAAC,MAAM,KAAG,CAAC;wBAAC,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBACtI,MAAM,KAAK,GAAC,OAAO,CAAC,CAAC,CAAC,EAAC,QAAQ,GAAC,KAAK,CAAC,QAAQ,EAAC,KAAK,GAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,MAAM,KAAG,KAAK,CAAC,SAAS,CAAC,EAAC,IAAI,GAAC,KAAK,IAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;oBAC9P,IAAG,CAAC,IAAI;wBAAC,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAC;oBACvE,MAAM,IAAI,GAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAG,+BAAoB,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,CAAC;oBAAA,IAAG,IAAI,KAAG,IAAI,IAAE,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,EAAC,QAAQ,CAAC,gBAAiB,EAAC,QAAQ,CAAC,GAAY,EAAC,IAAI,CAAC,CAAC,OAAO;wBAAC,MAAM,KAAK,CAAC,yCAAyC,CAAC,CAAC;oBACnP,IAAG,IAAI,KAAG,qCAA0B;wBAAC,IAAA,0CAA+B,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;gBACvF,CAAC;gBACD,MAAM,KAAK,GAAC,gCAAqB,CAAC,oBAAoB,CAAC,OAAO,EAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,gCAAqB,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC1J,MAAM,OAAO,GAAC,gCAAqB,CAAC,oBAAoB,CAAC,2BAA2B,EAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,gCAAqB,CAAC,kBAAkB,CAAC,2BAA2B,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpM,IAAG,KAAK,CAAC,WAAW,EAAE,KAAG,CAAC,CAAC,eAAe,CAAC,WAAW,EAAE,IAAE,OAAO,KAAG,OAAO;oBAAC,MAAM,KAAK,CAAC,8CAA8C,CAAC,CAAC;YACzI,CAAC;QACD,KAAI,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAC,CAAC;YAAA,MAAM,QAAQ,GAAC,IAAI,iBAAQ,CAAC,SAAS,CAAC,OAAO,EAAC,SAAS,CAAC,GAAG,EAAC,QAAQ,CAAC,EAAC,MAAM,GAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAC,UAAU,GAAC,IAAA,uBAAiB,EAAC,SAAS,CAAC,GAAG,EAAC,SAAS,CAAC,MAAM,EAAC,MAAM,EAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAAA,IAAG,UAAU,CAAC,MAAM,KAAG,UAAU,CAAC,QAAQ;gBAAC,MAAM,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAAA,CAAC;IACja,CAAC;YAAO,CAAC;QAAA,QAAQ,CAAC,OAAO,EAAE,CAAC;IAAA,CAAC;AAC9B,CAAC"}
|
package/docs/delivery-release.md
CHANGED
|
@@ -38,7 +38,23 @@ const development = release.captureDevelopmentReleaseHistory({
|
|
|
38
38
|
// Persist `development` as JSON; it contains confined project-relative file references.
|
|
39
39
|
```
|
|
40
40
|
|
|
41
|
-
Capture reads the actual installed package and refuses any payload that differs from the accepted aggregate.
|
|
41
|
+
Capture reads the actual installed package and refuses any payload that differs from the accepted aggregate. Version-2 history references the single original preparation under `.gate-delivery/development/<executionId>.source.json` and `<executionId>.aggregate.json`. Existing preparation bytes are reused after a complete semantic comparison; changed inputs cannot overwrite the original execution. Standalone callers may persist this preparation earlier with `delivery-development.persistDevelopmentInputs({root, source, aggregate})`.
|
|
42
|
+
|
|
43
|
+
The entire installed producer is retained once as `.gate-delivery/packages/<SHA256-of-archive-bytes>.json.gz`. Identical producer snapshots are shared by executions. History does not create an expanded `package/` tree or a second source/aggregate copy. The consumer verifies each archived member, its path, the complete payload, npm lock provenance and the executable runtime digest directly in memory; it neither extracts nor executes historical code. The archive is an installed-payload snapshot, not an npm distribution tarball. Its observed npm lock integrity remains separate metadata.
|
|
44
|
+
|
|
45
|
+
Only changing input containers are copied into `.gate-delivery/history/<executionId>/inputs/`; the small `READY.json` is written last and binds the original preparation, acceptance, captured containers and shared archive. A completed capture is reusable after a package update, but any missing or changed retained file is refused. Version-1 history descriptors are not accepted or migrated.
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
.gate-delivery/
|
|
49
|
+
development/<executionId>.source.json
|
|
50
|
+
development/<executionId>.aggregate.json
|
|
51
|
+
development/<executionId>.acceptance.json
|
|
52
|
+
history/<executionId>/READY.json
|
|
53
|
+
history/<executionId>/inputs/...
|
|
54
|
+
packages/<archive-sha256>.json.gz
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
These files are durable deployment evidence, not disposable build cache. Keep task operations, release snapshots, execution results and the optional public calldata under `scripts/tasks/<deploymentId>/`. Do not copy a complete `finalize` or `inspect` result into another validation report: retain the authoritative files and record their paths, hashes and status in the Plan. Inspection remains read-only.
|
|
42
58
|
|
|
43
59
|
Only production-only container additions/completions are compatible with the existing development acceptance. Development parameters and provenance, public target configuration, existing Hardhat network definitions, compiler/plugins, source, artifacts, scripts and custom dependencies remain bound. A custom dependency on an entire changed container is rejected. Historical task definitions retain all fields except the explicit production-target-list extension. Changed development semantics require a new development acceptance.
|
|
44
60
|
|
package/package.json
CHANGED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/** One immutable copy of the original development preparation, reused by release history. */
|
|
2
|
+
import fs from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import {randomUUID} from 'node:crypto';
|
|
5
|
+
import {canonicalJson} from '../workflow/lib/canonicalData';
|
|
6
|
+
import {developmentPath,byteHash} from './materialization';
|
|
7
|
+
import {readInputBytes} from './input-files';
|
|
8
|
+
import {projectRoot} from './project-files';
|
|
9
|
+
import {parseDeliveryPlan} from './plan';
|
|
10
|
+
import {safeId} from './protocol';
|
|
11
|
+
import type {DeliveryAggregate,DeliveryAggregateOptions} from './aggregate';
|
|
12
|
+
|
|
13
|
+
/** Publish complete bytes without replacing another writer's immutable file. */
|
|
14
|
+
export function writeImmutableDeliveryFile(root:string,relative:string,bytes:Buffer):{path:string;sha256:string} {
|
|
15
|
+
const file=developmentPath(root,relative);
|
|
16
|
+
const existing=()=>{if(!readInputBytes(root,relative).equals(bytes))throw Error(`Immutable delivery file conflict: ${relative}`);};
|
|
17
|
+
if(fs.existsSync(file)){existing();return {path:relative,sha256:byteHash(bytes)};}
|
|
18
|
+
fs.mkdirSync(path.dirname(file),{recursive:true,mode:0o700});
|
|
19
|
+
const temporary=`${file}.${randomUUID()}.tmp`,fd=fs.openSync(temporary,'wx',0o600);
|
|
20
|
+
try{fs.writeFileSync(fd,bytes);fs.fsyncSync(fd);}finally{fs.closeSync(fd);}
|
|
21
|
+
try{
|
|
22
|
+
try{fs.linkSync(temporary,file);}catch(error){if((error as NodeJS.ErrnoException).code!=='EEXIST')throw error;existing();}
|
|
23
|
+
}finally{fs.unlinkSync(temporary);}
|
|
24
|
+
const directory=fs.openSync(path.dirname(file),'r');try{fs.fsyncSync(directory);}finally{fs.closeSync(directory);}
|
|
25
|
+
return {path:relative,sha256:byteHash(bytes)};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export function persistDevelopmentInputs(input:{root:string;source:DeliveryAggregateOptions;aggregate:DeliveryAggregate}):{sourcePath:string;aggregatePath:string} {
|
|
29
|
+
const root=fs.realpathSync(input.root),{source,aggregate}=input,plan=parseDeliveryPlan(aggregate.collections[0]?.plan);
|
|
30
|
+
if(source.selection!=='development'||source.targets.length!==1||aggregate.collections.length!==1||plan.environment!=='dev'
|
|
31
|
+
||projectRoot(source.workspaceRoot,source.projectRoot)!==root||source.targets[0].executionId!==plan.executionId||source.targets[0].request.network!==plan.target)
|
|
32
|
+
throw Error('Development inputs require the original single-target preparation');
|
|
33
|
+
const id=safeId(plan.executionId,'executionId'),base=`.gate-delivery/development/${id}`;
|
|
34
|
+
const sourcePath=`${base}.source.json`,aggregatePath=`${base}.aggregate.json`;
|
|
35
|
+
// Check both existing inputs before publishing either file.
|
|
36
|
+
const entries:[[string,unknown],[string,unknown]]=[[sourcePath,source],[aggregatePath,aggregate]];
|
|
37
|
+
for(const [file,value]of entries)if(fs.existsSync(developmentPath(root,file))&&canonicalJson(JSON.parse(readInputBytes(root,file).toString()))!==canonicalJson(value))
|
|
38
|
+
throw Error(`Immutable delivery file conflict: ${file}`);
|
|
39
|
+
// Existing preparation bytes remain authoritative, including their original JSON formatting.
|
|
40
|
+
for(const [file,value]of entries)if(!fs.existsSync(developmentPath(root,file)))writeImmutableDeliveryFile(root,file,Buffer.from(canonicalJson(value)+'\n'));
|
|
41
|
+
return {sourcePath,aggregatePath};
|
|
42
|
+
}
|
|
@@ -25,6 +25,7 @@ import {DeliveryOperationIdentities} from './identities';
|
|
|
25
25
|
import {parsePreparationJournal,type PreparationEntry} from './journal';
|
|
26
26
|
import type {DeliveryCollection} from './planning';
|
|
27
27
|
import type {DeliveryAggregate,DeliveryAggregateOptions} from './aggregate';
|
|
28
|
+
export {persistDevelopmentInputs} from './development-inputs';
|
|
28
29
|
import {openAggregateSources} from './aggregate-inputs';
|
|
29
30
|
import {loadDeliveryPublicTarget} from './config';
|
|
30
31
|
import {inputDigest,readInputBytes} from './input-files';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/** Verify retained producer bytes in memory. Historical code is never extracted or executed. */
|
|
2
|
+
import {createHash} from 'node:crypto';
|
|
3
|
+
import {gunzipSync} from 'node:zlib';
|
|
4
|
+
import {byteHash} from './materialization';
|
|
5
|
+
import {object,portablePath} from './protocol';
|
|
6
|
+
import {canonicalJson} from '../workflow/lib/canonicalData';
|
|
7
|
+
import type {DeliveryAggregate} from './aggregate';
|
|
8
|
+
|
|
9
|
+
export function readHistoricalPackage(archive:Buffer,archiveFile:string,aggregate:DeliveryAggregate):ReadonlyMap<string,Buffer> {
|
|
10
|
+
if(archiveFile!==`.gate-delivery/packages/${byteHash(archive)}.json.gz`)throw Error('Historical archive content address mismatch');
|
|
11
|
+
const snapshot=object(JSON.parse(gunzipSync(archive,{maxOutputLength:128*1024*1024}).toString()),'historical package snapshot',['schema','version','runtimeIdentity','observedPackage','files']);
|
|
12
|
+
if(snapshot.schema!=='gate-delivery-package-snapshot'||snapshot.version!==2||!Array.isArray(snapshot.files))throw Error('Invalid historical package snapshot archive');
|
|
13
|
+
const original=aggregate.inputs.runtime.package;
|
|
14
|
+
const same=(a:unknown,b:unknown,label:string)=>{if(canonicalJson(a)!==canonicalJson(b))throw Error(`${label} mismatch`);};
|
|
15
|
+
same(snapshot.observedPackage,original,'Historical snapshot provenance');
|
|
16
|
+
same(snapshot.runtimeIdentity,aggregate.inputs.runtime.declared,'Historical snapshot runtime');
|
|
17
|
+
const files=new Map<string,Buffer>();
|
|
18
|
+
for(const raw of snapshot.files){
|
|
19
|
+
const file=object(raw,'historical package member',['path','digest','base64']),relative=portablePath(file.path,'historical package member');
|
|
20
|
+
if(relative.split('/').includes('node_modules')||files.has(relative)||typeof file.base64!=='string')throw Error('Invalid historical package member');
|
|
21
|
+
const bytes=Buffer.from(file.base64,'base64');
|
|
22
|
+
if(bytes.toString('base64')!==file.base64||byteHash(bytes)!==file.digest)throw Error('Historical snapshot archive bytes mismatch');
|
|
23
|
+
files.set(relative,bytes);
|
|
24
|
+
}
|
|
25
|
+
const payload=[...files].map(([path,bytes])=>({path,digest:byteHash(bytes)}));
|
|
26
|
+
same(payload,original.payload,'Historical archive complete payload');
|
|
27
|
+
same(byteHash(payload.map(f=>`${f.path}\0${f.digest}\n`).join('')),original.payloadDigest,'Historical payload digest');
|
|
28
|
+
// Match the producer's sorted directory traversal, including file/directory prefix ordering.
|
|
29
|
+
const children=new Map<string,Set<string>>();
|
|
30
|
+
for(const relative of files.keys()){
|
|
31
|
+
const parts=relative.split('/');let directory='';
|
|
32
|
+
for(let i=0;i<parts.length;i++){
|
|
33
|
+
if(files.has(directory))throw Error('Historical package file/directory collision');
|
|
34
|
+
if(!children.has(directory))children.set(directory,new Set());
|
|
35
|
+
children.get(directory)!.add(parts[i]);directory=directory?`${directory}/${parts[i]}`:parts[i];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const digest=createHash('sha256');
|
|
39
|
+
const visit=(directory:string)=>{
|
|
40
|
+
const names=children.get(directory);if(!names)throw Error('Historical executable directory missing');
|
|
41
|
+
for(const name of [...names].sort()){
|
|
42
|
+
const relative=`${directory}/${name}`,bytes=files.get(relative);
|
|
43
|
+
if(bytes){if(/\.(?:c?js)$/.test(relative)){digest.update(relative);digest.update(bytes);}}
|
|
44
|
+
else visit(relative);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
for(const directory of ['dist-runtime','dist','dist-cjs','bin'])visit(directory);
|
|
48
|
+
same(digest.digest('hex'),aggregate.inputs.runtime.declared.digest,'Historical executable runtime digest');
|
|
49
|
+
return files;
|
|
50
|
+
}
|
|
@@ -1,32 +1,42 @@
|
|
|
1
|
-
/**
|
|
1
|
+
/** Preserve accepted development inputs and one shared, compressed producer snapshot. */
|
|
2
2
|
import fs from 'node:fs';
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import {gzipSync} from 'node:zlib';
|
|
5
5
|
import {readInputBytes} from './input-files';
|
|
6
6
|
import {confinedFile,projectRoot} from './project-files';
|
|
7
|
-
import {
|
|
7
|
+
import {byteHash,developmentPath} from './materialization';
|
|
8
8
|
import {canonicalJson,semanticHash} from '../workflow/lib/canonicalData';
|
|
9
9
|
import {parseDeliveryPlan} from './plan';
|
|
10
10
|
import {safeId} from './protocol';
|
|
11
|
+
import {persistDevelopmentInputs,writeImmutableDeliveryFile} from './development-inputs';
|
|
11
12
|
import type {DeliveryAggregate,DeliveryAggregateOptions} from './aggregate';
|
|
12
13
|
import type {HistoricalDevelopmentFiles} from './release-history';
|
|
13
14
|
export function captureDevelopmentReleaseHistory(input:{root:string;source:DeliveryAggregateOptions;aggregate:DeliveryAggregate}):HistoricalDevelopmentFiles {
|
|
14
15
|
const root=fs.realpathSync(input.root),a=input.aggregate,plan=parseDeliveryPlan(a.collections[0]?.plan);
|
|
15
16
|
if(input.source.selection!=='development'||a.collections.length!==1||plan.environment!=='dev'||projectRoot(input.source.workspaceRoot,input.source.projectRoot)!==root)throw Error('Historical capture requires original development source');
|
|
16
17
|
safeId(plan.executionId,'executionId');
|
|
17
|
-
const base=`.gate-delivery/history/${plan.executionId}`,
|
|
18
|
+
const base=`.gate-delivery/history/${plan.executionId}`,readyFile=`${base}/READY.json`;
|
|
18
19
|
const acceptanceFile=`.gate-delivery/development/${plan.executionId}.acceptance.json`,acceptance=JSON.parse(readInputBytes(root,acceptanceFile).toString());
|
|
19
20
|
if(acceptance.status!=='accepted'||acceptance.planHash!==plan.planHash||acceptance.inputsHash!==a.inputsHash||semanticHash(acceptance.runtimeIdentity)!==semanticHash(plan.runtimeIdentity))throw Error('Historical capture requires actual accepted development');
|
|
20
21
|
const original=a.inputs.runtime.package;if(original.name!=='gate-evm-tools'||original.lockLocation!=='node_modules/gate-evm-tools')throw Error('Unsupported historical producer location');
|
|
22
|
+
// A completed capture can be reused after the installed producer changes.
|
|
23
|
+
if(fs.existsSync(developmentPath(root,readyFile))){
|
|
24
|
+
const ready=JSON.parse(readInputBytes(root,readyFile).toString());
|
|
25
|
+
if(ready.schema!=='gate-delivery-history-ready'||ready.version!==2||ready.generation!=='complete'||ready.planHash!==plan.planHash||ready.aggregateHash!==semanticHash(a)||ready.sourceHash!==semanticHash(input.source)||ready.descriptor?.version!==2||ready.descriptor.readyFile!==readyFile||!Array.isArray(ready.files)||!ready.files.length)throw Error('Conflicting historical capture');
|
|
26
|
+
for(const f of ready.files)if(byteHash(readInputBytes(root,f.path))!==f.sha256)throw Error('Captured historical file drift');
|
|
27
|
+
return ready.descriptor;
|
|
28
|
+
}
|
|
21
29
|
const files:Array<{path:string;digest:string;base64:string}>=[];
|
|
22
30
|
const visit=(relative:string)=>{const dir=confinedFile(root,`${original.lockLocation}/${relative}`.replace(/\/$/,''),'directory');for(const name of fs.readdirSync(dir).sort()){const rel=relative?`${relative}/${name}`:name;const stat=fs.lstatSync(path.join(dir,name));if(stat.isDirectory()){if(name==='node_modules')continue;visit(rel);}else{const bytes=readInputBytes(root,`${original.lockLocation}/${rel}`);files.push({path:rel,digest:byteHash(bytes),base64:bytes.toString('base64')});}}};visit('');files.sort((a,b)=>a.path<b.path?-1:a.path>b.path?1:0);
|
|
23
31
|
if(semanticHash(files.map(({path,digest})=>({path,digest})))!==semanticHash(original.payload))throw Error('Historical capture must precede producer/runtime replacement');
|
|
24
|
-
const
|
|
25
|
-
|
|
32
|
+
const archive=gzipSync(Buffer.from(canonicalJson({schema:'gate-delivery-package-snapshot',version:2,runtimeIdentity:plan.runtimeIdentity,observedPackage:original,files})));
|
|
33
|
+
const archiveFile=`.gate-delivery/packages/${byteHash(archive)}.json.gz`;
|
|
26
34
|
const saved:Array<{path:string;sha256:string}>=[];
|
|
27
|
-
const write=(relative:string,bytes:Buffer)=>
|
|
28
|
-
|
|
35
|
+
const write=(relative:string,bytes:Buffer)=>saved.push(writeImmutableDeliveryFile(root,relative,bytes));
|
|
36
|
+
const {sourcePath:sourceFile,aggregatePath:aggregateFile}=persistDevelopmentInputs(input);
|
|
37
|
+
const descriptor:HistoricalDevelopmentFiles={version:2,aggregateFile,sourceFile,acceptanceFile,readyFile,inputsRoot:`${base}/inputs`,archiveFile};
|
|
38
|
+
for(const relative of [sourceFile,aggregateFile,acceptanceFile])saved.push({path:relative,sha256:byteHash(readInputBytes(root,relative))});
|
|
29
39
|
for(const name of [`${a.inputs.business.businessRoot}/task.yaml`,`${a.inputs.business.businessRoot}/parameters.yaml`,`${a.inputs.business.businessRoot}/parameters.provenance.json`,'config.yaml','hardhat.config.ts','package-lock.json','contractInfo.json','deploymentInfo.json'])write(`${base}/inputs/${name}`,readInputBytes(root,name));
|
|
30
|
-
write(
|
|
31
|
-
|
|
40
|
+
write(archiveFile,archive);
|
|
41
|
+
writeImmutableDeliveryFile(root,readyFile,Buffer.from(canonicalJson({schema:'gate-delivery-history-ready',version:2,generation:'complete',planHash:plan.planHash,aggregateHash:semanticHash(a),sourceHash:semanticHash(input.source),descriptor,files:saved})+'\n'));return descriptor;
|
|
32
42
|
}
|
|
@@ -4,16 +4,15 @@ import fs from 'node:fs';
|
|
|
4
4
|
import {aggregateInputHash} from './execution-identity';
|
|
5
5
|
export {aggregateInputHash} from './execution-identity';
|
|
6
6
|
import path from 'node:path';
|
|
7
|
-
import {createHash} from 'node:crypto';
|
|
8
|
-
import {gzipSync,gunzipSync} from 'node:zlib';
|
|
9
7
|
import {Contract,JsonRpcProvider} from 'ethers';
|
|
10
8
|
import {BytecodeChecker,TRANSPARENT_PROXY_ARTIFACT,PROXY_ADMIN_ARTIFACT,ERC1967_ADMIN_SLOT,PROXY_ADMIN_INTERFACE,transparentAdminAddress,assertTransparentAdminImmutable} from 'gate-evm-tools/workflow';
|
|
11
9
|
import {readInputBytes,inputDigest,parseInputDocument} from './input-files';
|
|
12
|
-
import {
|
|
10
|
+
import {projectRoot} from './project-files';
|
|
13
11
|
import {parseCanonicalPlan,projectCanonicalDefinitions} from './source';
|
|
14
12
|
import {parseConfigurationDefinition} from './configuration-definition';
|
|
15
13
|
import {parseDeliveryPublicTargets} from './config';
|
|
16
|
-
import {object} from './protocol';
|
|
14
|
+
import {object,safeId} from './protocol';
|
|
15
|
+
import {readHistoricalPackage} from './history-package';
|
|
17
16
|
import {readProjectNetworkSnapshots} from './project';
|
|
18
17
|
import {parseDeliveryPlan} from './plan';
|
|
19
18
|
import {parsePreparationJournal} from './journal';
|
|
@@ -33,35 +32,32 @@ import {resolveParameterTargets} from './parameter-defaults';
|
|
|
33
32
|
import {validateHistoricalParameterExtension,type ParameterInputs} from './parameters';
|
|
34
33
|
import {validateHistoricalBusinessExtension} from './business-extension';
|
|
35
34
|
import {parseNativeOperation} from './custom';
|
|
36
|
-
export interface HistoricalDevelopmentFiles {aggregateFile:string;sourceFile:string;acceptanceFile:string;
|
|
35
|
+
export interface HistoricalDevelopmentFiles {version:2;aggregateFile:string;sourceFile:string;acceptanceFile:string;readyFile:string;inputsRoot:string;archiveFile:string}
|
|
37
36
|
function decode(raw:any):any{const v=parseTypedValue(raw);switch(v.type){case 'bigint':return BigInt(v.value);case 'number':return Number(v.value);case 'array':return v.value.map(decode);case 'object':return Object.fromEntries(Object.entries(v.value).map(([k,x])=>[k,decode(x)]));default:return v.value;}}
|
|
38
37
|
/** Every mutable historical container is retained with its ORIGINAL digest; allowed deltas are explicit. */
|
|
39
38
|
export function validateHistoricalDevelopmentFiles(input:{root:string;workspaceRoot:string;projectRoot:string;history:HistoricalDevelopmentFiles}){
|
|
40
39
|
const workspace=projectRoot(input.workspaceRoot,'.'),root=projectRoot(workspace,input.projectRoot),{history}=input,files=new Map<string,string>();
|
|
41
40
|
if(fs.realpathSync(input.root)!==root)throw Error('Historical current project root mismatch');
|
|
41
|
+
object(history,'historical descriptor',['version','aggregateFile','sourceFile','acceptanceFile','readyFile','inputsRoot','archiveFile']);
|
|
42
|
+
if(history.version!==2)throw Error('Unsupported historical descriptor version');
|
|
42
43
|
const read=(relative:string)=>{const bytes=readInputBytes(root,relative);files.set(relative,inputDigest(bytes));return bytes;};
|
|
43
44
|
const aggregate=JSON.parse(read(history.aggregateFile).toString()) as DeliveryAggregate,source=JSON.parse(read(history.sourceFile).toString()) as DeliveryAggregateOptions,acceptance=JSON.parse(read(history.acceptanceFile).toString());
|
|
44
45
|
if(source.projectRoot!==input.projectRoot)throw Error('Historical relative project scope mismatch');
|
|
45
46
|
if(source.selection!=='development'||source.targets.length!==1||aggregate.collections.length!==1||aggregate.inputs.business.targets.length!==1)throw Error('Historical development scope mismatch');
|
|
46
47
|
same(aggregateInputHash(aggregate),aggregate.inputsHash,'Historical aggregate inputs');same(semanticHash(aggregate.inputs.sourceDefinitions),aggregate.sourceDefinitionHash,'Historical source hash');
|
|
47
48
|
const collection=aggregate.collections[0],plan=parseDeliveryPlan(collection.plan),target=aggregate.inputs.business.targets[0];
|
|
49
|
+
const id=safeId(plan.executionId,'executionId'),base=`.gate-delivery/history/${id}`;
|
|
50
|
+
if(history.aggregateFile!==`.gate-delivery/development/${id}.aggregate.json`||history.sourceFile!==`.gate-delivery/development/${id}.source.json`||history.acceptanceFile!==`.gate-delivery/development/${id}.acceptance.json`||history.readyFile!==`${base}/READY.json`||history.inputsRoot!==`${base}/inputs`||!/^\.gate-delivery\/packages\/[a-f0-9]{64}\.json\.gz$/.test(history.archiveFile))throw Error('Noncanonical historical descriptor');
|
|
48
51
|
if(plan.environment!=='dev'||plan.target!==target.id||source.targets[0].request.network!==plan.target||source.targets[0].executionId!==plan.executionId)throw Error('Historical development identity mismatch');
|
|
49
52
|
for(const key of ['executionId','planHash','target','inputsHash','sourceDefinitionHash','runtimeIdentity'] as const)same(acceptance[key],plan[key],`Historical acceptance ${key}`);
|
|
50
53
|
if(acceptance.version!==1||acceptance.status!=='accepted')throw Error('Missing historical acceptance');
|
|
51
|
-
const
|
|
52
|
-
if(ready.schema!=='gate-delivery-history-ready'||ready.version!==
|
|
54
|
+
const ready=JSON.parse(read(history.readyFile).toString());
|
|
55
|
+
if(ready.schema!=='gate-delivery-history-ready'||ready.version!==2||ready.generation!=='complete'||ready.planHash!==plan.planHash||ready.aggregateHash!==semanticHash(aggregate)||ready.sourceHash!==semanticHash(source)||!Array.isArray(ready.files)||!ready.files.length)throw Error('Historical snapshot generation is not READY');
|
|
53
56
|
same(ready.descriptor,history,'Historical READY descriptor');for(const file of ready.files)if(byteHash(read(file.path))!==file.sha256)throw Error('Historical READY file binding mismatch');
|
|
54
57
|
const original=aggregate.inputs.runtime.package;
|
|
55
58
|
same(aggregate.inputs.runtime.declared,plan.runtimeIdentity,'Historical runtime identity');
|
|
56
59
|
if(original.name!=='gate-evm-tools'||original.version!==plan.runtimeIdentity.version||original.source.identity!==original.integrity)throw Error('Historical producer provenance mismatch');
|
|
57
|
-
const archive=read(history.archiveFile),
|
|
58
|
-
if(snapshot.schema!=='gate-delivery-package-snapshot'||snapshot.version!==1||!Array.isArray(snapshot.files))throw Error('Invalid historical package snapshot archive');
|
|
59
|
-
const archived=snapshot.files.map((f:any)=>{const bytes=Buffer.from(f.base64,'base64');if(bytes.toString('base64')!==f.base64||byteHash(bytes)!==f.digest)throw Error('Historical snapshot archive bytes mismatch');return {path:f.path,digest:f.digest};});
|
|
60
|
-
same(archived,original.payload,'Historical archive complete payload');same(snapshot.observedPackage,original,'Historical snapshot provenance');same(snapshot.runtimeIdentity,plan.runtimeIdentity,'Historical snapshot runtime');
|
|
61
|
-
const payload:Array<{path:string;digest:string}>=[];
|
|
62
|
-
const visit=(relative:string)=>{const dir=confinedFile(root,`${history.packageRoot}/${relative}`.replace(/\/$/,''),'directory');for(const name of fs.readdirSync(dir).sort()){if(name==='node_modules')throw Error('Historical producer nested package unsupported');const rel=relative?`${relative}/${name}`:name,p=confinedFile(root,`${history.packageRoot}/${rel}`,fs.lstatSync(path.join(dir,name)).isDirectory()?'directory':'file');if(fs.lstatSync(p).isDirectory())visit(rel);else payload.push({path:rel,digest:inputDigest(read(`${history.packageRoot}/${rel}`))});}};
|
|
63
|
-
visit('');payload.sort((a,b)=>a.path<b.path?-1:a.path>b.path?1:0);same(payload,original.payload,'Historical producer actual payload');same(byteHash(payload.map(f=>`${f.path}\0${f.digest}\n`).join('')),original.payloadDigest,'Historical payload digest');
|
|
64
|
-
const digest=createHash('sha256');const hashDir=(dir:string)=>{for(const name of fs.readdirSync(confinedFile(root,`${history.packageRoot}/${dir}`,'directory')).sort()){const rel=`${dir}/${name}`,file=confinedFile(root,`${history.packageRoot}/${rel}`,fs.lstatSync(path.join(root,history.packageRoot,rel)).isDirectory()?'directory':'file');if(fs.lstatSync(file).isDirectory())hashDir(rel);else if(/\.(?:c?js)$/.test(rel)){digest.update(rel);digest.update(read(`${history.packageRoot}/${rel}`));}}};for(const dir of ['dist-runtime','dist','dist-cjs','bin'])hashDir(dir);same(digest.digest('hex'),plan.runtimeIdentity.digest,'Historical executable runtime digest');
|
|
60
|
+
const archive=read(history.archiveFile),packageFiles=readHistoricalPackage(archive,history.archiveFile,aggregate);
|
|
65
61
|
const business=aggregate.inputs.business.businessRoot,mutable=new Set([`${business}/task.yaml`,`${business}/parameters.yaml`,`${business}/parameters.provenance.json`,'config.yaml','hardhat.config.ts']);
|
|
66
62
|
const old=(file:string)=>read(`${history.inputsRoot}/${file}`),now=(file:string)=>read(file);
|
|
67
63
|
const evolving=new Set([`${business}/manifest.yaml`,`${business}/parameters.schema.json`].filter(file=>{
|
|
@@ -81,7 +77,7 @@ export function validateHistoricalDevelopmentFiles(input:{root:string;workspaceR
|
|
|
81
77
|
}
|
|
82
78
|
const ownPayload=new Set(original.payload.map(file=>`${original.lockLocation}/${file.path}`));
|
|
83
79
|
// The entire old frozen file union is verified. Only owned producer bytes and bounded containers have historical locations.
|
|
84
|
-
for(const file of aggregate.inputs.files){if(evolving.has(file.path))continue;const bytes=ownPayload.has(file.path)?
|
|
80
|
+
for(const file of aggregate.inputs.files){if(evolving.has(file.path))continue;const bytes=ownPayload.has(file.path)?packageFiles.get(file.path.slice(original.lockLocation.length+1))!:mutable.has(file.path)?old(file.path):now(file.path);if(inputDigest(bytes)!==file.digest)throw Error(`Historical immutable input drift: ${file.path}`);}
|
|
85
81
|
const oldTask=parseInputDocument(old(`${business}/task.yaml`),'yaml') as any,newTask=parseInputDocument(now(`${business}/task.yaml`),'yaml') as any;
|
|
86
82
|
const {productionRequirementRef:_production,...newBase}=newTask;
|
|
87
83
|
same({...newBase,releaseTargetNetworks:oldTask.releaseTargetNetworks,...(oldTask.productionRequirementRef===undefined?{}:{productionRequirementRef:oldTask.productionRequirementRef})},oldTask,'Historical development task container');
|