@openzeppelin/upgrades-core 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (336) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.dbg.json +4 -0
  3. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol/ERC1967Proxy.json +80 -0
  4. package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +160 -0
  5. package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +155 -0
  6. package/artifacts/AdminUpgradeabilityProxy.json +155 -0
  7. package/artifacts/ProxyAdmin.json +160 -0
  8. package/artifacts/contracts/proxy/AdminUpgradeabilityProxy.sol/AdminUpgradeabilityProxy.json +155 -0
  9. package/artifacts/contracts/proxy/ProxyAdmin.sol/ProxyAdmin.json +160 -0
  10. package/contracts/Initializable.sol +64 -0
  11. package/dist/ast-dereferencer.d.ts +8 -0
  12. package/dist/ast-dereferencer.d.ts.map +1 -0
  13. package/dist/ast-dereferencer.js +29 -0
  14. package/dist/ast-dereferencer.js.map +1 -0
  15. package/dist/deployment.d.ts +18 -0
  16. package/dist/deployment.d.ts.map +1 -0
  17. package/dist/deployment.js +110 -0
  18. package/dist/deployment.js.map +1 -0
  19. package/dist/deployment.test.d.ts +2 -0
  20. package/dist/deployment.test.d.ts.map +1 -0
  21. package/dist/deployment.test.js +92 -0
  22. package/dist/deployment.test.js.map +1 -0
  23. package/dist/eip-1967.d.ts +7 -0
  24. package/dist/eip-1967.d.ts.map +1 -0
  25. package/dist/eip-1967.js +63 -0
  26. package/dist/eip-1967.js.map +1 -0
  27. package/dist/error.d.ts +21 -0
  28. package/dist/error.d.ts.map +1 -0
  29. package/dist/error.js +21 -0
  30. package/dist/error.js.map +1 -0
  31. package/dist/impl-store.d.ts +7 -0
  32. package/dist/impl-store.d.ts.map +1 -0
  33. package/dist/impl-store.js +94 -0
  34. package/dist/impl-store.js.map +1 -0
  35. package/dist/impl-store.test.d.ts +2 -0
  36. package/dist/impl-store.test.d.ts.map +1 -0
  37. package/dist/impl-store.test.js +55 -0
  38. package/dist/impl-store.test.js.map +1 -0
  39. package/dist/index.d.ts +16 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +32 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/levenshtein.d.ts +12 -0
  44. package/dist/levenshtein.d.ts.map +1 -0
  45. package/dist/levenshtein.js +89 -0
  46. package/dist/levenshtein.js.map +1 -0
  47. package/dist/levenshtein.test.d.ts +2 -0
  48. package/dist/levenshtein.test.d.ts.map +1 -0
  49. package/dist/levenshtein.test.js +88 -0
  50. package/dist/levenshtein.test.js.map +1 -0
  51. package/dist/link-refs.d.ts +11 -0
  52. package/dist/link-refs.d.ts.map +1 -0
  53. package/dist/link-refs.js +36 -0
  54. package/dist/link-refs.js.map +1 -0
  55. package/dist/link-refs.test.d.ts +2 -0
  56. package/dist/link-refs.test.d.ts.map +1 -0
  57. package/dist/link-refs.test.js +76 -0
  58. package/dist/link-refs.test.js.map +1 -0
  59. package/dist/manifest-storage-layout.d.ts +6 -0
  60. package/dist/manifest-storage-layout.d.ts.map +1 -0
  61. package/dist/manifest-storage-layout.js +95 -0
  62. package/dist/manifest-storage-layout.js.map +1 -0
  63. package/dist/manifest-storage-layout.test.d.ts +2 -0
  64. package/dist/manifest-storage-layout.test.d.ts.map +1 -0
  65. package/dist/manifest-storage-layout.test.js +105 -0
  66. package/dist/manifest-storage-layout.test.js.map +1 -0
  67. package/dist/manifest.d.ts +36 -0
  68. package/dist/manifest.d.ts.map +1 -0
  69. package/dist/manifest.js +154 -0
  70. package/dist/manifest.js.map +1 -0
  71. package/dist/manifest.test.d.ts +2 -0
  72. package/dist/manifest.test.d.ts.map +1 -0
  73. package/dist/manifest.test.js +17 -0
  74. package/dist/manifest.test.js.map +1 -0
  75. package/dist/provider.d.ts +37 -0
  76. package/dist/provider.d.ts.map +1 -0
  77. package/dist/provider.js +74 -0
  78. package/dist/provider.js.map +1 -0
  79. package/dist/provider.test.d.ts +2 -0
  80. package/dist/provider.test.d.ts.map +1 -0
  81. package/dist/provider.test.js +41 -0
  82. package/dist/provider.test.js.map +1 -0
  83. package/dist/scripts/migrate-oz-cli-project.d.ts +108 -0
  84. package/dist/scripts/migrate-oz-cli-project.d.ts.map +1 -0
  85. package/dist/scripts/migrate-oz-cli-project.js +321 -0
  86. package/dist/scripts/migrate-oz-cli-project.js.map +1 -0
  87. package/dist/scripts/migrate-oz-cli-project.test.d.ts +2 -0
  88. package/dist/scripts/migrate-oz-cli-project.test.d.ts.map +1 -0
  89. package/dist/scripts/migrate-oz-cli-project.test.js +60 -0
  90. package/dist/scripts/migrate-oz-cli-project.test.js.map +1 -0
  91. package/dist/set-proxy-kind.d.ts +5 -0
  92. package/dist/set-proxy-kind.d.ts.map +1 -0
  93. package/dist/set-proxy-kind.js +25 -0
  94. package/dist/set-proxy-kind.js.map +1 -0
  95. package/dist/solc-api.d.ts +39 -0
  96. package/dist/solc-api.d.ts.map +1 -0
  97. package/dist/solc-api.js +3 -0
  98. package/dist/solc-api.js.map +1 -0
  99. package/dist/src-decoder.d.ts +6 -0
  100. package/dist/src-decoder.d.ts.map +1 -0
  101. package/dist/src-decoder.js +36 -0
  102. package/dist/src-decoder.js.map +1 -0
  103. package/dist/src-decoder.test.d.ts +2 -0
  104. package/dist/src-decoder.test.d.ts.map +1 -0
  105. package/dist/src-decoder.test.js +29 -0
  106. package/dist/src-decoder.test.js.map +1 -0
  107. package/dist/storage/compare.d.ts +55 -0
  108. package/dist/storage/compare.d.ts.map +1 -0
  109. package/dist/storage/compare.js +181 -0
  110. package/dist/storage/compare.js.map +1 -0
  111. package/dist/storage/compat.d.ts +4 -0
  112. package/dist/storage/compat.d.ts.map +1 -0
  113. package/dist/storage/compat.js +9 -0
  114. package/dist/storage/compat.js.map +1 -0
  115. package/dist/storage/extract.d.ts +7 -0
  116. package/dist/storage/extract.d.ts.map +1 -0
  117. package/dist/storage/extract.js +86 -0
  118. package/dist/storage/extract.js.map +1 -0
  119. package/dist/storage/index.d.ts +8 -0
  120. package/dist/storage/index.d.ts.map +1 -0
  121. package/dist/storage/index.js +65 -0
  122. package/dist/storage/index.js.map +1 -0
  123. package/dist/storage/layout.d.ts +31 -0
  124. package/dist/storage/layout.d.ts.map +1 -0
  125. package/dist/storage/layout.js +46 -0
  126. package/dist/storage/layout.js.map +1 -0
  127. package/dist/storage/report.d.ts +8 -0
  128. package/dist/storage/report.d.ts.map +1 -0
  129. package/dist/storage/report.js +175 -0
  130. package/dist/storage/report.js.map +1 -0
  131. package/dist/storage/report.test.d.ts +2 -0
  132. package/dist/storage/report.test.d.ts.map +1 -0
  133. package/dist/storage/report.test.js +82 -0
  134. package/dist/storage/report.test.js.map +1 -0
  135. package/dist/storage.test.d.ts +2 -0
  136. package/dist/storage.test.d.ts.map +1 -0
  137. package/dist/storage.test.js +436 -0
  138. package/dist/storage.test.js.map +1 -0
  139. package/dist/stub-provider.d.ts +14 -0
  140. package/dist/stub-provider.d.ts.map +1 -0
  141. package/dist/stub-provider.js +128 -0
  142. package/dist/stub-provider.js.map +1 -0
  143. package/dist/utils/assert.d.ts +3 -0
  144. package/dist/utils/assert.d.ts.map +1 -0
  145. package/dist/utils/assert.js +14 -0
  146. package/dist/utils/assert.js.map +1 -0
  147. package/dist/utils/curry.d.ts +6 -0
  148. package/dist/utils/curry.d.ts.map +1 -0
  149. package/dist/utils/curry.js +16 -0
  150. package/dist/utils/curry.js.map +1 -0
  151. package/dist/utils/debug.d.ts +4 -0
  152. package/dist/utils/debug.d.ts.map +1 -0
  153. package/dist/utils/debug.js +8 -0
  154. package/dist/utils/debug.js.map +1 -0
  155. package/dist/utils/deep-array.d.ts +3 -0
  156. package/dist/utils/deep-array.d.ts.map +1 -0
  157. package/dist/utils/deep-array.js +13 -0
  158. package/dist/utils/deep-array.js.map +1 -0
  159. package/dist/utils/deep-array.test.d.ts +2 -0
  160. package/dist/utils/deep-array.test.d.ts.map +1 -0
  161. package/dist/utils/deep-array.test.js +23 -0
  162. package/dist/utils/deep-array.test.js.map +1 -0
  163. package/dist/utils/function.d.ts +4 -0
  164. package/dist/utils/function.d.ts.map +1 -0
  165. package/dist/utils/function.js +43 -0
  166. package/dist/utils/function.js.map +1 -0
  167. package/dist/utils/function.test.d.ts +2 -0
  168. package/dist/utils/function.test.d.ts.map +1 -0
  169. package/dist/utils/function.test.js +34 -0
  170. package/dist/utils/function.test.js.map +1 -0
  171. package/dist/utils/indent.d.ts +2 -0
  172. package/dist/utils/indent.d.ts.map +1 -0
  173. package/dist/utils/indent.js +8 -0
  174. package/dist/utils/indent.js.map +1 -0
  175. package/dist/utils/is-nullish.d.ts +2 -0
  176. package/dist/utils/is-nullish.d.ts.map +1 -0
  177. package/dist/utils/is-nullish.js +8 -0
  178. package/dist/utils/is-nullish.js.map +1 -0
  179. package/dist/utils/is-nullish.test.d.ts +2 -0
  180. package/dist/utils/is-nullish.test.d.ts.map +1 -0
  181. package/dist/utils/is-nullish.test.js +17 -0
  182. package/dist/utils/is-nullish.test.js.map +1 -0
  183. package/dist/utils/is-value-type.d.ts +3 -0
  184. package/dist/utils/is-value-type.d.ts.map +1 -0
  185. package/dist/utils/is-value-type.js +8 -0
  186. package/dist/utils/is-value-type.js.map +1 -0
  187. package/dist/utils/itemize.d.ts +3 -0
  188. package/dist/utils/itemize.d.ts.map +1 -0
  189. package/dist/utils/itemize.js +18 -0
  190. package/dist/utils/itemize.js.map +1 -0
  191. package/dist/utils/log.d.ts +4 -0
  192. package/dist/utils/log.d.ts.map +1 -0
  193. package/dist/utils/log.js +35 -0
  194. package/dist/utils/log.js.map +1 -0
  195. package/dist/utils/make-non-enumerable.d.ts +2 -0
  196. package/dist/utils/make-non-enumerable.d.ts.map +1 -0
  197. package/dist/utils/make-non-enumerable.js +9 -0
  198. package/dist/utils/make-non-enumerable.js.map +1 -0
  199. package/dist/utils/map-values.d.ts +2 -0
  200. package/dist/utils/map-values.d.ts.map +1 -0
  201. package/dist/utils/map-values.js +12 -0
  202. package/dist/utils/map-values.js.map +1 -0
  203. package/dist/utils/parse-type-id.d.ts +9 -0
  204. package/dist/utils/parse-type-id.d.ts.map +1 -0
  205. package/dist/utils/parse-type-id.js +92 -0
  206. package/dist/utils/parse-type-id.js.map +1 -0
  207. package/dist/utils/parse-type-id.test.d.ts +2 -0
  208. package/dist/utils/parse-type-id.test.d.ts.map +1 -0
  209. package/dist/utils/parse-type-id.test.js +25 -0
  210. package/dist/utils/parse-type-id.test.js.map +1 -0
  211. package/dist/utils/pick.d.ts +2 -0
  212. package/dist/utils/pick.d.ts.map +1 -0
  213. package/dist/utils/pick.js +12 -0
  214. package/dist/utils/pick.js.map +1 -0
  215. package/dist/utils/type-id.d.ts +4 -0
  216. package/dist/utils/type-id.d.ts.map +1 -0
  217. package/dist/utils/type-id.js +65 -0
  218. package/dist/utils/type-id.js.map +1 -0
  219. package/dist/validate/compat.d.ts +6 -0
  220. package/dist/validate/compat.d.ts.map +1 -0
  221. package/dist/validate/compat.js +4 -0
  222. package/dist/validate/compat.js.map +1 -0
  223. package/dist/validate/data.d.ts +14 -0
  224. package/dist/validate/data.d.ts.map +1 -0
  225. package/dist/validate/data.js +50 -0
  226. package/dist/validate/data.js.map +1 -0
  227. package/dist/validate/error.d.ts +7 -0
  228. package/dist/validate/error.d.ts.map +1 -0
  229. package/dist/validate/error.js +78 -0
  230. package/dist/validate/error.js.map +1 -0
  231. package/dist/validate/index.d.ts +8 -0
  232. package/dist/validate/index.d.ts.map +1 -0
  233. package/dist/validate/index.js +24 -0
  234. package/dist/validate/index.js.map +1 -0
  235. package/dist/validate/overrides.d.ts +14 -0
  236. package/dist/validate/overrides.d.ts.map +1 -0
  237. package/dist/validate/overrides.js +72 -0
  238. package/dist/validate/overrides.js.map +1 -0
  239. package/dist/validate/query.d.ts +15 -0
  240. package/dist/validate/query.d.ts.map +1 -0
  241. package/dist/validate/query.js +111 -0
  242. package/dist/validate/query.js.map +1 -0
  243. package/dist/validate/query.test.d.ts +2 -0
  244. package/dist/validate/query.test.d.ts.map +1 -0
  245. package/dist/validate/query.test.js +48 -0
  246. package/dist/validate/query.test.js.map +1 -0
  247. package/dist/validate/run.d.ts +39 -0
  248. package/dist/validate/run.d.ts.map +1 -0
  249. package/dist/validate/run.js +199 -0
  250. package/dist/validate/run.js.map +1 -0
  251. package/dist/validate.test.d.ts +2 -0
  252. package/dist/validate.test.d.ts.map +1 -0
  253. package/dist/validate.test.js +116 -0
  254. package/dist/validate.test.js.map +1 -0
  255. package/dist/version.d.ts +9 -0
  256. package/dist/version.d.ts.map +1 -0
  257. package/dist/version.js +66 -0
  258. package/dist/version.js.map +1 -0
  259. package/dist/version.test.d.ts +2 -0
  260. package/dist/version.test.d.ts.map +1 -0
  261. package/dist/version.test.js +53 -0
  262. package/dist/version.test.js.map +1 -0
  263. package/package.json +58 -0
  264. package/src/ast-dereferencer.ts +42 -0
  265. package/src/deployment.test.ts +98 -0
  266. package/src/deployment.ts +122 -0
  267. package/src/eip-1967.ts +77 -0
  268. package/src/error.ts +26 -0
  269. package/src/impl-store.test.ts +59 -0
  270. package/src/impl-store.ts +124 -0
  271. package/src/index.ts +18 -0
  272. package/src/levenshtein.test.ts +91 -0
  273. package/src/levenshtein.ts +116 -0
  274. package/src/link-refs.test.ts +77 -0
  275. package/src/link-refs.ts +41 -0
  276. package/src/manifest-storage-layout.test.ts +118 -0
  277. package/src/manifest-storage-layout.ts +107 -0
  278. package/src/manifest.test.ts +13 -0
  279. package/src/manifest.ts +178 -0
  280. package/src/provider.test.ts +43 -0
  281. package/src/provider.ts +103 -0
  282. package/src/scripts/migratable-manifest.test.json +175 -0
  283. package/src/scripts/migrate-oz-cli-project.test.ts +70 -0
  284. package/src/scripts/migrate-oz-cli-project.test.ts.md +146 -0
  285. package/src/scripts/migrate-oz-cli-project.test.ts.snap +0 -0
  286. package/src/scripts/migrate-oz-cli-project.ts +484 -0
  287. package/src/scripts/project-file.test.json +25 -0
  288. package/src/set-proxy-kind.ts +27 -0
  289. package/src/solc-api.ts +42 -0
  290. package/src/src-decoder.test.ts +30 -0
  291. package/src/src-decoder.ts +37 -0
  292. package/src/storage/compare.ts +249 -0
  293. package/src/storage/compat.ts +3 -0
  294. package/src/storage/extract.ts +110 -0
  295. package/src/storage/index.ts +73 -0
  296. package/src/storage/layout.ts +88 -0
  297. package/src/storage/report.test.ts +95 -0
  298. package/src/storage/report.test.ts.md +154 -0
  299. package/src/storage/report.test.ts.snap +0 -0
  300. package/src/storage/report.ts +215 -0
  301. package/src/storage.test.ts +479 -0
  302. package/src/storage.test.ts.md +643 -0
  303. package/src/storage.test.ts.snap +0 -0
  304. package/src/stub-provider.ts +120 -0
  305. package/src/utils/assert.ts +9 -0
  306. package/src/utils/curry.ts +17 -0
  307. package/src/utils/debug.ts +3 -0
  308. package/src/utils/deep-array.test.ts +21 -0
  309. package/src/utils/deep-array.ts +9 -0
  310. package/src/utils/function.test.ts +37 -0
  311. package/src/utils/function.ts +53 -0
  312. package/src/utils/indent.ts +3 -0
  313. package/src/utils/is-nullish.test.ts +15 -0
  314. package/src/utils/is-nullish.ts +3 -0
  315. package/src/utils/is-value-type.ts +5 -0
  316. package/src/utils/itemize.ts +16 -0
  317. package/src/utils/log.ts +34 -0
  318. package/src/utils/make-non-enumerable.ts +4 -0
  319. package/src/utils/map-values.ts +7 -0
  320. package/src/utils/parse-type-id.test.ts +22 -0
  321. package/src/utils/parse-type-id.test.ts.md +264 -0
  322. package/src/utils/parse-type-id.test.ts.snap +0 -0
  323. package/src/utils/parse-type-id.ts +104 -0
  324. package/src/utils/pick.ts +7 -0
  325. package/src/utils/type-id.ts +57 -0
  326. package/src/validate/compat.ts +9 -0
  327. package/src/validate/data.ts +55 -0
  328. package/src/validate/error.ts +75 -0
  329. package/src/validate/index.ts +17 -0
  330. package/src/validate/overrides.ts +93 -0
  331. package/src/validate/query.test.ts +48 -0
  332. package/src/validate/query.ts +127 -0
  333. package/src/validate/run.ts +278 -0
  334. package/src/validate.test.ts +133 -0
  335. package/src/version.test.ts +59 -0
  336. package/src/version.ts +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-nullish.test.js","sourceRoot":"","sources":["../../src/utils/is-nullish.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AAEvB,6CAAyC;AAEzC,aAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;IACf,CAAC,CAAC,IAAI,CAAC,sBAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE;IACpB,CAAC,CAAC,IAAI,CAAC,sBAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE;IACnB,CAAC,CAAC,KAAK,CAAC,sBAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ParsedTypeDetailed } from '../storage/layout';
2
+ export declare function isValueType(type: ParsedTypeDetailed): boolean;
3
+ //# sourceMappingURL=is-value-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-value-type.d.ts","sourceRoot":"","sources":["../../src/utils/is-value-type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAE7D"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValueType = void 0;
4
+ function isValueType(type) {
5
+ return type.args === undefined || ['t_contract', 't_enum'].includes(type.head);
6
+ }
7
+ exports.isValueType = isValueType;
8
+ //# sourceMappingURL=is-value-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-value-type.js","sourceRoot":"","sources":["../../src/utils/is-value-type.ts"],"names":[],"mappings":";;;AAEA,SAAgB,WAAW,CAAC,IAAwB;IAClD,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjF,CAAC;AAFD,kCAEC"}
@@ -0,0 +1,3 @@
1
+ export declare function itemize(...items: string[]): string;
2
+ export declare function itemizeWith(bullet: string, ...items: string[]): string;
3
+ //# sourceMappingURL=itemize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itemize.d.ts","sourceRoot":"","sources":["../../src/utils/itemize.ts"],"names":[],"mappings":"AASA,wBAAgB,OAAO,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAElD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAEtE"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ // itemize returns a markdown-like list of the items
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.itemizeWith = exports.itemize = void 0;
5
+ // itemize['a\nb', 'c'] =
6
+ // - a
7
+ // b
8
+ // - c
9
+ const indent_1 = require("./indent");
10
+ function itemize(...items) {
11
+ return itemizeWith('-', ...items);
12
+ }
13
+ exports.itemize = itemize;
14
+ function itemizeWith(bullet, ...items) {
15
+ return items.map(item => bullet + indent_1.indent(item, 2, 1)).join('\n');
16
+ }
17
+ exports.itemizeWith = itemizeWith;
18
+ //# sourceMappingURL=itemize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itemize.js","sourceRoot":"","sources":["../../src/utils/itemize.ts"],"names":[],"mappings":";AAAA,oDAAoD;;;AAEpD,yBAAyB;AACzB,MAAM;AACN,MAAM;AACN,MAAM;AAEN,qCAAkC;AAElC,SAAgB,OAAO,CAAC,GAAG,KAAe;IACxC,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;AACpC,CAAC;AAFD,0BAEC;AAED,SAAgB,WAAW,CAAC,MAAc,EAAE,GAAG,KAAe;IAC5D,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,eAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAFD,kCAEC"}
@@ -0,0 +1,4 @@
1
+ export declare function logNote(title: string, lines?: string[]): void;
2
+ export declare function logWarning(title: string, lines?: string[]): void;
3
+ export declare function silenceWarnings(): void;
4
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/utils/log.ts"],"names":[],"mappings":"AAoBA,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,IAAI,CAEjE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,IAAI,CAEpE;AAED,wBAAgB,eAAe,IAAI,IAAI,CAKtC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.silenceWarnings = exports.logWarning = exports.logNote = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const indent_1 = require("./indent");
9
+ let silenced = false;
10
+ function log(prefix, title, lines) {
11
+ if (silenced) {
12
+ return;
13
+ }
14
+ const parts = [chalk_1.default.yellow.bold(prefix + ':') + ' ' + title + '\n'];
15
+ if (lines.length > 0) {
16
+ parts.push(lines.map(l => indent_1.indent(l, 4) + '\n').join(''));
17
+ }
18
+ console.error(parts.join('\n'));
19
+ }
20
+ function logNote(title, lines = []) {
21
+ log('Note', title, lines);
22
+ }
23
+ exports.logNote = logNote;
24
+ function logWarning(title, lines = []) {
25
+ log('Warning', title, lines);
26
+ }
27
+ exports.logWarning = logWarning;
28
+ function silenceWarnings() {
29
+ logWarning(`All subsequent Upgrades warnings will be silenced.`, [
30
+ `Make sure you have manually checked all uses of unsafe flags.`,
31
+ ]);
32
+ silenced = true;
33
+ }
34
+ exports.silenceWarnings = silenceWarnings;
35
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/utils/log.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,qCAAkC;AAElC,IAAI,QAAQ,GAAG,KAAK,CAAC;AAErB,SAAS,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,KAAe;IACzD,IAAI,QAAQ,EAAE;QACZ,OAAO;KACR;IAED,MAAM,KAAK,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC;IAErE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KAC1D;IAED,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,SAAgB,OAAO,CAAC,KAAa,EAAE,QAAkB,EAAE;IACzD,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5B,CAAC;AAFD,0BAEC;AAED,SAAgB,UAAU,CAAC,KAAa,EAAE,QAAkB,EAAE;IAC5D,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC/B,CAAC;AAFD,gCAEC;AAED,SAAgB,eAAe;IAC7B,UAAU,CAAC,oDAAoD,EAAE;QAC/D,+DAA+D;KAChE,CAAC,CAAC;IACH,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AALD,0CAKC"}
@@ -0,0 +1,2 @@
1
+ export declare function makeNonEnumerable<O extends any>(obj: O, key: keyof O): void;
2
+ //# sourceMappingURL=make-non-enumerable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-non-enumerable.d.ts","sourceRoot":"","sources":["../../src/utils/make-non-enumerable.ts"],"names":[],"mappings":"AACA,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,CAE3E"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeNonEnumerable = void 0;
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ function makeNonEnumerable(obj, key) {
6
+ Object.defineProperty(obj, key, { enumerable: false });
7
+ }
8
+ exports.makeNonEnumerable = makeNonEnumerable;
9
+ //# sourceMappingURL=make-non-enumerable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"make-non-enumerable.js","sourceRoot":"","sources":["../../src/utils/make-non-enumerable.ts"],"names":[],"mappings":";;;AAAA,8DAA8D;AAC9D,SAAgB,iBAAiB,CAAgB,GAAM,EAAE,GAAY;IACnE,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;AACzD,CAAC;AAFD,8CAEC"}
@@ -0,0 +1,2 @@
1
+ export declare function mapValues<V, W>(obj: Record<string, V>, fn: (value: V) => W): Record<string, W>;
2
+ //# sourceMappingURL=map-values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-values.d.ts","sourceRoot":"","sources":["../../src/utils/map-values.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAM9F"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapValues = void 0;
4
+ function mapValues(obj, fn) {
5
+ const res = {};
6
+ for (const k in obj) {
7
+ res[k] = fn(obj[k]);
8
+ }
9
+ return res;
10
+ }
11
+ exports.mapValues = mapValues;
12
+ //# sourceMappingURL=map-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-values.js","sourceRoot":"","sources":["../../src/utils/map-values.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAO,GAAsB,EAAE,EAAmB;IACzE,MAAM,GAAG,GAA+B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;QACnB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KACrB;IACD,OAAO,GAAwB,CAAC;AAClC,CAAC;AAND,8BAMC"}
@@ -0,0 +1,9 @@
1
+ export interface ParsedTypeId {
2
+ id: string;
3
+ head: string;
4
+ args?: ParsedTypeId[];
5
+ tail?: string;
6
+ rets?: ParsedTypeId[];
7
+ }
8
+ export declare function parseTypeId(id: string): ParsedTypeId;
9
+ //# sourceMappingURL=parse-type-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-type-id.d.ts","sourceRoot":"","sources":["../../src/utils/parse-type-id.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;CACvB;AAqBD,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,CAwDpD"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parseTypeId = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ // The examples below illustrate the meaning of these properties.
9
+ // 1) id = t_struct(MyStruct)storage
10
+ // └──────┘ └──────┘ └─────┘
11
+ // head args[0] tail
12
+ // rets = undefined
13
+ // 2) id = t_function_internal_nonpayable(t_uint256,t_uint256)returns(t_address)
14
+ // └────────────────────────────┘ └───────┘ └───────┘ └───────┘
15
+ // head args[0] args[1] rets[0]
16
+ // tail = undefined
17
+ // 3) id = t_uint256
18
+ // └───────┘
19
+ // head
20
+ // args = undefined
21
+ // tail = undefined
22
+ // rets = undefined
23
+ function parseTypeId(id) {
24
+ const matcher = new StatefulGlobalMatcher(id);
25
+ function parseList() {
26
+ var _a;
27
+ const args = [];
28
+ let i = matcher.index;
29
+ let delim;
30
+ while ((delim = matcher.match(/[(),]/))) {
31
+ if (delim[0] === '(') {
32
+ let depth = 1;
33
+ while (depth > 0) {
34
+ const paren = (_a = matcher.match(/[()]/)) === null || _a === void 0 ? void 0 : _a[0];
35
+ if (paren === '(') {
36
+ depth += 1;
37
+ }
38
+ else if (paren === ')') {
39
+ depth -= 1;
40
+ }
41
+ else {
42
+ throw new Error(`Malformed type id ${id}`);
43
+ }
44
+ }
45
+ }
46
+ else {
47
+ const subtype = id.slice(i, delim.index);
48
+ if (subtype) {
49
+ args.push(parseTypeId(subtype));
50
+ }
51
+ i = delim.index + 1;
52
+ if (delim[0] === ')') {
53
+ break;
54
+ }
55
+ }
56
+ }
57
+ return args;
58
+ }
59
+ const openArgs = matcher.match(/\(/);
60
+ const head = id.slice(0, openArgs === null || openArgs === void 0 ? void 0 : openArgs.index);
61
+ let args, tail, rets;
62
+ if (openArgs) {
63
+ args = parseList();
64
+ const startTail = matcher.index;
65
+ const openRet = matcher.match(/\(/);
66
+ if (!openRet) {
67
+ tail = id.slice(startTail) || undefined;
68
+ }
69
+ else {
70
+ assert_1.default(id.slice(startTail, openRet.index) === 'returns', `Malformed type id ${id}`);
71
+ rets = parseList();
72
+ }
73
+ }
74
+ return { id, head, args, tail, rets };
75
+ }
76
+ exports.parseTypeId = parseTypeId;
77
+ class StatefulGlobalMatcher {
78
+ constructor(text) {
79
+ this.text = text;
80
+ this.index = 0;
81
+ }
82
+ match(re) {
83
+ const gre = new RegExp(re, 'g');
84
+ gre.lastIndex = this.index;
85
+ const match = gre.exec(this.text);
86
+ if (match !== null) {
87
+ this.index = gre.lastIndex;
88
+ }
89
+ return match;
90
+ }
91
+ }
92
+ //# sourceMappingURL=parse-type-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-type-id.js","sourceRoot":"","sources":["../../src/utils/parse-type-id.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=parse-type-id.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-type-id.test.d.ts","sourceRoot":"","sources":["../../src/utils/parse-type-id.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ava_1 = __importDefault(require("ava"));
7
+ const parse_type_id_1 = require("./parse-type-id");
8
+ const fixtures = [
9
+ 't_uint256',
10
+ 't_enum(MyEnum)',
11
+ 't_struct(MyComplexStruct)storage',
12
+ 't_array(t_uint256)3_storage',
13
+ 't_mapping(t_uint256,t_uint256)',
14
+ 't_mapping(unknown,t_uint256)',
15
+ 't_mapping(t_uint256,t_array(t_bool)dyn_storage)',
16
+ 't_mapping(t_uint256,t_mapping(t_string_memory_ptr,t_address))',
17
+ 't_function_internal_nonpayable(t_uint256)returns()',
18
+ 't_array(t_function_internal_nonpayable(t_uint256)returns(t_address))10_storage',
19
+ ];
20
+ for (const f of fixtures) {
21
+ ava_1.default(f, t => {
22
+ t.snapshot(parse_type_id_1.parseTypeId(f));
23
+ });
24
+ }
25
+ //# sourceMappingURL=parse-type-id.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-type-id.test.js","sourceRoot":"","sources":["../../src/utils/parse-type-id.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AAEvB,mDAA8C;AAE9C,MAAM,QAAQ,GAAG;IACf,WAAW;IACX,gBAAgB;IAChB,kCAAkC;IAClC,6BAA6B;IAC7B,gCAAgC;IAChC,8BAA8B;IAC9B,iDAAiD;IACjD,+DAA+D;IAC/D,oDAAoD;IACpD,gFAAgF;CACjF,CAAC;AAEF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE;IACxB,aAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QACV,CAAC,CAAC,QAAQ,CAAC,2BAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;CACJ"}
@@ -0,0 +1,2 @@
1
+ export declare function pick<T, K extends keyof T>(obj: T, keys: K[]): Pick<T, K>;
2
+ //# sourceMappingURL=pick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../src/utils/pick.ts"],"names":[],"mappings":"AAAA,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAMxE"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pick = void 0;
4
+ function pick(obj, keys) {
5
+ const res = {};
6
+ for (const k of keys) {
7
+ res[k] = obj[k];
8
+ }
9
+ return res;
10
+ }
11
+ exports.pick = pick;
12
+ //# sourceMappingURL=pick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../src/utils/pick.ts"],"names":[],"mappings":";;;AAAA,SAAgB,IAAI,CAAuB,GAAM,EAAE,IAAS;IAC1D,MAAM,GAAG,GAAwB,EAAE,CAAC;IACpC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QACpB,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;KACjB;IACD,OAAO,GAAiB,CAAC;AAC3B,CAAC;AAND,oBAMC"}
@@ -0,0 +1,4 @@
1
+ export declare function decodeTypeIdentifier(typeIdentifier: string): string;
2
+ export declare function normalizeTypeIdentifier(typeIdentifier: string): string;
3
+ export declare function stabilizeTypeIdentifier(typeIdentifier: string): string;
4
+ //# sourceMappingURL=type-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-id.d.ts","sourceRoot":"","sources":["../../src/utils/type-id.ts"],"names":[],"mappings":"AAUA,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAanE;AAKD,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAEtE;AAKD,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAqBtE"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.stabilizeTypeIdentifier = exports.normalizeTypeIdentifier = exports.decodeTypeIdentifier = void 0;
7
+ const assert_1 = __importDefault(require("assert"));
8
+ // Type Identifiers in the AST are for some reason encoded so that they don't
9
+ // contain parentheses or commas, which have been substituted as follows:
10
+ // ( -> $_
11
+ // ) -> _$
12
+ // , -> _$_
13
+ // This is particularly hard to decode because it is not a prefix-free code.
14
+ // Thus, the following regex has to perform a lookahead to make sure it gets
15
+ // the substitution right.
16
+ function decodeTypeIdentifier(typeIdentifier) {
17
+ return typeIdentifier.replace(/(\$_|_\$_|_\$)(?=(\$_|_\$_|_\$)*([^_$]|$))/g, m => {
18
+ switch (m) {
19
+ case '$_':
20
+ return '(';
21
+ case '_$':
22
+ return ')';
23
+ case '_$_':
24
+ return ',';
25
+ default:
26
+ throw new Error('Unreachable');
27
+ }
28
+ });
29
+ }
30
+ exports.decodeTypeIdentifier = decodeTypeIdentifier;
31
+ // Some Type Identifiers contain a _storage_ptr suffix, but the _ptr part
32
+ // appears in some places and not others. We remove it to get consistent type
33
+ // ids from the different places in the AST.
34
+ function normalizeTypeIdentifier(typeIdentifier) {
35
+ return decodeTypeIdentifier(typeIdentifier).replace(/_storage_ptr\b/g, '_storage');
36
+ }
37
+ exports.normalizeTypeIdentifier = normalizeTypeIdentifier;
38
+ // Type Identifiers contain AST id numbers, which makes them sensitive to
39
+ // unrelated changes in the source code. This function stabilizes a type
40
+ // identifier by removing all AST ids.
41
+ function stabilizeTypeIdentifier(typeIdentifier) {
42
+ let decoded = decodeTypeIdentifier(typeIdentifier);
43
+ const re = /(t_struct|t_enum|t_contract)\(/g;
44
+ let match;
45
+ while ((match = re.exec(decoded))) {
46
+ let i;
47
+ let d = 1;
48
+ for (i = match.index + match[0].length; d !== 0; i++) {
49
+ assert_1.default(i < decoded.length, 'index out of bounds');
50
+ const c = decoded[i];
51
+ if (c === '(') {
52
+ d += 1;
53
+ }
54
+ else if (c === ')') {
55
+ d -= 1;
56
+ }
57
+ }
58
+ const re2 = /\d+_?/y;
59
+ re2.lastIndex = i;
60
+ decoded = decoded.replace(re2, '');
61
+ }
62
+ return decoded;
63
+ }
64
+ exports.stabilizeTypeIdentifier = stabilizeTypeIdentifier;
65
+ //# sourceMappingURL=type-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-id.js","sourceRoot":"","sources":["../../src/utils/type-id.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAE5B,6EAA6E;AAC7E,yEAAyE;AACzE,eAAe;AACf,eAAe;AACf,gBAAgB;AAChB,4EAA4E;AAC5E,4EAA4E;AAC5E,0BAA0B;AAC1B,SAAgB,oBAAoB,CAAC,cAAsB;IACzD,OAAO,cAAc,CAAC,OAAO,CAAC,6CAA6C,EAAE,CAAC,CAAC,EAAE;QAC/E,QAAQ,CAAC,EAAE;YACT,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC;YACb,KAAK,IAAI;gBACP,OAAO,GAAG,CAAC;YACb,KAAK,KAAK;gBACR,OAAO,GAAG,CAAC;YACb;gBACE,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;SAClC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAbD,oDAaC;AAED,yEAAyE;AACzE,6EAA6E;AAC7E,4CAA4C;AAC5C,SAAgB,uBAAuB,CAAC,cAAsB;IAC5D,OAAO,oBAAoB,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;AACrF,CAAC;AAFD,0DAEC;AAED,yEAAyE;AACzE,wEAAwE;AACxE,sCAAsC;AACtC,SAAgB,uBAAuB,CAAC,cAAsB;IAC5D,IAAI,OAAO,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,iCAAiC,CAAC;IAC7C,IAAI,KAAK,CAAC;IACV,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE;QACjC,IAAI,CAAC,CAAC;QACN,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE;YACpD,gBAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;YAClD,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACrB,IAAI,CAAC,KAAK,GAAG,EAAE;gBACb,CAAC,IAAI,CAAC,CAAC;aACR;iBAAM,IAAI,CAAC,KAAK,GAAG,EAAE;gBACpB,CAAC,IAAI,CAAC,CAAC;aACR;SACF;QACD,MAAM,GAAG,GAAG,QAAQ,CAAC;QACrB,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC;QAClB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;KACpC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AArBD,0DAqBC"}
@@ -0,0 +1,6 @@
1
+ import { ContractValidation, ValidationRunData } from './run';
2
+ export declare type RunValidation = ValidationRunData;
3
+ export declare type ValidationLog = RunValidation[];
4
+ export declare type Validation = RunValidation;
5
+ export declare type ValidationResult = ContractValidation;
6
+ //# sourceMappingURL=compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.d.ts","sourceRoot":"","sources":["../../src/validate/compat.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE9D,oBAAY,aAAa,GAAG,iBAAiB,CAAC;AAC9C,oBAAY,aAAa,GAAG,aAAa,EAAE,CAAC;AAC5C,oBAAY,UAAU,GAAG,aAAa,CAAC;AAEvC,oBAAY,gBAAgB,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // Legacy interface for backwards compatibility
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compat.js","sourceRoot":"","sources":["../../src/validate/compat.ts"],"names":[],"mappings":";AAAA,+CAA+C"}
@@ -0,0 +1,14 @@
1
+ import { ValidationRunData } from './run';
2
+ declare type ValidationDataV1 = ValidationRunData;
3
+ declare type ValidationDataV2 = ValidationRunData[];
4
+ interface ValidationDataV3 {
5
+ version: '3' | '3.1' | '3.2';
6
+ log: ValidationRunData[];
7
+ }
8
+ export declare type ValidationDataCurrent = ValidationDataV3;
9
+ export declare type ValidationData = ValidationDataV1 | ValidationDataV2 | ValidationDataV3;
10
+ export declare function normalizeValidationData(data: ValidationData): ValidationDataCurrent;
11
+ export declare function isCurrentValidationData(data: ValidationData, exact?: boolean): data is ValidationDataCurrent;
12
+ export declare function concatRunData(newRunData: ValidationRunData, previousData?: ValidationDataCurrent): ValidationDataCurrent;
13
+ export {};
14
+ //# sourceMappingURL=data.d.ts.map