@layerzerolabs/vm-tooling 0.0.67 → 0.0.74

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 (337) hide show
  1. package/dist/{3NQBCH72.js → 35BIBLTE.js} +7 -7
  2. package/dist/{3NQBCH72.js.map → 35BIBLTE.js.map} +1 -1
  3. package/dist/362ZLRXL.js +29 -0
  4. package/dist/362ZLRXL.js.map +1 -0
  5. package/dist/36UU6CJU.cjs +57 -0
  6. package/dist/36UU6CJU.cjs.map +1 -0
  7. package/dist/{B64IFAV2.js → 3YHRHIKS.js} +8 -11
  8. package/dist/3YHRHIKS.js.map +1 -0
  9. package/dist/{6GAMDBD5.cjs → 4CTWHZA4.cjs} +3 -3
  10. package/dist/{6GAMDBD5.cjs.map → 4CTWHZA4.cjs.map} +1 -1
  11. package/dist/{IMNIF2OY.js → 4Q36MQI5.js} +3 -3
  12. package/dist/{IMNIF2OY.js.map → 4Q36MQI5.js.map} +1 -1
  13. package/dist/{EPUR3XY7.cjs → 4SZ6P77Q.cjs} +8 -8
  14. package/dist/{EPUR3XY7.cjs.map → 4SZ6P77Q.cjs.map} +1 -1
  15. package/dist/55HL3CFD.js +50 -0
  16. package/dist/55HL3CFD.js.map +1 -0
  17. package/dist/{HEBSBDJK.cjs → 6MCEHW2U.cjs} +97 -97
  18. package/dist/{HEBSBDJK.cjs.map → 6MCEHW2U.cjs.map} +1 -1
  19. package/dist/{TQMUPD75.cjs → 6NIOUVPA.cjs} +25 -4
  20. package/dist/6NIOUVPA.cjs.map +1 -0
  21. package/dist/{DUHXR2VQ.js → 6OU7NCZK.js} +9 -9
  22. package/dist/{DUHXR2VQ.js.map → 6OU7NCZK.js.map} +1 -1
  23. package/dist/{OAO7CCJW.js → 6QZPR4XG.js} +2 -2
  24. package/dist/6QZPR4XG.js.map +1 -0
  25. package/dist/6YTOLRHQ.js +6 -0
  26. package/dist/6YTOLRHQ.js.map +1 -0
  27. package/dist/{MXUJZDCO.js → 7R7EZF6Z.js} +4 -4
  28. package/dist/{MXUJZDCO.js.map → 7R7EZF6Z.js.map} +1 -1
  29. package/dist/{BGDL7AEO.cjs → 7ZH64OYR.cjs} +32 -32
  30. package/dist/{BGDL7AEO.cjs.map → 7ZH64OYR.cjs.map} +1 -1
  31. package/dist/ACDTMA6Q.cjs +72 -0
  32. package/dist/ACDTMA6Q.cjs.map +1 -0
  33. package/dist/{DTJGFNPG.cjs → ASYXJJD4.cjs} +136 -136
  34. package/dist/{DTJGFNPG.cjs.map → ASYXJJD4.cjs.map} +1 -1
  35. package/dist/{ETOJ4HEB.cjs → BRSAP7LG.cjs} +36 -72
  36. package/dist/BRSAP7LG.cjs.map +1 -0
  37. package/dist/{MMIV5S36.js → BTXB2LKA.js} +14 -8
  38. package/dist/BTXB2LKA.js.map +1 -0
  39. package/dist/{MNM554UV.cjs → BVXMXRYL.cjs} +8 -8
  40. package/dist/{MNM554UV.cjs.map → BVXMXRYL.cjs.map} +1 -1
  41. package/dist/D3JHHTB6.js +152 -0
  42. package/dist/D3JHHTB6.js.map +1 -0
  43. package/dist/{DPCW4JIV.cjs → DB5GRF5K.cjs} +14 -8
  44. package/dist/DB5GRF5K.cjs.map +1 -0
  45. package/dist/{ZGO3EZDV.js → EDWLY6YP.js} +3 -3
  46. package/dist/{ZGO3EZDV.js.map → EDWLY6YP.js.map} +1 -1
  47. package/dist/F35TPZS3.js +121 -0
  48. package/dist/F35TPZS3.js.map +1 -0
  49. package/dist/{3PEVFTZ5.js → FL2DFW3Y.js} +5 -4
  50. package/dist/FL2DFW3Y.js.map +1 -0
  51. package/dist/{Y6WTLKDX.cjs → FOFSZBOK.cjs} +67 -107
  52. package/dist/FOFSZBOK.cjs.map +1 -0
  53. package/dist/FQUILSS5.js +52 -0
  54. package/dist/FQUILSS5.js.map +1 -0
  55. package/dist/GIS4KMDM.js +6 -0
  56. package/dist/GIS4KMDM.js.map +1 -0
  57. package/dist/GJ24YLYE.cjs +17 -0
  58. package/dist/GJ24YLYE.cjs.map +1 -0
  59. package/dist/{KPA4NAED.js → GLJJOBCM.js} +8 -8
  60. package/dist/{KPA4NAED.js.map → GLJJOBCM.js.map} +1 -1
  61. package/dist/{ESB4MZSG.js → H7LPHZJT.js} +67 -103
  62. package/dist/H7LPHZJT.js.map +1 -0
  63. package/dist/{V2H77GS3.js → HCY4ASBG.js} +31 -66
  64. package/dist/HCY4ASBG.js.map +1 -0
  65. package/dist/IDMMHZJ3.cjs +8 -0
  66. package/dist/IDMMHZJ3.cjs.map +1 -0
  67. package/dist/KSZMBVFB.cjs +154 -0
  68. package/dist/KSZMBVFB.cjs.map +1 -0
  69. package/dist/L2LY6RIT.cjs +86 -0
  70. package/dist/L2LY6RIT.cjs.map +1 -0
  71. package/dist/{BNKNVKCP.js → LF6BYBZY.js} +3 -3
  72. package/dist/{BNKNVKCP.js.map → LF6BYBZY.js.map} +1 -1
  73. package/dist/{S4VRTIGP.cjs → LH4V3GFX.cjs} +3 -3
  74. package/dist/{S4VRTIGP.cjs.map → LH4V3GFX.cjs.map} +1 -1
  75. package/dist/LNCARCBD.cjs +48 -0
  76. package/dist/LNCARCBD.cjs.map +1 -0
  77. package/dist/M6KBN6B2.cjs +21 -0
  78. package/dist/M6KBN6B2.cjs.map +1 -0
  79. package/dist/{2GYKOGER.cjs → MQTCD42Y.cjs} +6 -6
  80. package/dist/{2GYKOGER.cjs.map → MQTCD42Y.cjs.map} +1 -1
  81. package/dist/{EUFYRZAY.js → OANFSFAO.js} +8 -8
  82. package/dist/{EUFYRZAY.js.map → OANFSFAO.js.map} +1 -1
  83. package/dist/ORWR6LWW.js +26 -0
  84. package/dist/ORWR6LWW.js.map +1 -0
  85. package/dist/{WQLWQKFG.cjs → OT5L7ME6.cjs} +3 -3
  86. package/dist/{WQLWQKFG.cjs.map → OT5L7ME6.cjs.map} +1 -1
  87. package/dist/{OTNTZEBH.cjs → PUL6NSHI.cjs} +45 -52
  88. package/dist/PUL6NSHI.cjs.map +1 -0
  89. package/dist/QU36PNBP.cjs +31 -0
  90. package/dist/QU36PNBP.cjs.map +1 -0
  91. package/dist/{RNY7P54N.js → S37YVMJL.js} +6 -6
  92. package/dist/{RNY7P54N.js.map → S37YVMJL.js.map} +1 -1
  93. package/dist/S3PHE6F2.cjs +8 -0
  94. package/dist/S3PHE6F2.cjs.map +1 -0
  95. package/dist/{62SHJT74.cjs → SHJCZ6NL.cjs} +89 -89
  96. package/dist/{62SHJT74.cjs.map → SHJCZ6NL.cjs.map} +1 -1
  97. package/dist/SV3LGPR3.js +26 -0
  98. package/dist/SV3LGPR3.js.map +1 -0
  99. package/dist/{IE5H7TSX.js → TNPXNMQM.js} +3 -3
  100. package/dist/{IE5H7TSX.js.map → TNPXNMQM.js.map} +1 -1
  101. package/dist/{KR5GF76B.js → TXDLSUBD.js} +5 -5
  102. package/dist/{KR5GF76B.js.map → TXDLSUBD.js.map} +1 -1
  103. package/dist/UKPHRO5A.js +84 -0
  104. package/dist/UKPHRO5A.js.map +1 -0
  105. package/dist/VPKYL66J.cjs +18270 -0
  106. package/dist/VPKYL66J.cjs.map +1 -0
  107. package/dist/VPSZX4TV.cjs +48 -0
  108. package/dist/VPSZX4TV.cjs.map +1 -0
  109. package/dist/{34E242OH.js → WDAYI6EQ.js} +3 -3
  110. package/dist/{34E242OH.js.map → WDAYI6EQ.js.map} +1 -1
  111. package/dist/{UYX67GTA.cjs → WH45T4LS.cjs} +5 -5
  112. package/dist/{UYX67GTA.cjs.map → WH45T4LS.cjs.map} +1 -1
  113. package/dist/X72XTEFE.js +15 -0
  114. package/dist/X72XTEFE.js.map +1 -0
  115. package/dist/XCMLC6HI.js +18267 -0
  116. package/dist/XCMLC6HI.js.map +1 -0
  117. package/dist/Y27GTZ2Q.js +19 -0
  118. package/dist/Y27GTZ2Q.js.map +1 -0
  119. package/dist/{GSHFVQRI.cjs → Z253B63X.cjs} +2 -2
  120. package/dist/Z253B63X.cjs.map +1 -0
  121. package/dist/{MTWIFBNY.cjs → ZD3LAY33.cjs} +17 -20
  122. package/dist/ZD3LAY33.cjs.map +1 -0
  123. package/dist/{K7DJQ6PV.cjs → ZQFCLTYU.cjs} +4 -4
  124. package/dist/{K7DJQ6PV.cjs.map → ZQFCLTYU.cjs.map} +1 -1
  125. package/dist/commands/aptos.cjs +22 -0
  126. package/dist/commands/aptos.cjs.map +1 -0
  127. package/dist/commands/aptos.d.ts +3 -0
  128. package/dist/commands/aptos.d.ts.map +1 -0
  129. package/dist/commands/aptos.js +13 -0
  130. package/dist/commands/aptos.js.map +1 -0
  131. package/dist/commands/iota.cjs +23 -0
  132. package/dist/commands/iota.cjs.map +1 -0
  133. package/dist/commands/iota.d.ts +3 -0
  134. package/dist/commands/iota.d.ts.map +1 -0
  135. package/dist/commands/iota.js +14 -0
  136. package/dist/commands/iota.js.map +1 -0
  137. package/dist/commands/starknet.cjs +13 -0
  138. package/dist/commands/starknet.cjs.map +1 -0
  139. package/dist/commands/{starknet/build-typescript-sdk.d.ts → starknet.d.ts} +1 -1
  140. package/dist/commands/starknet.d.ts.map +1 -0
  141. package/dist/commands/starknet.js +4 -0
  142. package/dist/commands/starknet.js.map +1 -0
  143. package/dist/commands/sui.cjs +23 -0
  144. package/dist/commands/sui.cjs.map +1 -0
  145. package/dist/commands/sui.d.ts +3 -0
  146. package/dist/commands/sui.d.ts.map +1 -0
  147. package/dist/commands/sui.js +14 -0
  148. package/dist/commands/sui.js.map +1 -0
  149. package/dist/commands/utility/sui-like.cjs +22 -0
  150. package/dist/commands/utility/sui-like.cjs.map +1 -0
  151. package/dist/commands/utility/sui-like.d.ts +16 -0
  152. package/dist/commands/utility/sui-like.d.ts.map +1 -0
  153. package/dist/commands/utility/sui-like.js +13 -0
  154. package/dist/commands/utility/sui-like.js.map +1 -0
  155. package/dist/config/docker-images.cjs +13 -0
  156. package/dist/config/docker-images.cjs.map +1 -0
  157. package/dist/config/docker-images.d.ts +145 -0
  158. package/dist/config/docker-images.d.ts.map +1 -0
  159. package/dist/config/docker-images.js +4 -0
  160. package/dist/config/docker-images.js.map +1 -0
  161. package/dist/config/docker-images.test.cjs +21 -0
  162. package/dist/config/docker-images.test.cjs.map +1 -0
  163. package/dist/config/docker-images.test.js +19 -0
  164. package/dist/config/docker-images.test.js.map +1 -0
  165. package/dist/config/index.cjs +21 -8
  166. package/dist/config/index.d.ts +3 -2
  167. package/dist/config/index.d.ts.map +1 -1
  168. package/dist/config/index.js +3 -2
  169. package/dist/config/tools.cjs +6 -5
  170. package/dist/config/tools.d.ts.map +1 -1
  171. package/dist/config/tools.js +3 -2
  172. package/dist/config/version-matrices.cjs +2 -2
  173. package/dist/config/version-matrices.d.ts +8 -1
  174. package/dist/config/version-matrices.d.ts.map +1 -1
  175. package/dist/config/version-matrices.js +1 -1
  176. package/dist/core/index.cjs +10 -21
  177. package/dist/core/index.d.ts +2 -3
  178. package/dist/core/index.d.ts.map +1 -1
  179. package/dist/core/index.js +8 -7
  180. package/dist/core/lock.cjs +4 -4
  181. package/dist/core/lock.d.ts.map +1 -1
  182. package/dist/core/lock.js +1 -1
  183. package/dist/core/lock.test.cjs +11 -18274
  184. package/dist/core/lock.test.cjs.map +1 -1
  185. package/dist/core/lock.test.js +3 -18266
  186. package/dist/core/lock.test.js.map +1 -1
  187. package/dist/core/tool-executor.cjs +8 -7
  188. package/dist/core/tool-executor.d.ts +3 -2
  189. package/dist/core/tool-executor.d.ts.map +1 -1
  190. package/dist/core/tool-executor.js +7 -6
  191. package/dist/core/version-resolver.cjs +5 -13
  192. package/dist/core/version-resolver.d.ts +1 -24
  193. package/dist/core/version-resolver.d.ts.map +1 -1
  194. package/dist/core/version-resolver.js +4 -4
  195. package/dist/display/formatters.cjs +5 -4
  196. package/dist/display/formatters.d.ts +1 -1
  197. package/dist/display/formatters.d.ts.map +1 -1
  198. package/dist/display/formatters.js +4 -3
  199. package/dist/display/index.cjs +8 -7
  200. package/dist/display/index.js +5 -4
  201. package/dist/display/version-display.cjs +7 -6
  202. package/dist/display/version-display.d.ts.map +1 -1
  203. package/dist/display/version-display.js +5 -4
  204. package/dist/index.cjs +84 -56
  205. package/dist/index.cjs.map +1 -1
  206. package/dist/index.d.ts.map +1 -1
  207. package/dist/index.js +77 -49
  208. package/dist/index.js.map +1 -1
  209. package/dist/scripts/generate-github-matrix.cjs +169 -163
  210. package/dist/scripts/generate-github-matrix.cjs.map +1 -1
  211. package/dist/scripts/generate-github-matrix.js +32 -26
  212. package/dist/scripts/generate-github-matrix.js.map +1 -1
  213. package/dist/types/docker.cjs +8 -3
  214. package/dist/types/docker.cjs.map +1 -1
  215. package/dist/types/docker.d.ts +32 -15
  216. package/dist/types/docker.d.ts.map +1 -1
  217. package/dist/types/docker.js +2 -4
  218. package/dist/types/docker.js.map +1 -1
  219. package/dist/types/index.cjs +10 -3
  220. package/dist/types/index.cjs.map +1 -1
  221. package/dist/types/index.d.ts +2 -3
  222. package/dist/types/index.d.ts.map +1 -1
  223. package/dist/types/index.js +4 -4
  224. package/dist/types/index.js.map +1 -1
  225. package/dist/types/tool.cjs +2 -3
  226. package/dist/types/tool.cjs.map +1 -1
  227. package/dist/types/tool.d.ts +3 -7
  228. package/dist/types/tool.d.ts.map +1 -1
  229. package/dist/types/tool.js +2 -4
  230. package/dist/types/tool.js.map +1 -1
  231. package/dist/utils/docker.cjs +15 -5
  232. package/dist/utils/docker.d.ts +6 -3
  233. package/dist/utils/docker.d.ts.map +1 -1
  234. package/dist/utils/docker.js +4 -2
  235. package/dist/utils/finder.cjs +15 -18
  236. package/dist/utils/finder.d.ts +5 -5
  237. package/dist/utils/finder.d.ts.map +1 -1
  238. package/dist/utils/finder.js +3 -2
  239. package/dist/utils/version.cjs +7 -6
  240. package/dist/utils/version.d.ts +3 -4
  241. package/dist/utils/version.d.ts.map +1 -1
  242. package/dist/utils/version.js +3 -2
  243. package/dist/utils.cjs +5 -8
  244. package/dist/utils.d.ts +1 -4
  245. package/dist/utils.d.ts.map +1 -1
  246. package/dist/utils.js +3 -2
  247. package/package.json +5 -6
  248. package/dist/3H446V2K.js +0 -6
  249. package/dist/3H446V2K.js.map +0 -1
  250. package/dist/3PEVFTZ5.js.map +0 -1
  251. package/dist/3WMXZ3YO.js +0 -75
  252. package/dist/3WMXZ3YO.js.map +0 -1
  253. package/dist/64X55IZO.js +0 -75
  254. package/dist/64X55IZO.js.map +0 -1
  255. package/dist/7YUT4HSR.cjs +0 -77
  256. package/dist/7YUT4HSR.cjs.map +0 -1
  257. package/dist/B64IFAV2.js.map +0 -1
  258. package/dist/DPCW4JIV.cjs.map +0 -1
  259. package/dist/ESB4MZSG.js.map +0 -1
  260. package/dist/ETOJ4HEB.cjs.map +0 -1
  261. package/dist/FKPK53TD.cjs +0 -8
  262. package/dist/FKPK53TD.cjs.map +0 -1
  263. package/dist/GSHFVQRI.cjs.map +0 -1
  264. package/dist/GTTCNWKS.cjs +0 -22
  265. package/dist/GTTCNWKS.cjs.map +0 -1
  266. package/dist/HLG5IR2C.cjs +0 -127
  267. package/dist/HLG5IR2C.cjs.map +0 -1
  268. package/dist/LVQRK66G.js +0 -20
  269. package/dist/LVQRK66G.js.map +0 -1
  270. package/dist/M4PGJV5D.js +0 -6
  271. package/dist/M4PGJV5D.js.map +0 -1
  272. package/dist/MMIV5S36.js.map +0 -1
  273. package/dist/MTWIFBNY.cjs.map +0 -1
  274. package/dist/MXT5UPPB.js +0 -119
  275. package/dist/MXT5UPPB.js.map +0 -1
  276. package/dist/NESZ4EWJ.js +0 -128
  277. package/dist/NESZ4EWJ.js.map +0 -1
  278. package/dist/O2QYRDJR.cjs +0 -77
  279. package/dist/O2QYRDJR.cjs.map +0 -1
  280. package/dist/OAO7CCJW.js.map +0 -1
  281. package/dist/OTNTZEBH.cjs.map +0 -1
  282. package/dist/PWDCAN6N.js +0 -37
  283. package/dist/PWDCAN6N.js.map +0 -1
  284. package/dist/QYB5VPZE.cjs +0 -39
  285. package/dist/QYB5VPZE.cjs.map +0 -1
  286. package/dist/TQMUPD75.cjs.map +0 -1
  287. package/dist/V2H77GS3.js.map +0 -1
  288. package/dist/Y6WTLKDX.cjs.map +0 -1
  289. package/dist/Y7OWS2C2.cjs +0 -8
  290. package/dist/Y7OWS2C2.cjs.map +0 -1
  291. package/dist/commands/iota/build.cjs +0 -20
  292. package/dist/commands/iota/build.cjs.map +0 -1
  293. package/dist/commands/iota/build.d.ts +0 -3
  294. package/dist/commands/iota/build.d.ts.map +0 -1
  295. package/dist/commands/iota/build.js +0 -11
  296. package/dist/commands/iota/build.js.map +0 -1
  297. package/dist/commands/iota/index.cjs +0 -21
  298. package/dist/commands/iota/index.cjs.map +0 -1
  299. package/dist/commands/iota/index.d.ts +0 -2
  300. package/dist/commands/iota/index.d.ts.map +0 -1
  301. package/dist/commands/iota/index.js +0 -14
  302. package/dist/commands/iota/index.js.map +0 -1
  303. package/dist/commands/starknet/build-typescript-sdk.cjs +0 -13
  304. package/dist/commands/starknet/build-typescript-sdk.cjs.map +0 -1
  305. package/dist/commands/starknet/build-typescript-sdk.d.ts.map +0 -1
  306. package/dist/commands/starknet/build-typescript-sdk.js +0 -4
  307. package/dist/commands/starknet/build-typescript-sdk.js.map +0 -1
  308. package/dist/commands/starknet/index.cjs +0 -14
  309. package/dist/commands/starknet/index.cjs.map +0 -1
  310. package/dist/commands/starknet/index.d.ts +0 -2
  311. package/dist/commands/starknet/index.d.ts.map +0 -1
  312. package/dist/commands/starknet/index.js +0 -5
  313. package/dist/commands/starknet/index.js.map +0 -1
  314. package/dist/commands/sui/build.cjs +0 -20
  315. package/dist/commands/sui/build.cjs.map +0 -1
  316. package/dist/commands/sui/build.d.ts +0 -3
  317. package/dist/commands/sui/build.d.ts.map +0 -1
  318. package/dist/commands/sui/build.js +0 -11
  319. package/dist/commands/sui/build.js.map +0 -1
  320. package/dist/commands/sui/index.cjs +0 -21
  321. package/dist/commands/sui/index.cjs.map +0 -1
  322. package/dist/commands/sui/index.d.ts +0 -2
  323. package/dist/commands/sui/index.d.ts.map +0 -1
  324. package/dist/commands/sui/index.js +0 -12
  325. package/dist/commands/sui/index.js.map +0 -1
  326. package/dist/core/compatibility.cjs +0 -13
  327. package/dist/core/compatibility.cjs.map +0 -1
  328. package/dist/core/compatibility.d.ts +0 -8
  329. package/dist/core/compatibility.d.ts.map +0 -1
  330. package/dist/core/compatibility.js +0 -4
  331. package/dist/core/compatibility.js.map +0 -1
  332. package/dist/types/version.cjs +0 -8
  333. package/dist/types/version.cjs.map +0 -1
  334. package/dist/types/version.d.ts +0 -25
  335. package/dist/types/version.d.ts.map +0 -1
  336. package/dist/types/version.js +0 -6
  337. package/dist/types/version.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,26 +1,48 @@
1
- import './M4PGJV5D.js';
2
- import { buildTypescriptSdk } from './MMIV5S36.js';
3
- import './3H446V2K.js';
4
- import { build } from './64X55IZO.js';
1
+ import './GIS4KMDM.js';
2
+ import { volumeMappingSchema } from './ORWR6LWW.js';
3
+ import './6YTOLRHQ.js';
5
4
  import './7BFNUKIW.js';
6
- import { displayVersionCombinations, displayToolVersionInfo } from './B64IFAV2.js';
7
- import './LVQRK66G.js';
8
- import './OAO7CCJW.js';
9
- import { executeToolCommand } from './V2H77GS3.js';
5
+ import { displayVersionCombinations, displayToolVersionInfo } from './3YHRHIKS.js';
6
+ import './Y27GTZ2Q.js';
7
+ import { compile } from './SV3LGPR3.js';
8
+ import { iotaWrapper } from './X72XTEFE.js';
9
+ import { buildTypescriptSdk } from './BTXB2LKA.js';
10
+ import { suiWrapper } from './362ZLRXL.js';
11
+ import './UKPHRO5A.js';
12
+ import './6QZPR4XG.js';
13
+ import { executeToolCommand } from './HCY4ASBG.js';
10
14
  import './IWNVWC3I.js';
11
- import './MXT5UPPB.js';
12
- import { tools, getToolDefaultVersion, getToolSupportedVersions } from './ESB4MZSG.js';
13
- import './NESZ4EWJ.js';
14
- import './PWDCAN6N.js';
15
- import './3PEVFTZ5.js';
15
+ import './55HL3CFD.js';
16
+ import './FL2DFW3Y.js';
17
+ import './FQUILSS5.js';
18
+ import { tools, getToolDefaultVersion, getToolSupportedVersions } from './H7LPHZJT.js';
19
+ import './F35TPZS3.js';
20
+ import './D3JHHTB6.js';
16
21
  import { init_esm_shims, __name } from './4RNWLMHM.js';
17
22
  import { Command } from 'commander';
23
+ import { camelCase } from 'es-toolkit';
18
24
  import fs from 'node:fs';
19
25
  import path from 'node:path';
20
26
  import process from 'node:process';
21
27
 
22
28
  // src/index.ts
23
29
  init_esm_shims();
30
+ var toolVersionOptions = Object.fromEntries(tools.map(({ name }) => [
31
+ `${camelCase(name)}Version`,
32
+ name
33
+ ]));
34
+ var parseGlobalOptions = /* @__PURE__ */ __name((command) => {
35
+ const { cwd, volume, ...options } = command.opts();
36
+ return {
37
+ ...options,
38
+ cwd: cwd ?? process.cwd(),
39
+ volumes: volume,
40
+ versions: Object.fromEntries(Object.entries(options).map(([name, version]) => [
41
+ toolVersionOptions[name],
42
+ version
43
+ ]).filter(([tool]) => tool))
44
+ };
45
+ }, "parseGlobalOptions");
24
46
  async function run() {
25
47
  const program = new Command();
26
48
  program.name("lz-tool").description("\u{1F680} LayerZero VM tooling with intelligent version management\n\nUsage pattern:\n lz-tool [global-options] <tool> [tool-args...]\n\nExamples:\n lz-tool -e bash sui --help\n lz-tool --sui-version 1.38.0 sui client\n\nNote: All lz-tool options must appear BEFORE the tool name.").version("1.0.0").enablePositionalOptions();
@@ -42,35 +64,46 @@ async function run() {
42
64
  throw new Error("cwd must be a directory");
43
65
  }
44
66
  return input;
45
- }).option("-e, --custom-entrypoint <entrypoint>", "Override the default Docker entrypoint for the tool").option("--script <script>", 'Execute a custom script using bash -c in the Docker container (e.g., --script "npm install && npm test")').option("--env <name=value>", "Set environment variables for Docker container (e.g., --env NODE_ENV=production)", (input, previous) => {
67
+ }).option("-e, --custom-entrypoint <entrypoint>", "Override the default Docker entrypoint for the tool").option("--script <script>", 'Execute a custom script using bash -c in the Docker container (e.g., --script "npm install && npm test")').option("--env <name=value>", "Set environment variables for Docker container (e.g., --env NODE_ENV=production)", (input, variables) => {
46
68
  const [name, ...valueParts] = input.split("=");
47
- if (name === "" || valueParts.length === 0) {
69
+ if (!name || !valueParts.length) {
48
70
  throw new Error(`Invalid environment variable format: ${input}. Use --env NAME=VALUE`);
49
71
  }
50
- const value = valueParts.join("=");
51
- previous.push({
52
- name,
53
- value
54
- });
55
- return previous;
56
- }, []).option("-v, --volume <type:hostPath:containerPath[:name]>", "Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)", (input, previous) => {
72
+ return [
73
+ ...variables,
74
+ {
75
+ name,
76
+ value: valueParts.join("=")
77
+ }
78
+ ];
79
+ }, []).option("-v, --volume <type:hostPath:containerPath[:name]>", "Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)", (input, volumes) => {
57
80
  const [type, hostPath, containerPath, name] = input.split(":");
58
- if (type !== "host" && type !== "isolate") {
59
- throw new Error(`Invalid volume type: ${type}`);
60
- }
61
- if (type === "host" && (hostPath === void 0 || hostPath === "")) {
62
- throw new Error(`Host path is required for volume type 'host'`);
81
+ switch (type) {
82
+ case "host":
83
+ if (!hostPath) {
84
+ throw new Error(`Host path is required for volume type 'host'`);
85
+ }
86
+ break;
87
+ case "isolate":
88
+ if (!name) {
89
+ throw new Error(`Name is required for volume type 'isolate'`);
90
+ }
91
+ break;
92
+ default:
93
+ throw new Error(`Invalid volume type: ${type}`);
63
94
  }
64
- if (containerPath === void 0 || containerPath === "") {
95
+ if (!containerPath) {
65
96
  throw new Error(`Container path is required`);
66
97
  }
67
- previous.push({
68
- type,
69
- hostPath,
70
- containerPath,
71
- name
72
- });
73
- return previous;
98
+ return [
99
+ ...volumes,
100
+ volumeMappingSchema.parse({
101
+ type,
102
+ hostPath,
103
+ containerPath,
104
+ name
105
+ })
106
+ ];
74
107
  }, []).option("-p, --publish <host_port:container_port>", "Publish a container's port(s) to the host");
75
108
  for (const tool of tools) {
76
109
  const optionFlag = `--${tool.name}-version <version>`;
@@ -85,24 +118,19 @@ async function run() {
85
118
  program.command(tool.name, {
86
119
  isDefault: false
87
120
  }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool").action(async (args) => {
88
- const globalOptions = program.opts();
89
- await executeToolCommand(tool.name, args, {
90
- cwd: globalOptions.cwd ?? process.cwd(),
91
- volumes: globalOptions.volume,
92
- ...globalOptions
93
- });
121
+ await executeToolCommand(tool.name, args, parseGlobalOptions(program));
94
122
  });
95
123
  }
96
124
  const extra = program.command("extra").description("Extra commands for VM tooling");
97
125
  extra.command("starknet").command("build-typescript-sdk").description("Generate TypeScript SDK for Starknet").argument("<package-name>", "Scarb package name").argument("<target-directory>", "Scarb target directory").argument("<src-directory>", "TypeScript source directory").action(buildTypescriptSdk);
98
- extra.command("sui").command("build").description("Build Sui contracts with shared dependency and configuration Docker volumes").argument("[args...]", "Arguments to pass to `sui move build` command").passThroughOptions(true).allowUnknownOption().action(async (args) => {
99
- const options = program.opts();
100
- await build(args, {
101
- ...options,
102
- cwd: options.cwd ?? process.cwd(),
103
- volumes: options.volume
104
- });
105
- });
126
+ const aptos = extra.command("aptos");
127
+ aptos.command("compile").description("Compile Aptos contracts and generate the module order file").argument("[args...]", "Arguments to pass to `aptos move compile` command").passThroughOptions(true).allowUnknownOption().action((args) => compile(args, parseGlobalOptions(program)));
128
+ const iota = extra.command("iota");
129
+ iota.command("build").description("Build IOTA contracts with shared dependency and configuration Docker volumes").argument("[args...]", "Arguments to pass to `iota move build` command").passThroughOptions(true).allowUnknownOption().action((args) => iotaWrapper.run("build", args, parseGlobalOptions(program)));
130
+ iota.command("test").description("Test IOTA contracts with shared dependency and configuration Docker volumes").argument("[args...]", "Arguments to pass to `iota move test` command").passThroughOptions(true).allowUnknownOption().action((args) => iotaWrapper.run("test", args, parseGlobalOptions(program)));
131
+ const sui = extra.command("sui");
132
+ sui.command("build").description("Build Sui contracts with shared dependency and configuration Docker volumes").argument("[args...]", "Arguments to pass to `sui move build` command").passThroughOptions(true).allowUnknownOption().action((args) => suiWrapper.run("build", args, parseGlobalOptions(program)));
133
+ sui.command("test").description("Test Sui contracts with shared dependency and configuration Docker volumes").argument("[args...]", "Arguments to pass to `sui move test` command").passThroughOptions(true).allowUnknownOption().action((args) => suiWrapper.run("test", args, parseGlobalOptions(program)));
106
134
  await program.parseAsync();
107
135
  }
108
136
  __name(run, "run");
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["run","program","Command","name","description","version","enablePositionalOptions","process","argv","includes","displayVersionCombinations","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","previous","valueParts","split","length","value","join","push","type","hostPath","containerPath","undefined","tool","tools","optionFlag","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","command","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","globalOptions","opts","executeToolCommand","cwd","volumes","volume","extra","buildTypescriptSdk","options","build","parseAsync","main","error","console","exit"],"mappings":"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","file":"index.js","sourcesContent":["import { Command } from 'commander';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport * as starknet from './commands/starknet';\nimport * as sui from './commands/sui';\nimport { tools } from './config';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport type { EnvironmentVariable, VolumeMapping } from './types';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n customEntrypoint?: string;\n}\n\nasync function run(): Promise<void> {\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations();\n return;\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, previous: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n if (name === '' || valueParts.length === 0) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n const value = valueParts.join('='); // Handle values that contain '='\n previous.push({ name, value } satisfies EnvironmentVariable);\n return previous;\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, previous: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n if (type !== 'host' && type !== 'isolate') {\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (type === 'host' && (hostPath === undefined || hostPath === '')) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n\n if (containerPath === undefined || containerPath === '') {\n throw new Error(`Container path is required`);\n }\n previous.push({ type, hostPath, containerPath, name } satisfies VolumeMapping);\n return previous;\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host\",\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const optionFlag = `--${tool.name}-version <version>`;\n const defaultVersion = getToolDefaultVersion(tool.name);\n const supportedVersions = getToolSupportedVersions(tool.name);\n const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`;\n\n program.option(optionFlag, description);\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(toolName));\n\n // Dynamically add commands for each supported tool\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n // Get global options (specified before the subcommand)\n const globalOptions = program.opts<GlobalOptions>();\n\n await executeToolCommand(tool.name, args, {\n cwd: globalOptions.cwd ?? process.cwd(),\n volumes: globalOptions.volume,\n ...globalOptions,\n });\n });\n }\n\n const extra = program.command('extra').description('Extra commands for VM tooling');\n\n extra\n .command('starknet')\n .command('build-typescript-sdk')\n .description('Generate TypeScript SDK for Starknet')\n .argument('<package-name>', 'Scarb package name')\n .argument('<target-directory>', 'Scarb target directory')\n .argument('<src-directory>', 'TypeScript source directory')\n .action(starknet.buildTypescriptSdk);\n\n extra\n .command('sui')\n .command('build')\n .description('Build Sui contracts with shared dependency and configuration Docker volumes')\n .argument('[args...]', 'Arguments to pass to `sui move build` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action(async (args: string[]) => {\n const options = program.opts<GlobalOptions>();\n\n await sui.build(args, {\n ...options,\n cwd: options.cwd ?? process.cwd(),\n volumes: options.volume,\n });\n });\n\n await program.parseAsync();\n}\n\nexport const main = async (): Promise<void> => {\n try {\n await run();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["toolVersionOptions","Object","fromEntries","tools","map","name","camelCase","parseGlobalOptions","command","cwd","volume","options","opts","process","volumes","versions","entries","version","filter","tool","run","program","Command","description","enablePositionalOptions","argv","includes","displayVersionCombinations","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","variables","valueParts","split","length","value","join","type","hostPath","containerPath","volumeMappingSchema","parse","optionFlag","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","executeToolCommand","extra","buildTypescriptSdk","aptos","compile","iota","iotaWrapper","sui","suiWrapper","parseAsync","main","error","console","exit"],"mappings":"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","file":"index.js","sourcesContent":["import { Command } from 'commander';\nimport { camelCase } from 'es-toolkit';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport * as aptosCommands from './commands/aptos';\nimport { iotaWrapper } from './commands/iota';\nimport * as starknetCommands from './commands/starknet';\nimport { suiWrapper } from './commands/sui';\nimport { tools } from './config';\nimport type { ToolCommandExecutionOptions } from './core';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport type { EnvironmentVariable, VolumeMapping } from './types';\nimport { volumeMappingSchema } from './types';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n customEntrypoint?: string;\n}\n\nconst toolVersionOptions = Object.fromEntries(\n tools.map(({ name }) => [`${camelCase(name)}Version`, name]),\n);\n\nconst parseGlobalOptions = (command: Command): ToolCommandExecutionOptions => {\n const { cwd, volume, ...options } = command.opts<GlobalOptions>();\n\n return {\n ...options,\n cwd: cwd ?? process.cwd(),\n volumes: volume,\n versions: Object.fromEntries(\n Object.entries(options)\n .map(([name, version]) => [toolVersionOptions[name], version])\n .filter(([tool]) => tool),\n ),\n };\n};\n\nasync function run(): Promise<void> {\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations();\n return;\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, variables: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n\n if (!name || !valueParts.length) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n\n return [...variables, { name, value: valueParts.join('=') }];\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, volumes: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n\n switch (type) {\n case 'host':\n if (!hostPath) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n break;\n case 'isolate':\n if (!name) {\n throw new Error(`Name is required for volume type 'isolate'`);\n }\n break;\n default:\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (!containerPath) {\n throw new Error(`Container path is required`);\n }\n\n return [\n ...volumes,\n volumeMappingSchema.parse({ type, hostPath, containerPath, name }),\n ];\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host\",\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const optionFlag = `--${tool.name}-version <version>`;\n const defaultVersion = getToolDefaultVersion(tool.name);\n const supportedVersions = getToolSupportedVersions(tool.name);\n const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`;\n\n program.option(optionFlag, description);\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(toolName));\n\n // Dynamically add commands for each supported tool\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n await executeToolCommand(tool.name, args, parseGlobalOptions(program));\n });\n }\n\n const extra = program.command('extra').description('Extra commands for VM tooling');\n\n extra\n .command('starknet')\n .command('build-typescript-sdk')\n .description('Generate TypeScript SDK for Starknet')\n .argument('<package-name>', 'Scarb package name')\n .argument('<target-directory>', 'Scarb target directory')\n .argument('<src-directory>', 'TypeScript source directory')\n .action(starknetCommands.buildTypescriptSdk);\n\n const aptos = extra.command('aptos');\n\n aptos\n .command('compile')\n .description('Compile Aptos contracts and generate the module order file')\n .argument('[args...]', 'Arguments to pass to `aptos move compile` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action((args: string[]) => aptosCommands.compile(args, parseGlobalOptions(program)));\n\n const iota = extra.command('iota');\n\n iota.command('build')\n .description('Build IOTA contracts with shared dependency and configuration Docker volumes')\n .argument('[args...]', 'Arguments to pass to `iota move build` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action((args: string[]) => iotaWrapper.run('build', args, parseGlobalOptions(program)));\n\n iota.command('test')\n .description('Test IOTA contracts with shared dependency and configuration Docker volumes')\n .argument('[args...]', 'Arguments to pass to `iota move test` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action((args: string[]) => iotaWrapper.run('test', args, parseGlobalOptions(program)));\n\n const sui = extra.command('sui');\n\n sui.command('build')\n .description('Build Sui contracts with shared dependency and configuration Docker volumes')\n .argument('[args...]', 'Arguments to pass to `sui move build` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action((args: string[]) => suiWrapper.run('build', args, parseGlobalOptions(program)));\n\n sui.command('test')\n .description('Test Sui contracts with shared dependency and configuration Docker volumes')\n .argument('[args...]', 'Arguments to pass to `sui move test` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action((args: string[]) => suiWrapper.run('test', args, parseGlobalOptions(program)));\n\n await program.parseAsync();\n}\n\nexport const main = async (): Promise<void> => {\n try {\n await run();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}