@0xsequence/catapult 1.3.17 → 1.5.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.
Files changed (232) hide show
  1. package/README.md +276 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +1 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/index.d.ts +1 -0
  6. package/dist/commands/index.d.ts.map +1 -1
  7. package/dist/commands/index.js +1 -0
  8. package/dist/commands/index.js.map +1 -1
  9. package/dist/commands/list.d.ts.map +1 -1
  10. package/dist/commands/list.js +12 -0
  11. package/dist/commands/list.js.map +1 -1
  12. package/dist/commands/provenance.d.ts +3 -0
  13. package/dist/commands/provenance.d.ts.map +1 -0
  14. package/dist/commands/provenance.js +138 -0
  15. package/dist/commands/provenance.js.map +1 -0
  16. package/dist/lib/__tests__/deployer.spec.js +118 -1
  17. package/dist/lib/__tests__/deployer.spec.js.map +1 -1
  18. package/dist/lib/__tests__/network-loader.spec.js.map +1 -1
  19. package/dist/lib/__tests__/provenance.spec.d.ts +2 -0
  20. package/dist/lib/__tests__/provenance.spec.d.ts.map +1 -0
  21. package/dist/lib/__tests__/provenance.spec.js +205 -0
  22. package/dist/lib/__tests__/provenance.spec.js.map +1 -0
  23. package/dist/lib/contracts/__tests__/repository.spec.js +243 -0
  24. package/dist/lib/contracts/__tests__/repository.spec.js.map +1 -1
  25. package/dist/lib/contracts/repository.d.ts +9 -1
  26. package/dist/lib/contracts/repository.d.ts.map +1 -1
  27. package/dist/lib/contracts/repository.js +93 -7
  28. package/dist/lib/contracts/repository.js.map +1 -1
  29. package/dist/lib/core/__tests__/assert-action.spec.d.ts +2 -0
  30. package/dist/lib/core/__tests__/assert-action.spec.d.ts.map +1 -0
  31. package/dist/lib/core/__tests__/assert-action.spec.js +377 -0
  32. package/dist/lib/core/__tests__/assert-action.spec.js.map +1 -0
  33. package/dist/lib/core/__tests__/engine.spec.js +80 -0
  34. package/dist/lib/core/__tests__/engine.spec.js.map +1 -1
  35. package/dist/lib/core/__tests__/loader.spec.js +29 -0
  36. package/dist/lib/core/__tests__/loader.spec.js.map +1 -1
  37. package/dist/lib/core/__tests__/resolver.spec.js +405 -0
  38. package/dist/lib/core/__tests__/resolver.spec.js.map +1 -1
  39. package/dist/lib/core/__tests__/sign-actions.spec.d.ts +2 -0
  40. package/dist/lib/core/__tests__/sign-actions.spec.d.ts.map +1 -0
  41. package/dist/lib/core/__tests__/sign-actions.spec.js +128 -0
  42. package/dist/lib/core/__tests__/sign-actions.spec.js.map +1 -0
  43. package/dist/lib/core/__tests__/signer.spec.d.ts +2 -0
  44. package/dist/lib/core/__tests__/signer.spec.d.ts.map +1 -0
  45. package/dist/lib/core/__tests__/signer.spec.js +40 -0
  46. package/dist/lib/core/__tests__/signer.spec.js.map +1 -0
  47. package/dist/lib/core/context.d.ts +3 -2
  48. package/dist/lib/core/context.d.ts.map +1 -1
  49. package/dist/lib/core/context.js +3 -2
  50. package/dist/lib/core/context.js.map +1 -1
  51. package/dist/lib/core/engine.d.ts +4 -0
  52. package/dist/lib/core/engine.d.ts.map +1 -1
  53. package/dist/lib/core/engine.js +206 -0
  54. package/dist/lib/core/engine.js.map +1 -1
  55. package/dist/lib/core/loader.d.ts +1 -0
  56. package/dist/lib/core/loader.d.ts.map +1 -1
  57. package/dist/lib/core/loader.js +6 -1
  58. package/dist/lib/core/loader.js.map +1 -1
  59. package/dist/lib/core/resolver.d.ts +2 -0
  60. package/dist/lib/core/resolver.d.ts.map +1 -1
  61. package/dist/lib/core/resolver.js +89 -0
  62. package/dist/lib/core/resolver.js.map +1 -1
  63. package/dist/lib/core/signer.d.ts +7 -0
  64. package/dist/lib/core/signer.d.ts.map +1 -0
  65. package/dist/lib/core/signer.js +60 -0
  66. package/dist/lib/core/signer.js.map +1 -0
  67. package/dist/lib/deployer.d.ts.map +1 -1
  68. package/dist/lib/deployer.js +21 -4
  69. package/dist/lib/deployer.js.map +1 -1
  70. package/dist/lib/index.d.ts +1 -0
  71. package/dist/lib/index.d.ts.map +1 -1
  72. package/dist/lib/index.js +1 -0
  73. package/dist/lib/index.js.map +1 -1
  74. package/dist/lib/parsers/__tests__/job.spec.js +77 -0
  75. package/dist/lib/parsers/__tests__/job.spec.js.map +1 -1
  76. package/dist/lib/parsers/__tests__/source.spec.d.ts +2 -0
  77. package/dist/lib/parsers/__tests__/source.spec.d.ts.map +1 -0
  78. package/dist/lib/parsers/__tests__/source.spec.js +158 -0
  79. package/dist/lib/parsers/__tests__/source.spec.js.map +1 -0
  80. package/dist/lib/parsers/index.d.ts +1 -0
  81. package/dist/lib/parsers/index.d.ts.map +1 -1
  82. package/dist/lib/parsers/index.js +1 -0
  83. package/dist/lib/parsers/index.js.map +1 -1
  84. package/dist/lib/parsers/job.d.ts.map +1 -1
  85. package/dist/lib/parsers/job.js +11 -0
  86. package/dist/lib/parsers/job.js.map +1 -1
  87. package/dist/lib/parsers/source.d.ts +4 -0
  88. package/dist/lib/parsers/source.d.ts.map +1 -0
  89. package/dist/lib/parsers/source.js +107 -0
  90. package/dist/lib/parsers/source.js.map +1 -0
  91. package/dist/lib/provenance.d.ts +34 -0
  92. package/dist/lib/provenance.d.ts.map +1 -0
  93. package/dist/lib/provenance.js +694 -0
  94. package/dist/lib/provenance.js.map +1 -0
  95. package/dist/lib/types/actions.d.ts +42 -2
  96. package/dist/lib/types/actions.d.ts.map +1 -1
  97. package/dist/lib/types/actions.js +4 -0
  98. package/dist/lib/types/actions.js.map +1 -1
  99. package/dist/lib/types/contracts.d.ts +3 -0
  100. package/dist/lib/types/contracts.d.ts.map +1 -1
  101. package/dist/lib/types/definitions.d.ts +1 -0
  102. package/dist/lib/types/definitions.d.ts.map +1 -1
  103. package/dist/lib/types/index.d.ts +1 -0
  104. package/dist/lib/types/index.d.ts.map +1 -1
  105. package/dist/lib/types/index.js +1 -0
  106. package/dist/lib/types/index.js.map +1 -1
  107. package/dist/lib/types/source.d.ts +26 -0
  108. package/dist/lib/types/source.d.ts.map +1 -0
  109. package/dist/lib/types/source.js +3 -0
  110. package/dist/lib/types/source.js.map +1 -0
  111. package/dist/lib/types/values.d.ts +33 -1
  112. package/dist/lib/types/values.d.ts.map +1 -1
  113. package/package.json +4 -1
  114. package/.eslintrc.json +0 -29
  115. package/.github/workflows/ci.yml +0 -181
  116. package/CONCEPT.md +0 -24
  117. package/contracts/checked-call.huff +0 -65
  118. package/eslint.config.js +0 -48
  119. package/examples/jobs/guards-v1.yaml +0 -17
  120. package/examples/jobs/sequence-seq-0001-patch.yaml +0 -59
  121. package/examples/jobs/sequence-v1.yaml +0 -59
  122. package/examples/templates/sequence-factory-v1.yaml +0 -56
  123. package/jest.config.js +0 -25
  124. package/src/cli.ts +0 -17
  125. package/src/commands/common.ts +0 -61
  126. package/src/commands/dry.ts +0 -209
  127. package/src/commands/etherscan.ts +0 -360
  128. package/src/commands/index.ts +0 -5
  129. package/src/commands/list.ts +0 -249
  130. package/src/commands/run.ts +0 -146
  131. package/src/commands/utils.ts +0 -215
  132. package/src/index.ts +0 -67
  133. package/src/lib/__tests__/deployer-events.spec.ts +0 -338
  134. package/src/lib/__tests__/deployer.spec.ts +0 -2093
  135. package/src/lib/__tests__/network-loader.spec.ts +0 -150
  136. package/src/lib/__tests__/network-selection.spec.ts +0 -41
  137. package/src/lib/__tests__/network-utils.spec.ts +0 -230
  138. package/src/lib/artifacts/__tests__/fixtures/contract1.json +0 -19
  139. package/src/lib/artifacts/__tests__/fixtures/contract2.json +0 -19
  140. package/src/lib/artifacts/__tests__/fixtures/duplicate-name.json +0 -19
  141. package/src/lib/artifacts/__tests__/fixtures/nested/nested-contract.json +0 -18
  142. package/src/lib/artifacts/__tests__/fixtures/not-an-artifact.json +0 -8
  143. package/src/lib/artifacts/__tests__/fixtures/readme.txt +0 -2
  144. package/src/lib/contracts/__tests__/repository.spec.ts +0 -344
  145. package/src/lib/contracts/repository.ts +0 -313
  146. package/src/lib/core/__tests__/context.spec.ts +0 -37
  147. package/src/lib/core/__tests__/engine.spec.ts +0 -1889
  148. package/src/lib/core/__tests__/graph.spec.ts +0 -125
  149. package/src/lib/core/__tests__/json-integration.spec.ts +0 -425
  150. package/src/lib/core/__tests__/loader.spec.ts +0 -334
  151. package/src/lib/core/__tests__/multi-platform-verification.spec.ts +0 -406
  152. package/src/lib/core/__tests__/resolver.spec.ts +0 -2053
  153. package/src/lib/core/__tests__/static-action.spec.ts +0 -172
  154. package/src/lib/core/context.ts +0 -127
  155. package/src/lib/core/engine.ts +0 -1782
  156. package/src/lib/core/graph.ts +0 -252
  157. package/src/lib/core/loader.ts +0 -247
  158. package/src/lib/core/resolver.ts +0 -757
  159. package/src/lib/deployer.ts +0 -981
  160. package/src/lib/events/__tests__/event-system.spec.ts +0 -392
  161. package/src/lib/events/cli-adapter.ts +0 -369
  162. package/src/lib/events/emitter.ts +0 -62
  163. package/src/lib/events/index.ts +0 -3
  164. package/src/lib/events/types.ts +0 -520
  165. package/src/lib/index.ts +0 -14
  166. package/src/lib/network-loader.ts +0 -90
  167. package/src/lib/network-selection.ts +0 -73
  168. package/src/lib/network-utils.ts +0 -64
  169. package/src/lib/parsers/__tests__/buildinfo.spec.ts +0 -122
  170. package/src/lib/parsers/__tests__/fixtures/buildinfo/invalid-bytecode-buildinfo.json +0 -62
  171. package/src/lib/parsers/__tests__/fixtures/buildinfo/invalid-json.txt +0 -2
  172. package/src/lib/parsers/__tests__/fixtures/buildinfo/multi-contract-buildinfo.json +0 -89
  173. package/src/lib/parsers/__tests__/fixtures/buildinfo/no-contracts-buildinfo.json +0 -17
  174. package/src/lib/parsers/__tests__/fixtures/buildinfo/simple-buildinfo.json +0 -63
  175. package/src/lib/parsers/__tests__/fixtures/buildinfo/wrong-format.json +0 -4
  176. package/src/lib/parsers/__tests__/job.spec.ts +0 -358
  177. package/src/lib/parsers/__tests__/template.spec.ts +0 -111
  178. package/src/lib/parsers/artifact/__tests__/artifact.spec.ts +0 -117
  179. package/src/lib/parsers/artifact/__tests__/fixtures/empty-bytecode.json +0 -5
  180. package/src/lib/parsers/artifact/__tests__/fixtures/hardhat-artifact.json +0 -67
  181. package/src/lib/parsers/artifact/__tests__/fixtures/invalid-bytecode.json +0 -5
  182. package/src/lib/parsers/artifact/__tests__/fixtures/invalid-json.txt +0 -11
  183. package/src/lib/parsers/artifact/__tests__/fixtures/minimal-artifact.json +0 -5
  184. package/src/lib/parsers/artifact/__tests__/fixtures/missing-abi.json +0 -4
  185. package/src/lib/parsers/artifact/__tests__/fixtures/missing-bytecode.json +0 -11
  186. package/src/lib/parsers/artifact/__tests__/fixtures/missing-contract-name.json +0 -11
  187. package/src/lib/parsers/artifact/__tests__/fixtures/simple-artifact.json +0 -40
  188. package/src/lib/parsers/artifact/__tests__/fixtures/wrong-types.json +0 -7
  189. package/src/lib/parsers/artifact/foundry-1.2.ts +0 -72
  190. package/src/lib/parsers/artifact/index.ts +0 -27
  191. package/src/lib/parsers/artifact/types.ts +0 -9
  192. package/src/lib/parsers/buildinfo.ts +0 -127
  193. package/src/lib/parsers/constants.ts +0 -56
  194. package/src/lib/parsers/index.ts +0 -5
  195. package/src/lib/parsers/job.ts +0 -148
  196. package/src/lib/parsers/template.ts +0 -135
  197. package/src/lib/std/templates/arachnid-deterministic-deployment-proxy.yaml +0 -68
  198. package/src/lib/std/templates/assured-deployment.yaml +0 -46
  199. package/src/lib/std/templates/era-evm-predeploy.yaml +0 -35
  200. package/src/lib/std/templates/erc-2470.yaml +0 -70
  201. package/src/lib/std/templates/min-balance.yaml +0 -35
  202. package/src/lib/std/templates/nano-universal-deployer.yaml +0 -61
  203. package/src/lib/std/templates/raw-erc-2470.yaml +0 -62
  204. package/src/lib/std/templates/raw-nano-universal-deployer.yaml +0 -54
  205. package/src/lib/std/templates/raw-sequence-universal-deployer-2.yaml +0 -52
  206. package/src/lib/std/templates/sequence-universal-deployer-2.yaml +0 -61
  207. package/src/lib/types/__tests__/json-request-action.spec.ts +0 -243
  208. package/src/lib/types/__tests__/read-json-value.spec.ts +0 -278
  209. package/src/lib/types/__tests__/resolve-json-value.spec.ts +0 -769
  210. package/src/lib/types/actions.ts +0 -127
  211. package/src/lib/types/artifacts.ts +0 -21
  212. package/src/lib/types/buildinfo.ts +0 -116
  213. package/src/lib/types/conditions.ts +0 -50
  214. package/src/lib/types/contracts.ts +0 -23
  215. package/src/lib/types/definitions.ts +0 -70
  216. package/src/lib/types/index.ts +0 -8
  217. package/src/lib/types/network.ts +0 -33
  218. package/src/lib/types/project.ts +0 -9
  219. package/src/lib/types/task.ts +0 -9
  220. package/src/lib/types/values.ts +0 -150
  221. package/src/lib/utils/assertion.ts +0 -24
  222. package/src/lib/utils/validation.ts +0 -116
  223. package/src/lib/validation/contract-references.ts +0 -210
  224. package/src/lib/validation/index.ts +0 -1
  225. package/src/lib/verification/__tests__/etherscan.spec.ts +0 -710
  226. package/src/lib/verification/__tests__/sourcify.spec.ts +0 -288
  227. package/src/lib/verification/etherscan.ts +0 -547
  228. package/src/lib/verification/sourcify.ts +0 -248
  229. package/test_validation/artifacts/TestContract.json +0 -9
  230. package/test_validation/jobs/test-missing.yaml +0 -16
  231. package/test_validation/networks.yaml +0 -3
  232. package/tsconfig.json +0 -36
@@ -0,0 +1,158 @@
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 parse the optional image field', () => {
31
+ const result = (0, source_1.parseSourceDocument)(`
32
+ type: source
33
+ build_info:
34
+ "./stage1.json":
35
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
36
+ commit: "0d9061f229da73edae890e6fdd1fbf753028df6d"
37
+ image: "ghcr.io/foundry-rs/foundry:v1.5.1"
38
+ build: "forge build --build-info"
39
+ `);
40
+ expect(result).not.toBeNull();
41
+ expect(result.build_info['./stage1.json'].image).toBe('ghcr.io/foundry-rs/foundry:v1.5.1');
42
+ });
43
+ it('should validate that image is a string', () => {
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
+ image: 123
50
+ `);
51
+ expect(result).not.toBeNull();
52
+ expect(result.build_info).toEqual({});
53
+ expect(result.warnings).toEqual([
54
+ expect.stringContaining('image')
55
+ ]);
56
+ });
57
+ it('should require repo on each build-info provenance entry', () => {
58
+ const result = (0, source_1.parseSourceDocument)(`
59
+ type: source
60
+ build_info:
61
+ "./stage1.json":
62
+ ref: "v3.0.0-rc.5"
63
+ `);
64
+ expect(result).not.toBeNull();
65
+ expect(result.build_info).toEqual({});
66
+ expect(result.warnings).toEqual([
67
+ expect.stringContaining('build_info["./stage1.json"].repo')
68
+ ]);
69
+ });
70
+ it('should validate optional string fields', () => {
71
+ const result = (0, source_1.parseSourceDocument)(`
72
+ type: source
73
+ build_info:
74
+ "./stage1.json":
75
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
76
+ commit: 123
77
+ `);
78
+ expect(result).not.toBeNull();
79
+ expect(result.build_info).toEqual({});
80
+ expect(result.warnings).toEqual([
81
+ expect.stringContaining('commit')
82
+ ]);
83
+ });
84
+ it('should reject unsupported fields', () => {
85
+ const result = (0, source_1.parseSourceDocument)(`
86
+ type: source
87
+ build_info:
88
+ "./stage1.json":
89
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
90
+ path: "contracts"
91
+ `);
92
+ expect(result).not.toBeNull();
93
+ expect(result.build_info).toEqual({});
94
+ expect(result.warnings).toEqual([
95
+ expect.stringContaining('path is not supported')
96
+ ]);
97
+ });
98
+ it('should quote build-info paths in validation errors', () => {
99
+ const result = (0, source_1.parseSourceDocument)(`
100
+ type: source
101
+ build_info:
102
+ "./stage1.json":
103
+ ref: "v3.0.0-rc.5"
104
+ `);
105
+ expect(result).not.toBeNull();
106
+ expect(result.warnings).toEqual([
107
+ expect.stringContaining('build_info["./stage1.json"].repo')
108
+ ]);
109
+ });
110
+ it('should keep valid entries when sibling entries are invalid', () => {
111
+ const result = (0, source_1.parseSourceDocument)(`
112
+ type: source
113
+ build_info:
114
+ "./stage1.json":
115
+ repo: "https://github.com/0xsequence/wallet-contracts-v3"
116
+ "./bad.json":
117
+ typo_field: true
118
+ `);
119
+ expect(result).not.toBeNull();
120
+ expect(Object.keys(result.build_info)).toEqual(['./stage1.json']);
121
+ expect(result.warnings).toEqual([
122
+ expect.stringContaining('typo_field is not supported')
123
+ ]);
124
+ });
125
+ describe('mergeSourceProvenance', () => {
126
+ it('should merge contract overrides into build-info provenance', () => {
127
+ const result = (0, source_1.mergeSourceProvenance)({
128
+ repo: 'https://github.com/0xsequence/wallet-contracts-v3',
129
+ ref: 'v3.0.0-rc.5',
130
+ commit: '0d9061f229da73edae890e6fdd1fbf753028df6d',
131
+ contracts: {
132
+ 'src/Stage1Module.sol:Stage1Module': {
133
+ ref: 'stage1-special'
134
+ }
135
+ }
136
+ }, {
137
+ ref: 'stage1-special'
138
+ });
139
+ expect(result).toEqual({
140
+ repo: 'https://github.com/0xsequence/wallet-contracts-v3',
141
+ ref: 'stage1-special',
142
+ commit: '0d9061f229da73edae890e6fdd1fbf753028df6d'
143
+ });
144
+ expect(result).not.toHaveProperty('contracts');
145
+ });
146
+ it('should let a contract override the image', () => {
147
+ const result = (0, source_1.mergeSourceProvenance)({
148
+ repo: 'https://github.com/0xsequence/wallet-contracts-v3',
149
+ commit: '0d9061f229da73edae890e6fdd1fbf753028df6d',
150
+ image: 'ghcr.io/foundry-rs/foundry:v1.5.1'
151
+ }, {
152
+ image: 'ghcr.io/foundry-rs/foundry:v1.6.0'
153
+ });
154
+ expect(result.image).toBe('ghcr.io/foundry-rs/foundry:v1.6.0');
155
+ });
156
+ });
157
+ });
158
+ //# 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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"}
@@ -2,4 +2,5 @@ export * from './template';
2
2
  export * from './job';
3
3
  export * from './buildinfo';
4
4
  export * from './constants';
5
+ export * from './source';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -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,CAiHjD"}
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"}
@@ -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":"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"}
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', 'image'];
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":"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"}
@@ -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"}