@layerzerolabs/vm-tooling 0.0.44 → 0.0.46

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 (59) hide show
  1. package/dist/{7S3N6ZPY.cjs → 6FHMI4HI.cjs} +20 -12
  2. package/dist/6FHMI4HI.cjs.map +1 -0
  3. package/dist/{JSQ7H2ZH.cjs → 7PDYKZMF.cjs} +11 -11
  4. package/dist/{JSQ7H2ZH.cjs.map → 7PDYKZMF.cjs.map} +1 -1
  5. package/dist/{CFMPNPDE.js → DXKVHPTB.js} +4 -4
  6. package/dist/{CFMPNPDE.js.map → DXKVHPTB.js.map} +1 -1
  7. package/dist/{BQE33FG7.js → FYBVGT35.js} +3 -3
  8. package/dist/{BQE33FG7.js.map → FYBVGT35.js.map} +1 -1
  9. package/dist/{RYB7HXPO.cjs → IU7G43CF.cjs} +11 -6
  10. package/dist/IU7G43CF.cjs.map +1 -0
  11. package/dist/{5KA4B3WL.js → OESMGGGL.js} +20 -12
  12. package/dist/OESMGGGL.js.map +1 -0
  13. package/dist/{FTNN2BYM.cjs → RVM7QRW3.cjs} +13 -13
  14. package/dist/{FTNN2BYM.cjs.map → RVM7QRW3.cjs.map} +1 -1
  15. package/dist/{N7J75JOO.js → S3DLREDC.js} +4 -4
  16. package/dist/{N7J75JOO.js.map → S3DLREDC.js.map} +1 -1
  17. package/dist/{67EGQ6NV.cjs → WDWUP4NU.cjs} +14 -14
  18. package/dist/{67EGQ6NV.cjs.map → WDWUP4NU.cjs.map} +1 -1
  19. package/dist/{CRLXMIJF.js → XJWXQV6E.js} +10 -5
  20. package/dist/XJWXQV6E.js.map +1 -0
  21. package/dist/config/index.cjs +6 -6
  22. package/dist/config/index.js +2 -2
  23. package/dist/config/tools.cjs +3 -3
  24. package/dist/config/tools.d.ts.map +1 -1
  25. package/dist/config/tools.js +2 -2
  26. package/dist/config/version-matrices.cjs +2 -2
  27. package/dist/config/version-matrices.d.ts.map +1 -1
  28. package/dist/config/version-matrices.js +1 -1
  29. package/dist/core/index.cjs +8 -8
  30. package/dist/core/index.js +4 -4
  31. package/dist/core/tool-executor.cjs +5 -5
  32. package/dist/core/tool-executor.js +4 -4
  33. package/dist/core/version-resolver.cjs +6 -6
  34. package/dist/core/version-resolver.js +3 -3
  35. package/dist/display/index.cjs +5 -5
  36. package/dist/display/index.js +3 -3
  37. package/dist/display/version-display.cjs +5 -5
  38. package/dist/display/version-display.js +3 -3
  39. package/dist/index.cjs +17 -28
  40. package/dist/index.cjs.map +1 -1
  41. package/dist/index.js +10 -21
  42. package/dist/index.js.map +1 -1
  43. package/dist/scripts/generate-github-matrix.cjs +4 -3
  44. package/dist/scripts/generate-github-matrix.cjs.map +1 -1
  45. package/dist/scripts/generate-github-matrix.js +3 -2
  46. package/dist/scripts/generate-github-matrix.js.map +1 -1
  47. package/dist/types/tool.d.ts +1 -1
  48. package/dist/types/tool.d.ts.map +1 -1
  49. package/dist/utils/finder-utils.cjs +9 -9
  50. package/dist/utils/finder-utils.js +2 -2
  51. package/dist/utils/index.cjs +13 -13
  52. package/dist/utils/index.js +2 -2
  53. package/dist/utils/version-utils.cjs +6 -6
  54. package/dist/utils/version-utils.js +2 -2
  55. package/package.json +4 -4
  56. package/dist/5KA4B3WL.js.map +0 -1
  57. package/dist/7S3N6ZPY.cjs.map +0 -1
  58. package/dist/CRLXMIJF.js.map +0 -1
  59. package/dist/RYB7HXPO.cjs.map +0 -1
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  require('../5N3Q6FCT.cjs');
4
- var _67EGQ6NV_cjs = require('../67EGQ6NV.cjs');
5
- var JSQ7H2ZH_cjs = require('../JSQ7H2ZH.cjs');
6
- require('../RYB7HXPO.cjs');
4
+ var WDWUP4NU_cjs = require('../WDWUP4NU.cjs');
5
+ var _7PDYKZMF_cjs = require('../7PDYKZMF.cjs');
6
+ require('../IU7G43CF.cjs');
7
7
  require('../3EOFF6NK.cjs');
8
- require('../7S3N6ZPY.cjs');
8
+ require('../6FHMI4HI.cjs');
9
9
  var _4NINFZK7_cjs = require('../4NINFZK7.cjs');
10
10
  require('../NX4KBEWA.cjs');
11
11
 
@@ -13,19 +13,19 @@ require('../NX4KBEWA.cjs');
13
13
 
14
14
  Object.defineProperty(exports, "executeToolCommand", {
15
15
  enumerable: true,
16
- get: function () { return _67EGQ6NV_cjs.executeToolCommand; }
16
+ get: function () { return WDWUP4NU_cjs.executeToolCommand; }
17
17
  });
18
18
  Object.defineProperty(exports, "extractUserVersions", {
19
19
  enumerable: true,
20
- get: function () { return JSQ7H2ZH_cjs.extractUserVersions; }
20
+ get: function () { return _7PDYKZMF_cjs.extractUserVersions; }
21
21
  });
22
22
  Object.defineProperty(exports, "resolveToolVersion", {
23
23
  enumerable: true,
24
- get: function () { return JSQ7H2ZH_cjs.resolveToolVersion; }
24
+ get: function () { return _7PDYKZMF_cjs.resolveToolVersion; }
25
25
  });
26
26
  Object.defineProperty(exports, "resolveTypeVersions", {
27
27
  enumerable: true,
28
- get: function () { return JSQ7H2ZH_cjs.resolveTypeVersions; }
28
+ get: function () { return _7PDYKZMF_cjs.resolveTypeVersions; }
29
29
  });
30
30
  Object.defineProperty(exports, "findBestCompatibleCombination", {
31
31
  enumerable: true,
@@ -1,9 +1,9 @@
1
1
  import '../ZEW74YLA.js';
2
- export { executeToolCommand } from '../CFMPNPDE.js';
3
- export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../BQE33FG7.js';
4
- import '../CRLXMIJF.js';
2
+ export { executeToolCommand } from '../DXKVHPTB.js';
3
+ export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../FYBVGT35.js';
4
+ import '../XJWXQV6E.js';
5
5
  import '../BA2LAHMY.js';
6
- import '../5KA4B3WL.js';
6
+ import '../OESMGGGL.js';
7
7
  export { findBestCompatibleCombination } from '../GAZMRBLT.js';
8
8
  import '../VUOMXK5T.js';
9
9
  //# sourceMappingURL=index.js.map
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var _67EGQ6NV_cjs = require('../67EGQ6NV.cjs');
4
- require('../JSQ7H2ZH.cjs');
5
- require('../RYB7HXPO.cjs');
3
+ var WDWUP4NU_cjs = require('../WDWUP4NU.cjs');
4
+ require('../7PDYKZMF.cjs');
5
+ require('../IU7G43CF.cjs');
6
6
  require('../3EOFF6NK.cjs');
7
- require('../7S3N6ZPY.cjs');
7
+ require('../6FHMI4HI.cjs');
8
8
  require('../4NINFZK7.cjs');
9
9
  require('../NX4KBEWA.cjs');
10
10
 
@@ -12,7 +12,7 @@ require('../NX4KBEWA.cjs');
12
12
 
13
13
  Object.defineProperty(exports, "executeToolCommand", {
14
14
  enumerable: true,
15
- get: function () { return _67EGQ6NV_cjs.executeToolCommand; }
15
+ get: function () { return WDWUP4NU_cjs.executeToolCommand; }
16
16
  });
17
17
  //# sourceMappingURL=tool-executor.cjs.map
18
18
  //# sourceMappingURL=tool-executor.cjs.map
@@ -1,8 +1,8 @@
1
- export { executeToolCommand } from '../CFMPNPDE.js';
2
- import '../BQE33FG7.js';
3
- import '../CRLXMIJF.js';
1
+ export { executeToolCommand } from '../DXKVHPTB.js';
2
+ import '../FYBVGT35.js';
3
+ import '../XJWXQV6E.js';
4
4
  import '../BA2LAHMY.js';
5
- import '../5KA4B3WL.js';
5
+ import '../OESMGGGL.js';
6
6
  import '../GAZMRBLT.js';
7
7
  import '../VUOMXK5T.js';
8
8
  //# sourceMappingURL=tool-executor.js.map
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var JSQ7H2ZH_cjs = require('../JSQ7H2ZH.cjs');
4
- require('../RYB7HXPO.cjs');
3
+ var _7PDYKZMF_cjs = require('../7PDYKZMF.cjs');
4
+ require('../IU7G43CF.cjs');
5
5
  require('../3EOFF6NK.cjs');
6
- require('../7S3N6ZPY.cjs');
6
+ require('../6FHMI4HI.cjs');
7
7
  require('../4NINFZK7.cjs');
8
8
  require('../NX4KBEWA.cjs');
9
9
 
@@ -11,15 +11,15 @@ require('../NX4KBEWA.cjs');
11
11
 
12
12
  Object.defineProperty(exports, "extractUserVersions", {
13
13
  enumerable: true,
14
- get: function () { return JSQ7H2ZH_cjs.extractUserVersions; }
14
+ get: function () { return _7PDYKZMF_cjs.extractUserVersions; }
15
15
  });
16
16
  Object.defineProperty(exports, "resolveToolVersion", {
17
17
  enumerable: true,
18
- get: function () { return JSQ7H2ZH_cjs.resolveToolVersion; }
18
+ get: function () { return _7PDYKZMF_cjs.resolveToolVersion; }
19
19
  });
20
20
  Object.defineProperty(exports, "resolveTypeVersions", {
21
21
  enumerable: true,
22
- get: function () { return JSQ7H2ZH_cjs.resolveTypeVersions; }
22
+ get: function () { return _7PDYKZMF_cjs.resolveTypeVersions; }
23
23
  });
24
24
  //# sourceMappingURL=version-resolver.cjs.map
25
25
  //# sourceMappingURL=version-resolver.cjs.map
@@ -1,7 +1,7 @@
1
- export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../BQE33FG7.js';
2
- import '../CRLXMIJF.js';
1
+ export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../FYBVGT35.js';
2
+ import '../XJWXQV6E.js';
3
3
  import '../BA2LAHMY.js';
4
- import '../5KA4B3WL.js';
4
+ import '../OESMGGGL.js';
5
5
  import '../GAZMRBLT.js';
6
6
  import '../VUOMXK5T.js';
7
7
  //# sourceMappingURL=version-resolver.js.map
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
 
3
3
  require('../RLUL6JFM.cjs');
4
- var FTNN2BYM_cjs = require('../FTNN2BYM.cjs');
4
+ var RVM7QRW3_cjs = require('../RVM7QRW3.cjs');
5
5
  var LBQPL6VK_cjs = require('../LBQPL6VK.cjs');
6
- require('../RYB7HXPO.cjs');
6
+ require('../IU7G43CF.cjs');
7
7
  require('../3EOFF6NK.cjs');
8
- require('../7S3N6ZPY.cjs');
8
+ require('../6FHMI4HI.cjs');
9
9
  require('../NX4KBEWA.cjs');
10
10
 
11
11
 
12
12
 
13
13
  Object.defineProperty(exports, "displayToolVersionInfo", {
14
14
  enumerable: true,
15
- get: function () { return FTNN2BYM_cjs.displayToolVersionInfo; }
15
+ get: function () { return RVM7QRW3_cjs.displayToolVersionInfo; }
16
16
  });
17
17
  Object.defineProperty(exports, "displayVersionCombinations", {
18
18
  enumerable: true,
19
- get: function () { return FTNN2BYM_cjs.displayVersionCombinations; }
19
+ get: function () { return RVM7QRW3_cjs.displayVersionCombinations; }
20
20
  });
21
21
  Object.defineProperty(exports, "createUserFriendlyError", {
22
22
  enumerable: true,
@@ -1,9 +1,9 @@
1
1
  import '../EKUFNO5X.js';
2
- export { displayToolVersionInfo, displayVersionCombinations } from '../N7J75JOO.js';
2
+ export { displayToolVersionInfo, displayVersionCombinations } from '../S3DLREDC.js';
3
3
  export { createUserFriendlyError, formatVersionCombination } from '../QNKHVJNZ.js';
4
- import '../CRLXMIJF.js';
4
+ import '../XJWXQV6E.js';
5
5
  import '../BA2LAHMY.js';
6
- import '../5KA4B3WL.js';
6
+ import '../OESMGGGL.js';
7
7
  import '../VUOMXK5T.js';
8
8
  //# sourceMappingURL=index.js.map
9
9
  //# sourceMappingURL=index.js.map
@@ -1,21 +1,21 @@
1
1
  'use strict';
2
2
 
3
- var FTNN2BYM_cjs = require('../FTNN2BYM.cjs');
3
+ var RVM7QRW3_cjs = require('../RVM7QRW3.cjs');
4
4
  require('../LBQPL6VK.cjs');
5
- require('../RYB7HXPO.cjs');
5
+ require('../IU7G43CF.cjs');
6
6
  require('../3EOFF6NK.cjs');
7
- require('../7S3N6ZPY.cjs');
7
+ require('../6FHMI4HI.cjs');
8
8
  require('../NX4KBEWA.cjs');
9
9
 
10
10
 
11
11
 
12
12
  Object.defineProperty(exports, "displayToolVersionInfo", {
13
13
  enumerable: true,
14
- get: function () { return FTNN2BYM_cjs.displayToolVersionInfo; }
14
+ get: function () { return RVM7QRW3_cjs.displayToolVersionInfo; }
15
15
  });
16
16
  Object.defineProperty(exports, "displayVersionCombinations", {
17
17
  enumerable: true,
18
- get: function () { return FTNN2BYM_cjs.displayVersionCombinations; }
18
+ get: function () { return RVM7QRW3_cjs.displayVersionCombinations; }
19
19
  });
20
20
  //# sourceMappingURL=version-display.cjs.map
21
21
  //# sourceMappingURL=version-display.cjs.map
@@ -1,8 +1,8 @@
1
- export { displayToolVersionInfo, displayVersionCombinations } from '../N7J75JOO.js';
1
+ export { displayToolVersionInfo, displayVersionCombinations } from '../S3DLREDC.js';
2
2
  import '../QNKHVJNZ.js';
3
- import '../CRLXMIJF.js';
3
+ import '../XJWXQV6E.js';
4
4
  import '../BA2LAHMY.js';
5
- import '../5KA4B3WL.js';
5
+ import '../OESMGGGL.js';
6
6
  import '../VUOMXK5T.js';
7
7
  //# sourceMappingURL=version-display.js.map
8
8
  //# sourceMappingURL=version-display.js.map
package/dist/index.cjs CHANGED
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  require('./RLUL6JFM.cjs');
4
- var FTNN2BYM_cjs = require('./FTNN2BYM.cjs');
4
+ var RVM7QRW3_cjs = require('./RVM7QRW3.cjs');
5
5
  require('./LBQPL6VK.cjs');
6
6
  require('./5N3Q6FCT.cjs');
7
- var _67EGQ6NV_cjs = require('./67EGQ6NV.cjs');
8
- require('./JSQ7H2ZH.cjs');
9
- var RYB7HXPO_cjs = require('./RYB7HXPO.cjs');
7
+ var WDWUP4NU_cjs = require('./WDWUP4NU.cjs');
8
+ require('./7PDYKZMF.cjs');
9
+ var IU7G43CF_cjs = require('./IU7G43CF.cjs');
10
10
  require('./3EOFF6NK.cjs');
11
- require('./7S3N6ZPY.cjs');
11
+ require('./6FHMI4HI.cjs');
12
12
  require('./4NINFZK7.cjs');
13
13
  var NX4KBEWA_cjs = require('./NX4KBEWA.cjs');
14
14
  var commander = require('commander');
@@ -24,9 +24,9 @@ var process__default = /*#__PURE__*/_interopDefault(process);
24
24
 
25
25
  async function main() {
26
26
  const program = new commander.Command();
27
- program.name("lz-tool").description("\u{1F680} LayerZero VM tooling with intelligent version management").version("1.0.0");
27
+ 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 --force-docker sui move build\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();
28
28
  if (process__default.default.argv.includes("--list-versions")) {
29
- FTNN2BYM_cjs.displayVersionCombinations();
29
+ RVM7QRW3_cjs.displayVersionCombinations();
30
30
  process__default.default.exit(0);
31
31
  }
32
32
  program.option("-c, --cwd <path>", "Current working directory", (input) => {
@@ -73,40 +73,29 @@ async function main() {
73
73
  });
74
74
  return previous;
75
75
  }, []);
76
- RYB7HXPO_cjs.tools.forEach((tool) => {
76
+ IU7G43CF_cjs.tools.forEach((tool) => {
77
77
  const optionFlag = `--${tool.name}-version <version>`;
78
- const defaultVersion = RYB7HXPO_cjs.getToolDefaultVersion(tool.name);
79
- const supportedVersions = RYB7HXPO_cjs.getToolSupportedVersions(tool.name);
78
+ const defaultVersion = IU7G43CF_cjs.getToolDefaultVersion(tool.name);
79
+ const supportedVersions = IU7G43CF_cjs.getToolSupportedVersions(tool.name);
80
80
  const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(", ")})`;
81
81
  program.option(optionFlag, description);
82
82
  });
83
83
  program.option("--list-versions", "Display all supported version combinations and exit");
84
84
  program.command("version-info <tool>").description("Display detailed version information for a specific tool").action((toolName) => {
85
- FTNN2BYM_cjs.displayToolVersionInfo(toolName);
85
+ RVM7QRW3_cjs.displayToolVersionInfo(toolName);
86
86
  });
87
- RYB7HXPO_cjs.tools.forEach((tool) => {
87
+ IU7G43CF_cjs.tools.forEach((tool) => {
88
88
  const toolCmd = program.command(tool.name, {
89
89
  isDefault: false
90
- }).description(`Run ${tool.name} with version checking`).allowUnknownOption().argument("[args...]", "Arguments to pass to the tool");
91
- RYB7HXPO_cjs.tools.forEach((toolOption) => {
92
- const optionFlag = `--${toolOption.name}-version <version>`;
93
- const description = `Specify ${toolOption.name} version for this execution`;
94
- toolCmd.option(optionFlag, description);
95
- });
96
- toolCmd.option("-e, --custom-entrypoint <entrypoint>", "Override the default Docker entrypoint for this tool");
90
+ }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool");
97
91
  toolCmd.action(async (args) => {
98
92
  const globalOptions = program.opts();
99
- const commandOptions = toolCmd.opts();
100
- const mergedOptions = {
101
- ...globalOptions,
102
- ...commandOptions
103
- };
104
- const cwd = mergedOptions.cwd ?? process__default.default.cwd();
93
+ const cwd = globalOptions.cwd ?? process__default.default.cwd();
105
94
  try {
106
- await _67EGQ6NV_cjs.executeToolCommand(tool.name, args, {
95
+ await WDWUP4NU_cjs.executeToolCommand(tool.name, args, {
107
96
  cwd,
108
- volumes: mergedOptions.volume,
109
- ...mergedOptions
97
+ volumes: globalOptions.volume,
98
+ ...globalOptions
110
99
  });
111
100
  } catch (error) {
112
101
  console.error(error instanceof Error ? error.message : String(error));
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["main","program","Command","name","description","version","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","allowUnknownOption","argument","toolOption","args","globalOptions","opts","commandOptions","mergedOptions","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('🚀 LayerZero VM tooling with intelligent version management')\n .version('1.0.0');\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 '-d, --force-docker',\n 'Force using Docker image instead of local installation',\n false,\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 // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (type === 'host' && (hostPath === undefined || hostPath === '')) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\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 .allowUnknownOption()\n .argument('[args...]', 'Arguments to pass to the tool');\n\n // Add tool-specific version options to each command as well\n tools.forEach((toolOption) => {\n const optionFlag = `--${toolOption.name}-version <version>`;\n const description = `Specify ${toolOption.name} version for this execution`;\n toolCmd.option(optionFlag, description);\n });\n\n // Add custom entrypoint option to each command\n toolCmd.option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for this tool',\n );\n\n toolCmd.action(async (args: string[]) => {\n // Get both global and command-specific options\n const globalOptions: {\n cwd?: string;\n forceDocker: boolean;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n } = program.opts();\n const commandOptions = toolCmd.opts();\n\n // Merge options, with command-specific taking precedence\n const mergedOptions = { ...globalOptions, ...commandOptions };\n\n const cwd = mergedOptions.cwd ?? process.cwd();\n\n try {\n await executeToolCommand(tool.name, args, {\n cwd,\n volumes: mergedOptions.volume,\n ...mergedOptions,\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":["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 --force-docker sui move build\\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 '-d, --force-docker',\n 'Force using Docker image instead of local installation',\n false,\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 // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (type === 'host' && (hostPath === undefined || hostPath === '')) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\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 forceDocker: boolean;\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"]}
package/dist/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import './EKUFNO5X.js';
2
- import { displayVersionCombinations, displayToolVersionInfo } from './N7J75JOO.js';
2
+ import { displayVersionCombinations, displayToolVersionInfo } from './S3DLREDC.js';
3
3
  import './QNKHVJNZ.js';
4
4
  import './ZEW74YLA.js';
5
- import { executeToolCommand } from './CFMPNPDE.js';
6
- import './BQE33FG7.js';
7
- import { tools, getToolDefaultVersion, getToolSupportedVersions } from './CRLXMIJF.js';
5
+ import { executeToolCommand } from './DXKVHPTB.js';
6
+ import './FYBVGT35.js';
7
+ import { tools, getToolDefaultVersion, getToolSupportedVersions } from './XJWXQV6E.js';
8
8
  import './BA2LAHMY.js';
9
- import './5KA4B3WL.js';
9
+ import './OESMGGGL.js';
10
10
  import './GAZMRBLT.js';
11
11
  import { __name } from './VUOMXK5T.js';
12
12
  import { Command } from 'commander';
@@ -16,7 +16,7 @@ import process from 'process';
16
16
 
17
17
  async function main() {
18
18
  const program = new Command();
19
- program.name("lz-tool").description("\u{1F680} LayerZero VM tooling with intelligent version management").version("1.0.0");
19
+ 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 --force-docker sui move build\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();
20
20
  if (process.argv.includes("--list-versions")) {
21
21
  displayVersionCombinations();
22
22
  process.exit(0);
@@ -79,26 +79,15 @@ async function main() {
79
79
  tools.forEach((tool) => {
80
80
  const toolCmd = program.command(tool.name, {
81
81
  isDefault: false
82
- }).description(`Run ${tool.name} with version checking`).allowUnknownOption().argument("[args...]", "Arguments to pass to the tool");
83
- tools.forEach((toolOption) => {
84
- const optionFlag = `--${toolOption.name}-version <version>`;
85
- const description = `Specify ${toolOption.name} version for this execution`;
86
- toolCmd.option(optionFlag, description);
87
- });
88
- toolCmd.option("-e, --custom-entrypoint <entrypoint>", "Override the default Docker entrypoint for this tool");
82
+ }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool");
89
83
  toolCmd.action(async (args) => {
90
84
  const globalOptions = program.opts();
91
- const commandOptions = toolCmd.opts();
92
- const mergedOptions = {
93
- ...globalOptions,
94
- ...commandOptions
95
- };
96
- const cwd = mergedOptions.cwd ?? process.cwd();
85
+ const cwd = globalOptions.cwd ?? process.cwd();
97
86
  try {
98
87
  await executeToolCommand(tool.name, args, {
99
88
  cwd,
100
- volumes: mergedOptions.volume,
101
- ...mergedOptions
89
+ volumes: globalOptions.volume,
90
+ ...globalOptions
102
91
  });
103
92
  } catch (error) {
104
93
  console.error(error instanceof Error ? error.message : String(error));
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["main","program","Command","name","description","version","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","allowUnknownOption","argument","toolOption","args","globalOptions","opts","commandOptions","mergedOptions","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('🚀 LayerZero VM tooling with intelligent version management')\n .version('1.0.0');\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 '-d, --force-docker',\n 'Force using Docker image instead of local installation',\n false,\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 // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (type === 'host' && (hostPath === undefined || hostPath === '')) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\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 .allowUnknownOption()\n .argument('[args...]', 'Arguments to pass to the tool');\n\n // Add tool-specific version options to each command as well\n tools.forEach((toolOption) => {\n const optionFlag = `--${toolOption.name}-version <version>`;\n const description = `Specify ${toolOption.name} version for this execution`;\n toolCmd.option(optionFlag, description);\n });\n\n // Add custom entrypoint option to each command\n toolCmd.option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for this tool',\n );\n\n toolCmd.action(async (args: string[]) => {\n // Get both global and command-specific options\n const globalOptions: {\n cwd?: string;\n forceDocker: boolean;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n } = program.opts();\n const commandOptions = toolCmd.opts();\n\n // Merge options, with command-specific taking precedence\n const mergedOptions = { ...globalOptions, ...commandOptions };\n\n const cwd = mergedOptions.cwd ?? process.cwd();\n\n try {\n await executeToolCommand(tool.name, args, {\n cwd,\n volumes: mergedOptions.volume,\n ...mergedOptions,\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":["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 --force-docker sui move build\\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 '-d, --force-docker',\n 'Force using Docker image instead of local installation',\n false,\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 // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (type === 'host' && (hostPath === undefined || hostPath === '')) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\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 forceDocker: boolean;\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"]}
@@ -10,7 +10,7 @@ var _5MIIPWV7_cjs = require('../5MIIPWV7.cjs');
10
10
  require('../3BKFBGX3.cjs');
11
11
  require('../XH4FQTBY.cjs');
12
12
  var VDH76SF6_cjs = require('../VDH76SF6.cjs');
13
- var _7S3N6ZPY_cjs = require('../7S3N6ZPY.cjs');
13
+ var _6FHMI4HI_cjs = require('../6FHMI4HI.cjs');
14
14
  var NX4KBEWA_cjs = require('../NX4KBEWA.cjs');
15
15
  var commander = require('commander');
16
16
  var process$1 = require('process');
@@ -1891,7 +1891,8 @@ var toolTypeWhitelist = [
1891
1891
  "aptos",
1892
1892
  "evm",
1893
1893
  "starknet",
1894
- "sui"
1894
+ "sui",
1895
+ "solana"
1895
1896
  ];
1896
1897
  var ecrClient = new ECRClient();
1897
1898
  var command = new commander.Command().name("generate-github-matrix").requiredOption("--registry <registry>").parse();
@@ -1931,7 +1932,7 @@ var compileVersionMatrix = /* @__PURE__ */ NX4KBEWA_cjs.__name(async ({ toolType
1931
1932
  })).filter(({ tags }) => !tags.some((tag) => existingTags.has(tag.split(":").at(-1))));
1932
1933
  }, "compileVersionMatrix");
1933
1934
  var main = /* @__PURE__ */ NX4KBEWA_cjs.__name(async () => {
1934
- const entries = (await Promise.all(_7S3N6ZPY_cjs.versionMatrices.filter(({ toolType }) => toolTypeWhitelist.includes(toolType)).map(compileVersionMatrix))).flat();
1935
+ const entries = (await Promise.all(_6FHMI4HI_cjs.versionMatrices.filter(({ toolType }) => toolTypeWhitelist.includes(toolType)).map(compileVersionMatrix))).flat();
1935
1936
  console.error("GitHub Action matrix generated:", entries);
1936
1937
  process$1.stdout.write(JSON.stringify({
1937
1938
  toolchain: entries