@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":"stub-provider.d.ts","sourceRoot":"","sources":["../src/stub-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAS5C,wBAAgB,YAAY,CAAC,OAAO,SAAe,EAAE,aAAa,SAAuB;;qCAiB9C,QAAQ,cAAc,CAAC;;;wBA2B1C,MAAM;4BAGF,MAAM;yBAGT,MAAM;2BAGJ,MAAM;mBAGd,MAAM;iBAIF,MAAM,mCAAuB,QAAQ,GAAG,CAAC;EAgD/D"}
@@ -0,0 +1,128 @@
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.stubProvider = void 0;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const defaultClientVersion = 'unknown';
9
+ function genChainId() {
10
+ return 100 + crypto_1.default.randomBytes(2).readUInt16BE(0);
11
+ }
12
+ // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
13
+ function stubProvider(chainId = genChainId(), clientVersion = defaultClientVersion) {
14
+ const contracts = new Set();
15
+ const pendingTxs = new Set();
16
+ const failedTxs = new Set();
17
+ const blocks = new Map();
18
+ const txBlock = new Map();
19
+ const methodCounters = new Map();
20
+ function mine() {
21
+ const blockHash = '0x' + crypto_1.default.randomBytes(32).toString('hex');
22
+ blocks.set(blockHash, [...pendingTxs]);
23
+ for (const tx of pendingTxs) {
24
+ txBlock.set(tx, blockHash);
25
+ }
26
+ pendingTxs.clear();
27
+ }
28
+ async function deploy(immediate = true) {
29
+ const address = '0x' + crypto_1.default.randomBytes(20).toString('hex');
30
+ const txHash = '0x' + crypto_1.default.randomBytes(32).toString('hex');
31
+ contracts.add(address);
32
+ pendingTxs.add(txHash);
33
+ if (immediate) {
34
+ mine();
35
+ }
36
+ return {
37
+ address,
38
+ txHash,
39
+ layout: {
40
+ storage: [],
41
+ types: {},
42
+ },
43
+ };
44
+ }
45
+ const deployPending = () => deploy(false);
46
+ return {
47
+ mine,
48
+ deploy,
49
+ deployPending,
50
+ get deployCount() {
51
+ return contracts.size;
52
+ },
53
+ isContract(address) {
54
+ return contracts.has(address);
55
+ },
56
+ removeContract(address) {
57
+ return contracts.delete(address);
58
+ },
59
+ addContract(address) {
60
+ return contracts.add(address);
61
+ },
62
+ getMethodCount(method) {
63
+ var _a;
64
+ return (_a = methodCounters.get(method)) !== null && _a !== void 0 ? _a : 0;
65
+ },
66
+ failTx(txHash) {
67
+ return failedTxs.add(txHash);
68
+ },
69
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
70
+ async send(method, params) {
71
+ var _a;
72
+ methodCounters.set(method, 1 + ((_a = methodCounters.get(method)) !== null && _a !== void 0 ? _a : 0));
73
+ if (method === 'eth_chainId') {
74
+ return '0x' + chainId.toString(16);
75
+ }
76
+ else if (method === 'eth_getCode') {
77
+ const param = params === null || params === void 0 ? void 0 : params[0];
78
+ if (typeof param !== 'string') {
79
+ throw new Error('Param must be string');
80
+ }
81
+ if (contracts.has(param)) {
82
+ return '0x1234';
83
+ }
84
+ else {
85
+ return '0x';
86
+ }
87
+ }
88
+ else if (method === 'eth_getTransactionByHash') {
89
+ const param = params === null || params === void 0 ? void 0 : params[0];
90
+ if (typeof param !== 'string') {
91
+ throw new Error('Param must be string');
92
+ }
93
+ if (txBlock.has(param) || pendingTxs.has(param)) {
94
+ return {
95
+ blockHash: txBlock.get(param) || null,
96
+ };
97
+ }
98
+ else {
99
+ return null;
100
+ }
101
+ }
102
+ else if (method === 'web3_clientVersion') {
103
+ return clientVersion;
104
+ }
105
+ else if (method === 'eth_getTransactionReceipt') {
106
+ const param = params === null || params === void 0 ? void 0 : params[0];
107
+ if (typeof param !== 'string') {
108
+ throw new Error('Param must be string');
109
+ }
110
+ if (txBlock.has(param)) {
111
+ return {
112
+ transactionHash: param,
113
+ blockHash: txBlock.get(param),
114
+ status: failedTxs.has(param) ? '0x0' : '0x1',
115
+ };
116
+ }
117
+ else {
118
+ return null;
119
+ }
120
+ }
121
+ else {
122
+ throw new Error(`Method ${method} not stubbed`);
123
+ }
124
+ },
125
+ };
126
+ }
127
+ exports.stubProvider = stubProvider;
128
+ //# sourceMappingURL=stub-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stub-provider.js","sourceRoot":"","sources":["../src/stub-provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function assertUnreachable(_: never): never;
2
+ export declare function assert(p: unknown): asserts p;
3
+ //# sourceMappingURL=assert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../src/utils/assert.ts"],"names":[],"mappings":"AAAA,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEjD;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAI5C"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assert = exports.assertUnreachable = void 0;
4
+ function assertUnreachable(_) {
5
+ assert(false);
6
+ }
7
+ exports.assertUnreachable = assertUnreachable;
8
+ function assert(p) {
9
+ if (!p) {
10
+ throw new Error('An unexpected condition occurred. Please report this at https://zpl.in/upgrades/report');
11
+ }
12
+ }
13
+ exports.assert = assert;
14
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../../src/utils/assert.ts"],"names":[],"mappings":";;;AAAA,SAAgB,iBAAiB,CAAC,CAAQ;IACxC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChB,CAAC;AAFD,8CAEC;AAED,SAAgB,MAAM,CAAC,CAAU;IAC/B,IAAI,CAAC,CAAC,EAAE;QACN,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;KAC3G;AACH,CAAC;AAJD,wBAIC"}
@@ -0,0 +1,6 @@
1
+ export interface Curried<A, B, T> {
2
+ (a: A): (b: B) => T;
3
+ (a: A, b: B): T;
4
+ }
5
+ export declare function curry2<A, B, T>(fn: (a: A, b: B) => T): Curried<A, B, T>;
6
+ //# sourceMappingURL=curry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curry.d.ts","sourceRoot":"","sources":["../../src/utils/curry.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;CACjB;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAWvE"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.curry2 = void 0;
4
+ function curry2(fn) {
5
+ function curried(a, ...b) {
6
+ if (b.length === 0) {
7
+ return b => fn(a, b);
8
+ }
9
+ else {
10
+ return fn(a, ...b);
11
+ }
12
+ }
13
+ return curried;
14
+ }
15
+ exports.curry2 = curry2;
16
+ //# sourceMappingURL=curry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curry.js","sourceRoot":"","sources":["../../src/utils/curry.ts"],"names":[],"mappings":";;;AAKA,SAAgB,MAAM,CAAU,EAAqB;IAGnD,SAAS,OAAO,CAAC,CAAI,EAAE,GAAG,CAAW;QACnC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YAClB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACtB;aAAM;YACL,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;SACpB;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAXD,wBAWC"}
@@ -0,0 +1,4 @@
1
+ import debug from 'debug';
2
+ declare const _default: debug.Debugger;
3
+ export default _default;
4
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;;AAE1B,wBAAoD"}
@@ -0,0 +1,8 @@
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 debug_1 = __importDefault(require("debug"));
7
+ exports.default = debug_1.default('@openzeppelin:upgrades:core');
8
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../src/utils/debug.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAE1B,kBAAe,eAAK,CAAC,6BAA6B,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare type DeepArray<T> = T | DeepArray<T>[];
2
+ export declare function deepEqual<T>(a: DeepArray<T>, b: DeepArray<T>): boolean;
3
+ //# sourceMappingURL=deep-array.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-array.d.ts","sourceRoot":"","sources":["../../src/utils/deep-array.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;AAE9C,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,CAMtE"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepEqual = void 0;
4
+ function deepEqual(a, b) {
5
+ if (Array.isArray(a) && Array.isArray(b)) {
6
+ return a.length === b.length && a.every((v, i) => deepEqual(v, b[i]));
7
+ }
8
+ else {
9
+ return a === b;
10
+ }
11
+ }
12
+ exports.deepEqual = deepEqual;
13
+ //# sourceMappingURL=deep-array.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-array.js","sourceRoot":"","sources":["../../src/utils/deep-array.ts"],"names":[],"mappings":";;;AAEA,SAAgB,SAAS,CAAI,CAAe,EAAE,CAAe;IAC3D,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;QACxC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE;SAAM;QACL,OAAO,CAAC,KAAK,CAAC,CAAC;KAChB;AACH,CAAC;AAND,8BAMC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=deep-array.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-array.test.d.ts","sourceRoot":"","sources":["../../src/utils/deep-array.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,23 @@
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 deep_array_1 = require("./deep-array");
8
+ ava_1.default('depth 0', t => {
9
+ t.true(deep_array_1.deepEqual('a', 'a'));
10
+ t.false(deep_array_1.deepEqual('a', 'b'));
11
+ t.false(deep_array_1.deepEqual('a', ['a']));
12
+ t.false(deep_array_1.deepEqual(['a'], 'a'));
13
+ });
14
+ ava_1.default('depth 1', t => {
15
+ t.true(deep_array_1.deepEqual(['a', 'b'], ['a', 'b']));
16
+ t.false(deep_array_1.deepEqual(['a'], ['a', 'b']));
17
+ t.false(deep_array_1.deepEqual(['a', 'b'], ['a', 'c']));
18
+ });
19
+ ava_1.default('depth 2', t => {
20
+ t.true(deep_array_1.deepEqual([['a'], ['b']], [['a'], ['b']]));
21
+ t.false(deep_array_1.deepEqual([['a'], ['b']], [['a'], ['c']]));
22
+ });
23
+ //# sourceMappingURL=deep-array.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-array.test.js","sourceRoot":"","sources":["../../src/utils/deep-array.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AAEvB,6CAAyC;AAEzC,aAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;IAClB,CAAC,CAAC,IAAI,CAAC,sBAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC,KAAK,CAAC,sBAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,KAAK,CAAC,sBAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC,KAAK,CAAC,sBAAS,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;IAClB,CAAC,CAAC,IAAI,CAAC,sBAAS,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1C,CAAC,CAAC,KAAK,CAAC,sBAAS,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,KAAK,CAAC,sBAAS,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE;IAClB,CAAC,CAAC,IAAI,CAAC,sBAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,KAAK,CAAC,sBAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { FunctionDefinition } from 'solidity-ast';
2
+ import { ASTDereferencer } from '../ast-dereferencer';
3
+ export declare function getFunctionSignature(fnDef: FunctionDefinition, deref: ASTDereferencer): string;
4
+ //# sourceMappingURL=function.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.d.ts","sourceRoot":"","sources":["../../src/utils/function.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAuB,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAiDtD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAE9F"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getFunctionSignature = void 0;
4
+ const assert_1 = require("./assert");
5
+ function serializeTypeName(parameter, deref) {
6
+ const { typeName, storageLocation } = parameter;
7
+ assert_1.assert(!!typeName);
8
+ if (storageLocation === 'storage') {
9
+ assert_1.assert(typeof typeName.typeDescriptions.typeString === 'string');
10
+ return typeName.typeDescriptions.typeString.replace(/^struct /, '') + ' storage';
11
+ }
12
+ switch (typeName.nodeType) {
13
+ case 'ArrayTypeName':
14
+ case 'ElementaryTypeName': {
15
+ assert_1.assert(typeof typeName.typeDescriptions.typeString === 'string');
16
+ return typeName.typeDescriptions.typeString;
17
+ }
18
+ case 'UserDefinedTypeName': {
19
+ const userDefinedType = deref(['StructDefinition', 'EnumDefinition', 'ContractDefinition'], typeName.referencedDeclaration);
20
+ switch (userDefinedType.nodeType) {
21
+ case 'StructDefinition':
22
+ return '(' + userDefinedType.members.map(member => serializeTypeName(member, deref)) + ')';
23
+ case 'EnumDefinition':
24
+ assert_1.assert(userDefinedType.members.length < 256);
25
+ return 'uint8';
26
+ case 'ContractDefinition':
27
+ return 'address';
28
+ default:
29
+ return assert_1.assertUnreachable(userDefinedType);
30
+ }
31
+ }
32
+ case 'FunctionTypeName': {
33
+ return `function`;
34
+ }
35
+ default:
36
+ throw new Error(`Unsuported TypeName node type: ${typeName.nodeType}`);
37
+ }
38
+ }
39
+ function getFunctionSignature(fnDef, deref) {
40
+ return `${fnDef.name}(${fnDef.parameters.parameters.map(parameter => serializeTypeName(parameter, deref)).join()})`;
41
+ }
42
+ exports.getFunctionSignature = getFunctionSignature;
43
+ //# sourceMappingURL=function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.js","sourceRoot":"","sources":["../../src/utils/function.ts"],"names":[],"mappings":";;;AAEA,qCAAqD;AAErD,SAAS,iBAAiB,CAAC,SAA8B,EAAE,KAAsB;IAC/E,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IAChD,eAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEnB,IAAI,eAAe,KAAK,SAAS,EAAE;QACjC,eAAM,CAAC,OAAO,QAAQ,CAAC,gBAAgB,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;QACjE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC;KAClF;IAED,QAAQ,QAAQ,CAAC,QAAQ,EAAE;QACzB,KAAK,eAAe,CAAC;QACrB,KAAK,oBAAoB,CAAC,CAAC;YACzB,eAAM,CAAC,OAAO,QAAQ,CAAC,gBAAgB,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;YACjE,OAAO,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC;SAC7C;QAED,KAAK,qBAAqB,CAAC,CAAC;YAC1B,MAAM,eAAe,GAAG,KAAK,CAC3B,CAAC,kBAAkB,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,EAC5D,QAAQ,CAAC,qBAAqB,CAC/B,CAAC;YACF,QAAQ,eAAe,CAAC,QAAQ,EAAE;gBAChC,KAAK,kBAAkB;oBACrB,OAAO,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;gBAE7F,KAAK,gBAAgB;oBACnB,eAAM,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;oBAC7C,OAAO,OAAO,CAAC;gBAEjB,KAAK,oBAAoB;oBACvB,OAAO,SAAS,CAAC;gBAEnB;oBACE,OAAO,0BAAiB,CAAC,eAAe,CAAC,CAAC;aAC7C;SACF;QAED,KAAK,kBAAkB,CAAC,CAAC;YACvB,OAAO,UAAU,CAAC;SACnB;QAED;YACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC1E;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,KAAyB,EAAE,KAAsB;IACpF,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,iBAAiB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;AACtH,CAAC;AAFD,oDAEC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=function.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.test.d.ts","sourceRoot":"","sources":["../../src/utils/function.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
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 hardhat_1 = require("hardhat");
8
+ const utils_1 = require("solidity-ast/utils");
9
+ const function_1 = require("./function");
10
+ const ast_dereferencer_1 = require("../ast-dereferencer");
11
+ testContract('ContractFunctionSignatures');
12
+ testContract('LibraryFunctionSignatures');
13
+ function testContract(contractName) {
14
+ ava_1.default(contractName, async (t) => {
15
+ const fileName = 'contracts/test/FunctionSignatures.sol';
16
+ const buildInfo = await hardhat_1.artifacts.getBuildInfo(`${fileName}:${contractName}`);
17
+ if (buildInfo === undefined) {
18
+ throw new Error('Build info not found');
19
+ }
20
+ const solcOutput = buildInfo.output;
21
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
22
+ const signatures = Object.keys(solcOutput.contracts[fileName][contractName].evm.methodIdentifiers);
23
+ const functions = {};
24
+ for (const def of utils_1.findAll('FunctionDefinition', solcOutput.sources[fileName].ast)) {
25
+ functions[def.name] = def;
26
+ }
27
+ const deref = ast_dereferencer_1.astDereferencer(solcOutput);
28
+ for (const signature of signatures) {
29
+ const name = signature.replace(/\(.*/, '');
30
+ t.is(function_1.getFunctionSignature(functions[name], deref), signature);
31
+ }
32
+ });
33
+ }
34
+ //# sourceMappingURL=function.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.test.js","sourceRoot":"","sources":["../../src/utils/function.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AACvB,qCAAoC;AAEpC,8CAA6C;AAE7C,yCAAkD;AAElD,0DAAsD;AAEtD,YAAY,CAAC,4BAA4B,CAAC,CAAC;AAC3C,YAAY,CAAC,2BAA2B,CAAC,CAAC;AAE1C,SAAS,YAAY,CAAC,YAAoB;IACxC,aAAI,CAAC,YAAY,EAAE,KAAK,EAAC,CAAC,EAAC,EAAE;QAC3B,MAAM,QAAQ,GAAG,uCAAuC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,mBAAS,CAAC,YAAY,CAAC,GAAG,QAAQ,IAAI,YAAY,EAAE,CAAC,CAAC;QAC9E,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;QAED,MAAM,UAAU,GAAe,SAAS,CAAC,MAAM,CAAC;QAEhD,oEAAoE;QACpE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,iBAAkB,CAAC,CAAC;QAEpG,MAAM,SAAS,GAAuC,EAAE,CAAC;QACzD,KAAK,MAAM,GAAG,IAAI,eAAO,CAAC,oBAAoB,EAAE,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE;YACjF,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;SAC3B;QACD,MAAM,KAAK,GAAG,kCAAe,CAAC,UAAU,CAAC,CAAC;QAE1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC,CAAC,EAAE,CAAC,+BAAoB,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;SAC/D;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function indent(text: string, amount: number, amount0?: number): string;
2
+ //# sourceMappingURL=indent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indent.d.ts","sourceRoot":"","sources":["../../src/utils/indent.ts"],"names":[],"mappings":"AAAA,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,SAAS,GAAG,MAAM,CAE7E"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.indent = void 0;
4
+ function indent(text, amount, amount0 = amount) {
5
+ return text.replace(/^/gm, (_, i) => ' '.repeat(i === 0 ? amount0 : amount));
6
+ }
7
+ exports.indent = indent;
8
+ //# sourceMappingURL=indent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indent.js","sourceRoot":"","sources":["../../src/utils/indent.ts"],"names":[],"mappings":";;;AAAA,SAAgB,MAAM,CAAC,IAAY,EAAE,MAAc,EAAE,OAAO,GAAG,MAAM;IACnE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/E,CAAC;AAFD,wBAEC"}
@@ -0,0 +1,2 @@
1
+ export declare function isNullish(value: unknown): value is null | undefined;
2
+ //# sourceMappingURL=is-nullish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-nullish.d.ts","sourceRoot":"","sources":["../../src/utils/is-nullish.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,IAAI,GAAG,SAAS,CAEnE"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isNullish = void 0;
4
+ function isNullish(value) {
5
+ return value === null || value === undefined;
6
+ }
7
+ exports.isNullish = isNullish;
8
+ //# sourceMappingURL=is-nullish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-nullish.js","sourceRoot":"","sources":["../../src/utils/is-nullish.ts"],"names":[],"mappings":";;;AAAA,SAAgB,SAAS,CAAC,KAAc;IACtC,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC;AAC/C,CAAC;AAFD,8BAEC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=is-nullish.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-nullish.test.d.ts","sourceRoot":"","sources":["../../src/utils/is-nullish.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,17 @@
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 is_nullish_1 = require("./is-nullish");
8
+ ava_1.default('null', t => {
9
+ t.true(is_nullish_1.isNullish(null));
10
+ });
11
+ ava_1.default('undefined', t => {
12
+ t.true(is_nullish_1.isNullish(undefined));
13
+ });
14
+ ava_1.default('number 5', t => {
15
+ t.false(is_nullish_1.isNullish(5));
16
+ });
17
+ //# sourceMappingURL=is-nullish.test.js.map