@0xsequence/catapult 1.1.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 (393) hide show
  1. package/.eslintrc.json +29 -0
  2. package/.github/workflows/ci.yml +181 -0
  3. package/CONCEPT.md +24 -0
  4. package/README.md +772 -0
  5. package/contracts/checked-call.huff +65 -0
  6. package/dist/cli.d.ts +3 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +16 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/commands/common.d.ts +11 -0
  11. package/dist/commands/common.d.ts.map +1 -0
  12. package/dist/commands/common.js +73 -0
  13. package/dist/commands/common.js.map +1 -0
  14. package/dist/commands/dry.d.ts +3 -0
  15. package/dist/commands/dry.d.ts.map +1 -0
  16. package/dist/commands/dry.js +171 -0
  17. package/dist/commands/dry.js.map +1 -0
  18. package/dist/commands/etherscan.d.ts +3 -0
  19. package/dist/commands/etherscan.d.ts.map +1 -0
  20. package/dist/commands/etherscan.js +323 -0
  21. package/dist/commands/etherscan.js.map +1 -0
  22. package/dist/commands/index.d.ts +6 -0
  23. package/dist/commands/index.d.ts.map +1 -0
  24. package/dist/commands/index.js +22 -0
  25. package/dist/commands/index.js.map +1 -0
  26. package/dist/commands/list.d.ts +3 -0
  27. package/dist/commands/list.d.ts.map +1 -0
  28. package/dist/commands/list.js +259 -0
  29. package/dist/commands/list.js.map +1 -0
  30. package/dist/commands/run.d.ts +3 -0
  31. package/dist/commands/run.d.ts.map +1 -0
  32. package/dist/commands/run.js +96 -0
  33. package/dist/commands/run.js.map +1 -0
  34. package/dist/commands/utils.d.ts +3 -0
  35. package/dist/commands/utils.d.ts.map +1 -0
  36. package/dist/commands/utils.js +46 -0
  37. package/dist/commands/utils.js.map +1 -0
  38. package/dist/index.d.ts +4 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +58 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/lib/__tests__/deployer-events.spec.d.ts +2 -0
  43. package/dist/lib/__tests__/deployer-events.spec.d.ts.map +1 -0
  44. package/dist/lib/__tests__/deployer-events.spec.js +260 -0
  45. package/dist/lib/__tests__/deployer-events.spec.js.map +1 -0
  46. package/dist/lib/__tests__/deployer.spec.d.ts +2 -0
  47. package/dist/lib/__tests__/deployer.spec.d.ts.map +1 -0
  48. package/dist/lib/__tests__/deployer.spec.js +884 -0
  49. package/dist/lib/__tests__/deployer.spec.js.map +1 -0
  50. package/dist/lib/__tests__/network-utils.spec.d.ts +2 -0
  51. package/dist/lib/__tests__/network-utils.spec.d.ts.map +1 -0
  52. package/dist/lib/__tests__/network-utils.spec.js +140 -0
  53. package/dist/lib/__tests__/network-utils.spec.js.map +1 -0
  54. package/dist/lib/contracts/__tests__/repository.spec.d.ts +2 -0
  55. package/dist/lib/contracts/__tests__/repository.spec.d.ts.map +1 -0
  56. package/dist/lib/contracts/__tests__/repository.spec.js +321 -0
  57. package/dist/lib/contracts/__tests__/repository.spec.js.map +1 -0
  58. package/dist/lib/contracts/repository.d.ts +27 -0
  59. package/dist/lib/contracts/repository.d.ts.map +1 -0
  60. package/dist/lib/contracts/repository.js +241 -0
  61. package/dist/lib/contracts/repository.js.map +1 -0
  62. package/dist/lib/core/__tests__/engine.spec.d.ts +2 -0
  63. package/dist/lib/core/__tests__/engine.spec.d.ts.map +1 -0
  64. package/dist/lib/core/__tests__/engine.spec.js +1212 -0
  65. package/dist/lib/core/__tests__/engine.spec.js.map +1 -0
  66. package/dist/lib/core/__tests__/graph.spec.d.ts +2 -0
  67. package/dist/lib/core/__tests__/graph.spec.d.ts.map +1 -0
  68. package/dist/lib/core/__tests__/graph.spec.js +116 -0
  69. package/dist/lib/core/__tests__/graph.spec.js.map +1 -0
  70. package/dist/lib/core/__tests__/json-integration.spec.d.ts +2 -0
  71. package/dist/lib/core/__tests__/json-integration.spec.d.ts.map +1 -0
  72. package/dist/lib/core/__tests__/json-integration.spec.js +300 -0
  73. package/dist/lib/core/__tests__/json-integration.spec.js.map +1 -0
  74. package/dist/lib/core/__tests__/loader.spec.d.ts +2 -0
  75. package/dist/lib/core/__tests__/loader.spec.d.ts.map +1 -0
  76. package/dist/lib/core/__tests__/loader.spec.js +288 -0
  77. package/dist/lib/core/__tests__/loader.spec.js.map +1 -0
  78. package/dist/lib/core/__tests__/multi-platform-verification.spec.d.ts +2 -0
  79. package/dist/lib/core/__tests__/multi-platform-verification.spec.d.ts.map +1 -0
  80. package/dist/lib/core/__tests__/multi-platform-verification.spec.js +342 -0
  81. package/dist/lib/core/__tests__/multi-platform-verification.spec.js.map +1 -0
  82. package/dist/lib/core/__tests__/resolver.spec.d.ts +2 -0
  83. package/dist/lib/core/__tests__/resolver.spec.d.ts.map +1 -0
  84. package/dist/lib/core/__tests__/resolver.spec.js +1367 -0
  85. package/dist/lib/core/__tests__/resolver.spec.js.map +1 -0
  86. package/dist/lib/core/__tests__/static-action.spec.d.ts +2 -0
  87. package/dist/lib/core/__tests__/static-action.spec.d.ts.map +1 -0
  88. package/dist/lib/core/__tests__/static-action.spec.js +136 -0
  89. package/dist/lib/core/__tests__/static-action.spec.js.map +1 -0
  90. package/dist/lib/core/context.d.ts +29 -0
  91. package/dist/lib/core/context.d.ts.map +1 -0
  92. package/dist/lib/core/context.js +88 -0
  93. package/dist/lib/core/context.js.map +1 -0
  94. package/dist/lib/core/engine.d.ts +25 -0
  95. package/dist/lib/core/engine.d.ts.map +1 -0
  96. package/dist/lib/core/engine.js +1191 -0
  97. package/dist/lib/core/engine.js.map +1 -0
  98. package/dist/lib/core/graph.d.ts +18 -0
  99. package/dist/lib/core/graph.d.ts.map +1 -0
  100. package/dist/lib/core/graph.js +158 -0
  101. package/dist/lib/core/graph.js.map +1 -0
  102. package/dist/lib/core/loader.d.ts +25 -0
  103. package/dist/lib/core/loader.d.ts.map +1 -0
  104. package/dist/lib/core/loader.js +248 -0
  105. package/dist/lib/core/loader.js.map +1 -0
  106. package/dist/lib/core/resolver.d.ts +20 -0
  107. package/dist/lib/core/resolver.d.ts.map +1 -0
  108. package/dist/lib/core/resolver.js +307 -0
  109. package/dist/lib/core/resolver.js.map +1 -0
  110. package/dist/lib/deployer.d.ts +39 -0
  111. package/dist/lib/deployer.d.ts.map +1 -0
  112. package/dist/lib/deployer.js +533 -0
  113. package/dist/lib/deployer.js.map +1 -0
  114. package/dist/lib/events/__tests__/event-system.spec.d.ts +2 -0
  115. package/dist/lib/events/__tests__/event-system.spec.d.ts.map +1 -0
  116. package/dist/lib/events/__tests__/event-system.spec.js +256 -0
  117. package/dist/lib/events/__tests__/event-system.spec.js.map +1 -0
  118. package/dist/lib/events/cli-adapter.d.ts +13 -0
  119. package/dist/lib/events/cli-adapter.d.ts.map +1 -0
  120. package/dist/lib/events/cli-adapter.js +244 -0
  121. package/dist/lib/events/cli-adapter.js.map +1 -0
  122. package/dist/lib/events/emitter.d.ts +11 -0
  123. package/dist/lib/events/emitter.d.ts.map +1 -0
  124. package/dist/lib/events/emitter.js +29 -0
  125. package/dist/lib/events/emitter.js.map +1 -0
  126. package/dist/lib/events/index.d.ts +4 -0
  127. package/dist/lib/events/index.d.ts.map +1 -0
  128. package/dist/lib/events/index.js +20 -0
  129. package/dist/lib/events/index.js.map +1 -0
  130. package/dist/lib/events/types.d.ts +368 -0
  131. package/dist/lib/events/types.d.ts.map +1 -0
  132. package/dist/lib/events/types.js +3 -0
  133. package/dist/lib/events/types.js.map +1 -0
  134. package/dist/lib/index.d.ts +5 -0
  135. package/dist/lib/index.d.ts.map +1 -0
  136. package/dist/lib/index.js +44 -0
  137. package/dist/lib/index.js.map +1 -0
  138. package/dist/lib/network-loader.d.ts +3 -0
  139. package/dist/lib/network-loader.d.ts.map +1 -0
  140. package/dist/lib/network-loader.js +80 -0
  141. package/dist/lib/network-loader.js.map +1 -0
  142. package/dist/lib/network-match.d.ts +3 -0
  143. package/dist/lib/network-match.d.ts.map +1 -0
  144. package/dist/lib/network-match.js +62 -0
  145. package/dist/lib/network-match.js.map +1 -0
  146. package/dist/lib/network-utils.d.ts +4 -0
  147. package/dist/lib/network-utils.d.ts.map +1 -0
  148. package/dist/lib/network-utils.js +39 -0
  149. package/dist/lib/network-utils.js.map +1 -0
  150. package/dist/lib/parsers/__tests__/buildinfo.spec.d.ts +2 -0
  151. package/dist/lib/parsers/__tests__/buildinfo.spec.d.ts.map +1 -0
  152. package/dist/lib/parsers/__tests__/buildinfo.spec.js +132 -0
  153. package/dist/lib/parsers/__tests__/buildinfo.spec.js.map +1 -0
  154. package/dist/lib/parsers/__tests__/job.spec.d.ts +2 -0
  155. package/dist/lib/parsers/__tests__/job.spec.d.ts.map +1 -0
  156. package/dist/lib/parsers/__tests__/job.spec.js +318 -0
  157. package/dist/lib/parsers/__tests__/job.spec.js.map +1 -0
  158. package/dist/lib/parsers/__tests__/template.spec.d.ts +2 -0
  159. package/dist/lib/parsers/__tests__/template.spec.d.ts.map +1 -0
  160. package/dist/lib/parsers/__tests__/template.spec.js +126 -0
  161. package/dist/lib/parsers/__tests__/template.spec.js.map +1 -0
  162. package/dist/lib/parsers/artifact/__tests__/artifact.spec.d.ts +2 -0
  163. package/dist/lib/parsers/artifact/__tests__/artifact.spec.d.ts.map +1 -0
  164. package/dist/lib/parsers/artifact/__tests__/artifact.spec.js +128 -0
  165. package/dist/lib/parsers/artifact/__tests__/artifact.spec.js.map +1 -0
  166. package/dist/lib/parsers/artifact/foundry-1.2.d.ts +3 -0
  167. package/dist/lib/parsers/artifact/foundry-1.2.d.ts.map +1 -0
  168. package/dist/lib/parsers/artifact/foundry-1.2.js +82 -0
  169. package/dist/lib/parsers/artifact/foundry-1.2.js.map +1 -0
  170. package/dist/lib/parsers/artifact/index.d.ts +3 -0
  171. package/dist/lib/parsers/artifact/index.d.ts.map +1 -0
  172. package/dist/lib/parsers/artifact/index.js +17 -0
  173. package/dist/lib/parsers/artifact/index.js.map +1 -0
  174. package/dist/lib/parsers/artifact/types.d.ts +3 -0
  175. package/dist/lib/parsers/artifact/types.d.ts.map +1 -0
  176. package/dist/lib/parsers/artifact/types.js +3 -0
  177. package/dist/lib/parsers/artifact/types.js.map +1 -0
  178. package/dist/lib/parsers/buildinfo.d.ts +5 -0
  179. package/dist/lib/parsers/buildinfo.d.ts.map +1 -0
  180. package/dist/lib/parsers/buildinfo.js +85 -0
  181. package/dist/lib/parsers/buildinfo.js.map +1 -0
  182. package/dist/lib/parsers/constants.d.ts +4 -0
  183. package/dist/lib/parsers/constants.d.ts.map +1 -0
  184. package/dist/lib/parsers/constants.js +45 -0
  185. package/dist/lib/parsers/constants.js.map +1 -0
  186. package/dist/lib/parsers/index.d.ts +5 -0
  187. package/dist/lib/parsers/index.d.ts.map +1 -0
  188. package/dist/lib/parsers/index.js +21 -0
  189. package/dist/lib/parsers/index.js.map +1 -0
  190. package/dist/lib/parsers/job.d.ts +3 -0
  191. package/dist/lib/parsers/job.d.ts.map +1 -0
  192. package/dist/lib/parsers/job.js +74 -0
  193. package/dist/lib/parsers/job.js.map +1 -0
  194. package/dist/lib/parsers/template.d.ts +3 -0
  195. package/dist/lib/parsers/template.d.ts.map +1 -0
  196. package/dist/lib/parsers/template.js +91 -0
  197. package/dist/lib/parsers/template.js.map +1 -0
  198. package/dist/lib/std/templates/assured-deployment.yaml +45 -0
  199. package/dist/lib/std/templates/erc-2470.yaml +67 -0
  200. package/dist/lib/std/templates/min-balance.yaml +32 -0
  201. package/dist/lib/std/templates/nano-universal-deployer.yaml +59 -0
  202. package/dist/lib/std/templates/raw-erc-2470.yaml +59 -0
  203. package/dist/lib/std/templates/raw-nano-universal-deployer.yaml +51 -0
  204. package/dist/lib/std/templates/raw-sequence-universal-deployer-2.yaml +48 -0
  205. package/dist/lib/std/templates/sequence-universal-deployer-2.yaml +57 -0
  206. package/dist/lib/types/__tests__/json-request-action.spec.d.ts +2 -0
  207. package/dist/lib/types/__tests__/json-request-action.spec.d.ts.map +1 -0
  208. package/dist/lib/types/__tests__/json-request-action.spec.js +219 -0
  209. package/dist/lib/types/__tests__/json-request-action.spec.js.map +1 -0
  210. package/dist/lib/types/__tests__/read-json-value.spec.d.ts +2 -0
  211. package/dist/lib/types/__tests__/read-json-value.spec.d.ts.map +1 -0
  212. package/dist/lib/types/__tests__/read-json-value.spec.js +233 -0
  213. package/dist/lib/types/__tests__/read-json-value.spec.js.map +1 -0
  214. package/dist/lib/types/actions.d.ts +74 -0
  215. package/dist/lib/types/actions.d.ts.map +1 -0
  216. package/dist/lib/types/actions.js +18 -0
  217. package/dist/lib/types/actions.js.map +1 -0
  218. package/dist/lib/types/artifacts.d.ts +15 -0
  219. package/dist/lib/types/artifacts.d.ts.map +1 -0
  220. package/dist/lib/types/artifacts.js +3 -0
  221. package/dist/lib/types/artifacts.js.map +1 -0
  222. package/dist/lib/types/buildinfo.d.ts +112 -0
  223. package/dist/lib/types/buildinfo.d.ts.map +1 -0
  224. package/dist/lib/types/buildinfo.js +3 -0
  225. package/dist/lib/types/buildinfo.js.map +1 -0
  226. package/dist/lib/types/conditions.d.ts +17 -0
  227. package/dist/lib/types/conditions.d.ts.map +1 -0
  228. package/dist/lib/types/conditions.js +21 -0
  229. package/dist/lib/types/conditions.js.map +1 -0
  230. package/dist/lib/types/contracts.d.ts +14 -0
  231. package/dist/lib/types/contracts.d.ts.map +1 -0
  232. package/dist/lib/types/contracts.js +3 -0
  233. package/dist/lib/types/contracts.js.map +1 -0
  234. package/dist/lib/types/definitions.d.ts +51 -0
  235. package/dist/lib/types/definitions.d.ts.map +1 -0
  236. package/dist/lib/types/definitions.js +3 -0
  237. package/dist/lib/types/definitions.js.map +1 -0
  238. package/dist/lib/types/index.d.ts +9 -0
  239. package/dist/lib/types/index.d.ts.map +1 -0
  240. package/dist/lib/types/index.js +25 -0
  241. package/dist/lib/types/index.js.map +1 -0
  242. package/dist/lib/types/network.d.ts +9 -0
  243. package/dist/lib/types/network.d.ts.map +1 -0
  244. package/dist/lib/types/network.js +3 -0
  245. package/dist/lib/types/network.js.map +1 -0
  246. package/dist/lib/types/project.d.ts +5 -0
  247. package/dist/lib/types/project.d.ts.map +1 -0
  248. package/dist/lib/types/project.js +3 -0
  249. package/dist/lib/types/project.js.map +1 -0
  250. package/dist/lib/types/task.d.ts +9 -0
  251. package/dist/lib/types/task.d.ts.map +1 -0
  252. package/dist/lib/types/task.js +3 -0
  253. package/dist/lib/types/task.js.map +1 -0
  254. package/dist/lib/types/values.d.ts +78 -0
  255. package/dist/lib/types/values.d.ts.map +1 -0
  256. package/dist/lib/types/values.js +3 -0
  257. package/dist/lib/types/values.js.map +1 -0
  258. package/dist/lib/utils/validation.d.ts +5 -0
  259. package/dist/lib/utils/validation.d.ts.map +1 -0
  260. package/dist/lib/utils/validation.js +77 -0
  261. package/dist/lib/utils/validation.js.map +1 -0
  262. package/dist/lib/validation/contract-references.d.ts +12 -0
  263. package/dist/lib/validation/contract-references.d.ts.map +1 -0
  264. package/dist/lib/validation/contract-references.js +112 -0
  265. package/dist/lib/validation/contract-references.js.map +1 -0
  266. package/dist/lib/validation/index.d.ts +1 -0
  267. package/dist/lib/validation/index.d.ts.map +1 -0
  268. package/dist/lib/validation/index.js +2 -0
  269. package/dist/lib/validation/index.js.map +1 -0
  270. package/dist/lib/verification/__tests__/etherscan.spec.d.ts +2 -0
  271. package/dist/lib/verification/__tests__/etherscan.spec.d.ts.map +1 -0
  272. package/dist/lib/verification/__tests__/etherscan.spec.js +565 -0
  273. package/dist/lib/verification/__tests__/etherscan.spec.js.map +1 -0
  274. package/dist/lib/verification/__tests__/sourcify.spec.d.ts +2 -0
  275. package/dist/lib/verification/__tests__/sourcify.spec.d.ts.map +1 -0
  276. package/dist/lib/verification/__tests__/sourcify.spec.js +212 -0
  277. package/dist/lib/verification/__tests__/sourcify.spec.js.map +1 -0
  278. package/dist/lib/verification/etherscan.d.ts +56 -0
  279. package/dist/lib/verification/etherscan.d.ts.map +1 -0
  280. package/dist/lib/verification/etherscan.js +340 -0
  281. package/dist/lib/verification/etherscan.js.map +1 -0
  282. package/dist/lib/verification/sourcify.d.ts +12 -0
  283. package/dist/lib/verification/sourcify.d.ts.map +1 -0
  284. package/dist/lib/verification/sourcify.js +227 -0
  285. package/dist/lib/verification/sourcify.js.map +1 -0
  286. package/eslint.config.js +48 -0
  287. package/examples/jobs/guards-v1.yaml +17 -0
  288. package/examples/jobs/sequence-seq-0001-patch.yaml +59 -0
  289. package/examples/jobs/sequence-v1.yaml +59 -0
  290. package/examples/templates/sequence-factory-v1.yaml +56 -0
  291. package/jest.config.js +25 -0
  292. package/package.json +68 -0
  293. package/src/cli.ts +17 -0
  294. package/src/commands/common.ts +61 -0
  295. package/src/commands/dry.ts +208 -0
  296. package/src/commands/etherscan.ts +360 -0
  297. package/src/commands/index.ts +5 -0
  298. package/src/commands/list.ts +249 -0
  299. package/src/commands/run.ts +136 -0
  300. package/src/commands/utils.ts +52 -0
  301. package/src/index.ts +67 -0
  302. package/src/lib/__tests__/deployer-events.spec.ts +338 -0
  303. package/src/lib/__tests__/deployer.spec.ts +1204 -0
  304. package/src/lib/__tests__/network-utils.spec.ts +181 -0
  305. package/src/lib/artifacts/__tests__/fixtures/contract1.json +19 -0
  306. package/src/lib/artifacts/__tests__/fixtures/contract2.json +19 -0
  307. package/src/lib/artifacts/__tests__/fixtures/duplicate-name.json +19 -0
  308. package/src/lib/artifacts/__tests__/fixtures/nested/nested-contract.json +18 -0
  309. package/src/lib/artifacts/__tests__/fixtures/not-an-artifact.json +8 -0
  310. package/src/lib/artifacts/__tests__/fixtures/readme.txt +2 -0
  311. package/src/lib/contracts/__tests__/repository.spec.ts +344 -0
  312. package/src/lib/contracts/repository.ts +313 -0
  313. package/src/lib/core/__tests__/engine.spec.ts +1514 -0
  314. package/src/lib/core/__tests__/graph.spec.ts +125 -0
  315. package/src/lib/core/__tests__/json-integration.spec.ts +360 -0
  316. package/src/lib/core/__tests__/loader.spec.ts +334 -0
  317. package/src/lib/core/__tests__/multi-platform-verification.spec.ts +406 -0
  318. package/src/lib/core/__tests__/resolver.spec.ts +1693 -0
  319. package/src/lib/core/__tests__/static-action.spec.ts +172 -0
  320. package/src/lib/core/context.ts +127 -0
  321. package/src/lib/core/engine.ts +1531 -0
  322. package/src/lib/core/graph.ts +252 -0
  323. package/src/lib/core/loader.ts +263 -0
  324. package/src/lib/core/resolver.ts +498 -0
  325. package/src/lib/deployer.ts +768 -0
  326. package/src/lib/events/__tests__/event-system.spec.ts +343 -0
  327. package/src/lib/events/cli-adapter.ts +325 -0
  328. package/src/lib/events/emitter.ts +62 -0
  329. package/src/lib/events/index.ts +3 -0
  330. package/src/lib/events/types.ts +469 -0
  331. package/src/lib/index.ts +14 -0
  332. package/src/lib/network-loader.ts +59 -0
  333. package/src/lib/network-utils.ts +64 -0
  334. package/src/lib/parsers/__tests__/buildinfo.spec.ts +122 -0
  335. package/src/lib/parsers/__tests__/fixtures/buildinfo/invalid-bytecode-buildinfo.json +62 -0
  336. package/src/lib/parsers/__tests__/fixtures/buildinfo/invalid-json.txt +2 -0
  337. package/src/lib/parsers/__tests__/fixtures/buildinfo/multi-contract-buildinfo.json +89 -0
  338. package/src/lib/parsers/__tests__/fixtures/buildinfo/no-contracts-buildinfo.json +17 -0
  339. package/src/lib/parsers/__tests__/fixtures/buildinfo/simple-buildinfo.json +63 -0
  340. package/src/lib/parsers/__tests__/fixtures/buildinfo/wrong-format.json +4 -0
  341. package/src/lib/parsers/__tests__/job.spec.ts +335 -0
  342. package/src/lib/parsers/__tests__/template.spec.ts +111 -0
  343. package/src/lib/parsers/artifact/__tests__/artifact.spec.ts +117 -0
  344. package/src/lib/parsers/artifact/__tests__/fixtures/empty-bytecode.json +5 -0
  345. package/src/lib/parsers/artifact/__tests__/fixtures/hardhat-artifact.json +67 -0
  346. package/src/lib/parsers/artifact/__tests__/fixtures/invalid-bytecode.json +5 -0
  347. package/src/lib/parsers/artifact/__tests__/fixtures/invalid-json.txt +11 -0
  348. package/src/lib/parsers/artifact/__tests__/fixtures/minimal-artifact.json +5 -0
  349. package/src/lib/parsers/artifact/__tests__/fixtures/missing-abi.json +4 -0
  350. package/src/lib/parsers/artifact/__tests__/fixtures/missing-bytecode.json +11 -0
  351. package/src/lib/parsers/artifact/__tests__/fixtures/missing-contract-name.json +11 -0
  352. package/src/lib/parsers/artifact/__tests__/fixtures/simple-artifact.json +40 -0
  353. package/src/lib/parsers/artifact/__tests__/fixtures/wrong-types.json +7 -0
  354. package/src/lib/parsers/artifact/foundry-1.2.ts +72 -0
  355. package/src/lib/parsers/artifact/index.ts +27 -0
  356. package/src/lib/parsers/artifact/types.ts +9 -0
  357. package/src/lib/parsers/buildinfo.ts +127 -0
  358. package/src/lib/parsers/constants.ts +56 -0
  359. package/src/lib/parsers/index.ts +5 -0
  360. package/src/lib/parsers/job.ts +101 -0
  361. package/src/lib/parsers/template.ts +131 -0
  362. package/src/lib/std/templates/assured-deployment.yaml +45 -0
  363. package/src/lib/std/templates/erc-2470.yaml +67 -0
  364. package/src/lib/std/templates/min-balance.yaml +32 -0
  365. package/src/lib/std/templates/nano-universal-deployer.yaml +59 -0
  366. package/src/lib/std/templates/raw-erc-2470.yaml +59 -0
  367. package/src/lib/std/templates/raw-nano-universal-deployer.yaml +51 -0
  368. package/src/lib/std/templates/raw-sequence-universal-deployer-2.yaml +48 -0
  369. package/src/lib/std/templates/sequence-universal-deployer-2.yaml +57 -0
  370. package/src/lib/types/__tests__/json-request-action.spec.ts +243 -0
  371. package/src/lib/types/__tests__/read-json-value.spec.ts +264 -0
  372. package/src/lib/types/actions.ts +127 -0
  373. package/src/lib/types/artifacts.ts +21 -0
  374. package/src/lib/types/buildinfo.ts +116 -0
  375. package/src/lib/types/conditions.ts +50 -0
  376. package/src/lib/types/contracts.ts +23 -0
  377. package/src/lib/types/definitions.ts +68 -0
  378. package/src/lib/types/index.ts +8 -0
  379. package/src/lib/types/network.ts +22 -0
  380. package/src/lib/types/project.ts +9 -0
  381. package/src/lib/types/task.ts +9 -0
  382. package/src/lib/types/values.ts +116 -0
  383. package/src/lib/utils/validation.ts +116 -0
  384. package/src/lib/validation/contract-references.ts +210 -0
  385. package/src/lib/validation/index.ts +1 -0
  386. package/src/lib/verification/__tests__/etherscan.spec.ts +710 -0
  387. package/src/lib/verification/__tests__/sourcify.spec.ts +288 -0
  388. package/src/lib/verification/etherscan.ts +546 -0
  389. package/src/lib/verification/sourcify.ts +248 -0
  390. package/test_validation/artifacts/TestContract.json +9 -0
  391. package/test_validation/jobs/test-missing.yaml +16 -0
  392. package/test_validation/networks.yaml +3 -0
  393. package/tsconfig.json +36 -0
@@ -0,0 +1,533 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Deployer = void 0;
37
+ const fs = __importStar(require("fs/promises"));
38
+ const path = __importStar(require("path"));
39
+ const loader_1 = require("./core/loader");
40
+ const graph_1 = require("./core/graph");
41
+ const engine_1 = require("./core/engine");
42
+ const etherscan_1 = require("./verification/etherscan");
43
+ const context_1 = require("./core/context");
44
+ const events_1 = require("./events");
45
+ class Deployer {
46
+ constructor(options) {
47
+ this.results = new Map();
48
+ this.options = options;
49
+ this.events = options.eventEmitter || events_1.deploymentEvents;
50
+ this.loader = new loader_1.ProjectLoader(options.projectRoot, options.loaderOptions);
51
+ this.noPostCheckConditions = options.noPostCheckConditions ?? false;
52
+ this.showSummary = options.showSummary !== false;
53
+ }
54
+ async run() {
55
+ this.events.emitEvent({
56
+ type: 'deployment_started',
57
+ level: 'info',
58
+ data: {
59
+ projectRoot: this.options.projectRoot
60
+ }
61
+ });
62
+ try {
63
+ this.events.emitEvent({
64
+ type: 'project_loading_started',
65
+ level: 'info',
66
+ data: {
67
+ projectRoot: this.options.projectRoot
68
+ }
69
+ });
70
+ await this.loader.load();
71
+ this.events.emitEvent({
72
+ type: 'project_loaded',
73
+ level: 'info',
74
+ data: {
75
+ jobCount: this.loader.jobs.size,
76
+ templateCount: this.loader.templates.size
77
+ }
78
+ });
79
+ const graph = new graph_1.DependencyGraph(this.loader.jobs, this.loader.templates);
80
+ this.graph = graph;
81
+ const jobOrder = graph.getExecutionOrder();
82
+ const jobsToRun = this.getJobExecutionPlan(jobOrder);
83
+ if (!this.options.runDeprecated) {
84
+ const skippedDeprecated = jobOrder.filter(name => {
85
+ const j = this.loader.jobs.get(name);
86
+ return !jobsToRun.includes(name) && j?.deprecated === true;
87
+ });
88
+ if (skippedDeprecated.length > 0) {
89
+ this.events.emitEvent({
90
+ type: 'deprecated_jobs_skipped',
91
+ level: 'warn',
92
+ data: { jobs: skippedDeprecated }
93
+ });
94
+ }
95
+ }
96
+ const targetNetworks = this.getTargetNetworks();
97
+ this.events.emitEvent({
98
+ type: 'execution_plan',
99
+ level: 'info',
100
+ data: {
101
+ targetNetworks: targetNetworks.map(n => ({
102
+ name: n.name,
103
+ chainId: n.chainId
104
+ })),
105
+ jobExecutionOrder: jobsToRun
106
+ }
107
+ });
108
+ const verificationRegistry = (0, etherscan_1.createDefaultVerificationRegistry)(this.options.etherscanApiKey);
109
+ const engine = new engine_1.ExecutionEngine(this.loader.templates, this.events, verificationRegistry, this.noPostCheckConditions);
110
+ let hasFailures = false;
111
+ for (const network of targetNetworks) {
112
+ this.events.emitEvent({
113
+ type: 'network_started',
114
+ level: 'info',
115
+ data: {
116
+ networkName: network.name,
117
+ chainId: network.chainId
118
+ }
119
+ });
120
+ for (const jobName of jobsToRun) {
121
+ const job = this.loader.jobs.get(jobName);
122
+ if (this.shouldSkipJobOnNetwork(job, network)) {
123
+ this.events.emitEvent({
124
+ type: 'job_skipped',
125
+ level: 'warn',
126
+ data: {
127
+ jobName,
128
+ networkName: network.name,
129
+ reason: 'configuration'
130
+ }
131
+ });
132
+ continue;
133
+ }
134
+ if (!this.results.has(job.name)) {
135
+ this.results.set(job.name, { job, outputs: new Map() });
136
+ }
137
+ let context;
138
+ try {
139
+ context = new context_1.ExecutionContext(network, this.options.privateKey, this.loader.contractRepository, this.options.etherscanApiKey, this.loader.constants);
140
+ if (typeof context.setJobConstants === 'function') {
141
+ context.setJobConstants(job.constants);
142
+ }
143
+ this.populateContextWithDependentJobOutputs(job, context, network);
144
+ await engine.executeJob(job, context);
145
+ this.results.get(job.name).outputs.set(network.chainId, {
146
+ status: 'success',
147
+ data: context.getOutputs()
148
+ });
149
+ }
150
+ catch (error) {
151
+ const errorMessage = error instanceof Error ? error.message : String(error);
152
+ this.results.get(job.name).outputs.set(network.chainId, {
153
+ status: 'error',
154
+ data: errorMessage
155
+ });
156
+ this.events.emitEvent({
157
+ type: 'job_execution_failed',
158
+ level: 'error',
159
+ data: {
160
+ jobName: job.name,
161
+ networkName: network.name,
162
+ chainId: network.chainId,
163
+ error: errorMessage
164
+ }
165
+ });
166
+ hasFailures = true;
167
+ if (this.options.failEarly) {
168
+ throw error;
169
+ }
170
+ }
171
+ finally {
172
+ if (context) {
173
+ try {
174
+ await context.dispose();
175
+ }
176
+ catch (disposeError) {
177
+ this.events.emitEvent({
178
+ type: 'context_disposal_warning',
179
+ level: 'warn',
180
+ data: {
181
+ jobName: job.name,
182
+ networkName: network.name,
183
+ error: disposeError instanceof Error ? disposeError.message : String(disposeError)
184
+ }
185
+ });
186
+ }
187
+ }
188
+ }
189
+ }
190
+ }
191
+ await this.writeOutputFiles();
192
+ if (this.showSummary) {
193
+ this.emitRunSummary(hasFailures);
194
+ }
195
+ if (hasFailures) {
196
+ const error = new Error('One or more jobs failed during execution');
197
+ this.events.emitEvent({
198
+ type: 'deployment_failed',
199
+ level: 'error',
200
+ data: {
201
+ error: error.message,
202
+ stack: error.stack
203
+ }
204
+ });
205
+ throw error;
206
+ }
207
+ this.events.emitEvent({
208
+ type: 'deployment_completed',
209
+ level: 'info'
210
+ });
211
+ }
212
+ catch (error) {
213
+ this.events.emitEvent({
214
+ type: 'deployment_failed',
215
+ level: 'error',
216
+ data: {
217
+ error: error instanceof Error ? error.message : String(error),
218
+ stack: error instanceof Error ? error.stack : undefined
219
+ }
220
+ });
221
+ throw error;
222
+ }
223
+ }
224
+ emitRunSummary(hasFailures) {
225
+ const jobCount = this.results.size;
226
+ let successCount = 0;
227
+ let failedCount = 0;
228
+ const skippedCount = 0;
229
+ for (const [, result] of this.results) {
230
+ for (const [, netResult] of result.outputs) {
231
+ if (netResult.status === 'success')
232
+ successCount++;
233
+ else
234
+ failedCount++;
235
+ }
236
+ }
237
+ const keyContracts = [];
238
+ for (const [, result] of this.results) {
239
+ for (const [, netResult] of result.outputs) {
240
+ if (netResult.status !== 'success')
241
+ continue;
242
+ const outputs = netResult.data;
243
+ for (const [k, v] of outputs) {
244
+ if (k.endsWith('.address') && typeof v === 'string') {
245
+ const action = k.split('.')[0];
246
+ keyContracts.push({ job: result.job.name, action, address: v });
247
+ }
248
+ }
249
+ }
250
+ }
251
+ const summaryEvent = {
252
+ type: 'run_summary',
253
+ level: (hasFailures ? 'warn' : 'info'),
254
+ data: {
255
+ networkCount: this.options.networks.length,
256
+ jobCount,
257
+ successCount,
258
+ failedCount,
259
+ skippedCount,
260
+ keyContracts: keyContracts.slice(0, 10)
261
+ }
262
+ };
263
+ this.events.emitEvent(summaryEvent);
264
+ }
265
+ getJobExecutionPlan(fullOrder) {
266
+ const expandRunJobs = (patterns) => {
267
+ const allJobNames = Array.from(this.loader.jobs.keys());
268
+ const isPattern = (s) => /[*?]/.test(s);
269
+ const escapeRegex = (s) => s.replace(/[-\\^$+?.()|[\]{}*?]/g, '\\$&');
270
+ const patternToRegex = (pattern) => {
271
+ const escaped = escapeRegex(pattern)
272
+ .replace(/\\\*/g, '.*')
273
+ .replace(/\\\?/g, '.');
274
+ return new RegExp(`^${escaped}$`);
275
+ };
276
+ const expanded = [];
277
+ const seen = new Set();
278
+ for (const p of patterns) {
279
+ if (!isPattern(p)) {
280
+ if (!this.loader.jobs.has(p)) {
281
+ throw new Error(`Specified job "${p}" not found in project.`);
282
+ }
283
+ if (!seen.has(p)) {
284
+ seen.add(p);
285
+ expanded.push(p);
286
+ }
287
+ continue;
288
+ }
289
+ const re = patternToRegex(p);
290
+ const matches = allJobNames.filter(name => re.test(name));
291
+ if (matches.length === 0) {
292
+ throw new Error(`Job pattern "${p}" did not match any jobs in project.`);
293
+ }
294
+ for (const m of matches) {
295
+ if (!seen.has(m)) {
296
+ seen.add(m);
297
+ expanded.push(m);
298
+ }
299
+ }
300
+ }
301
+ return expanded;
302
+ };
303
+ const isDeprecated = (jobName) => {
304
+ const j = this.loader.jobs.get(jobName);
305
+ return !!(j && j.deprecated === true);
306
+ };
307
+ if (!this.options.runJobs || this.options.runJobs.length === 0) {
308
+ if (this.options.runDeprecated) {
309
+ return fullOrder;
310
+ }
311
+ const nonDeprecatedJobs = new Set(fullOrder.filter(name => !isDeprecated(name)));
312
+ const requiredDeprecated = new Set();
313
+ for (const jobName of nonDeprecatedJobs) {
314
+ const deps = this.graph?.getDependencies(jobName) || new Set();
315
+ for (const dep of deps) {
316
+ if (isDeprecated(dep)) {
317
+ requiredDeprecated.add(dep);
318
+ }
319
+ }
320
+ }
321
+ const allowed = new Set([...nonDeprecatedJobs, ...requiredDeprecated]);
322
+ return fullOrder.filter(name => allowed.has(name));
323
+ }
324
+ const expandedRunJobs = expandRunJobs(this.options.runJobs);
325
+ const explicitlyRequested = new Set(expandedRunJobs);
326
+ const jobsToRun = new Set();
327
+ for (const jobName of expandedRunJobs) {
328
+ jobsToRun.add(jobName);
329
+ const dependencies = this.graph?.getDependencies(jobName) || new Set();
330
+ dependencies.forEach((dep) => jobsToRun.add(dep));
331
+ }
332
+ const depsOfRequested = new Set();
333
+ for (const jobName of expandedRunJobs) {
334
+ const deps = this.graph?.getDependencies(jobName) || new Set();
335
+ deps.forEach(d => depsOfRequested.add(d));
336
+ }
337
+ const filtered = Array.from(jobsToRun).filter(name => {
338
+ if (!isDeprecated(name))
339
+ return true;
340
+ if (explicitlyRequested.has(name))
341
+ return true;
342
+ if (depsOfRequested.has(name))
343
+ return true;
344
+ return this.options.runDeprecated === true;
345
+ });
346
+ const allowedSet = new Set(filtered);
347
+ return fullOrder.filter(jobName => allowedSet.has(jobName));
348
+ }
349
+ getTargetNetworks() {
350
+ if (!this.options.runOnNetworks || this.options.runOnNetworks.length === 0) {
351
+ return this.options.networks;
352
+ }
353
+ const targetChainIds = new Set(this.options.runOnNetworks);
354
+ const filteredNetworks = this.options.networks.filter(n => targetChainIds.has(n.chainId));
355
+ if (filteredNetworks.length !== this.options.runOnNetworks.length) {
356
+ const foundIds = new Set(filteredNetworks.map(n => n.chainId));
357
+ const missingIds = this.options.runOnNetworks.filter(id => !foundIds.has(id));
358
+ this.events.emitEvent({
359
+ type: 'missing_network_config_warning',
360
+ level: 'warn',
361
+ data: {
362
+ missingChainIds: missingIds
363
+ }
364
+ });
365
+ }
366
+ return filteredNetworks;
367
+ }
368
+ shouldSkipJobOnNetwork(job, network) {
369
+ const jobWithNetworkFilters = job;
370
+ if (jobWithNetworkFilters.only_networks && jobWithNetworkFilters.only_networks.length > 0) {
371
+ return !jobWithNetworkFilters.only_networks.includes(network.chainId);
372
+ }
373
+ if (jobWithNetworkFilters.skip_networks && jobWithNetworkFilters.skip_networks.length > 0) {
374
+ return jobWithNetworkFilters.skip_networks.includes(network.chainId);
375
+ }
376
+ return false;
377
+ }
378
+ populateContextWithDependentJobOutputs(job, context, network) {
379
+ if (!job.depends_on)
380
+ return;
381
+ for (const dependentJobName of job.depends_on) {
382
+ const dependentJobResults = this.results.get(dependentJobName);
383
+ if (!dependentJobResults)
384
+ continue;
385
+ const networkResult = dependentJobResults.outputs.get(network.chainId);
386
+ if (!networkResult || networkResult.status !== 'success')
387
+ continue;
388
+ const outputs = networkResult.data;
389
+ for (const [key, value] of outputs.entries()) {
390
+ const prefixedKey = `${dependentJobName}.${key}`;
391
+ context.setOutput(prefixedKey, value);
392
+ }
393
+ }
394
+ }
395
+ async writeOutputFiles() {
396
+ if (this.results.size === 0) {
397
+ this.events.emitEvent({
398
+ type: 'no_outputs',
399
+ level: 'warn'
400
+ });
401
+ return;
402
+ }
403
+ const outputRoot = path.join(this.options.projectRoot, 'output');
404
+ await fs.mkdir(outputRoot, { recursive: true });
405
+ this.events.emitEvent({
406
+ type: 'output_writing_started',
407
+ level: 'info'
408
+ });
409
+ for (const [jobName, resultData] of this.results.entries()) {
410
+ let relativeJobSubpath = `${jobName}.json`;
411
+ if (!this.options.flatOutput && resultData.job._path) {
412
+ const jobsDir = path.join(this.options.projectRoot, 'jobs');
413
+ const normalizedJobPath = path.normalize(resultData.job._path);
414
+ const normalizedJobsDir = path.normalize(jobsDir);
415
+ if (normalizedJobPath.startsWith(normalizedJobsDir)) {
416
+ const relFromJobs = path.relative(normalizedJobsDir, normalizedJobPath);
417
+ const dirPart = path.dirname(relFromJobs);
418
+ const fileBase = path.basename(relFromJobs, path.extname(relFromJobs));
419
+ relativeJobSubpath = dirPart === '.' ? `${fileBase}.json` : path.join(dirPart, `${fileBase}.json`);
420
+ }
421
+ else {
422
+ relativeJobSubpath = `${jobName}.json`;
423
+ }
424
+ }
425
+ const outputFilePath = path.join(outputRoot, relativeJobSubpath);
426
+ const outputFileDir = path.dirname(outputFilePath);
427
+ await fs.mkdir(outputFileDir, { recursive: true });
428
+ const groupedResults = this.groupNetworkResults(resultData.outputs, resultData.job);
429
+ const fileContent = {
430
+ jobName: resultData.job.name,
431
+ jobVersion: resultData.job.version,
432
+ lastRun: new Date().toISOString(),
433
+ networks: groupedResults
434
+ };
435
+ await fs.writeFile(outputFilePath, JSON.stringify(fileContent, null, 2));
436
+ this.events.emitEvent({
437
+ type: 'output_file_written',
438
+ level: 'info',
439
+ data: {
440
+ relativePath: path.relative(this.options.projectRoot, outputFilePath)
441
+ }
442
+ });
443
+ }
444
+ }
445
+ filterOutputsByActionFlags(outputs, job) {
446
+ const actionsWithCustomMap = job.actions.filter(a => a.output && typeof a.output === 'object' && a.output !== null);
447
+ const actionsWithTrue = job.actions.filter(a => a.output === true);
448
+ const actionsWithFalse = new Set(job.actions.filter(a => a.output === false).map(a => a.name));
449
+ const result = new Map();
450
+ const includeAllForAction = (actionName) => {
451
+ for (const [key, value] of outputs) {
452
+ if (key.startsWith(`${actionName}.`)) {
453
+ result.set(key, value);
454
+ }
455
+ }
456
+ };
457
+ if (actionsWithCustomMap.length > 0) {
458
+ for (const action of actionsWithCustomMap) {
459
+ const prefix = `${action.name}.`;
460
+ for (const mappedKey of Object.keys(action.output)) {
461
+ const normalizedKey = mappedKey.startsWith(prefix) ? mappedKey : `${prefix}${mappedKey}`;
462
+ if (outputs.has(normalizedKey)) {
463
+ result.set(normalizedKey, outputs.get(normalizedKey));
464
+ }
465
+ }
466
+ }
467
+ }
468
+ const actionsWithTrueNames = new Set(actionsWithTrue.map(a => a.name));
469
+ for (const actionName of actionsWithTrueNames) {
470
+ const hadCustom = actionsWithCustomMap.some(a => a.name === actionName);
471
+ if (!hadCustom) {
472
+ includeAllForAction(actionName);
473
+ }
474
+ }
475
+ if (result.size > 0) {
476
+ for (const falseActionName of actionsWithFalse) {
477
+ for (const key of Array.from(result.keys())) {
478
+ if (key.startsWith(`${falseActionName}.`)) {
479
+ result.delete(key);
480
+ }
481
+ }
482
+ }
483
+ return Object.fromEntries(result);
484
+ }
485
+ if (job.depends_on && job.depends_on.length > 0) {
486
+ return this.filterOutDependencyOutputs(outputs, job);
487
+ }
488
+ return Object.fromEntries(outputs);
489
+ }
490
+ filterOutDependencyOutputs(outputs, job) {
491
+ const filtered = new Map();
492
+ const dependencyNames = job.depends_on || [];
493
+ for (const [key, value] of outputs) {
494
+ const isDependencyOutput = dependencyNames.some(depName => key.startsWith(`${depName}.`));
495
+ if (!isDependencyOutput) {
496
+ filtered.set(key, value);
497
+ }
498
+ }
499
+ return Object.fromEntries(filtered);
500
+ }
501
+ groupNetworkResults(outputs, job) {
502
+ const successGroups = new Map();
503
+ const errorEntries = [];
504
+ for (const [chainId, result] of outputs.entries()) {
505
+ if (result.status === 'success') {
506
+ const outputsObj = result.data instanceof Map ? this.filterOutputsByActionFlags(result.data, job) : {};
507
+ const key = JSON.stringify(outputsObj);
508
+ if (!successGroups.has(key)) {
509
+ successGroups.set(key, {
510
+ chainIds: [],
511
+ outputs: outputsObj
512
+ });
513
+ }
514
+ successGroups.get(key).chainIds.push(chainId.toString());
515
+ }
516
+ else {
517
+ errorEntries.push({
518
+ status: 'error',
519
+ chainId: chainId.toString(),
520
+ error: result.data
521
+ });
522
+ }
523
+ }
524
+ const successEntries = Array.from(successGroups.values()).map(group => ({
525
+ status: 'success',
526
+ chainIds: group.chainIds.sort(),
527
+ outputs: group.outputs
528
+ }));
529
+ return [...successEntries, ...errorEntries];
530
+ }
531
+ }
532
+ exports.Deployer = Deployer;
533
+ //# sourceMappingURL=deployer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployer.js","sourceRoot":"","sources":["../../src/lib/deployer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=event-system.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-system.spec.d.ts","sourceRoot":"","sources":["../../../../src/lib/events/__tests__/event-system.spec.ts"],"names":[],"mappings":""}