@layerzerolabs/vm-tooling 0.0.58 → 0.0.60

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 (220) hide show
  1. package/bin/lz-tool.js +3 -0
  2. package/dist/{TO3FUAEA.js → 2X4NOJJL.js} +6 -6
  3. package/dist/{TO3FUAEA.js.map → 2X4NOJJL.js.map} +1 -1
  4. package/dist/{PDSRUQEX.js → 3PEVFTZ5.js} +3 -3
  5. package/dist/3PEVFTZ5.js.map +1 -0
  6. package/dist/{VYFY2754.cjs → 4EYI4PYN.cjs} +135 -135
  7. package/dist/{VYFY2754.cjs.map → 4EYI4PYN.cjs.map} +1 -1
  8. package/dist/{IMNIF2OY.js → 4Q36MQI5.js} +3 -3
  9. package/dist/{IMNIF2OY.js.map → 4Q36MQI5.js.map} +1 -1
  10. package/dist/{JJXZWB7K.cjs → 64SMUTQJ.cjs} +4 -4
  11. package/dist/64SMUTQJ.cjs.map +1 -0
  12. package/dist/{P6RMIIVK.cjs → 6SVY3NVF.cjs} +22 -26
  13. package/dist/6SVY3NVF.cjs.map +1 -0
  14. package/dist/{YYBFDJRD.js → 72W2AKIC.js} +3 -3
  15. package/dist/{YYBFDJRD.js.map → 72W2AKIC.js.map} +1 -1
  16. package/dist/{7DH3URRX.js → 7BFNUKIW.js} +2 -2
  17. package/dist/7BFNUKIW.js.map +1 -0
  18. package/dist/{7G26DPK3.js → 7R7EZF6Z.js} +4 -4
  19. package/dist/{7G26DPK3.js.map → 7R7EZF6Z.js.map} +1 -1
  20. package/dist/{NSZHKDNY.cjs → ABGH4Z56.cjs} +3 -3
  21. package/dist/ABGH4Z56.cjs.map +1 -0
  22. package/dist/{CH3GQSOI.js → BI33BCZD.js} +3 -3
  23. package/dist/{CH3GQSOI.js.map → BI33BCZD.js.map} +1 -1
  24. package/dist/BPGURM6D.js +298 -0
  25. package/dist/BPGURM6D.js.map +1 -0
  26. package/dist/{OXHJXMDD.js → CL6CDQMJ.js} +25 -31
  27. package/dist/CL6CDQMJ.js.map +1 -0
  28. package/dist/{RRJYWXRS.cjs → DK5YZCTB.cjs} +3 -3
  29. package/dist/{RRJYWXRS.cjs.map → DK5YZCTB.cjs.map} +1 -1
  30. package/dist/{Z7BVBO5K.cjs → F2ZPATQF.cjs} +5 -5
  31. package/dist/{Z7BVBO5K.cjs.map → F2ZPATQF.cjs.map} +1 -1
  32. package/dist/F46O4OAT.js +188 -0
  33. package/dist/F46O4OAT.js.map +1 -0
  34. package/dist/{HHS2B7YE.cjs → FUZCR6WN.cjs} +3 -3
  35. package/dist/{HHS2B7YE.cjs.map → FUZCR6WN.cjs.map} +1 -1
  36. package/dist/HI4NXK4T.cjs +127 -0
  37. package/dist/HI4NXK4T.cjs.map +1 -0
  38. package/dist/{PYQO5EUZ.cjs → IQXSRATS.cjs} +8 -8
  39. package/dist/{PYQO5EUZ.cjs.map → IQXSRATS.cjs.map} +1 -1
  40. package/dist/IWNVWC3I.js +9 -0
  41. package/dist/IWNVWC3I.js.map +1 -0
  42. package/dist/{4LRYG53T.js → IZVZ5TRG.js} +5 -5
  43. package/dist/{4LRYG53T.js.map → IZVZ5TRG.js.map} +1 -1
  44. package/dist/JGA7AJCX.js +125 -0
  45. package/dist/JGA7AJCX.js.map +1 -0
  46. package/dist/{DW3OZE6F.cjs → JWQN2QGP.cjs} +88 -88
  47. package/dist/{DW3OZE6F.cjs.map → JWQN2QGP.cjs.map} +1 -1
  48. package/dist/{2ASNEWIN.cjs → KS44PBXU.cjs} +31 -31
  49. package/dist/{2ASNEWIN.cjs.map → KS44PBXU.cjs.map} +1 -1
  50. package/dist/{4KPRGHDI.cjs → L5ENV2DK.cjs} +6 -6
  51. package/dist/{4KPRGHDI.cjs.map → L5ENV2DK.cjs.map} +1 -1
  52. package/dist/LJR3ILZB.cjs +196 -0
  53. package/dist/LJR3ILZB.cjs.map +1 -0
  54. package/dist/{EE3HP6UB.cjs → LUO6HP3P.cjs} +5 -5
  55. package/dist/{EE3HP6UB.cjs.map → LUO6HP3P.cjs.map} +1 -1
  56. package/dist/{NTYIDZH3.js → M5C4OTHX.js} +8 -8
  57. package/dist/{NTYIDZH3.js.map → M5C4OTHX.js.map} +1 -1
  58. package/dist/{L34TQNQN.cjs → M6YAIP2X.cjs} +4 -4
  59. package/dist/{L34TQNQN.cjs.map → M6YAIP2X.cjs.map} +1 -1
  60. package/dist/{Q4F544X2.cjs → NNE5MIRH.cjs} +96 -96
  61. package/dist/{Q4F544X2.cjs.map → NNE5MIRH.cjs.map} +1 -1
  62. package/dist/{VRMJKL3K.js → NUB3VR3D.js} +14 -18
  63. package/dist/NUB3VR3D.js.map +1 -0
  64. package/dist/{UL4OVG5P.js → OGU6CONG.js} +7 -7
  65. package/dist/{UL4OVG5P.js.map → OGU6CONG.js.map} +1 -1
  66. package/dist/{R6FPU7JX.cjs → OSR73KYW.cjs} +28 -34
  67. package/dist/OSR73KYW.cjs.map +1 -0
  68. package/dist/PSSBUABA.cjs +22 -0
  69. package/dist/PSSBUABA.cjs.map +1 -0
  70. package/dist/{HR64SZQX.js → PWDCAN6N.js} +4 -4
  71. package/dist/PWDCAN6N.js.map +1 -0
  72. package/dist/TC7EHVC2.cjs +11 -0
  73. package/dist/TC7EHVC2.cjs.map +1 -0
  74. package/dist/{IE5H7TSX.js → TNPXNMQM.js} +3 -3
  75. package/dist/{IE5H7TSX.js.map → TNPXNMQM.js.map} +1 -1
  76. package/dist/{VAAP26JC.js → W3N4CNDW.js} +6 -6
  77. package/dist/{VAAP26JC.js.map → W3N4CNDW.js.map} +1 -1
  78. package/dist/XOQZ3G2K.cjs +345 -0
  79. package/dist/XOQZ3G2K.cjs.map +1 -0
  80. package/dist/{7PP2QA5H.cjs → YI6EL3AH.cjs} +2 -2
  81. package/dist/YI6EL3AH.cjs.map +1 -0
  82. package/dist/{CNLWPLWD.js → ZGTCJSBO.js} +4 -4
  83. package/dist/{CNLWPLWD.js.map → ZGTCJSBO.js.map} +1 -1
  84. package/dist/ZV7VZVS6.js +20 -0
  85. package/dist/ZV7VZVS6.js.map +1 -0
  86. package/dist/config/index.cjs +14 -7
  87. package/dist/config/index.d.ts +2 -0
  88. package/dist/config/index.d.ts.map +1 -1
  89. package/dist/config/index.js +2 -3
  90. package/dist/config/tools.cjs +3 -4
  91. package/dist/config/tools.d.ts.map +1 -1
  92. package/dist/config/tools.js +2 -3
  93. package/dist/config/version-matrices.cjs +2 -2
  94. package/dist/config/version-matrices.d.ts +3 -2
  95. package/dist/config/version-matrices.d.ts.map +1 -1
  96. package/dist/config/version-matrices.js +1 -1
  97. package/dist/core/compatibility.cjs +2 -2
  98. package/dist/core/compatibility.d.ts +2 -2
  99. package/dist/core/compatibility.d.ts.map +1 -1
  100. package/dist/core/compatibility.js +1 -1
  101. package/dist/core/index.cjs +12 -12
  102. package/dist/core/index.js +7 -7
  103. package/dist/core/lock.cjs +4 -4
  104. package/dist/core/lock.js +1 -1
  105. package/dist/core/lock.test.cjs +6 -6
  106. package/dist/core/lock.test.js +1 -1
  107. package/dist/core/tool-executor.cjs +8 -12
  108. package/dist/core/tool-executor.d.ts +1 -7
  109. package/dist/core/tool-executor.d.ts.map +1 -1
  110. package/dist/core/tool-executor.js +7 -7
  111. package/dist/core/version-resolver.cjs +7 -8
  112. package/dist/core/version-resolver.d.ts +3 -2
  113. package/dist/core/version-resolver.d.ts.map +1 -1
  114. package/dist/core/version-resolver.js +4 -5
  115. package/dist/display/formatters.cjs +4 -6
  116. package/dist/display/formatters.d.ts +0 -9
  117. package/dist/display/formatters.d.ts.map +1 -1
  118. package/dist/display/formatters.js +3 -1
  119. package/dist/display/index.cjs +8 -13
  120. package/dist/display/index.d.ts +1 -1
  121. package/dist/display/index.d.ts.map +1 -1
  122. package/dist/display/index.js +5 -6
  123. package/dist/display/version-display.cjs +6 -7
  124. package/dist/display/version-display.d.ts.map +1 -1
  125. package/dist/display/version-display.js +4 -5
  126. package/dist/index.cjs +38 -38
  127. package/dist/index.cjs.map +1 -1
  128. package/dist/index.d.ts +1 -1
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +38 -38
  131. package/dist/index.js.map +1 -1
  132. package/dist/scripts/generate-github-matrix.cjs +158 -164
  133. package/dist/scripts/generate-github-matrix.cjs.map +1 -1
  134. package/dist/scripts/generate-github-matrix.js +21 -27
  135. package/dist/scripts/generate-github-matrix.js.map +1 -1
  136. package/dist/types/index.cjs.map +1 -1
  137. package/dist/types/index.d.ts +2 -2
  138. package/dist/types/index.d.ts.map +1 -1
  139. package/dist/types/index.js.map +1 -1
  140. package/dist/types/tool.cjs.map +1 -1
  141. package/dist/types/tool.d.ts +2 -4
  142. package/dist/types/tool.d.ts.map +1 -1
  143. package/dist/types/tool.js.map +1 -1
  144. package/dist/types/version.cjs.map +1 -1
  145. package/dist/types/version.d.ts +2 -12
  146. package/dist/types/version.d.ts.map +1 -1
  147. package/dist/types/version.js.map +1 -1
  148. package/dist/utils/docker.cjs +18 -0
  149. package/dist/utils/docker.cjs.map +1 -0
  150. package/dist/utils/docker.d.ts +4 -0
  151. package/dist/utils/docker.d.ts.map +1 -0
  152. package/dist/utils/docker.js +5 -0
  153. package/dist/utils/docker.js.map +1 -0
  154. package/dist/utils/error.cjs +13 -0
  155. package/dist/utils/error.cjs.map +1 -0
  156. package/dist/utils/error.d.ts +2 -0
  157. package/dist/utils/error.d.ts.map +1 -0
  158. package/dist/utils/error.js +4 -0
  159. package/dist/utils/error.js.map +1 -0
  160. package/dist/utils/finder.cjs +46 -0
  161. package/dist/utils/{finder-utils.js.map → finder.cjs.map} +1 -1
  162. package/dist/utils/finder.d.ts +21 -0
  163. package/dist/utils/finder.d.ts.map +1 -0
  164. package/dist/utils/finder.js +5 -0
  165. package/dist/utils/{finder-utils.cjs.map → finder.js.map} +1 -1
  166. package/dist/utils/version.cjs +26 -0
  167. package/dist/utils/{version-utils.js.map → version.cjs.map} +1 -1
  168. package/dist/utils/{version-utils.d.ts → version.d.ts} +1 -1
  169. package/dist/utils/version.d.ts.map +1 -0
  170. package/dist/utils/version.js +5 -0
  171. package/dist/utils/{version-utils.cjs.map → version.js.map} +1 -1
  172. package/dist/utils.cjs +8 -3
  173. package/dist/utils.d.ts +2 -0
  174. package/dist/utils.d.ts.map +1 -1
  175. package/dist/utils.js +2 -1
  176. package/package.json +9 -7
  177. package/bin/lz-tool.cjs +0 -18
  178. package/dist/3CLGGUZ6.js +0 -45
  179. package/dist/3CLGGUZ6.js.map +0 -1
  180. package/dist/4SK6SDII.cjs +0 -183
  181. package/dist/4SK6SDII.cjs.map +0 -1
  182. package/dist/5OKX3IYN.js +0 -45
  183. package/dist/5OKX3IYN.js.map +0 -1
  184. package/dist/5RAWDGJY.cjs +0 -53
  185. package/dist/5RAWDGJY.cjs.map +0 -1
  186. package/dist/7DH3URRX.js.map +0 -1
  187. package/dist/7PP2QA5H.cjs.map +0 -1
  188. package/dist/A34JELOF.js +0 -263
  189. package/dist/A34JELOF.js.map +0 -1
  190. package/dist/DYZKD7UQ.cjs +0 -301
  191. package/dist/DYZKD7UQ.cjs.map +0 -1
  192. package/dist/FLI6L2YX.cjs +0 -48
  193. package/dist/FLI6L2YX.cjs.map +0 -1
  194. package/dist/HR64SZQX.js.map +0 -1
  195. package/dist/JJXZWB7K.cjs.map +0 -1
  196. package/dist/NSZHKDNY.cjs.map +0 -1
  197. package/dist/OXHJXMDD.js.map +0 -1
  198. package/dist/P6RMIIVK.cjs.map +0 -1
  199. package/dist/PDSRUQEX.js.map +0 -1
  200. package/dist/Q3QTBCVZ.cjs +0 -268
  201. package/dist/Q3QTBCVZ.cjs.map +0 -1
  202. package/dist/QZ7GXWCY.js +0 -259
  203. package/dist/QZ7GXWCY.js.map +0 -1
  204. package/dist/R6FPU7JX.cjs.map +0 -1
  205. package/dist/VRMJKL3K.js.map +0 -1
  206. package/dist/XNBCDROQ.js +0 -181
  207. package/dist/XNBCDROQ.js.map +0 -1
  208. package/dist/utils/finder-utils.cjs +0 -39
  209. package/dist/utils/finder-utils.d.ts +0 -31
  210. package/dist/utils/finder-utils.d.ts.map +0 -1
  211. package/dist/utils/finder-utils.js +0 -6
  212. package/dist/utils/index.cjs +0 -56
  213. package/dist/utils/index.cjs.map +0 -1
  214. package/dist/utils/index.d.ts +0 -3
  215. package/dist/utils/index.d.ts.map +0 -1
  216. package/dist/utils/index.js +0 -9
  217. package/dist/utils/index.js.map +0 -1
  218. package/dist/utils/version-utils.cjs +0 -27
  219. package/dist/utils/version-utils.d.ts.map +0 -1
  220. package/dist/utils/version-utils.js +0 -6
@@ -1,9 +1,8 @@
1
- import '../7DH3URRX.js';
2
- export { displayToolVersionInfo, displayVersionCombinations } from '../OXHJXMDD.js';
3
- export { createUserFriendlyError, formatVersionCombination } from '../5OKX3IYN.js';
4
- import '../A34JELOF.js';
5
- import '../XNBCDROQ.js';
6
- import '../3CLGGUZ6.js';
1
+ import '../7BFNUKIW.js';
2
+ export { displayToolVersionInfo, displayVersionCombinations } from '../CL6CDQMJ.js';
3
+ export { formatVersionCombination } from '../ZV7VZVS6.js';
4
+ import '../BPGURM6D.js';
5
+ import '../JGA7AJCX.js';
7
6
  import '../4RNWLMHM.js';
8
7
  //# sourceMappingURL=index.js.map
9
8
  //# sourceMappingURL=index.js.map
@@ -1,21 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var R6FPU7JX_cjs = require('../R6FPU7JX.cjs');
4
- require('../FLI6L2YX.cjs');
5
- require('../DYZKD7UQ.cjs');
6
- require('../4SK6SDII.cjs');
7
- require('../5RAWDGJY.cjs');
3
+ var OSR73KYW_cjs = require('../OSR73KYW.cjs');
4
+ require('../PSSBUABA.cjs');
5
+ require('../XOQZ3G2K.cjs');
6
+ require('../HI4NXK4T.cjs');
8
7
  require('../VO65XOWD.cjs');
9
8
 
10
9
 
11
10
 
12
11
  Object.defineProperty(exports, "displayToolVersionInfo", {
13
12
  enumerable: true,
14
- get: function () { return R6FPU7JX_cjs.displayToolVersionInfo; }
13
+ get: function () { return OSR73KYW_cjs.displayToolVersionInfo; }
15
14
  });
16
15
  Object.defineProperty(exports, "displayVersionCombinations", {
17
16
  enumerable: true,
18
- get: function () { return R6FPU7JX_cjs.displayVersionCombinations; }
17
+ get: function () { return OSR73KYW_cjs.displayVersionCombinations; }
19
18
  });
20
19
  //# sourceMappingURL=version-display.cjs.map
21
20
  //# sourceMappingURL=version-display.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-display.d.ts","sourceRoot":"","sources":["../../src/display/version-display.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAiCjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAoD7D"}
1
+ {"version":3,"file":"version-display.d.ts","sourceRoot":"","sources":["../../src/display/version-display.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAoCjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CA4C7D"}
@@ -1,8 +1,7 @@
1
- export { displayToolVersionInfo, displayVersionCombinations } from '../OXHJXMDD.js';
2
- import '../5OKX3IYN.js';
3
- import '../A34JELOF.js';
4
- import '../XNBCDROQ.js';
5
- import '../3CLGGUZ6.js';
1
+ export { displayToolVersionInfo, displayVersionCombinations } from '../CL6CDQMJ.js';
2
+ import '../ZV7VZVS6.js';
3
+ import '../BPGURM6D.js';
4
+ import '../JGA7AJCX.js';
6
5
  import '../4RNWLMHM.js';
7
6
  //# sourceMappingURL=version-display.js.map
8
7
  //# sourceMappingURL=version-display.js.map
package/dist/index.cjs CHANGED
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- require('./7PP2QA5H.cjs');
4
- var R6FPU7JX_cjs = require('./R6FPU7JX.cjs');
5
- require('./FLI6L2YX.cjs');
3
+ require('./YI6EL3AH.cjs');
4
+ var OSR73KYW_cjs = require('./OSR73KYW.cjs');
5
+ require('./PSSBUABA.cjs');
6
6
  require('./OOTZHKMN.cjs');
7
- var Q3QTBCVZ_cjs = require('./Q3QTBCVZ.cjs');
8
- require('./NSZHKDNY.cjs');
9
- require('./P6RMIIVK.cjs');
10
- var DYZKD7UQ_cjs = require('./DYZKD7UQ.cjs');
11
- require('./4SK6SDII.cjs');
12
- require('./5RAWDGJY.cjs');
13
- require('./JJXZWB7K.cjs');
7
+ var LJR3ILZB_cjs = require('./LJR3ILZB.cjs');
8
+ var TC7EHVC2_cjs = require('./TC7EHVC2.cjs');
9
+ require('./6SVY3NVF.cjs');
10
+ var XOQZ3G2K_cjs = require('./XOQZ3G2K.cjs');
11
+ require('./HI4NXK4T.cjs');
12
+ require('./64SMUTQJ.cjs');
13
+ require('./ABGH4Z56.cjs');
14
14
  var VO65XOWD_cjs = require('./VO65XOWD.cjs');
15
15
  var commander = require('commander');
16
16
  var fs = require('fs');
@@ -25,12 +25,12 @@ var process__default = /*#__PURE__*/_interopDefault(process);
25
25
 
26
26
  // src/index.ts
27
27
  VO65XOWD_cjs.init_cjs_shims();
28
- async function main() {
28
+ async function run() {
29
29
  const program = new commander.Command();
30
30
  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();
31
31
  if (process__default.default.argv.includes("--list-versions")) {
32
- R6FPU7JX_cjs.displayVersionCombinations();
33
- process__default.default.exit(0);
32
+ OSR73KYW_cjs.displayVersionCombinations();
33
+ return;
34
34
  }
35
35
  program.option("-c, --cwd <path>", "Current working directory", (input) => {
36
36
  if (typeof input !== "string") {
@@ -76,39 +76,39 @@ async function main() {
76
76
  });
77
77
  return previous;
78
78
  }, []);
79
- DYZKD7UQ_cjs.tools.forEach((tool) => {
79
+ for (const tool of XOQZ3G2K_cjs.tools) {
80
80
  const optionFlag = `--${tool.name}-version <version>`;
81
- const defaultVersion = DYZKD7UQ_cjs.getToolDefaultVersion(tool.name);
82
- const supportedVersions = DYZKD7UQ_cjs.getToolSupportedVersions(tool.name);
81
+ const defaultVersion = XOQZ3G2K_cjs.getToolDefaultVersion(tool.name);
82
+ const supportedVersions = XOQZ3G2K_cjs.getToolSupportedVersions(tool.name);
83
83
  const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(", ")})`;
84
84
  program.option(optionFlag, description);
85
- });
85
+ }
86
86
  program.option("--list-versions", "Display all supported version combinations and exit");
87
- program.command("version-info <tool>").description("Display detailed version information for a specific tool").action((toolName) => {
88
- R6FPU7JX_cjs.displayToolVersionInfo(toolName);
89
- });
90
- DYZKD7UQ_cjs.tools.forEach((tool) => {
91
- const toolCmd = program.command(tool.name, {
87
+ program.command("version-info <tool>").description("Display detailed version information for a specific tool").action((toolName) => OSR73KYW_cjs.displayToolVersionInfo(toolName));
88
+ for (const tool of XOQZ3G2K_cjs.tools) {
89
+ program.command(tool.name, {
92
90
  isDefault: false
93
- }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool");
94
- toolCmd.action(async (args) => {
91
+ }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool").action(async (args) => {
95
92
  const globalOptions = program.opts();
96
- const cwd = globalOptions.cwd ?? process__default.default.cwd();
97
- try {
98
- await Q3QTBCVZ_cjs.executeToolCommand(tool.name, args, {
99
- cwd,
100
- volumes: globalOptions.volume,
101
- ...globalOptions
102
- });
103
- } catch (error) {
104
- console.error(error instanceof Error ? error.message : String(error));
105
- process__default.default.exit(1);
106
- }
93
+ await LJR3ILZB_cjs.executeToolCommand(tool.name, args, {
94
+ cwd: globalOptions.cwd ?? process__default.default.cwd(),
95
+ volumes: globalOptions.volume,
96
+ ...globalOptions
97
+ });
107
98
  });
108
- });
99
+ }
109
100
  await program.parseAsync();
110
101
  }
111
- VO65XOWD_cjs.__name(main, "main");
112
- void main();
102
+ VO65XOWD_cjs.__name(run, "run");
103
+ var main = /* @__PURE__ */ VO65XOWD_cjs.__name(async () => {
104
+ try {
105
+ await run();
106
+ } catch (error) {
107
+ console.error("\u274C", TC7EHVC2_cjs.stringifyError(error));
108
+ process__default.default.exit(1);
109
+ }
110
+ }, "main");
111
+
112
+ exports.main = main;
113
113
  //# sourceMappingURL=index.cjs.map
114
114
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["init_cjs_shims","main","program","Command","name","description","version","enablePositionalOptions","process","argv","includes","displayVersionCombinations","exit","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","previous","valueParts","split","length","value","join","push","type","hostPath","containerPath","undefined","tools","forEach","tool","optionFlag","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","command","action","toolName","displayToolVersionInfo","toolCmd","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","globalOptions","opts","cwd","executeToolCommand","volumes","volume","error","console","message","String","parseAsync"],"mappings":"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","file":"index.cjs","sourcesContent":["import { Command } from 'commander';\nimport fs from 'fs';\nimport path from 'path';\nimport process from 'process';\n\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-utils';\n\nasync function main(): 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 process.exit(0);\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\n // Add version options for each tool dynamically\n tools.forEach((tool) => {\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) => {\n displayToolVersionInfo(toolName);\n });\n\n // Dynamically add commands for each supported tool\n tools.forEach((tool) => {\n const toolCmd = 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\n // Don't add any options to the subcommand level\n // All lz-tool options must be specified before the subcommand\n\n toolCmd.action(async (args: string[]) => {\n // Get global options (specified before the subcommand)\n const globalOptions: {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n customEntrypoint?: string;\n } = program.opts();\n\n const cwd = globalOptions.cwd ?? process.cwd();\n\n try {\n await executeToolCommand(tool.name, args, {\n cwd,\n volumes: globalOptions.volume,\n ...globalOptions,\n });\n } catch (error) {\n console.error(error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n });\n\n await program.parseAsync();\n}\n\n// Start the program\nvoid main();\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["init_cjs_shims","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","parseAsync","main","__name","error","console","stringifyError","exit"],"mappings":"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","file":"index.cjs","sourcesContent":["import { Command } from 'commander';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport { tools } from './config';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport type { EnvironmentVariable, VolumeMapping } from './types';\nimport { stringifyError } from './utils/error';\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\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 await program.parseAsync();\n}\n\nexport const main = async (): Promise<void> => {\n try {\n await run();\n } catch (error) {\n console.error('❌', stringifyError(error));\n process.exit(1);\n }\n};\n"]}
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export {};
1
+ export declare const main: () => Promise<void>;
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8JA,eAAO,MAAM,IAAI,QAAa,OAAO,CAAC,IAAI,CAOzC,CAAC"}
package/dist/index.js CHANGED
@@ -1,28 +1,28 @@
1
- import './7DH3URRX.js';
2
- import { displayVersionCombinations, displayToolVersionInfo } from './OXHJXMDD.js';
3
- import './5OKX3IYN.js';
1
+ import './7BFNUKIW.js';
2
+ import { displayVersionCombinations, displayToolVersionInfo } from './CL6CDQMJ.js';
3
+ import './ZV7VZVS6.js';
4
4
  import './OAO7CCJW.js';
5
- import { executeToolCommand } from './QZ7GXWCY.js';
6
- import './PDSRUQEX.js';
7
- import './VRMJKL3K.js';
8
- import { tools, getToolDefaultVersion, getToolSupportedVersions } from './A34JELOF.js';
9
- import './XNBCDROQ.js';
10
- import './3CLGGUZ6.js';
11
- import './HR64SZQX.js';
5
+ import { executeToolCommand } from './F46O4OAT.js';
6
+ import { stringifyError } from './IWNVWC3I.js';
7
+ import './NUB3VR3D.js';
8
+ import { tools, getToolDefaultVersion, getToolSupportedVersions } from './BPGURM6D.js';
9
+ import './JGA7AJCX.js';
10
+ import './PWDCAN6N.js';
11
+ import './3PEVFTZ5.js';
12
12
  import { init_esm_shims, __name } from './4RNWLMHM.js';
13
13
  import { Command } from 'commander';
14
- import fs from 'fs';
15
- import path from 'path';
16
- import process from 'process';
14
+ import fs from 'node:fs';
15
+ import path from 'node:path';
16
+ import process from 'node:process';
17
17
 
18
18
  // src/index.ts
19
19
  init_esm_shims();
20
- async function main() {
20
+ async function run() {
21
21
  const program = new Command();
22
22
  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();
23
23
  if (process.argv.includes("--list-versions")) {
24
24
  displayVersionCombinations();
25
- process.exit(0);
25
+ return;
26
26
  }
27
27
  program.option("-c, --cwd <path>", "Current working directory", (input) => {
28
28
  if (typeof input !== "string") {
@@ -68,39 +68,39 @@ async function main() {
68
68
  });
69
69
  return previous;
70
70
  }, []);
71
- tools.forEach((tool) => {
71
+ for (const tool of tools) {
72
72
  const optionFlag = `--${tool.name}-version <version>`;
73
73
  const defaultVersion = getToolDefaultVersion(tool.name);
74
74
  const supportedVersions = getToolSupportedVersions(tool.name);
75
75
  const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(", ")})`;
76
76
  program.option(optionFlag, description);
77
- });
77
+ }
78
78
  program.option("--list-versions", "Display all supported version combinations and exit");
79
- program.command("version-info <tool>").description("Display detailed version information for a specific tool").action((toolName) => {
80
- displayToolVersionInfo(toolName);
81
- });
82
- tools.forEach((tool) => {
83
- const toolCmd = program.command(tool.name, {
79
+ program.command("version-info <tool>").description("Display detailed version information for a specific tool").action((toolName) => displayToolVersionInfo(toolName));
80
+ for (const tool of tools) {
81
+ program.command(tool.name, {
84
82
  isDefault: false
85
- }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool");
86
- toolCmd.action(async (args) => {
83
+ }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool").action(async (args) => {
87
84
  const globalOptions = program.opts();
88
- const cwd = globalOptions.cwd ?? process.cwd();
89
- try {
90
- await executeToolCommand(tool.name, args, {
91
- cwd,
92
- volumes: globalOptions.volume,
93
- ...globalOptions
94
- });
95
- } catch (error) {
96
- console.error(error instanceof Error ? error.message : String(error));
97
- process.exit(1);
98
- }
85
+ await executeToolCommand(tool.name, args, {
86
+ cwd: globalOptions.cwd ?? process.cwd(),
87
+ volumes: globalOptions.volume,
88
+ ...globalOptions
89
+ });
99
90
  });
100
- });
91
+ }
101
92
  await program.parseAsync();
102
93
  }
103
- __name(main, "main");
104
- void main();
94
+ __name(run, "run");
95
+ var main = /* @__PURE__ */ __name(async () => {
96
+ try {
97
+ await run();
98
+ } catch (error) {
99
+ console.error("\u274C", stringifyError(error));
100
+ process.exit(1);
101
+ }
102
+ }, "main");
103
+
104
+ export { main };
105
105
  //# sourceMappingURL=index.js.map
106
106
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["main","program","Command","name","description","version","enablePositionalOptions","process","argv","includes","displayVersionCombinations","exit","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","previous","valueParts","split","length","value","join","push","type","hostPath","containerPath","undefined","tools","forEach","tool","optionFlag","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","command","action","toolName","displayToolVersionInfo","toolCmd","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","globalOptions","opts","cwd","executeToolCommand","volumes","volume","error","console","message","String","parseAsync"],"mappings":"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","file":"index.js","sourcesContent":["import { Command } from 'commander';\nimport fs from 'fs';\nimport path from 'path';\nimport process from 'process';\n\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-utils';\n\nasync function main(): 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 process.exit(0);\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\n // Add version options for each tool dynamically\n tools.forEach((tool) => {\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) => {\n displayToolVersionInfo(toolName);\n });\n\n // Dynamically add commands for each supported tool\n tools.forEach((tool) => {\n const toolCmd = 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\n // Don't add any options to the subcommand level\n // All lz-tool options must be specified before the subcommand\n\n toolCmd.action(async (args: string[]) => {\n // Get global options (specified before the subcommand)\n const globalOptions: {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n customEntrypoint?: string;\n } = program.opts();\n\n const cwd = globalOptions.cwd ?? process.cwd();\n\n try {\n await executeToolCommand(tool.name, args, {\n cwd,\n volumes: globalOptions.volume,\n ...globalOptions,\n });\n } catch (error) {\n console.error(error instanceof Error ? error.message : String(error));\n process.exit(1);\n }\n });\n });\n\n await program.parseAsync();\n}\n\n// Start the program\nvoid main();\n"]}
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","parseAsync","main","error","console","stringifyError","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 { tools } from './config';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport type { EnvironmentVariable, VolumeMapping } from './types';\nimport { stringifyError } from './utils/error';\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\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 await program.parseAsync();\n}\n\nexport const main = async (): Promise<void> => {\n try {\n await run();\n } catch (error) {\n console.error('❌', stringifyError(error));\n process.exit(1);\n }\n};\n"]}