@layerzerolabs/vm-tooling 0.0.64 → 0.0.65

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 (70) hide show
  1. package/dist/{5KWSCPAS.cjs → 22KWM667.cjs} +12 -12
  2. package/dist/{5KWSCPAS.cjs.map → 22KWM667.cjs.map} +1 -1
  3. package/dist/{KNTO2HQA.js → 6YQKZHZ5.js} +25 -4
  4. package/dist/6YQKZHZ5.js.map +1 -0
  5. package/dist/{YNCUAY7W.cjs → 7PSRMQMS.cjs} +9 -9
  6. package/dist/{YNCUAY7W.cjs.map → 7PSRMQMS.cjs.map} +1 -1
  7. package/dist/{YPULSRCT.cjs → BG3MG6IF.cjs} +15 -15
  8. package/dist/{YPULSRCT.cjs.map → BG3MG6IF.cjs.map} +1 -1
  9. package/dist/{NX66I36H.js → DN5VBC3L.js} +17 -20
  10. package/dist/DN5VBC3L.js.map +1 -0
  11. package/dist/{ODBAKZ5L.cjs → ER722VGO.cjs} +14 -14
  12. package/dist/{ODBAKZ5L.cjs.map → ER722VGO.cjs.map} +1 -1
  13. package/dist/{W6FCPNQL.cjs → GERMNIDG.cjs} +26 -5
  14. package/dist/GERMNIDG.cjs.map +1 -0
  15. package/dist/{KHTL7IGX.js → JZHAF3IW.js} +5 -5
  16. package/dist/{KHTL7IGX.js.map → JZHAF3IW.js.map} +1 -1
  17. package/dist/{DWQZSSBG.js → KFXJIHI6.js} +3 -3
  18. package/dist/{DWQZSSBG.js.map → KFXJIHI6.js.map} +1 -1
  19. package/dist/{SWSAP2TA.cjs → KPYTMXHJ.cjs} +4 -4
  20. package/dist/{SWSAP2TA.cjs.map → KPYTMXHJ.cjs.map} +1 -1
  21. package/dist/{JLKKDVCL.cjs → Q3ORCLJH.cjs} +17 -20
  22. package/dist/Q3ORCLJH.cjs.map +1 -0
  23. package/dist/{QGMMPVDI.js → QPWLW7SN.js} +4 -4
  24. package/dist/{QGMMPVDI.js.map → QPWLW7SN.js.map} +1 -1
  25. package/dist/{OMGIMF55.js → R2U2WXP4.js} +4 -4
  26. package/dist/{OMGIMF55.js.map → R2U2WXP4.js.map} +1 -1
  27. package/dist/{CD3U3DU7.js → XYNAO6GV.js} +4 -4
  28. package/dist/{CD3U3DU7.js.map → XYNAO6GV.js.map} +1 -1
  29. package/dist/commands/sui/build.cjs +6 -6
  30. package/dist/commands/sui/build.js +5 -5
  31. package/dist/commands/sui/index.cjs +6 -6
  32. package/dist/commands/sui/index.js +5 -5
  33. package/dist/config/index.cjs +8 -8
  34. package/dist/config/index.js +2 -2
  35. package/dist/config/tools.cjs +4 -4
  36. package/dist/config/tools.d.ts.map +1 -1
  37. package/dist/config/tools.js +2 -2
  38. package/dist/config/version-matrices.cjs +2 -2
  39. package/dist/config/version-matrices.js +1 -1
  40. package/dist/core/index.cjs +8 -8
  41. package/dist/core/index.js +4 -4
  42. package/dist/core/tool-executor.cjs +5 -5
  43. package/dist/core/tool-executor.js +4 -4
  44. package/dist/core/version-resolver.cjs +6 -6
  45. package/dist/core/version-resolver.js +3 -3
  46. package/dist/display/formatters.cjs +4 -4
  47. package/dist/display/formatters.js +3 -3
  48. package/dist/display/index.cjs +7 -7
  49. package/dist/display/index.js +4 -4
  50. package/dist/display/version-display.cjs +6 -6
  51. package/dist/display/version-display.js +4 -4
  52. package/dist/index.cjs +15 -15
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.js +7 -7
  55. package/dist/index.js.map +1 -1
  56. package/dist/scripts/generate-github-matrix.cjs +6 -6
  57. package/dist/scripts/generate-github-matrix.js +2 -2
  58. package/dist/utils/docker.cjs +4 -4
  59. package/dist/utils/docker.js +2 -2
  60. package/dist/utils/finder.cjs +11 -11
  61. package/dist/utils/finder.js +2 -2
  62. package/dist/utils/version.cjs +6 -6
  63. package/dist/utils/version.js +2 -2
  64. package/dist/utils.cjs +5 -5
  65. package/dist/utils.js +2 -2
  66. package/package.json +5 -5
  67. package/dist/JLKKDVCL.cjs.map +0 -1
  68. package/dist/KNTO2HQA.js.map +0 -1
  69. package/dist/NX66I36H.js.map +0 -1
  70. package/dist/W6FCPNQL.cjs.map +0 -1
@@ -1 +1 @@
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","extra","buildTypescriptSdk","options","build","parseAsync","main","__name","error","console","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 * as starknet from './commands/starknet';\nimport * as sui from './commands/sui';\nimport { tools } from './config';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport type { EnvironmentVariable, VolumeMapping } from './types';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n customEntrypoint?: string;\n}\n\nasync function run(): Promise<void> {\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations();\n return;\n }\n\n // Add global options\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, previous: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n if (name === '' || valueParts.length === 0) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n const value = valueParts.join('='); // Handle values that contain '='\n previous.push({ name, value } satisfies EnvironmentVariable);\n return previous;\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, previous: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n if (type !== 'host' && type !== 'isolate') {\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (type === 'host' && (hostPath === undefined || hostPath === '')) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n\n if (containerPath === undefined || containerPath === '') {\n throw new Error(`Container path is required`);\n }\n previous.push({ type, hostPath, containerPath, name } satisfies VolumeMapping);\n return previous;\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host\",\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const optionFlag = `--${tool.name}-version <version>`;\n const defaultVersion = getToolDefaultVersion(tool.name);\n const supportedVersions = getToolSupportedVersions(tool.name);\n const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`;\n\n program.option(optionFlag, description);\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(toolName));\n\n // Dynamically add commands for each supported tool\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n // Get global options (specified before the subcommand)\n const globalOptions = program.opts<GlobalOptions>();\n\n await executeToolCommand(tool.name, args, {\n cwd: globalOptions.cwd ?? process.cwd(),\n volumes: globalOptions.volume,\n ...globalOptions,\n });\n });\n }\n\n const extra = program.command('extra').description('Extra commands for VM tooling');\n\n extra\n .command('starknet')\n .command('build-typescript-sdk')\n .description('Generate TypeScript SDK for Starknet')\n .argument('<package-name>', 'Scarb package name')\n .argument('<target-directory>', 'Scarb target directory')\n .argument('<src-directory>', 'TypeScript source directory')\n .action(starknet.buildTypescriptSdk);\n\n extra\n .command('sui')\n .command('build')\n .description('Build Sui contracts with shared dependency and configuration Docker volumes')\n .argument('[args...]', 'Arguments to pass to `sui move build` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action(async (args: string[]) => {\n const options = program.opts<GlobalOptions>();\n\n await sui.build(args, {\n ...options,\n cwd: options.cwd ?? process.cwd(),\n volumes: options.volume,\n });\n });\n\n await program.parseAsync();\n}\n\nexport const main = async (): Promise<void> => {\n try {\n await run();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["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","extra","buildTypescriptSdk","options","build","parseAsync","main","__name","error","console","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 * as starknet from './commands/starknet';\nimport * as sui from './commands/sui';\nimport { tools } from './config';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport type { EnvironmentVariable, VolumeMapping } from './types';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n customEntrypoint?: string;\n}\n\nasync function run(): Promise<void> {\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations();\n return;\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, previous: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n if (name === '' || valueParts.length === 0) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n const value = valueParts.join('='); // Handle values that contain '='\n previous.push({ name, value } satisfies EnvironmentVariable);\n return previous;\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, previous: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n if (type !== 'host' && type !== 'isolate') {\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (type === 'host' && (hostPath === undefined || hostPath === '')) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n\n if (containerPath === undefined || containerPath === '') {\n throw new Error(`Container path is required`);\n }\n previous.push({ type, hostPath, containerPath, name } satisfies VolumeMapping);\n return previous;\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host\",\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const optionFlag = `--${tool.name}-version <version>`;\n const defaultVersion = getToolDefaultVersion(tool.name);\n const supportedVersions = getToolSupportedVersions(tool.name);\n const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`;\n\n program.option(optionFlag, description);\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(toolName));\n\n // Dynamically add commands for each supported tool\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n // Get global options (specified before the subcommand)\n const globalOptions = program.opts<GlobalOptions>();\n\n await executeToolCommand(tool.name, args, {\n cwd: globalOptions.cwd ?? process.cwd(),\n volumes: globalOptions.volume,\n ...globalOptions,\n });\n });\n }\n\n const extra = program.command('extra').description('Extra commands for VM tooling');\n\n extra\n .command('starknet')\n .command('build-typescript-sdk')\n .description('Generate TypeScript SDK for Starknet')\n .argument('<package-name>', 'Scarb package name')\n .argument('<target-directory>', 'Scarb target directory')\n .argument('<src-directory>', 'TypeScript source directory')\n .action(starknet.buildTypescriptSdk);\n\n extra\n .command('sui')\n .command('build')\n .description('Build Sui contracts with shared dependency and configuration Docker volumes')\n .argument('[args...]', 'Arguments to pass to `sui move build` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action(async (args: string[]) => {\n const options = program.opts<GlobalOptions>();\n\n await sui.build(args, {\n ...options,\n cwd: options.cwd ?? process.cwd(),\n volumes: options.volume,\n });\n });\n\n await program.parseAsync();\n}\n\nexport const main = async (): Promise<void> => {\n try {\n await run();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import './M4PGJV5D.js';
2
2
  import './3H446V2K.js';
3
- import { build } from './OMGIMF55.js';
3
+ import { build } from './R2U2WXP4.js';
4
4
  import { buildTypescriptSdk } from './MMIV5S36.js';
5
5
  import './7BFNUKIW.js';
6
- import { displayVersionCombinations, displayToolVersionInfo } from './KHTL7IGX.js';
7
- import './DWQZSSBG.js';
6
+ import { displayVersionCombinations, displayToolVersionInfo } from './JZHAF3IW.js';
7
+ import './KFXJIHI6.js';
8
8
  import './OAO7CCJW.js';
9
- import { executeToolCommand } from './QGMMPVDI.js';
9
+ import { executeToolCommand } from './QPWLW7SN.js';
10
10
  import './IWNVWC3I.js';
11
- import './CD3U3DU7.js';
12
- import { tools, getToolDefaultVersion, getToolSupportedVersions } from './KNTO2HQA.js';
13
- import './NX66I36H.js';
11
+ import './XYNAO6GV.js';
12
+ import { tools, getToolDefaultVersion, getToolSupportedVersions } from './6YQKZHZ5.js';
13
+ import './DN5VBC3L.js';
14
14
  import './PWDCAN6N.js';
15
15
  import './3PEVFTZ5.js';
16
16
  import { init_esm_shims, __name } from './4RNWLMHM.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["run","program","Command","name","description","version","enablePositionalOptions","process","argv","includes","displayVersionCombinations","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","previous","valueParts","split","length","value","join","push","type","hostPath","containerPath","undefined","tool","tools","optionFlag","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","command","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","globalOptions","opts","executeToolCommand","cwd","volumes","volume","extra","buildTypescriptSdk","options","build","parseAsync","main","error","console","exit"],"mappings":"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","file":"index.js","sourcesContent":["import { Command } from 'commander';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport * as starknet from './commands/starknet';\nimport * as sui from './commands/sui';\nimport { tools } from './config';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport type { EnvironmentVariable, VolumeMapping } from './types';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n customEntrypoint?: string;\n}\n\nasync function run(): Promise<void> {\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations();\n return;\n }\n\n // Add global options\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, previous: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n if (name === '' || valueParts.length === 0) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n const value = valueParts.join('='); // Handle values that contain '='\n previous.push({ name, value } satisfies EnvironmentVariable);\n return previous;\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, previous: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n if (type !== 'host' && type !== 'isolate') {\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (type === 'host' && (hostPath === undefined || hostPath === '')) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n\n if (containerPath === undefined || containerPath === '') {\n throw new Error(`Container path is required`);\n }\n previous.push({ type, hostPath, containerPath, name } satisfies VolumeMapping);\n return previous;\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host\",\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const optionFlag = `--${tool.name}-version <version>`;\n const defaultVersion = getToolDefaultVersion(tool.name);\n const supportedVersions = getToolSupportedVersions(tool.name);\n const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`;\n\n program.option(optionFlag, description);\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(toolName));\n\n // Dynamically add commands for each supported tool\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n // Get global options (specified before the subcommand)\n const globalOptions = program.opts<GlobalOptions>();\n\n await executeToolCommand(tool.name, args, {\n cwd: globalOptions.cwd ?? process.cwd(),\n volumes: globalOptions.volume,\n ...globalOptions,\n });\n });\n }\n\n const extra = program.command('extra').description('Extra commands for VM tooling');\n\n extra\n .command('starknet')\n .command('build-typescript-sdk')\n .description('Generate TypeScript SDK for Starknet')\n .argument('<package-name>', 'Scarb package name')\n .argument('<target-directory>', 'Scarb target directory')\n .argument('<src-directory>', 'TypeScript source directory')\n .action(starknet.buildTypescriptSdk);\n\n extra\n .command('sui')\n .command('build')\n .description('Build Sui contracts with shared dependency and configuration Docker volumes')\n .argument('[args...]', 'Arguments to pass to `sui move build` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action(async (args: string[]) => {\n const options = program.opts<GlobalOptions>();\n\n await sui.build(args, {\n ...options,\n cwd: options.cwd ?? process.cwd(),\n volumes: options.volume,\n });\n });\n\n await program.parseAsync();\n}\n\nexport const main = async (): Promise<void> => {\n try {\n await run();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["run","program","Command","name","description","version","enablePositionalOptions","process","argv","includes","displayVersionCombinations","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","previous","valueParts","split","length","value","join","push","type","hostPath","containerPath","undefined","tool","tools","optionFlag","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","command","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","globalOptions","opts","executeToolCommand","cwd","volumes","volume","extra","buildTypescriptSdk","options","build","parseAsync","main","error","console","exit"],"mappings":"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","file":"index.js","sourcesContent":["import { Command } from 'commander';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport * as starknet from './commands/starknet';\nimport * as sui from './commands/sui';\nimport { tools } from './config';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport type { EnvironmentVariable, VolumeMapping } from './types';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n script?: string;\n customEntrypoint?: string;\n}\n\nasync function run(): Promise<void> {\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations();\n return;\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, previous: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n if (name === '' || valueParts.length === 0) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n const value = valueParts.join('='); // Handle values that contain '='\n previous.push({ name, value } satisfies EnvironmentVariable);\n return previous;\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, previous: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n if (type !== 'host' && type !== 'isolate') {\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (type === 'host' && (hostPath === undefined || hostPath === '')) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n\n if (containerPath === undefined || containerPath === '') {\n throw new Error(`Container path is required`);\n }\n previous.push({ type, hostPath, containerPath, name } satisfies VolumeMapping);\n return previous;\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host\",\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const optionFlag = `--${tool.name}-version <version>`;\n const defaultVersion = getToolDefaultVersion(tool.name);\n const supportedVersions = getToolSupportedVersions(tool.name);\n const description = `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`;\n\n program.option(optionFlag, description);\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(toolName));\n\n // Dynamically add commands for each supported tool\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n // Get global options (specified before the subcommand)\n const globalOptions = program.opts<GlobalOptions>();\n\n await executeToolCommand(tool.name, args, {\n cwd: globalOptions.cwd ?? process.cwd(),\n volumes: globalOptions.volume,\n ...globalOptions,\n });\n });\n }\n\n const extra = program.command('extra').description('Extra commands for VM tooling');\n\n extra\n .command('starknet')\n .command('build-typescript-sdk')\n .description('Generate TypeScript SDK for Starknet')\n .argument('<package-name>', 'Scarb package name')\n .argument('<target-directory>', 'Scarb target directory')\n .argument('<src-directory>', 'TypeScript source directory')\n .action(starknet.buildTypescriptSdk);\n\n extra\n .command('sui')\n .command('build')\n .description('Build Sui contracts with shared dependency and configuration Docker volumes')\n .argument('[args...]', 'Arguments to pass to `sui move build` command')\n .passThroughOptions(true)\n .allowUnknownOption()\n .action(async (args: string[]) => {\n const options = program.opts<GlobalOptions>();\n\n await sui.build(args, {\n ...options,\n cwd: options.cwd ?? process.cwd(),\n volumes: options.volume,\n });\n });\n\n await program.parseAsync();\n}\n\nexport const main = async (): Promise<void> => {\n try {\n await run();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
@@ -10,8 +10,8 @@ var OWTMHDOF_cjs = require('../OWTMHDOF.cjs');
10
10
  require('../7WVEMAKW.cjs');
11
11
  require('../WDSPHVPJ.cjs');
12
12
  var JGLHYXTW_cjs = require('../JGLHYXTW.cjs');
13
- var W6FCPNQL_cjs = require('../W6FCPNQL.cjs');
14
- var JLKKDVCL_cjs = require('../JLKKDVCL.cjs');
13
+ var GERMNIDG_cjs = require('../GERMNIDG.cjs');
14
+ var Q3ORCLJH_cjs = require('../Q3ORCLJH.cjs');
15
15
  var U7VZULNU_cjs = require('../U7VZULNU.cjs');
16
16
  var commander = require('commander');
17
17
  var path = require('path');
@@ -1927,7 +1927,7 @@ var ecrClient = new ECRClient();
1927
1927
  var command = new commander.Command().name("generate-github-matrix").requiredOption("--registry <registry>").parse();
1928
1928
  var { registry } = command.opts();
1929
1929
  var compileVersionCombinations = /* @__PURE__ */ U7VZULNU_cjs.__name(async (chainType, combinations) => {
1930
- const repository = path.join(W6FCPNQL_cjs.ECR_IMAGE_DIRECTORY, W6FCPNQL_cjs.getImageNameForType(chainType));
1930
+ const repository = path.join(GERMNIDG_cjs.ECR_IMAGE_DIRECTORY, GERMNIDG_cjs.getImageNameForType(chainType));
1931
1931
  let existingTags = /* @__PURE__ */ new Set();
1932
1932
  try {
1933
1933
  const imageIds = [];
@@ -1956,13 +1956,13 @@ var compileVersionCombinations = /* @__PURE__ */ U7VZULNU_cjs.__name(async (chai
1956
1956
  return combinations.map((combination) => ({
1957
1957
  name: chainType,
1958
1958
  build_args: Object.entries(combination.versions).sort().map(([key, value]) => `${key.toUpperCase()}_VERSION=${value}`),
1959
- directory: path.join("tools/vm-tooling/docker", W6FCPNQL_cjs.getImageBasenameForType(chainType)),
1959
+ directory: path.join("tools/vm-tooling/docker", GERMNIDG_cjs.getImageBasenameForType(chainType)),
1960
1960
  repository,
1961
- tags: tagSeparators.map((separator) => `${registry}/${repository}:${W6FCPNQL_cjs.getImageTag(combination, separator)}`)
1961
+ tags: tagSeparators.map((separator) => `${registry}/${repository}:${GERMNIDG_cjs.getImageTag(combination, separator)}`)
1962
1962
  })).filter(({ tags }) => !tags.some((tag) => existingTags.has(tag.split(":").at(-1))));
1963
1963
  }, "compileVersionCombinations");
1964
1964
  var main = /* @__PURE__ */ U7VZULNU_cjs.__name(async () => {
1965
- const entries = (await Promise.all(Object.entries(JLKKDVCL_cjs.versionMatrices).map(([chainType, combinations]) => compileVersionCombinations(chainType, combinations)))).flat();
1965
+ const entries = (await Promise.all(Object.entries(Q3ORCLJH_cjs.versionMatrices).map(([chainType, combinations]) => compileVersionCombinations(chainType, combinations)))).flat();
1966
1966
  console.error("GitHub Action matrix generated:", entries);
1967
1967
  process$1.stdout.write(JSON.stringify(entries));
1968
1968
  }, "main");
@@ -8,8 +8,8 @@ import { toUtf8, fromUtf8 } from '../LMCIXUBF.js';
8
8
  import '../NDUVZQ7S.js';
9
9
  import '../OH4A2VLX.js';
10
10
  import { memoize, chain, CredentialsProviderError } from '../TTKDG2NN.js';
11
- import { ECR_IMAGE_DIRECTORY, getImageNameForType, getImageTag, getImageBasenameForType } from '../KNTO2HQA.js';
12
- import { versionMatrices } from '../NX66I36H.js';
11
+ import { ECR_IMAGE_DIRECTORY, getImageNameForType, getImageTag, getImageBasenameForType } from '../6YQKZHZ5.js';
12
+ import { versionMatrices } from '../DN5VBC3L.js';
13
13
  import { init_esm_shims, __name } from '../4RNWLMHM.js';
14
14
  import { Command as Command$1 } from 'commander';
15
15
  import { join } from 'node:path';
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
 
3
- var W6FCPNQL_cjs = require('../W6FCPNQL.cjs');
4
- require('../JLKKDVCL.cjs');
3
+ var GERMNIDG_cjs = require('../GERMNIDG.cjs');
4
+ require('../Q3ORCLJH.cjs');
5
5
  require('../U7VZULNU.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "getImageTag", {
10
10
  enumerable: true,
11
- get: function () { return W6FCPNQL_cjs.getImageTag; }
11
+ get: function () { return GERMNIDG_cjs.getImageTag; }
12
12
  });
13
13
  Object.defineProperty(exports, "getImageURI", {
14
14
  enumerable: true,
15
- get: function () { return W6FCPNQL_cjs.getImageURI; }
15
+ get: function () { return GERMNIDG_cjs.getImageURI; }
16
16
  });
17
17
  //# sourceMappingURL=docker.cjs.map
18
18
  //# sourceMappingURL=docker.cjs.map
@@ -1,5 +1,5 @@
1
- export { getImageTag, getImageURI } from '../KNTO2HQA.js';
2
- import '../NX66I36H.js';
1
+ export { getImageTag, getImageURI } from '../6YQKZHZ5.js';
2
+ import '../DN5VBC3L.js';
3
3
  import '../4RNWLMHM.js';
4
4
  //# sourceMappingURL=docker.js.map
5
5
  //# sourceMappingURL=docker.js.map
@@ -1,46 +1,46 @@
1
1
  'use strict';
2
2
 
3
- var W6FCPNQL_cjs = require('../W6FCPNQL.cjs');
4
- require('../JLKKDVCL.cjs');
3
+ var GERMNIDG_cjs = require('../GERMNIDG.cjs');
4
+ require('../Q3ORCLJH.cjs');
5
5
  require('../U7VZULNU.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "findMatrixForTool", {
10
10
  enumerable: true,
11
- get: function () { return W6FCPNQL_cjs.findMatrixForTool; }
11
+ get: function () { return GERMNIDG_cjs.findMatrixForTool; }
12
12
  });
13
13
  Object.defineProperty(exports, "findToolByName", {
14
14
  enumerable: true,
15
- get: function () { return W6FCPNQL_cjs.findToolByName; }
15
+ get: function () { return GERMNIDG_cjs.findToolByName; }
16
16
  });
17
17
  Object.defineProperty(exports, "findToolsByType", {
18
18
  enumerable: true,
19
- get: function () { return W6FCPNQL_cjs.findToolsByType; }
19
+ get: function () { return GERMNIDG_cjs.findToolsByType; }
20
20
  });
21
21
  Object.defineProperty(exports, "getChainTypeForTool", {
22
22
  enumerable: true,
23
- get: function () { return W6FCPNQL_cjs.getChainTypeForTool; }
23
+ get: function () { return GERMNIDG_cjs.getChainTypeForTool; }
24
24
  });
25
25
  Object.defineProperty(exports, "getImageBasenameForType", {
26
26
  enumerable: true,
27
- get: function () { return W6FCPNQL_cjs.getImageBasenameForType; }
27
+ get: function () { return GERMNIDG_cjs.getImageBasenameForType; }
28
28
  });
29
29
  Object.defineProperty(exports, "getImageNameForTool", {
30
30
  enumerable: true,
31
- get: function () { return W6FCPNQL_cjs.getImageNameForTool; }
31
+ get: function () { return GERMNIDG_cjs.getImageNameForTool; }
32
32
  });
33
33
  Object.defineProperty(exports, "getImageNameForType", {
34
34
  enumerable: true,
35
- get: function () { return W6FCPNQL_cjs.getImageNameForType; }
35
+ get: function () { return GERMNIDG_cjs.getImageNameForType; }
36
36
  });
37
37
  Object.defineProperty(exports, "getToolDefaultVersion", {
38
38
  enumerable: true,
39
- get: function () { return W6FCPNQL_cjs.getToolDefaultVersion; }
39
+ get: function () { return GERMNIDG_cjs.getToolDefaultVersion; }
40
40
  });
41
41
  Object.defineProperty(exports, "getToolSupportedVersions", {
42
42
  enumerable: true,
43
- get: function () { return W6FCPNQL_cjs.getToolSupportedVersions; }
43
+ get: function () { return GERMNIDG_cjs.getToolSupportedVersions; }
44
44
  });
45
45
  //# sourceMappingURL=finder.cjs.map
46
46
  //# sourceMappingURL=finder.cjs.map
@@ -1,5 +1,5 @@
1
- export { findMatrixForTool, findToolByName, findToolsByType, getChainTypeForTool, getImageBasenameForType, getImageNameForTool, getImageNameForType, getToolDefaultVersion, getToolSupportedVersions } from '../KNTO2HQA.js';
2
- import '../NX66I36H.js';
1
+ export { findMatrixForTool, findToolByName, findToolsByType, getChainTypeForTool, getImageBasenameForType, getImageNameForTool, getImageNameForType, getToolDefaultVersion, getToolSupportedVersions } from '../6YQKZHZ5.js';
2
+ import '../DN5VBC3L.js';
3
3
  import '../4RNWLMHM.js';
4
4
  //# sourceMappingURL=finder.js.map
5
5
  //# sourceMappingURL=finder.js.map
@@ -1,26 +1,26 @@
1
1
  'use strict';
2
2
 
3
- var W6FCPNQL_cjs = require('../W6FCPNQL.cjs');
4
- require('../JLKKDVCL.cjs');
3
+ var GERMNIDG_cjs = require('../GERMNIDG.cjs');
4
+ require('../Q3ORCLJH.cjs');
5
5
  require('../U7VZULNU.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "findSemVersionFromString", {
10
10
  enumerable: true,
11
- get: function () { return W6FCPNQL_cjs.findSemVersionFromString; }
11
+ get: function () { return GERMNIDG_cjs.findSemVersionFromString; }
12
12
  });
13
13
  Object.defineProperty(exports, "parseAnchorTomlVersion", {
14
14
  enumerable: true,
15
- get: function () { return W6FCPNQL_cjs.parseAnchorTomlVersion; }
15
+ get: function () { return GERMNIDG_cjs.parseAnchorTomlVersion; }
16
16
  });
17
17
  Object.defineProperty(exports, "validateToolVersion", {
18
18
  enumerable: true,
19
- get: function () { return W6FCPNQL_cjs.validateToolVersion; }
19
+ get: function () { return GERMNIDG_cjs.validateToolVersion; }
20
20
  });
21
21
  Object.defineProperty(exports, "versionsSatisfied", {
22
22
  enumerable: true,
23
- get: function () { return W6FCPNQL_cjs.versionsSatisfied; }
23
+ get: function () { return GERMNIDG_cjs.versionsSatisfied; }
24
24
  });
25
25
  //# sourceMappingURL=version.cjs.map
26
26
  //# sourceMappingURL=version.cjs.map
@@ -1,5 +1,5 @@
1
- export { findSemVersionFromString, parseAnchorTomlVersion, validateToolVersion, versionsSatisfied } from '../KNTO2HQA.js';
2
- import '../NX66I36H.js';
1
+ export { findSemVersionFromString, parseAnchorTomlVersion, validateToolVersion, versionsSatisfied } from '../6YQKZHZ5.js';
2
+ import '../DN5VBC3L.js';
3
3
  import '../4RNWLMHM.js';
4
4
  //# sourceMappingURL=version.js.map
5
5
  //# sourceMappingURL=version.js.map
package/dist/utils.cjs CHANGED
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
 
3
- var W6FCPNQL_cjs = require('./W6FCPNQL.cjs');
4
- require('./JLKKDVCL.cjs');
3
+ var GERMNIDG_cjs = require('./GERMNIDG.cjs');
4
+ require('./Q3ORCLJH.cjs');
5
5
  require('./U7VZULNU.cjs');
6
6
 
7
7
 
8
8
 
9
9
  Object.defineProperty(exports, "findParentDirectoryWithFile", {
10
10
  enumerable: true,
11
- get: function () { return W6FCPNQL_cjs.findParentDirectoryWithFile; }
11
+ get: function () { return GERMNIDG_cjs.findParentDirectoryWithFile; }
12
12
  });
13
13
  Object.defineProperty(exports, "getCombinationId", {
14
14
  enumerable: true,
15
- get: function () { return W6FCPNQL_cjs.getCombinationId; }
15
+ get: function () { return GERMNIDG_cjs.getCombinationId; }
16
16
  });
17
17
  Object.defineProperty(exports, "parseVersionFileContents", {
18
18
  enumerable: true,
19
- get: function () { return W6FCPNQL_cjs.parseVersionFileContents; }
19
+ get: function () { return GERMNIDG_cjs.parseVersionFileContents; }
20
20
  });
21
21
  //# sourceMappingURL=utils.cjs.map
22
22
  //# sourceMappingURL=utils.cjs.map
package/dist/utils.js CHANGED
@@ -1,5 +1,5 @@
1
- export { findParentDirectoryWithFile, getCombinationId, parseVersionFileContents } from './KNTO2HQA.js';
2
- import './NX66I36H.js';
1
+ export { findParentDirectoryWithFile, getCombinationId, parseVersionFileContents } from './6YQKZHZ5.js';
2
+ import './DN5VBC3L.js';
3
3
  import './4RNWLMHM.js';
4
4
  //# sourceMappingURL=utils.js.map
5
5
  //# sourceMappingURL=utils.js.map
package/package.json CHANGED
@@ -26,8 +26,8 @@
26
26
  "semver": "^7.5.4",
27
27
  "zod": "3.25.56",
28
28
  "zx": "^8.1.3",
29
- "@layerzerolabs/common-node-utils": "0.0.64",
30
- "@layerzerolabs/layerzero-definitions": "0.0.64"
29
+ "@layerzerolabs/common-node-utils": "0.0.65",
30
+ "@layerzerolabs/layerzero-definitions": "0.0.65"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@aws-sdk/client-ecr": "3.879.0",
@@ -40,14 +40,14 @@
40
40
  "tsx": "^4.19.3",
41
41
  "typescript": "^5.8.2",
42
42
  "vitest": "^3.2.3",
43
- "@layerzerolabs/tsup-configuration": "0.0.64",
44
- "@layerzerolabs/typescript-configuration": "0.0.64"
43
+ "@layerzerolabs/typescript-configuration": "0.0.65",
44
+ "@layerzerolabs/tsup-configuration": "0.0.65"
45
45
  },
46
46
  "publishConfig": {
47
47
  "access": "restricted",
48
48
  "registry": "https://registry.npmjs.org/"
49
49
  },
50
- "version": "0.0.64",
50
+ "version": "0.0.65",
51
51
  "scripts": {
52
52
  "prebuild": "chmod +x bin/lz-tool.js",
53
53
  "build": "tsup",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/config/version-matrices.ts"],"names":["init_cjs_shims","versionMatrices","ChainType","EVM","versions","forge","hardhat","patch","stable","SOLANA","solana","anchor","description","APTOSMOVE","aptos","initiad","movement","TON","blueprint","STARKNET","scarb","SUIMOVE","sui","STELLAR","stellar"],"mappings":";;;;;;AAAAA,2BAAA,EAAA;AAQO,IAAMC,eAAAA,GAAoF;EAC7F,CAACC,8BAAAA,CAAUC,GAAG,GAAG;AACb,IAAA;MACIC,QAAAA,EAAU;QAAEC,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAS,OAAA;MAC9CC,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEC,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAS;AAClD,KAAA;AACA,IAAA;;MAEIF,QAAAA,EAAU;QAAEE,OAAAA,EAAS;AAAS;AAClC;;EAEJ,CAACJ,8BAAAA,CAAUO,MAAM,GAAG;AAChB,IAAA;;MAEIL,QAAAA,EAAU;QAAEM,MAAAA,EAAQ,SAAA;QAAWC,MAAAA,EAAQ;AAAS,OAAA;MAChDC,WAAAA,EAAa,wBAAA;MACbJ,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEM,MAAAA,EAAQ,QAAA;QAAUC,MAAAA,EAAQ;AAAS,OAAA;MAC/CC,WAAAA,EAAa;AACjB;;EAEJ,CAACV,8BAAAA,CAAUW,SAAS,GAAG;AACnB,IAAA;MACIT,QAAAA,EAAU;QAAEU,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAQ,OAAA;MAC7CP,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEU,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS,OAAA;QAASC,QAAAA,EAAU;AAAQ;AACpE,KAAA;AACA,IAAA;MACIZ,QAAAA,EAAU;QAAEU,KAAAA,EAAO;AAAQ;AAC/B,KAAA;AACA,IAAA;;MAEIV,QAAAA,EAAU;QAAEU,KAAAA,EAAO;AAAQ;AAC/B;;EAEJ,CAACZ,8BAAAA,CAAUe,GAAG,GAAG;AACb,IAAA;;;;;MAKIb,QAAAA,EAAU;QAAEc,SAAAA,EAAW;AAAgB,OAAA;MACvCX,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ;;EAEJ,CAACN,8BAAAA,CAAUiB,QAAQ,GAAG;AAClB,IAAA;MACIf,QAAAA,EAAU;QAAEgB,KAAAA,EAAO;AAAS,OAAA;MAC5Bb,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEgB,KAAAA,EAAO;AAAS,OAAA;MAC5Bb,KAAAA,EAAO;AACX;;EAEJ,CAACL,8BAAAA,CAAUmB,OAAO,GAAG;AACjB,IAAA;;MAEIjB,QAAAA,EAAU;QAAEkB,GAAAA,EAAK;AAAgB,OAAA;MACjCd,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;;MAEIJ,QAAAA,EAAU;QAAEkB,GAAAA,EAAK;AAAS,OAAA;MAC1Bf,KAAAA,EAAO;AACX;;EAEJ,CAACL,8BAAAA,CAAUqB,OAAO,GAAG;AACjB,IAAA;MACInB,QAAAA,EAAU;QAAEoB,OAAAA,EAAS;AAAS,OAAA;MAC9BZ,WAAAA,EAAa,mCAAA;MACbJ,MAAAA,EAAQ;AACZ;;AAER","file":"JLKKDVCL.cjs","sourcesContent":["import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport type { VersionCombination } from '../types';\n\n/**\n * Version compatibility matrices for each tool type\n * Default combination is the first one marked as isRecommended=true\n */\nexport const versionMatrices: Record<ChainType, [VersionCombination, ...VersionCombination[]]> = {\n [ChainType.EVM]: [\n {\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n patch: 1,\n stable: true,\n },\n {\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n },\n {\n // Built in the old `monorepo` repository.\n versions: { hardhat: '2.19.3' },\n },\n ],\n [ChainType.SOLANA]: [\n {\n // Built in the old `monorepo` repository.\n versions: { solana: '1.17.31', anchor: '0.29.0' },\n description: 'Stable and well-tested',\n stable: true,\n },\n {\n versions: { solana: '2.2.20', anchor: '0.31.1' },\n description: 'Latest stable release',\n },\n ],\n [ChainType.APTOSMOVE]: [\n {\n versions: { aptos: '4.7.0', initiad: '0.6.3' },\n stable: true,\n },\n {\n versions: { aptos: '4.7.0', initiad: '0.6.3', movement: '3.5.0' },\n },\n {\n versions: { aptos: '4.7.0' },\n },\n {\n // Built in the old `monorepo` repository.\n versions: { aptos: '4.6.0' },\n },\n ],\n [ChainType.TON]: [\n {\n // In TON's offchain SDK, we derive contract addresses dynamically from their\n // bytecode and initial state even for contracts deployed already.\n // Therefore, we cannot update the compiler version even when the minor version is the same\n // since it would change the resulting bytecode and thus the contract address.\n versions: { blueprint: '0.25.0-beta.1' },\n patch: 2,\n stable: true,\n },\n ],\n [ChainType.STARKNET]: [\n {\n versions: { scarb: '2.12.0' },\n patch: 3,\n stable: true,\n },\n {\n versions: { scarb: '2.12.0' },\n patch: 4,\n },\n ],\n [ChainType.SUIMOVE]: [\n {\n // Built in the old `monorepo` repository.\n versions: { sui: '1.54.1-beta.0' },\n stable: true,\n },\n {\n // Test building from monorepo-internal\n versions: { sui: '1.54.1' },\n patch: 1,\n },\n ],\n [ChainType.STELLAR]: [\n {\n versions: { stellar: '23.1.4' },\n description: 'Latest stable Stellar CLI release',\n stable: true,\n },\n ],\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/config/index.ts","../src/config/tools.ts","../src/utils/version.ts","../src/utils.ts","../src/utils/docker.ts","../src/utils/finder.ts"],"names":["findToolByName","toolName","tool","tools","find","name","Error","findToolsByType","type","filter","chainType","getChainTypeForTool","typeToImageBasename","ChainType","APTOSMOVE","SUIMOVE","getImageBasenameForType","getImageNameForType","getImageNameForTool","findMatrixForTool","combinations","Object","values","versionMatrices","some","versions","getToolDefaultVersion","version","console","warn","getToolSupportedVersions","Set","map","Boolean","sort","getImageURI","combination","join","ECR_REGISTRY","ECR_IMAGE_DIRECTORY","getImageTag","patch","separator","entries","flat","findParentDirectoryWithFile","dir","filename","cur","filePath","path","fs","existsSync","directory","file","dirname","parseVersionFileContents","out","found","contents","readFileSync","parsed","dotenvParse","getCombinationId","versionsSatisfied","current","expected","satisfies","parseAnchorTomlVersion","cwd","projectFolder","toml","test","match","exec","matchedName","findSemVersionFromString","input","length","validateToolVersion","supportedVersions","includes","solanaDefaultVolumes","containerPath","suiDefaultVolumes","shared","EVM","defaultVolumes","SOLANA","privileged","getSecondaryVersionCheckValue","TON","STARKNET","STELLAR","locked","AWS_ACCOUNT_ID","AWS_REGION"],"mappings":";;;;;;;;;;AAAA,cAAA,EAAA;;;ACAA,cAAA,EAAA;;;ACAA,cAAA,EAAA;;;ACAA,cAAA,EAAA;;;ACAA,cAAA,EAAA;;;ACAA,cAAA,EAAA;AAKO,IAAMA,cAAAA,2BAAkBC,QAAAA,KAAAA;AAC3B,EAAA,MAAMC,OAAOC,KAAAA,CAAMC,IAAAA,CAAK,CAACF,KAAAA,KAASA,KAAAA,CAAKG,SAASJ,QAAAA,CAAAA;AAEhD,EAAA,IAAI,CAACC,IAAAA,EAAM;AACP,IAAA,MAAM,IAAII,KAAAA,CAAM,CAAA,MAAA,EAASL,QAAAA,CAAAA,WAAAA,CAAqB,CAAA;AAClD,EAAA;AAEA,EAAA,OAAOC,IAAAA;AACX,CAAA,EAR8B,gBAAA;AAUvB,IAAMK,eAAAA,mBAAkB,MAAA,CAAA,CAACC,IAAAA,KAC5BL,KAAAA,CAAMM,MAAAA,CAAO,CAACP,IAAAA,KAASA,IAAAA,CAAKQ,SAAAA,KAAcF,IAAAA,CAAAA,EADf,iBAAA;AAGxB,IAAMG,sCAAsB,MAAA,CAAA,CAACV,QAAAA,KAChCD,cAAAA,CAAeC,QAAAA,EAAUS,SAAAA,EADM,qBAAA;AAGnC,IAAME,mBAAAA,GAA0D;EAC5D,CAACC,SAAAA,CAAUC,SAAS,GAAG,OAAA;EACvB,CAACD,SAAAA,CAAUE,OAAO,GAAG;AACzB,CAAA;AAEO,IAAMC,0CAA0B,MAAA,CAAA,CAACN,SAAAA,KACpCE,mBAAAA,CAAoBF,SAAAA,KAAcA,SAAAA,EADC,yBAAA;AAGhC,IAAMO,sCAAsB,MAAA,CAAA,CAACP,SAAAA,KAChC,GAAGM,uBAAAA,CAAwBN,SAAAA,CAAAA,CAAAA,QAAAA,CAAAA,EADI,qBAAA;AAG5B,IAAMQ,sCAAsB,MAAA,CAAA,CAACjB,QAAAA,KAChCgB,oBAAoBN,mBAAAA,CAAoBV,QAAAA,CAAAA,CAAAA,EADT,qBAAA;AAM5B,IAAMkB,iBAAAA,2BAAqBlB,QAAAA,KAAAA;AAC9B,EAAA,MAAMmB,eAAeC,MAAAA,CAAOC,MAAAA,CAAOC,eAAAA,CAAAA,CAAiBnB,KAAK,CAACgB,aAAAA,KACtDA,aAAAA,CAAaI,IAAAA,CAAK,CAAC,EAAEC,QAAAA,OAAeA,QAAAA,CAASxB,QAAAA,CAAS,CAAA,CAAA;AAG1D,EAAA,IAAI,CAACmB,YAAAA,EAAc;AACf,IAAA,MAAM,IAAId,KAAAA,CAAM,CAAA,kCAAA,EAAqCL,QAAAA,CAAAA,CAAAA,CAAW,CAAA;AACpE,EAAA;AAEA,EAAA,OAAOmB,YAAAA;AACX,CAAA,EAViC,mBAAA;AAe1B,SAASM,sBAAsBzB,QAAAA,EAAgB;AAClD,EAAA,MAAM0B,UAAUR,iBAAAA,CAAkBlB,QAAAA,EAAU,CAAA,CAAA,CAAGwB,SAASxB,QAAAA,CAAAA;AAExD,EAAA,IAAI,CAAC0B,OAAAA,EAAS;AACVC,IAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,mCAAA,EAAsC5B,QAAAA,CAAAA,WAAAA,CAAqB,CAAA;AACxE,IAAA,OAAO,IAAA;AACX,EAAA;AAEA,EAAA,OAAO0B,OAAAA;AACX;AATgBD,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA;AAcT,IAAMI,wBAAAA,2BAA4B7B,QAAAA,KACrC;AACO,EAAA,GAAA,IAAI8B,GAAAA,CACHZ,iBAAAA,CAAkBlB,QAAAA,CAAAA,CACb+B,IAAI,CAAC,EAAEP,QAAAA,EAAQ,KAAOA,SAASxB,QAAAA,CAAS,CAAA,CACxCQ,MAAAA,CAAOwB,OAAAA,CAAAA;AAElBC,CAAAA,CAAAA,IAAAA,EAAI,EAP8B,0BAAA;;;AD7DjC,IAAMC,WAAAA,mBAAc,MAAA,CAAA,CAAClC,QAAAA,EAAkB0B,OAAAA,KAAAA;AAC1C,EAAA,MAAMS,WAAAA,GAAcjB,iBAAAA,CAAkBlB,QAAAA,CAAAA,CAAUG,IAAAA,CAC5C,CAAC,EAAEqB,QAAAA,EAAQ,KAAOA,QAAAA,CAASxB,QAAAA,CAAAA,KAAc0B,OAAAA,CAAAA;AAG7C,EAAA,IAAI,CAACS,WAAAA,EAAa;AACd,IAAA,MAAM,IAAI9B,KAAAA,CACN,CAAA,sCAAA,EAAyCL,QAAAA,CAAAA,cAAAA,EAAyB0B,OAAAA,CAAAA,CAAS,CAAA;AAEnF,EAAA;AAEA,EAAA,OAAOU,IAAAA,CACHC,YAAAA,EACAC,mBAAAA,EACA,CAAA,EAAGrB,mBAAAA,CAAoBjB,QAAAA,CAAAA,CAAAA,CAAAA,EAAauC,WAAAA,CAAYJ,WAAAA,CAAAA,CAAAA,CAAc,CAAA;AAEtE,CAAA,EAhB2B,aAAA;AAkBpB,IAAMI,8BAAc,MAAA,CAAA,CACvB,EAAEf,UAAUgB,KAAAA,EAAK,EACjBC,YAAuB,GAAA,KAEvB;AAAIrB,EAAAA,GAAAA,MAAAA,CAAOsB,OAAAA,CAAQlB,QAAAA,CAAAA,CAAUS,IAAAA,GAAOU,IAAAA,EAAI;KAAQH,KAAAA,GAAQ;AAAC,IAAA,OAAA;AAASA,IAAAA;MAAS;AAAKJ,CAAAA,CAAAA,IAAAA,CAAKK,SAAAA,CAAAA,EAJ9D,aAAA;;;ADZpB,SAASG,2BAAAA,CAA4BC,KAAaC,QAAAA,EAAgB;AACrE,EAAA,IAAIC,GAAAA,GAAMF,GAAAA;AAEV,EAAA,OAAOE,QAAQ,GAAA,EAAK;AAChB,IAAA,MAAMC,QAAAA,GAAWC,IAAAA,CAAKb,IAAAA,CAAKW,GAAAA,EAAKD,QAAAA,CAAAA;AAChC,IAAA,IAAII,EAAAA,CAAGC,UAAAA,CAAWH,QAAAA,CAAAA,EAAW;AACzB,MAAA,OAAO;QAAEI,SAAAA,EAAWL,GAAAA;QAAKM,IAAAA,EAAML;AAAS,OAAA;AAC5C,IAAA;AAEAD,IAAAA,GAAAA,GAAME,IAAAA,CAAKK,QAAQP,GAAAA,CAAAA;AACvB,EAAA;AAEA,EAAA,OAAO,IAAA;AACX;AAbgBH,MAAAA,CAAAA,2BAAAA,EAAAA,6BAAAA,CAAAA;AAeT,SAASW,yBAAyBV,GAAAA,EAAW;AAChD,EAAA,IAAIW,MAAM,EAAC;AAEX,EAAA,IAAIT,GAAAA,GAAMF,GAAAA;AACV,EAAA,OAAOE,QAAQ,GAAA,EAAK;AAChB,IAAA,MAAMU,KAAAA,GAAQb,2BAAAA,CAA4BG,GAAAA,EAAK,WAAA,CAAA;AAC/C,IAAA,IAAIU,UAAU,IAAA,EAAM;AAChB,MAAA;AACJ,IAAA;AACAV,IAAAA,GAAAA,GAAME,IAAAA,CAAKK,OAAAA,CAAQG,KAAAA,CAAML,SAAS,CAAA;AAElC,IAAA,MAAMM,QAAAA,GAAWR,EAAAA,CAAGS,YAAAA,CAAaF,KAAAA,CAAMJ,MAAM,OAAA,CAAA;AAC7C,IAAA,MAAMO,MAAAA,GAASC,MAAYH,QAAAA,CAAAA;AAE3BF,IAAAA,GAAAA,GAAM;MACF,GAAGI,MAAAA;MACH,GAAGJ;AACP,KAAA;AACJ,EAAA;AAEA,EAAA,OAAOA,GAAAA;AACX;AArBgBD,MAAAA,CAAAA,wBAAAA,EAAAA,0BAAAA,CAAAA;AAuBT,IAAMO,mCAAmB,MAAA,CAAA,CAAC3B,WAAAA,KAC7BI,WAAAA,CAAYJ,WAAAA,EAAa,GAAA,CAAA,EADG,kBAAA;;;ADxCzB,SAAS4B,iBAAAA,CAAkBC,SAAkBC,QAAAA,EAAiB;AACjE,EAAA,OAAcC,MAAAA,CAAAA,SAAAA,CAAUF,OAAAA,CAAQtC,OAAAA,EAASuC,QAAAA,CAASvC,OAAO,CAAA;AAC7D;AAFgBqC,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAOT,SAASI,sBAAAA,CAAuBC,KAAahE,IAAAA,EAAyB;AACzE,EAAA,MAAMiE,aAAAA,GAAgBzB,2BAAAA,CAA4BwB,GAAAA,EAAK,aAAA,CAAA;AAEvD,EAAA,IAAIC,kBAAkB,IAAA,EAAM;AACxB,IAAA,MAAM,IAAIhE,MAAM,0BAAA,CAAA;AACpB,EAAA;AAEA,EAAA,MAAMiE,IAAAA,GAAOpB,GAAAA,CAAGS,YAAAA,CAAaU,aAAAA,CAAchB,MAAM,OAAA,CAAA;AAEjD,EAAA,MAAMkB,IAAAA,GAAO,uDAAA;AAEb,EAAA,IAAIC,KAAAA;AACJ,EAAA,OAAQA,KAAAA,GAAQD,IAAAA,CAAKE,IAAAA,CAAKH,IAAAA,CAAAA,EAAQ;AAC9B,IAAA,MAAM,GAAGI,WAAAA,EAAahD,OAAAA,CAAAA,GAAW8C,KAAAA;AACjC,IAAA,IAAIE,gBAAgBtE,IAAAA,EAAM;AACtB,MAAA,OAAO;AAAEsB,QAAAA;AAAQ,OAAA;AACrB,IAAA;AACJ,EAAA;AAEA,EAAA,MAAM,IAAIrB,KAAAA,CAAM,CAAA,EAAGD,IAAAA,CAAAA,sBAAAA,EAA6BiE,aAAAA,CAAchB,IAAI,CAAA,CAAE,CAAA;AACxE;AApBgBc,MAAAA,CAAAA,sBAAAA,EAAAA,wBAAAA,CAAAA;AAyBT,SAASQ,yBAAyBC,KAAAA,EAAa;AAClD,EAAA,MAAMJ,KAAAA,GAAQI,KAAAA,CAAMJ,KAAAA,CAAM,uDAAA,CAAA;AAC1B,EAAA,IAAIA,KAAAA,KAAU,IAAA,IAAQA,KAAAA,CAAMK,MAAAA,GAAS,CAAA,EAAG;AACpC,IAAA,MAAM,IAAIxE,KAAAA,CAAM,CAAA,wBAAA,EAA2BuE,KAAAA,CAAAA,CAAO,CAAA;AACtD,EAAA;AAEA,EAAA,OAAO;AAAElD,IAAAA,OAAAA,EAAS8C,MAAM,CAAA;AAAG,GAAA;AAC/B;AAPgBG,MAAAA,CAAAA,wBAAAA,EAAAA,0BAAAA,CAAAA;AAYT,SAASG,mBAAAA,CAAoB9E,UAAkB0B,OAAAA,EAAe;AACjE,EAAA,MAAMqD,iBAAAA,GAAoBlD,yBAAyB7B,QAAAA,CAAAA;AACnD,EAAA,OAAO+E,iBAAAA,CAAkBC,SAAStD,OAAAA,CAAAA;AACtC;AAHgBoD,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;;;ADjDhB,IAAMG,oBAAAA,GAAiD;AACnD,EAAA;IACI1E,IAAAA,EAAM,SAAA;IACN2E,aAAAA,EAAe,kBAAA;IACf9E,IAAAA,EAAM;AACV,GAAA;AACA,EAAA;IACIG,IAAAA,EAAM,SAAA;IACN2E,aAAAA,EAAe,mBAAA;IACf9E,IAAAA,EAAM;AACV,GAAA;AACA,EAAA;IACIG,IAAAA,EAAM,SAAA;IACN2E,aAAAA,EAAe,iBAAA;IACf9E,IAAAA,EAAM;AACV;;AAGG,IAAM+E,iBAAAA,GAA8C;AACvD,EAAA;IACI5E,IAAAA,EAAM,SAAA;IACN2E,aAAAA,EAAe,aAAA;IACf9E,IAAAA,EAAM,KAAA;IACNgF,MAAAA,EAAQ;AACZ,GAAA;AACA,EAAA;IACI7E,IAAAA,EAAM,SAAA;IACN2E,aAAAA,EAAe,YAAA;IACf9E,IAAAA,EAAM,YAAA;IACNgF,MAAAA,EAAQ;AACZ;;AAMG,IAAMlF,KAAAA,GAAyB;AAClC,EAAA;IACIE,IAAAA,EAAM,SAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAUyE,GAAAA;AACrBC,IAAAA,cAAAA,EAAgB;AACpB,GAAA;AACA,EAAA;IACIlF,IAAAA,EAAM,OAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAUyE;AACzB,GAAA;AACA,EAAA;IACIjF,IAAAA,EAAM,QAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAU2E,MAAAA;IACrBC,UAAAA,EAAY,IAAA;IACZF,cAAAA,EAAgBL,oBAAAA;IAChBQ,6BAAAA,kBAA+B,MAAA,CAAA,CAAC,EAAErB,GAAAA,EAAG,KAA+B;AAChE,MAAA,OAAOD,sBAAAA,CAAuBC,KAAK,QAAA,CAAA;IACvC,CAAA,EAF+B,+BAAA;AAGnC,GAAA;AACA,EAAA;IACIhE,IAAAA,EAAM,QAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAU2E,MAAAA;IACrBC,UAAAA,EAAY,IAAA;IACZF,cAAAA,EAAgBL,oBAAAA;IAChBQ,6BAAAA,kBAA+B,MAAA,CAAA,CAAC,EAAErB,GAAAA,EAAG,KAA+B;AAChE,MAAA,OAAOD,sBAAAA,CAAuBC,KAAK,QAAA,CAAA;IACvC,CAAA,EAF+B,+BAAA;AAGnC,GAAA;AACA,EAAA;IACIhE,IAAAA,EAAM,OAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAUC,SAAAA;IACrByE,cAAAA,EAAgB;AACZ,MAAA;QACI/E,IAAAA,EAAM,SAAA;QACN2E,aAAAA,EAAe,aAAA;QACf9E,IAAAA,EAAM;AACV;;AAER,GAAA;AACA,EAAA;IACIA,IAAAA,EAAM,SAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAUC,SAAAA;IACrByE,cAAAA,EAAgB;AACZ,MAAA;QACI/E,IAAAA,EAAM,SAAA;QACN2E,aAAAA,EAAe,aAAA;QACf9E,IAAAA,EAAM;AACV;;AAER,GAAA;AACA,EAAA;IACIA,IAAAA,EAAM,UAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAUC,SAAAA;IACrByE,cAAAA,EAAgB;AACZ,MAAA;QACI/E,IAAAA,EAAM,SAAA;QACN2E,aAAAA,EAAe,aAAA;QACf9E,IAAAA,EAAM;AACV;;AAER,GAAA;AACA,EAAA;IACIA,IAAAA,EAAM,WAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAU8E;AACzB,GAAA;AACA,EAAA;IACItF,IAAAA,EAAM,OAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAU+E;AACzB,GAAA;AACA,EAAA;IACIvF,IAAAA,EAAM,KAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAUE,OAAAA;IACrBwE,cAAAA,EAAgBH;AACpB,GAAA;AACA,EAAA;IACI/E,IAAAA,EAAM,SAAA;AACNK,IAAAA,SAAAA,EAAWG,SAAAA,CAAUgF,OAAAA;IACrBN,cAAAA,EAAgB;AACZ,MAAA;QACI/E,IAAAA,EAAM,SAAA;QACN2E,aAAAA,EAAe,uBAAA;QACf9E,IAAAA,EAAM,gBAAA;QACNgF,MAAAA,EAAQ,IAAA;QACRS,MAAAA,EAAQ;AACZ,OAAA;AACA,MAAA;QACItF,IAAAA,EAAM,SAAA;QACN2E,aAAAA,EAAe,kBAAA;QACf9E,IAAAA,EAAM,eAAA;QACNgF,MAAAA,EAAQ,IAAA;QACRS,MAAAA,EAAQ;AACZ,OAAA;AACA,MAAA;QACItF,IAAAA,EAAM,SAAA;QACN2E,aAAAA,EAAe,mBAAA;QACf9E,IAAAA,EAAM,gBAAA;QACNgF,MAAAA,EAAQ,IAAA;QACRS,MAAAA,EAAQ;AACZ;;AAER;;;;AD1IG,IAAMC,cAAAA,GAAiB;AACvB,IAAMC,UAAAA,GAAa;AAEnB,IAAM1D,YAAAA,GAAe,CAAA,EAAGyD,cAAAA,CAAAA,SAAAA,EAA0BC,UAAAA,CAAAA,cAAAA;AAClD,IAAMzD,mBAAAA,GAAsB","file":"KNTO2HQA.js","sourcesContent":["export { tools } from './tools';\nexport { versionMatrices } from './version-matrices';\n\nexport const AWS_ACCOUNT_ID = '438003944538';\nexport const AWS_REGION = 'us-east-1';\n\nexport const ECR_REGISTRY = `${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`;\nexport const ECR_IMAGE_DIRECTORY = 'layerzerolabs';\n","import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport type { GetExpectedVersionParameter, Tool, Version, VolumeMapping } from '../types';\nimport { parseAnchorTomlVersion } from '../utils/version';\n\nconst solanaDefaultVolumes: readonly VolumeMapping[] = [\n {\n type: 'isolate',\n containerPath: '/usr/local/cargo',\n name: 'solana-cargo',\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/rustup',\n name: 'solana-rustup',\n },\n {\n type: 'isolate',\n containerPath: '/var/lib/docker',\n name: 'docker',\n },\n];\n\nexport const suiDefaultVolumes: readonly VolumeMapping[] = [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'sui',\n shared: true,\n },\n {\n type: 'isolate',\n containerPath: '/root/.sui',\n name: 'sui-config',\n shared: true,\n },\n];\n\n/**\n * Tool configurations with individual settings (version info managed by version-matrices)\n */\nexport const tools: readonly Tool[] = [\n {\n name: 'hardhat',\n chainType: ChainType.EVM,\n defaultVolumes: [],\n },\n {\n name: 'forge',\n chainType: ChainType.EVM,\n },\n {\n name: 'anchor',\n chainType: ChainType.SOLANA,\n privileged: true,\n defaultVolumes: solanaDefaultVolumes,\n getSecondaryVersionCheckValue: ({ cwd }: GetExpectedVersionParameter): Version => {\n return parseAnchorTomlVersion(cwd, 'anchor');\n },\n },\n {\n name: 'solana',\n chainType: ChainType.SOLANA,\n privileged: true,\n defaultVolumes: solanaDefaultVolumes,\n getSecondaryVersionCheckValue: ({ cwd }: GetExpectedVersionParameter): Version => {\n return parseAnchorTomlVersion(cwd, 'solana');\n },\n },\n {\n name: 'aptos',\n chainType: ChainType.APTOSMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'aptos',\n },\n ],\n },\n {\n name: 'initiad',\n chainType: ChainType.APTOSMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'initia',\n },\n ],\n },\n {\n name: 'movement',\n chainType: ChainType.APTOSMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'movement',\n },\n ],\n },\n {\n name: 'blueprint',\n chainType: ChainType.TON,\n },\n {\n name: 'scarb',\n chainType: ChainType.STARKNET,\n },\n {\n name: 'sui',\n chainType: ChainType.SUIMOVE,\n defaultVolumes: suiDefaultVolumes,\n },\n {\n name: 'stellar',\n chainType: ChainType.STELLAR,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.config/stellar',\n name: 'stellar-config',\n shared: true,\n locked: true,\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/cargo',\n name: 'stellar-cargo',\n shared: true,\n locked: false,\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/rustup',\n name: 'stellar-rustup',\n shared: true,\n locked: false,\n },\n ],\n },\n];\n","import fs from 'fs';\nimport * as semver from 'semver';\n\nimport type { Version } from '../types';\nimport { findParentDirectoryWithFile } from '../utils';\nimport { getToolSupportedVersions } from './finder';\n\n/**\n * Check if current version satisfies expected version using semver\n */\nexport function versionsSatisfied(current: Version, expected: Version): boolean {\n return semver.satisfies(current.version, expected.version);\n}\n\n/**\n * Parse anchor/solana version from Anchor.toml file\n */\nexport function parseAnchorTomlVersion(cwd: string, name: 'anchor' | 'solana'): Version {\n const projectFolder = findParentDirectoryWithFile(cwd, 'Anchor.toml');\n\n if (projectFolder === null) {\n throw new Error('Anchor project not found');\n }\n\n const toml = fs.readFileSync(projectFolder.file, 'utf-8');\n\n const test = /^([a-z]+)(?:_version ?= ?\")((?:[0-9]+\\.?){3})(?:\")$/gm;\n\n let match;\n while ((match = test.exec(toml))) {\n const [, matchedName, version] = match;\n if (matchedName === name) {\n return { version };\n }\n }\n\n throw new Error(`${name} version not found in ${projectFolder.file}`);\n}\n\n/**\n * Find semantic version from string output\n */\nexport function findSemVersionFromString(input: string): Version {\n const match = input.match(/^(solana-cli|anchor-cli|aptos)\\s+(([0-9]+\\.?){3}).*?/m);\n if (match === null || match.length < 3) {\n throw new Error(`Invalid semver version: ${input}`);\n }\n\n return { version: match[2] };\n}\n\n/**\n * Validate if a tool version is in the supported versions list\n */\nexport function validateToolVersion(toolName: string, version: string): boolean {\n const supportedVersions = getToolSupportedVersions(toolName);\n return supportedVersions.includes(version);\n}\n","import { parse as dotenvParse } from 'dotenv';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { VersionCombination } from './types';\nimport { getImageTag } from './utils/docker';\n\nexport interface FoundDirectory {\n directory: string;\n file: string;\n}\n\nexport function findParentDirectoryWithFile(dir: string, filename: string): FoundDirectory | null {\n let cur = dir;\n\n while (cur !== '/') {\n const filePath = path.join(cur, filename);\n if (fs.existsSync(filePath)) {\n return { directory: cur, file: filePath };\n }\n\n cur = path.dirname(cur);\n }\n\n return null;\n}\n\nexport function parseVersionFileContents(dir: string): { [key: string]: string | undefined } {\n let out = {};\n\n let cur = dir;\n while (cur !== '/') {\n const found = findParentDirectoryWithFile(cur, '.versions');\n if (found === null) {\n break;\n }\n cur = path.dirname(found.directory);\n\n const contents = fs.readFileSync(found.file, 'utf-8');\n const parsed = dotenvParse(contents);\n\n out = {\n ...parsed,\n ...out,\n };\n }\n\n return out;\n}\n\nexport const getCombinationId = (combination: VersionCombination): string =>\n getImageTag(combination, '-');\n","import { join } from 'node:path';\n\nimport { ECR_IMAGE_DIRECTORY, ECR_REGISTRY } from '../config/index.js';\nimport type { VersionCombination } from '../types/version.js';\nimport { findMatrixForTool, getImageNameForTool } from './finder.js';\n\nexport const getImageURI = (toolName: string, version: string): string => {\n const combination = findMatrixForTool(toolName).find(\n ({ versions }) => versions[toolName] === version,\n );\n\n if (!combination) {\n throw new Error(\n `No version combination found for tool ${toolName} with version ${version}`,\n );\n }\n\n return join(\n ECR_REGISTRY,\n ECR_IMAGE_DIRECTORY,\n `${getImageNameForTool(toolName)}:${getImageTag(combination)}`,\n );\n};\n\nexport const getImageTag = (\n { versions, patch }: VersionCombination,\n separator: '_' | '-' = '_',\n): string =>\n [...Object.entries(versions).sort().flat(), ...(patch ? ['patch', patch] : [])].join(separator);\n","import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport { tools, versionMatrices } from '../config';\nimport type { Tool, VersionCombination } from '../types';\n\nexport const findToolByName = (toolName: string): Tool => {\n const tool = tools.find((tool) => tool.name === toolName);\n\n if (!tool) {\n throw new Error(`Tool '${toolName}' not found`);\n }\n\n return tool;\n};\n\nexport const findToolsByType = (type: ChainType): Tool[] =>\n tools.filter((tool) => tool.chainType === type);\n\nexport const getChainTypeForTool = (toolName: string): ChainType =>\n findToolByName(toolName).chainType;\n\nconst typeToImageBasename: Partial<Record<ChainType, string>> = {\n [ChainType.APTOSMOVE]: 'aptos',\n [ChainType.SUIMOVE]: 'sui',\n};\n\nexport const getImageBasenameForType = (chainType: ChainType): string =>\n typeToImageBasename[chainType] ?? chainType;\n\nexport const getImageNameForType = (chainType: ChainType): string =>\n `${getImageBasenameForType(chainType)}-tooling`;\n\nexport const getImageNameForTool = (toolName: string): string =>\n getImageNameForType(getChainTypeForTool(toolName));\n\n/**\n * Find version matrix that contains a specific tool\n */\nexport const findMatrixForTool = (toolName: string): VersionCombination[] => {\n const combinations = Object.values(versionMatrices).find((combinations) =>\n combinations.some(({ versions }) => versions[toolName]),\n );\n\n if (!combinations) {\n throw new Error(`No version matrix found for tool '${toolName}'`);\n }\n\n return combinations;\n};\n\n/**\n * Get default version for a specific tool from version matrix\n */\nexport function getToolDefaultVersion(toolName: string): string | null {\n const version = findMatrixForTool(toolName)[0].versions[toolName];\n\n if (!version) {\n console.warn(`No default version found for tool '${toolName}' in matrix`);\n return null;\n }\n\n return version;\n}\n\n/**\n * Get supported versions for a specific tool from version matrix\n */\nexport const getToolSupportedVersions = (toolName: string): string[] =>\n [\n ...new Set(\n findMatrixForTool(toolName)\n .map(({ versions }) => versions[toolName])\n .filter(Boolean),\n ),\n ].sort();\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/config/version-matrices.ts"],"names":["versionMatrices","ChainType","EVM","versions","forge","hardhat","patch","stable","SOLANA","solana","anchor","description","APTOSMOVE","aptos","initiad","movement","TON","blueprint","STARKNET","scarb","SUIMOVE","sui","STELLAR","stellar"],"mappings":";;;;AAAA,cAAA,EAAA;AAQO,IAAMA,eAAAA,GAAoF;EAC7F,CAACC,SAAAA,CAAUC,GAAG,GAAG;AACb,IAAA;MACIC,QAAAA,EAAU;QAAEC,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAS,OAAA;MAC9CC,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEC,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAS;AAClD,KAAA;AACA,IAAA;;MAEIF,QAAAA,EAAU;QAAEE,OAAAA,EAAS;AAAS;AAClC;;EAEJ,CAACJ,SAAAA,CAAUO,MAAM,GAAG;AAChB,IAAA;;MAEIL,QAAAA,EAAU;QAAEM,MAAAA,EAAQ,SAAA;QAAWC,MAAAA,EAAQ;AAAS,OAAA;MAChDC,WAAAA,EAAa,wBAAA;MACbJ,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEM,MAAAA,EAAQ,QAAA;QAAUC,MAAAA,EAAQ;AAAS,OAAA;MAC/CC,WAAAA,EAAa;AACjB;;EAEJ,CAACV,SAAAA,CAAUW,SAAS,GAAG;AACnB,IAAA;MACIT,QAAAA,EAAU;QAAEU,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAQ,OAAA;MAC7CP,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEU,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS,OAAA;QAASC,QAAAA,EAAU;AAAQ;AACpE,KAAA;AACA,IAAA;MACIZ,QAAAA,EAAU;QAAEU,KAAAA,EAAO;AAAQ;AAC/B,KAAA;AACA,IAAA;;MAEIV,QAAAA,EAAU;QAAEU,KAAAA,EAAO;AAAQ;AAC/B;;EAEJ,CAACZ,SAAAA,CAAUe,GAAG,GAAG;AACb,IAAA;;;;;MAKIb,QAAAA,EAAU;QAAEc,SAAAA,EAAW;AAAgB,OAAA;MACvCX,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ;;EAEJ,CAACN,SAAAA,CAAUiB,QAAQ,GAAG;AAClB,IAAA;MACIf,QAAAA,EAAU;QAAEgB,KAAAA,EAAO;AAAS,OAAA;MAC5Bb,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEgB,KAAAA,EAAO;AAAS,OAAA;MAC5Bb,KAAAA,EAAO;AACX;;EAEJ,CAACL,SAAAA,CAAUmB,OAAO,GAAG;AACjB,IAAA;;MAEIjB,QAAAA,EAAU;QAAEkB,GAAAA,EAAK;AAAgB,OAAA;MACjCd,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;;MAEIJ,QAAAA,EAAU;QAAEkB,GAAAA,EAAK;AAAS,OAAA;MAC1Bf,KAAAA,EAAO;AACX;;EAEJ,CAACL,SAAAA,CAAUqB,OAAO,GAAG;AACjB,IAAA;MACInB,QAAAA,EAAU;QAAEoB,OAAAA,EAAS;AAAS,OAAA;MAC9BZ,WAAAA,EAAa,mCAAA;MACbJ,MAAAA,EAAQ;AACZ;;AAER","file":"NX66I36H.js","sourcesContent":["import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport type { VersionCombination } from '../types';\n\n/**\n * Version compatibility matrices for each tool type\n * Default combination is the first one marked as isRecommended=true\n */\nexport const versionMatrices: Record<ChainType, [VersionCombination, ...VersionCombination[]]> = {\n [ChainType.EVM]: [\n {\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n patch: 1,\n stable: true,\n },\n {\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n },\n {\n // Built in the old `monorepo` repository.\n versions: { hardhat: '2.19.3' },\n },\n ],\n [ChainType.SOLANA]: [\n {\n // Built in the old `monorepo` repository.\n versions: { solana: '1.17.31', anchor: '0.29.0' },\n description: 'Stable and well-tested',\n stable: true,\n },\n {\n versions: { solana: '2.2.20', anchor: '0.31.1' },\n description: 'Latest stable release',\n },\n ],\n [ChainType.APTOSMOVE]: [\n {\n versions: { aptos: '4.7.0', initiad: '0.6.3' },\n stable: true,\n },\n {\n versions: { aptos: '4.7.0', initiad: '0.6.3', movement: '3.5.0' },\n },\n {\n versions: { aptos: '4.7.0' },\n },\n {\n // Built in the old `monorepo` repository.\n versions: { aptos: '4.6.0' },\n },\n ],\n [ChainType.TON]: [\n {\n // In TON's offchain SDK, we derive contract addresses dynamically from their\n // bytecode and initial state even for contracts deployed already.\n // Therefore, we cannot update the compiler version even when the minor version is the same\n // since it would change the resulting bytecode and thus the contract address.\n versions: { blueprint: '0.25.0-beta.1' },\n patch: 2,\n stable: true,\n },\n ],\n [ChainType.STARKNET]: [\n {\n versions: { scarb: '2.12.0' },\n patch: 3,\n stable: true,\n },\n {\n versions: { scarb: '2.12.0' },\n patch: 4,\n },\n ],\n [ChainType.SUIMOVE]: [\n {\n // Built in the old `monorepo` repository.\n versions: { sui: '1.54.1-beta.0' },\n stable: true,\n },\n {\n // Test building from monorepo-internal\n versions: { sui: '1.54.1' },\n patch: 1,\n },\n ],\n [ChainType.STELLAR]: [\n {\n versions: { stellar: '23.1.4' },\n description: 'Latest stable Stellar CLI release',\n stable: true,\n },\n ],\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/config/index.ts","../src/config/tools.ts","../src/utils/version.ts","../src/utils.ts","../src/utils/docker.ts","../src/utils/finder.ts"],"names":["init_cjs_shims","findToolByName","toolName","tool","tools","find","name","Error","findToolsByType","__name","type","filter","chainType","getChainTypeForTool","typeToImageBasename","ChainType","APTOSMOVE","SUIMOVE","getImageBasenameForType","getImageNameForType","getImageNameForTool","findMatrixForTool","combinations","Object","values","versionMatrices","some","versions","getToolDefaultVersion","version","console","warn","getToolSupportedVersions","Set","map","Boolean","sort","getImageURI","combination","join","ECR_REGISTRY","ECR_IMAGE_DIRECTORY","getImageTag","patch","separator","entries","flat","findParentDirectoryWithFile","dir","filename","cur","filePath","path","fs","existsSync","directory","file","dirname","parseVersionFileContents","out","found","contents","readFileSync","parsed","dotenvParse","getCombinationId","versionsSatisfied","current","expected","satisfies","parseAnchorTomlVersion","cwd","projectFolder","toml","test","match","exec","matchedName","findSemVersionFromString","input","length","validateToolVersion","supportedVersions","includes","solanaDefaultVolumes","containerPath","suiDefaultVolumes","shared","EVM","defaultVolumes","SOLANA","privileged","getSecondaryVersionCheckValue","TON","STARKNET","STELLAR","locked","AWS_ACCOUNT_ID","AWS_REGION"],"mappings":"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","file":"W6FCPNQL.cjs","sourcesContent":["export { tools } from './tools';\nexport { versionMatrices } from './version-matrices';\n\nexport const AWS_ACCOUNT_ID = '438003944538';\nexport const AWS_REGION = 'us-east-1';\n\nexport const ECR_REGISTRY = `${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`;\nexport const ECR_IMAGE_DIRECTORY = 'layerzerolabs';\n","import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport type { GetExpectedVersionParameter, Tool, Version, VolumeMapping } from '../types';\nimport { parseAnchorTomlVersion } from '../utils/version';\n\nconst solanaDefaultVolumes: readonly VolumeMapping[] = [\n {\n type: 'isolate',\n containerPath: '/usr/local/cargo',\n name: 'solana-cargo',\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/rustup',\n name: 'solana-rustup',\n },\n {\n type: 'isolate',\n containerPath: '/var/lib/docker',\n name: 'docker',\n },\n];\n\nexport const suiDefaultVolumes: readonly VolumeMapping[] = [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'sui',\n shared: true,\n },\n {\n type: 'isolate',\n containerPath: '/root/.sui',\n name: 'sui-config',\n shared: true,\n },\n];\n\n/**\n * Tool configurations with individual settings (version info managed by version-matrices)\n */\nexport const tools: readonly Tool[] = [\n {\n name: 'hardhat',\n chainType: ChainType.EVM,\n defaultVolumes: [],\n },\n {\n name: 'forge',\n chainType: ChainType.EVM,\n },\n {\n name: 'anchor',\n chainType: ChainType.SOLANA,\n privileged: true,\n defaultVolumes: solanaDefaultVolumes,\n getSecondaryVersionCheckValue: ({ cwd }: GetExpectedVersionParameter): Version => {\n return parseAnchorTomlVersion(cwd, 'anchor');\n },\n },\n {\n name: 'solana',\n chainType: ChainType.SOLANA,\n privileged: true,\n defaultVolumes: solanaDefaultVolumes,\n getSecondaryVersionCheckValue: ({ cwd }: GetExpectedVersionParameter): Version => {\n return parseAnchorTomlVersion(cwd, 'solana');\n },\n },\n {\n name: 'aptos',\n chainType: ChainType.APTOSMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'aptos',\n },\n ],\n },\n {\n name: 'initiad',\n chainType: ChainType.APTOSMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'initia',\n },\n ],\n },\n {\n name: 'movement',\n chainType: ChainType.APTOSMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'movement',\n },\n ],\n },\n {\n name: 'blueprint',\n chainType: ChainType.TON,\n },\n {\n name: 'scarb',\n chainType: ChainType.STARKNET,\n },\n {\n name: 'sui',\n chainType: ChainType.SUIMOVE,\n defaultVolumes: suiDefaultVolumes,\n },\n {\n name: 'stellar',\n chainType: ChainType.STELLAR,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.config/stellar',\n name: 'stellar-config',\n shared: true,\n locked: true,\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/cargo',\n name: 'stellar-cargo',\n shared: true,\n locked: false,\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/rustup',\n name: 'stellar-rustup',\n shared: true,\n locked: false,\n },\n ],\n },\n];\n","import fs from 'fs';\nimport * as semver from 'semver';\n\nimport type { Version } from '../types';\nimport { findParentDirectoryWithFile } from '../utils';\nimport { getToolSupportedVersions } from './finder';\n\n/**\n * Check if current version satisfies expected version using semver\n */\nexport function versionsSatisfied(current: Version, expected: Version): boolean {\n return semver.satisfies(current.version, expected.version);\n}\n\n/**\n * Parse anchor/solana version from Anchor.toml file\n */\nexport function parseAnchorTomlVersion(cwd: string, name: 'anchor' | 'solana'): Version {\n const projectFolder = findParentDirectoryWithFile(cwd, 'Anchor.toml');\n\n if (projectFolder === null) {\n throw new Error('Anchor project not found');\n }\n\n const toml = fs.readFileSync(projectFolder.file, 'utf-8');\n\n const test = /^([a-z]+)(?:_version ?= ?\")((?:[0-9]+\\.?){3})(?:\")$/gm;\n\n let match;\n while ((match = test.exec(toml))) {\n const [, matchedName, version] = match;\n if (matchedName === name) {\n return { version };\n }\n }\n\n throw new Error(`${name} version not found in ${projectFolder.file}`);\n}\n\n/**\n * Find semantic version from string output\n */\nexport function findSemVersionFromString(input: string): Version {\n const match = input.match(/^(solana-cli|anchor-cli|aptos)\\s+(([0-9]+\\.?){3}).*?/m);\n if (match === null || match.length < 3) {\n throw new Error(`Invalid semver version: ${input}`);\n }\n\n return { version: match[2] };\n}\n\n/**\n * Validate if a tool version is in the supported versions list\n */\nexport function validateToolVersion(toolName: string, version: string): boolean {\n const supportedVersions = getToolSupportedVersions(toolName);\n return supportedVersions.includes(version);\n}\n","import { parse as dotenvParse } from 'dotenv';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { VersionCombination } from './types';\nimport { getImageTag } from './utils/docker';\n\nexport interface FoundDirectory {\n directory: string;\n file: string;\n}\n\nexport function findParentDirectoryWithFile(dir: string, filename: string): FoundDirectory | null {\n let cur = dir;\n\n while (cur !== '/') {\n const filePath = path.join(cur, filename);\n if (fs.existsSync(filePath)) {\n return { directory: cur, file: filePath };\n }\n\n cur = path.dirname(cur);\n }\n\n return null;\n}\n\nexport function parseVersionFileContents(dir: string): { [key: string]: string | undefined } {\n let out = {};\n\n let cur = dir;\n while (cur !== '/') {\n const found = findParentDirectoryWithFile(cur, '.versions');\n if (found === null) {\n break;\n }\n cur = path.dirname(found.directory);\n\n const contents = fs.readFileSync(found.file, 'utf-8');\n const parsed = dotenvParse(contents);\n\n out = {\n ...parsed,\n ...out,\n };\n }\n\n return out;\n}\n\nexport const getCombinationId = (combination: VersionCombination): string =>\n getImageTag(combination, '-');\n","import { join } from 'node:path';\n\nimport { ECR_IMAGE_DIRECTORY, ECR_REGISTRY } from '../config/index.js';\nimport type { VersionCombination } from '../types/version.js';\nimport { findMatrixForTool, getImageNameForTool } from './finder.js';\n\nexport const getImageURI = (toolName: string, version: string): string => {\n const combination = findMatrixForTool(toolName).find(\n ({ versions }) => versions[toolName] === version,\n );\n\n if (!combination) {\n throw new Error(\n `No version combination found for tool ${toolName} with version ${version}`,\n );\n }\n\n return join(\n ECR_REGISTRY,\n ECR_IMAGE_DIRECTORY,\n `${getImageNameForTool(toolName)}:${getImageTag(combination)}`,\n );\n};\n\nexport const getImageTag = (\n { versions, patch }: VersionCombination,\n separator: '_' | '-' = '_',\n): string =>\n [...Object.entries(versions).sort().flat(), ...(patch ? ['patch', patch] : [])].join(separator);\n","import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport { tools, versionMatrices } from '../config';\nimport type { Tool, VersionCombination } from '../types';\n\nexport const findToolByName = (toolName: string): Tool => {\n const tool = tools.find((tool) => tool.name === toolName);\n\n if (!tool) {\n throw new Error(`Tool '${toolName}' not found`);\n }\n\n return tool;\n};\n\nexport const findToolsByType = (type: ChainType): Tool[] =>\n tools.filter((tool) => tool.chainType === type);\n\nexport const getChainTypeForTool = (toolName: string): ChainType =>\n findToolByName(toolName).chainType;\n\nconst typeToImageBasename: Partial<Record<ChainType, string>> = {\n [ChainType.APTOSMOVE]: 'aptos',\n [ChainType.SUIMOVE]: 'sui',\n};\n\nexport const getImageBasenameForType = (chainType: ChainType): string =>\n typeToImageBasename[chainType] ?? chainType;\n\nexport const getImageNameForType = (chainType: ChainType): string =>\n `${getImageBasenameForType(chainType)}-tooling`;\n\nexport const getImageNameForTool = (toolName: string): string =>\n getImageNameForType(getChainTypeForTool(toolName));\n\n/**\n * Find version matrix that contains a specific tool\n */\nexport const findMatrixForTool = (toolName: string): VersionCombination[] => {\n const combinations = Object.values(versionMatrices).find((combinations) =>\n combinations.some(({ versions }) => versions[toolName]),\n );\n\n if (!combinations) {\n throw new Error(`No version matrix found for tool '${toolName}'`);\n }\n\n return combinations;\n};\n\n/**\n * Get default version for a specific tool from version matrix\n */\nexport function getToolDefaultVersion(toolName: string): string | null {\n const version = findMatrixForTool(toolName)[0].versions[toolName];\n\n if (!version) {\n console.warn(`No default version found for tool '${toolName}' in matrix`);\n return null;\n }\n\n return version;\n}\n\n/**\n * Get supported versions for a specific tool from version matrix\n */\nexport const getToolSupportedVersions = (toolName: string): string[] =>\n [\n ...new Set(\n findMatrixForTool(toolName)\n .map(({ versions }) => versions[toolName])\n .filter(Boolean),\n ),\n ].sort();\n"]}