@0xsequence/catapult 1.3.16 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +250 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/index.d.ts +1 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +1 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +12 -0
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/provenance.d.ts +3 -0
- package/dist/commands/provenance.d.ts.map +1 -0
- package/dist/commands/provenance.js +138 -0
- package/dist/commands/provenance.js.map +1 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +7 -4
- package/dist/commands/run.js.map +1 -1
- package/dist/lib/__tests__/deployer.spec.js +118 -1
- package/dist/lib/__tests__/deployer.spec.js.map +1 -1
- package/dist/lib/__tests__/network-utils.spec.js +53 -8
- package/dist/lib/__tests__/network-utils.spec.js.map +1 -1
- package/dist/lib/__tests__/provenance.spec.d.ts +2 -0
- package/dist/lib/__tests__/provenance.spec.d.ts.map +1 -0
- package/dist/lib/__tests__/provenance.spec.js +205 -0
- package/dist/lib/__tests__/provenance.spec.js.map +1 -0
- package/dist/lib/contracts/__tests__/repository.spec.js +243 -0
- package/dist/lib/contracts/__tests__/repository.spec.js.map +1 -1
- package/dist/lib/contracts/repository.d.ts +9 -1
- package/dist/lib/contracts/repository.d.ts.map +1 -1
- package/dist/lib/contracts/repository.js +93 -7
- package/dist/lib/contracts/repository.js.map +1 -1
- package/dist/lib/core/__tests__/assert-action.spec.d.ts +2 -0
- package/dist/lib/core/__tests__/assert-action.spec.d.ts.map +1 -0
- package/dist/lib/core/__tests__/assert-action.spec.js +377 -0
- package/dist/lib/core/__tests__/assert-action.spec.js.map +1 -0
- package/dist/lib/core/__tests__/engine.spec.js +80 -0
- package/dist/lib/core/__tests__/engine.spec.js.map +1 -1
- package/dist/lib/core/__tests__/loader.spec.js +29 -0
- package/dist/lib/core/__tests__/loader.spec.js.map +1 -1
- package/dist/lib/core/__tests__/resolver.spec.js +383 -0
- package/dist/lib/core/__tests__/resolver.spec.js.map +1 -1
- package/dist/lib/core/engine.d.ts.map +1 -1
- package/dist/lib/core/engine.js +33 -0
- package/dist/lib/core/engine.js.map +1 -1
- package/dist/lib/core/loader.d.ts +1 -0
- package/dist/lib/core/loader.d.ts.map +1 -1
- package/dist/lib/core/loader.js +6 -1
- package/dist/lib/core/loader.js.map +1 -1
- package/dist/lib/core/resolver.d.ts +2 -0
- package/dist/lib/core/resolver.d.ts.map +1 -1
- package/dist/lib/core/resolver.js +89 -0
- package/dist/lib/core/resolver.js.map +1 -1
- package/dist/lib/deployer.d.ts.map +1 -1
- package/dist/lib/deployer.js +21 -4
- package/dist/lib/deployer.js.map +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lib/parsers/__tests__/job.spec.js +77 -0
- package/dist/lib/parsers/__tests__/job.spec.js.map +1 -1
- package/dist/lib/parsers/__tests__/source.spec.d.ts +2 -0
- package/dist/lib/parsers/__tests__/source.spec.d.ts.map +1 -0
- package/dist/lib/parsers/__tests__/source.spec.js +121 -0
- package/dist/lib/parsers/__tests__/source.spec.js.map +1 -0
- package/dist/lib/parsers/index.d.ts +1 -0
- package/dist/lib/parsers/index.d.ts.map +1 -1
- package/dist/lib/parsers/index.js +1 -0
- package/dist/lib/parsers/index.js.map +1 -1
- package/dist/lib/parsers/job.d.ts.map +1 -1
- package/dist/lib/parsers/job.js +11 -0
- package/dist/lib/parsers/job.js.map +1 -1
- package/dist/lib/parsers/source.d.ts +4 -0
- package/dist/lib/parsers/source.d.ts.map +1 -0
- package/dist/lib/parsers/source.js +107 -0
- package/dist/lib/parsers/source.js.map +1 -0
- package/dist/lib/provenance.d.ts +34 -0
- package/dist/lib/provenance.d.ts.map +1 -0
- package/dist/lib/provenance.js +645 -0
- package/dist/lib/provenance.js.map +1 -0
- package/dist/lib/types/actions.d.ts +18 -2
- package/dist/lib/types/actions.d.ts.map +1 -1
- package/dist/lib/types/actions.js +1 -0
- package/dist/lib/types/actions.js.map +1 -1
- package/dist/lib/types/contracts.d.ts +3 -0
- package/dist/lib/types/contracts.d.ts.map +1 -1
- package/dist/lib/types/definitions.d.ts +1 -0
- package/dist/lib/types/definitions.d.ts.map +1 -1
- package/dist/lib/types/index.d.ts +1 -0
- package/dist/lib/types/index.d.ts.map +1 -1
- package/dist/lib/types/index.js +1 -0
- package/dist/lib/types/index.js.map +1 -1
- package/dist/lib/types/source.d.ts +24 -0
- package/dist/lib/types/source.d.ts.map +1 -0
- package/dist/lib/types/source.js +3 -0
- package/dist/lib/types/source.js.map +1 -0
- package/dist/lib/types/values.d.ts +33 -1
- package/dist/lib/types/values.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +3 -2
- package/src/commands/index.ts +2 -1
- package/src/commands/list.ts +14 -1
- package/src/commands/provenance.ts +120 -0
- package/src/commands/run.ts +11 -6
- package/src/lib/__tests__/deployer.spec.ts +177 -1
- package/src/lib/__tests__/network-utils.spec.ts +63 -14
- package/src/lib/__tests__/provenance.spec.ts +208 -0
- package/src/lib/contracts/__tests__/repository.spec.ts +270 -2
- package/src/lib/contracts/repository.ts +112 -14
- package/src/lib/core/__tests__/assert-action.spec.ts +474 -0
- package/src/lib/core/__tests__/engine.spec.ts +116 -0
- package/src/lib/core/__tests__/loader.spec.ts +34 -1
- package/src/lib/core/__tests__/resolver.spec.ts +444 -1
- package/src/lib/core/engine.ts +52 -0
- package/src/lib/core/loader.ts +8 -2
- package/src/lib/core/resolver.ts +116 -0
- package/src/lib/deployer.ts +28 -4
- package/src/lib/index.ts +4 -1
- package/src/lib/parsers/__tests__/job.spec.ts +81 -0
- package/src/lib/parsers/__tests__/source.spec.ts +134 -0
- package/src/lib/parsers/index.ts +1 -0
- package/src/lib/parsers/job.ts +14 -2
- package/src/lib/parsers/source.ts +129 -0
- package/src/lib/provenance.ts +785 -0
- package/src/lib/types/actions.ts +22 -1
- package/src/lib/types/contracts.ts +4 -1
- package/src/lib/types/definitions.ts +7 -0
- package/src/lib/types/index.ts +1 -0
- package/src/lib/types/source.ts +26 -0
- package/src/lib/types/values.ts +71 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const source_1 = require("../source");
|
|
4
|
+
describe('Source Provenance Parsing', () => {
|
|
5
|
+
it('should return null for non-source YAML documents', () => {
|
|
6
|
+
const result = (0, source_1.parseSourceDocument)(`
|
|
7
|
+
type: constants
|
|
8
|
+
constants:
|
|
9
|
+
value: 1
|
|
10
|
+
`);
|
|
11
|
+
expect(result).toBeNull();
|
|
12
|
+
});
|
|
13
|
+
it('should parse source provenance documents', () => {
|
|
14
|
+
const result = (0, source_1.parseSourceDocument)(`
|
|
15
|
+
type: source
|
|
16
|
+
build_info:
|
|
17
|
+
"./stage1.json":
|
|
18
|
+
repo: "https://github.com/0xsequence/wallet-contracts-v3"
|
|
19
|
+
ref: "v3.0.0-rc.5"
|
|
20
|
+
commit: "0d9061f229da73edae890e6fdd1fbf753028df6d"
|
|
21
|
+
build: "forge build --build-info"
|
|
22
|
+
contracts:
|
|
23
|
+
"src/Stage1Module.sol:Stage1Module":
|
|
24
|
+
ref: "stage1-special"
|
|
25
|
+
`);
|
|
26
|
+
expect(result).not.toBeNull();
|
|
27
|
+
expect(result.build_info['./stage1.json'].repo).toBe('https://github.com/0xsequence/wallet-contracts-v3');
|
|
28
|
+
expect(result.build_info['./stage1.json'].contracts?.['src/Stage1Module.sol:Stage1Module'].ref).toBe('stage1-special');
|
|
29
|
+
});
|
|
30
|
+
it('should require repo on each build-info provenance entry', () => {
|
|
31
|
+
const result = (0, source_1.parseSourceDocument)(`
|
|
32
|
+
type: source
|
|
33
|
+
build_info:
|
|
34
|
+
"./stage1.json":
|
|
35
|
+
ref: "v3.0.0-rc.5"
|
|
36
|
+
`);
|
|
37
|
+
expect(result).not.toBeNull();
|
|
38
|
+
expect(result.build_info).toEqual({});
|
|
39
|
+
expect(result.warnings).toEqual([
|
|
40
|
+
expect.stringContaining('build_info["./stage1.json"].repo')
|
|
41
|
+
]);
|
|
42
|
+
});
|
|
43
|
+
it('should validate optional string fields', () => {
|
|
44
|
+
const result = (0, source_1.parseSourceDocument)(`
|
|
45
|
+
type: source
|
|
46
|
+
build_info:
|
|
47
|
+
"./stage1.json":
|
|
48
|
+
repo: "https://github.com/0xsequence/wallet-contracts-v3"
|
|
49
|
+
commit: 123
|
|
50
|
+
`);
|
|
51
|
+
expect(result).not.toBeNull();
|
|
52
|
+
expect(result.build_info).toEqual({});
|
|
53
|
+
expect(result.warnings).toEqual([
|
|
54
|
+
expect.stringContaining('commit')
|
|
55
|
+
]);
|
|
56
|
+
});
|
|
57
|
+
it('should reject unsupported fields', () => {
|
|
58
|
+
const result = (0, source_1.parseSourceDocument)(`
|
|
59
|
+
type: source
|
|
60
|
+
build_info:
|
|
61
|
+
"./stage1.json":
|
|
62
|
+
repo: "https://github.com/0xsequence/wallet-contracts-v3"
|
|
63
|
+
path: "contracts"
|
|
64
|
+
`);
|
|
65
|
+
expect(result).not.toBeNull();
|
|
66
|
+
expect(result.build_info).toEqual({});
|
|
67
|
+
expect(result.warnings).toEqual([
|
|
68
|
+
expect.stringContaining('path is not supported')
|
|
69
|
+
]);
|
|
70
|
+
});
|
|
71
|
+
it('should quote build-info paths in validation errors', () => {
|
|
72
|
+
const result = (0, source_1.parseSourceDocument)(`
|
|
73
|
+
type: source
|
|
74
|
+
build_info:
|
|
75
|
+
"./stage1.json":
|
|
76
|
+
ref: "v3.0.0-rc.5"
|
|
77
|
+
`);
|
|
78
|
+
expect(result).not.toBeNull();
|
|
79
|
+
expect(result.warnings).toEqual([
|
|
80
|
+
expect.stringContaining('build_info["./stage1.json"].repo')
|
|
81
|
+
]);
|
|
82
|
+
});
|
|
83
|
+
it('should keep valid entries when sibling entries are invalid', () => {
|
|
84
|
+
const result = (0, source_1.parseSourceDocument)(`
|
|
85
|
+
type: source
|
|
86
|
+
build_info:
|
|
87
|
+
"./stage1.json":
|
|
88
|
+
repo: "https://github.com/0xsequence/wallet-contracts-v3"
|
|
89
|
+
"./bad.json":
|
|
90
|
+
typo_field: true
|
|
91
|
+
`);
|
|
92
|
+
expect(result).not.toBeNull();
|
|
93
|
+
expect(Object.keys(result.build_info)).toEqual(['./stage1.json']);
|
|
94
|
+
expect(result.warnings).toEqual([
|
|
95
|
+
expect.stringContaining('typo_field is not supported')
|
|
96
|
+
]);
|
|
97
|
+
});
|
|
98
|
+
describe('mergeSourceProvenance', () => {
|
|
99
|
+
it('should merge contract overrides into build-info provenance', () => {
|
|
100
|
+
const result = (0, source_1.mergeSourceProvenance)({
|
|
101
|
+
repo: 'https://github.com/0xsequence/wallet-contracts-v3',
|
|
102
|
+
ref: 'v3.0.0-rc.5',
|
|
103
|
+
commit: '0d9061f229da73edae890e6fdd1fbf753028df6d',
|
|
104
|
+
contracts: {
|
|
105
|
+
'src/Stage1Module.sol:Stage1Module': {
|
|
106
|
+
ref: 'stage1-special'
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}, {
|
|
110
|
+
ref: 'stage1-special'
|
|
111
|
+
});
|
|
112
|
+
expect(result).toEqual({
|
|
113
|
+
repo: 'https://github.com/0xsequence/wallet-contracts-v3',
|
|
114
|
+
ref: 'stage1-special',
|
|
115
|
+
commit: '0d9061f229da73edae890e6fdd1fbf753028df6d'
|
|
116
|
+
});
|
|
117
|
+
expect(result).not.toHaveProperty('contracts');
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=source.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.spec.js","sourceRoot":"","sources":["../../../../src/lib/parsers/__tests__/source.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,OAAO,CAAA;AACrB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAA;AAC1B,cAAc,OAAO,CAAA;AACrB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA"}
|
|
@@ -18,4 +18,5 @@ __exportStar(require("./template"), exports);
|
|
|
18
18
|
__exportStar(require("./job"), exports);
|
|
19
19
|
__exportStar(require("./buildinfo"), exports);
|
|
20
20
|
__exportStar(require("./constants"), exports);
|
|
21
|
+
__exportStar(require("./source"), exports);
|
|
21
22
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/parsers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,6CAA0B;AAC1B,wCAAqB;AACrB,8CAA2B;AAC3B,8CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/parsers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,6CAA0B;AAC1B,wCAAqB;AACrB,8CAA2B;AAC3B,8CAA2B;AAC3B,2CAAwB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/job.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,GAAG,EAAa,MAAM,UAAU,CAAA;AAiCpD,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/job.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,GAAG,EAAa,MAAM,UAAU,CAAA;AAiCpD,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG,CA6HjD"}
|
package/dist/lib/parsers/job.js
CHANGED
|
@@ -85,6 +85,16 @@ function parseJob(yamlContent) {
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
+
if (rawObject.skip_if !== undefined) {
|
|
89
|
+
if (!Array.isArray(rawObject.skip_if)) {
|
|
90
|
+
throw new Error(`Invalid job "${rawObject.name}": "skip_if" must be an array if provided.`);
|
|
91
|
+
}
|
|
92
|
+
for (const condition of rawObject.skip_if) {
|
|
93
|
+
if (!isCondition(condition)) {
|
|
94
|
+
throw new Error(`Invalid job "${rawObject.name}": "skip_if" contains an invalid condition entry.`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
88
98
|
if (rawObject.constants !== undefined) {
|
|
89
99
|
if (typeof rawObject.constants !== 'object' || rawObject.constants === null || Array.isArray(rawObject.constants)) {
|
|
90
100
|
throw new Error(`Invalid job "${rawObject.name}": "constants" field must be an object if provided.`);
|
|
@@ -101,6 +111,7 @@ function parseJob(yamlContent) {
|
|
|
101
111
|
min_evm_version: rawObject.min_evm_version,
|
|
102
112
|
deprecated: rawObject.deprecated === true,
|
|
103
113
|
skip_condition: rawObject.skip_condition,
|
|
114
|
+
skip_if: rawObject.skip_if,
|
|
104
115
|
constants: rawObject.constants,
|
|
105
116
|
};
|
|
106
117
|
return job;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/lib/parsers/job.ts"],"names":[],"mappings":";;AAkCA,
|
|
1
|
+
{"version":3,"file":"job.js","sourceRoot":"","sources":["../../../src/lib/parsers/job.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BuildInfoSourceProvenance, SourceDocument, SourceProvenance, SourceProvenanceOverride } from '../types';
|
|
2
|
+
export declare function parseSourceDocument(yamlContent: string): SourceDocument | null;
|
|
3
|
+
export declare function mergeSourceProvenance(base: BuildInfoSourceProvenance, override?: SourceProvenanceOverride): SourceProvenance;
|
|
4
|
+
//# sourceMappingURL=source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/lib/parsers/source.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAwEhH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CA4C9E;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,yBAAyB,EAC/B,QAAQ,CAAC,EAAE,wBAAwB,GAClC,gBAAgB,CAMlB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseSourceDocument = parseSourceDocument;
|
|
4
|
+
exports.mergeSourceProvenance = mergeSourceProvenance;
|
|
5
|
+
const yaml_1 = require("yaml");
|
|
6
|
+
const STRING_FIELDS = ['repo', 'ref', 'commit', 'build'];
|
|
7
|
+
const BUILD_INFO_FIELDS = new Set([...STRING_FIELDS, 'contracts']);
|
|
8
|
+
const CONTRACT_OVERRIDE_FIELDS = new Set(STRING_FIELDS);
|
|
9
|
+
function isPlainObject(value) {
|
|
10
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
11
|
+
}
|
|
12
|
+
function buildInfoLabel(buildInfoPath) {
|
|
13
|
+
return `build_info[${JSON.stringify(buildInfoPath)}]`;
|
|
14
|
+
}
|
|
15
|
+
function contractOverrideLabel(buildInfoPath, contractName) {
|
|
16
|
+
return `${buildInfoLabel(buildInfoPath)}.contracts[${JSON.stringify(contractName)}]`;
|
|
17
|
+
}
|
|
18
|
+
function validateKnownFields(value, label, allowedFields) {
|
|
19
|
+
for (const field of Object.keys(value)) {
|
|
20
|
+
if (!allowedFields.has(field)) {
|
|
21
|
+
throw new Error(`Invalid source: ${label}.${field} is not supported.`);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function validateStringFields(value, label, requiredRepo) {
|
|
26
|
+
if (requiredRepo && (typeof value.repo !== 'string' || value.repo.length === 0)) {
|
|
27
|
+
throw new Error(`Invalid source: ${label}.repo field is required and must be a non-empty string.`);
|
|
28
|
+
}
|
|
29
|
+
for (const field of STRING_FIELDS) {
|
|
30
|
+
if (value[field] !== undefined && typeof value[field] !== 'string') {
|
|
31
|
+
throw new Error(`Invalid source: ${label}.${field} must be a string if provided.`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function validateBuildInfoProvenance(buildInfoPath, provenance) {
|
|
36
|
+
if (!isPlainObject(provenance)) {
|
|
37
|
+
throw new Error(`Invalid source: ${buildInfoLabel(buildInfoPath)} must be an object.`);
|
|
38
|
+
}
|
|
39
|
+
const label = buildInfoLabel(buildInfoPath);
|
|
40
|
+
validateKnownFields(provenance, label, BUILD_INFO_FIELDS);
|
|
41
|
+
validateStringFields(provenance, label, true);
|
|
42
|
+
if (provenance.contracts !== undefined) {
|
|
43
|
+
if (!isPlainObject(provenance.contracts)) {
|
|
44
|
+
throw new Error(`Invalid source: ${label}.contracts must be an object if provided.`);
|
|
45
|
+
}
|
|
46
|
+
for (const [contractName, override] of Object.entries(provenance.contracts)) {
|
|
47
|
+
if (!contractName || typeof contractName !== 'string') {
|
|
48
|
+
throw new Error(`Invalid source: ${label}.contracts keys must be non-empty strings.`);
|
|
49
|
+
}
|
|
50
|
+
if (!isPlainObject(override)) {
|
|
51
|
+
throw new Error(`Invalid source: ${contractOverrideLabel(buildInfoPath, contractName)} must be an object.`);
|
|
52
|
+
}
|
|
53
|
+
const overrideLabel = contractOverrideLabel(buildInfoPath, contractName);
|
|
54
|
+
validateKnownFields(override, overrideLabel, CONTRACT_OVERRIDE_FIELDS);
|
|
55
|
+
validateStringFields(override, overrideLabel, false);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return provenance;
|
|
59
|
+
}
|
|
60
|
+
function parseSourceDocument(yamlContent) {
|
|
61
|
+
let rawObject;
|
|
62
|
+
try {
|
|
63
|
+
rawObject = (0, yaml_1.parse)(yamlContent);
|
|
64
|
+
}
|
|
65
|
+
catch (e) {
|
|
66
|
+
if (e instanceof yaml_1.YAMLParseError) {
|
|
67
|
+
const line = e.linePos?.[0]?.line ? ` at line ${e.linePos[0].line}` : '';
|
|
68
|
+
throw new Error(`Failed to parse source YAML: ${e.message}${line}.`);
|
|
69
|
+
}
|
|
70
|
+
throw e;
|
|
71
|
+
}
|
|
72
|
+
if (!rawObject || typeof rawObject !== 'object') {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
if (rawObject.type !== 'source') {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
if (!isPlainObject(rawObject.build_info)) {
|
|
79
|
+
throw new Error('Invalid source: "build_info" field is required and must be an object.');
|
|
80
|
+
}
|
|
81
|
+
const buildInfo = {};
|
|
82
|
+
const warnings = [];
|
|
83
|
+
for (const [buildInfoPath, provenance] of Object.entries(rawObject.build_info)) {
|
|
84
|
+
if (!buildInfoPath || typeof buildInfoPath !== 'string') {
|
|
85
|
+
throw new Error('Invalid source: "build_info" keys must be non-empty strings.');
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
buildInfo[buildInfoPath] = validateBuildInfoProvenance(buildInfoPath, provenance);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
warnings.push(error instanceof Error ? error.message : String(error));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
type: 'source',
|
|
96
|
+
build_info: buildInfo,
|
|
97
|
+
warnings
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
function mergeSourceProvenance(base, override) {
|
|
101
|
+
const { contracts, ...baseFields } = base;
|
|
102
|
+
return {
|
|
103
|
+
...baseFields,
|
|
104
|
+
...(override || {})
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=source.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/lib/parsers/source.ts"],"names":[],"mappings":";;AAyEA,kDA4CC;AAED,sDASC;AAhID,+BAAyD;AAGzD,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAU,CAAA;AACjE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS,CAAC,GAAG,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;AAC1E,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAS,aAAa,CAAC,CAAA;AAE/D,SAAS,aAAa,CAAC,KAAU;IAC/B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,cAAc,CAAC,aAAqB;IAC3C,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAA;AACvD,CAAC;AAED,SAAS,qBAAqB,CAAC,aAAqB,EAAE,YAAoB;IACxE,OAAO,GAAG,cAAc,CAAC,aAAa,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,CAAA;AACtF,CAAC;AAED,SAAS,mBAAmB,CAAC,KAA0B,EAAE,KAAa,EAAE,aAA0B;IAChG,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,IAAI,KAAK,oBAAoB,CAAC,CAAA;QACxE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA0B,EAAE,KAAa,EAAE,YAAqB;IAC5F,IAAI,YAAY,IAAI,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,yDAAyD,CAAC,CAAA;IACpG,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,IAAI,KAAK,gCAAgC,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,aAAqB,EAAE,UAAmB;IAC7E,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,mBAAmB,cAAc,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAA;IACxF,CAAC;IAED,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,CAAA;IAC3C,mBAAmB,CAAC,UAAU,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAA;IACzD,oBAAoB,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAE7C,IAAI,UAAU,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,2CAA2C,CAAC,CAAA;QACtF,CAAC;QAED,KAAK,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,4CAA4C,CAAC,CAAA;YACvF,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,mBAAmB,qBAAqB,CAAC,aAAa,EAAE,YAAY,CAAC,qBAAqB,CAAC,CAAA;YAC7G,CAAC;YACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,aAAa,EAAE,YAAY,CAAC,CAAA;YACxE,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,wBAAwB,CAAC,CAAA;YACtE,oBAAoB,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,CAAA;QACtD,CAAC;IACH,CAAC;IAED,OAAO,UAAuC,CAAA;AAChD,CAAC;AAMD,SAAgB,mBAAmB,CAAC,WAAmB;IACrD,IAAI,SAAc,CAAA;IAClB,IAAI,CAAC;QACH,SAAS,GAAG,IAAA,YAAS,EAAC,WAAW,CAAC,CAAA;IACpC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,qBAAc,EAAE,CAAC;YAChC,MAAM,IAAI,GAAI,CAAS,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,YAAa,CAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;YAC1F,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAA;QACtE,CAAC;QACD,MAAM,CAAC,CAAA;IACT,CAAC;IAED,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;IAC1F,CAAC;IAED,MAAM,SAAS,GAA8C,EAAE,CAAA;IAC/D,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,KAAK,MAAM,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/E,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAA;QACjF,CAAC;QAED,IAAI,CAAC;YACH,SAAS,CAAC,aAAa,CAAC,GAAG,2BAA2B,CAAC,aAAa,EAAE,UAAU,CAAC,CAAA;QACnF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QACvE,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,SAAS;QACrB,QAAQ;KACT,CAAA;AACH,CAAC;AAED,SAAgB,qBAAqB,CACnC,IAA+B,EAC/B,QAAmC;IAEnC,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,IAAI,CAAA;IACzC,OAAO;QACL,GAAG,UAAU;QACb,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC;KACpB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { BuildInfoSourceProvenance } from './types/source';
|
|
2
|
+
export interface SourceProvenanceEntry {
|
|
3
|
+
sourceDocumentPath: string;
|
|
4
|
+
buildInfoRef: string;
|
|
5
|
+
buildInfoPath: string;
|
|
6
|
+
provenance: BuildInfoSourceProvenance;
|
|
7
|
+
}
|
|
8
|
+
export interface CollectProvenanceOptions {
|
|
9
|
+
jobs?: string[];
|
|
10
|
+
includeDependencies?: boolean;
|
|
11
|
+
loadStdTemplates?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface ProvenanceOperationOptions extends CollectProvenanceOptions {
|
|
14
|
+
force?: boolean;
|
|
15
|
+
}
|
|
16
|
+
export type ProvenanceOperationStatus = 'verified' | 'generated' | 'skipped' | 'failed';
|
|
17
|
+
export interface ProvenanceOperationResult {
|
|
18
|
+
entry: SourceProvenanceEntry;
|
|
19
|
+
status: ProvenanceOperationStatus;
|
|
20
|
+
message: string;
|
|
21
|
+
generatedBuildInfoPath?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ProvenanceRunResult {
|
|
24
|
+
entries: SourceProvenanceEntry[];
|
|
25
|
+
warnings: string[];
|
|
26
|
+
results: ProvenanceOperationResult[];
|
|
27
|
+
}
|
|
28
|
+
export declare function collectSourceProvenanceEntries(projectRoot: string, options?: CollectProvenanceOptions): Promise<{
|
|
29
|
+
entries: SourceProvenanceEntry[];
|
|
30
|
+
warnings: string[];
|
|
31
|
+
}>;
|
|
32
|
+
export declare function verifySourceProvenance(projectRoot: string, options?: CollectProvenanceOptions): Promise<ProvenanceRunResult>;
|
|
33
|
+
export declare function generateBuildInfoFromSourceProvenance(projectRoot: string, options?: ProvenanceOperationOptions): Promise<ProvenanceRunResult>;
|
|
34
|
+
//# sourceMappingURL=provenance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/lib/provenance.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAU1D,MAAM,WAAW,qBAAqB;IACpC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,yBAAyB,CAAA;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAED,MAAM,WAAW,0BAA2B,SAAQ,wBAAwB;IAC1E,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,MAAM,yBAAyB,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAA;AAEvF,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,EAAE,yBAAyB,CAAA;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,qBAAqB,EAAE,CAAA;IAChC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,OAAO,EAAE,yBAAyB,EAAE,CAAA;CACrC;AAsBD,wBAAsB,8BAA8B,CAClD,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC;IAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiDnE;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,mBAAmB,CAAC,CAiB9B;AAED,wBAAsB,qCAAqC,CACzD,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,mBAAmB,CAAC,CAiB9B"}
|