@layerzerolabs/vm-tooling 0.2.62 → 0.2.64

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 (57) hide show
  1. package/dist/{7FZK5RET.cjs → 7FXZ63DE.cjs} +7 -4
  2. package/dist/7FXZ63DE.cjs.map +1 -0
  3. package/dist/{2NTYK3VO.cjs → 7PWQZJWC.cjs} +2 -2
  4. package/dist/{2NTYK3VO.cjs.map → 7PWQZJWC.cjs.map} +1 -1
  5. package/dist/{NQIX4C7Z.cjs → BJD6YP5Q.cjs} +5 -5
  6. package/dist/{NQIX4C7Z.cjs.map → BJD6YP5Q.cjs.map} +1 -1
  7. package/dist/ECZCFJB4.js +66 -0
  8. package/dist/ECZCFJB4.js.map +1 -0
  9. package/dist/{GPDDKHCR.js → ERBSYZRH.js} +3 -3
  10. package/dist/{GPDDKHCR.js.map → ERBSYZRH.js.map} +1 -1
  11. package/dist/{533SFXIE.cjs → HSCHZUOV.cjs} +4 -4
  12. package/dist/{533SFXIE.cjs.map → HSCHZUOV.cjs.map} +1 -1
  13. package/dist/{33TVTWFZ.cjs → HXE3NVSB.cjs} +4 -4
  14. package/dist/{33TVTWFZ.cjs.map → HXE3NVSB.cjs.map} +1 -1
  15. package/dist/{WUF26TGR.js → KDX2NZOU.js} +3 -3
  16. package/dist/{WUF26TGR.js.map → KDX2NZOU.js.map} +1 -1
  17. package/dist/{VF2UWSC3.js → KPLQJLFW.js} +6 -3
  18. package/dist/KPLQJLFW.js.map +1 -0
  19. package/dist/LTB3CQLO.cjs +68 -0
  20. package/dist/LTB3CQLO.cjs.map +1 -0
  21. package/dist/{FD5JIY4L.js → S2D5P2IJ.js} +4 -4
  22. package/dist/{FD5JIY4L.js.map → S2D5P2IJ.js.map} +1 -1
  23. package/dist/{M2CDZILC.js → TGTQ2DSF.js} +3 -3
  24. package/dist/{M2CDZILC.js.map → TGTQ2DSF.js.map} +1 -1
  25. package/dist/{46I6PSJ7.js → X4R3PN6F.js} +2 -2
  26. package/dist/{46I6PSJ7.js.map → X4R3PN6F.js.map} +1 -1
  27. package/dist/{L364LHEH.cjs → Z7EACAGJ.cjs} +6 -6
  28. package/dist/{L364LHEH.cjs.map → Z7EACAGJ.cjs.map} +1 -1
  29. package/dist/cli.cjs +5 -5
  30. package/dist/cli.js +4 -4
  31. package/dist/config.cjs +5 -5
  32. package/dist/config.d.ts +0 -1
  33. package/dist/config.d.ts.map +1 -1
  34. package/dist/config.js +1 -1
  35. package/dist/core/index.cjs +4 -4
  36. package/dist/core/index.js +3 -3
  37. package/dist/core/tool-executor.cjs +4 -4
  38. package/dist/core/tool-executor.js +3 -3
  39. package/dist/github/index.cjs +5 -5
  40. package/dist/github/index.js +4 -4
  41. package/dist/github/matrix.cjs +4 -4
  42. package/dist/github/matrix.d.ts.map +1 -1
  43. package/dist/github/matrix.js +3 -3
  44. package/dist/index.cjs +12 -12
  45. package/dist/index.js +7 -7
  46. package/dist/test.cjs +4 -4
  47. package/dist/test.d.ts.map +1 -1
  48. package/dist/test.js +3 -3
  49. package/dist/utils/docker.cjs +6 -6
  50. package/dist/utils/docker.js +2 -2
  51. package/package.json +4 -4
  52. package/dist/7FZK5RET.cjs.map +0 -1
  53. package/dist/PKAOFTZV.js +0 -120
  54. package/dist/PKAOFTZV.js.map +0 -1
  55. package/dist/Q6HPQZPT.cjs +0 -142
  56. package/dist/Q6HPQZPT.cjs.map +0 -1
  57. package/dist/VF2UWSC3.js.map +0 -1
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ var HSCHZUOV_cjs = require('./HSCHZUOV.cjs');
4
+ var _24WEKBY3_cjs = require('./24WEKBY3.cjs');
5
+ var child_process = require('child_process');
6
+ var util = require('util');
7
+
8
+ // src/test.ts
9
+ _24WEKBY3_cjs.init_cjs_shims();
10
+ var COMMAND_TIMEOUT = 5 * 6e4;
11
+ var PULL_TIMEOUT = 10 * 6e4;
12
+ var VERSION_TEST_TIMEOUT = 15 * 6e4;
13
+ var runCommand = /* @__PURE__ */ _24WEKBY3_cjs.__name(async (command, args, timeout = COMMAND_TIMEOUT) => (await util.promisify(child_process.execFile)(command, args, {
14
+ timeout,
15
+ killSignal: "SIGKILL"
16
+ })).stdout.trim(), "runCommand");
17
+ var ensureDockerImageExists = /* @__PURE__ */ _24WEKBY3_cjs.__name(async (imageUri) => {
18
+ await runCommand("docker", [
19
+ "run",
20
+ "--rm",
21
+ "--entrypoint",
22
+ "true",
23
+ imageUri
24
+ ], PULL_TIMEOUT);
25
+ }, "ensureDockerImageExists");
26
+ var testTools = /* @__PURE__ */ _24WEKBY3_cjs.__name(({ describe, expect, it, beforeAll }, images, _versionCombinations, versionCommands) => {
27
+ describe("Docker image IDs", () => {
28
+ for (const [name, image] of Object.entries(images)) {
29
+ it(`has an image ID of ${name}`, () => {
30
+ expect([
31
+ image.name,
32
+ HSCHZUOV_cjs.getImageTag(image, "-")
33
+ ].join(":")).toBe(name);
34
+ });
35
+ }
36
+ });
37
+ describe("Tool versions", () => {
38
+ for (const literalImage of Object.values(images)) {
39
+ const image = literalImage;
40
+ describe(HSCHZUOV_cjs.getImageTag(image), () => {
41
+ let imageUri;
42
+ beforeAll(async () => {
43
+ imageUri = await HSCHZUOV_cjs.getImageUri(image, "_");
44
+ await ensureDockerImageExists(imageUri);
45
+ }, PULL_TIMEOUT);
46
+ for (const [tool, expectedVersion] of Object.entries(image.versions)) {
47
+ it(`should have ${tool} of version ${expectedVersion}`, async () => {
48
+ if (!(versionCommands[tool] instanceof Array)) {
49
+ throw new Error("Missing version command");
50
+ }
51
+ const version = await runCommand("docker", [
52
+ "run",
53
+ "--rm",
54
+ "--privileged",
55
+ imageUri,
56
+ ...versionCommands[tool]
57
+ ]);
58
+ expect(version).toContain(expectedVersion);
59
+ }, VERSION_TEST_TIMEOUT);
60
+ }
61
+ });
62
+ }
63
+ });
64
+ }, "testTools");
65
+
66
+ exports.testTools = testTools;
67
+ //# sourceMappingURL=LTB3CQLO.cjs.map
68
+ //# sourceMappingURL=LTB3CQLO.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/test.ts"],"names":["init_cjs_shims","COMMAND_TIMEOUT","PULL_TIMEOUT","VERSION_TEST_TIMEOUT","runCommand","__name","command","args","timeout","promisify","execFile","killSignal","stdout","trim","ensureDockerImageExists","imageUri","testTools","describe","expect","it","beforeAll","images","_versionCombinations","versionCommands","name","image","Object","entries","getImageTag","join","toBe","literalImage","values","getImageUri","tool","expectedVersion","versions","Array","Error","version","toContain"],"mappings":"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","file":"LTB3CQLO.cjs","sourcesContent":["import { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type * as vitest from 'vitest';\n\nimport type { VersionCombination } from './config';\nimport { type Image } from './config';\nimport { getImageTag, getImageUri } from './utils/docker';\n\nconst COMMAND_TIMEOUT = 5 * 60_000;\nconst PULL_TIMEOUT = 10 * 60_000;\nconst VERSION_TEST_TIMEOUT = 15 * 60_000;\n\nconst runCommand = async (\n command: string,\n args: string[],\n timeout = COMMAND_TIMEOUT,\n): Promise<string> =>\n (\n await promisify(execFile)(command, args, {\n timeout,\n killSignal: 'SIGKILL', // Force kill if timeout\n })\n ).stdout.trim();\n\n/** Run a no-op command in the image to trigger a pull if it's not available locally. */\nconst ensureDockerImageExists = async (imageUri: string): Promise<void> => {\n await runCommand('docker', ['run', '--rm', '--entrypoint', 'true', imageUri], PULL_TIMEOUT);\n};\n\nexport const testTools = (\n { describe, expect, it, beforeAll }: typeof vitest,\n images: Record<string, Image>,\n _versionCombinations: VersionCombination<string>[],\n versionCommands: Record<string, string[]>,\n): void => {\n describe('Docker image IDs', () => {\n for (const [name, image] of Object.entries(images)) {\n it(`has an image ID of ${name}`, () => {\n expect([image.name, getImageTag(image, '-')].join(':')).toBe(name);\n });\n }\n });\n\n describe('Tool versions', () => {\n for (const literalImage of Object.values(images)) {\n const image: Image = literalImage;\n\n describe(getImageTag(image), () => {\n let imageUri: string;\n\n beforeAll(async () => {\n imageUri = await getImageUri(image, '_');\n await ensureDockerImageExists(imageUri);\n }, PULL_TIMEOUT);\n\n for (const [tool, expectedVersion] of Object.entries(image.versions)) {\n it(\n `should have ${tool} of version ${expectedVersion}`,\n async () => {\n if (!(versionCommands[tool] instanceof Array)) {\n throw new Error('Missing version command');\n }\n\n const version = await runCommand('docker', [\n 'run',\n '--rm',\n '--privileged',\n imageUri,\n ...versionCommands[tool],\n ]);\n\n expect(version).toContain(expectedVersion);\n },\n VERSION_TEST_TIMEOUT,\n );\n }\n });\n }\n });\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  import { displayVersionCombinations, displayToolVersionInfo } from './HVWLZZTF.js';
2
- import { executeToolCommand } from './WUF26TGR.js';
3
- import { volumeMappingSchema } from './46I6PSJ7.js';
2
+ import { executeToolCommand } from './KDX2NZOU.js';
3
+ import { volumeMappingSchema } from './X4R3PN6F.js';
4
4
  import { getToolDefaultVersion, getToolSupportedVersions } from './KWRJPB5T.js';
5
5
  import { init_esm_shims, __name } from './6AHA7PAZ.js';
6
6
  import { Command } from 'commander';
@@ -127,5 +127,5 @@ var runCli = /* @__PURE__ */ __name(async (config, registerExtraCommands) => {
127
127
  }, "runCli");
128
128
 
129
129
  export { runCli };
130
- //# sourceMappingURL=FD5JIY4L.js.map
131
- //# sourceMappingURL=FD5JIY4L.js.map
130
+ //# sourceMappingURL=S2D5P2IJ.js.map
131
+ //# sourceMappingURL=S2D5P2IJ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"names":["createCli","context","registerExtraCommands","tools","toolVersionOptions","Object","fromEntries","map","name","camelCase","parseGlobalOptions","command","cwd","volume","options","opts","resolvedCwd","process","cliVersions","entries","version","filter","tool","configVersions","getDefaultVersions","versions","volumes","program","Command","description","enablePositionalOptions","argv","includes","displayVersionCombinations","exit","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","variables","valueParts","split","length","value","join","type","hostPath","containerPath","volumeMappingSchema","parse","previous","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","executeToolCommand","runCli","config","parseAsync","error","console"],"mappings":"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","file":"FD5JIY4L.js","sourcesContent":["import { Command } from 'commander';\nimport { camelCase } from 'es-toolkit';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport type { EnvironmentVariable, VolumeMapping } from './config';\nimport { volumeMappingSchema } from './config';\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n publish?: string[];\n script?: string;\n customEntrypoint?: string;\n}\n\ntype RegisterExtraCommands = (\n program: Command,\n parseGlobalOptions: (command: Command) => Promise<ToolCommandExecutionOptions>,\n) => void;\n\nconst createCli = <TImageId extends string>(\n context: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Command => {\n const { tools } = context;\n const toolVersionOptions = Object.fromEntries(\n tools.map(({ name }) => [`${camelCase(name)}Version`, name]),\n );\n\n const parseGlobalOptions = async (command: Command): Promise<ToolCommandExecutionOptions> => {\n const { cwd, volume, ...options } = command.opts<GlobalOptions>();\n const resolvedCwd = cwd ?? process.cwd();\n\n // CLI flags take precedence over project config versions\n const cliVersions = Object.fromEntries(\n Object.entries(options)\n .map(([name, version]) => [toolVersionOptions[name], version])\n .filter(([tool]) => tool),\n );\n\n // Read defaults from project config (e.g., Anchor.toml) if the chain provides a hook\n const configVersions = (await context.getDefaultVersions?.(resolvedCwd)) ?? {};\n const versions = { ...configVersions, ...cliVersions };\n\n return {\n ...options,\n cwd: resolvedCwd,\n volumes: volume,\n versions,\n };\n };\n\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(context);\n process.exit(0);\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, variables: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n\n if (!name || !valueParts.length) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n\n return [...variables, { name, value: valueParts.join('=') }];\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, volumes: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n\n switch (type) {\n case 'host':\n if (!hostPath) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n break;\n case 'isolate':\n if (!name) {\n throw new Error(`Name is required for volume type 'isolate'`);\n }\n break;\n default:\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (!containerPath) {\n throw new Error(`Container path is required`);\n }\n\n return [\n ...volumes,\n volumeMappingSchema.parse({ type, hostPath, containerPath, name }),\n ];\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host (repeatable)\",\n (value: string, previous: string[]) => [...previous, value],\n [],\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n program.option(\n `--${tool.name}-version <version>`,\n `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`,\n );\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(context, toolName));\n\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n await executeToolCommand(\n context,\n tool.name,\n args,\n await parseGlobalOptions(program),\n );\n });\n }\n\n // Allow external registration of extra commands\n registerExtraCommands?.(program, parseGlobalOptions);\n\n return program;\n};\n\nexport const runCli = async <TImageId extends string>(\n config: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Promise<void> => {\n try {\n await createCli<TImageId>(config, registerExtraCommands).parseAsync();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/cli.ts"],"names":["createCli","context","registerExtraCommands","tools","toolVersionOptions","Object","fromEntries","map","name","camelCase","parseGlobalOptions","command","cwd","volume","options","opts","resolvedCwd","process","cliVersions","entries","version","filter","tool","configVersions","getDefaultVersions","versions","volumes","program","Command","description","enablePositionalOptions","argv","includes","displayVersionCombinations","exit","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","variables","valueParts","split","length","value","join","type","hostPath","containerPath","volumeMappingSchema","parse","previous","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","executeToolCommand","runCli","config","parseAsync","error","console"],"mappings":"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","file":"S2D5P2IJ.js","sourcesContent":["import { Command } from 'commander';\nimport { camelCase } from 'es-toolkit';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport type { EnvironmentVariable, VolumeMapping } from './config';\nimport { volumeMappingSchema } from './config';\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n publish?: string[];\n script?: string;\n customEntrypoint?: string;\n}\n\ntype RegisterExtraCommands = (\n program: Command,\n parseGlobalOptions: (command: Command) => Promise<ToolCommandExecutionOptions>,\n) => void;\n\nconst createCli = <TImageId extends string>(\n context: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Command => {\n const { tools } = context;\n const toolVersionOptions = Object.fromEntries(\n tools.map(({ name }) => [`${camelCase(name)}Version`, name]),\n );\n\n const parseGlobalOptions = async (command: Command): Promise<ToolCommandExecutionOptions> => {\n const { cwd, volume, ...options } = command.opts<GlobalOptions>();\n const resolvedCwd = cwd ?? process.cwd();\n\n // CLI flags take precedence over project config versions\n const cliVersions = Object.fromEntries(\n Object.entries(options)\n .map(([name, version]) => [toolVersionOptions[name], version])\n .filter(([tool]) => tool),\n );\n\n // Read defaults from project config (e.g., Anchor.toml) if the chain provides a hook\n const configVersions = (await context.getDefaultVersions?.(resolvedCwd)) ?? {};\n const versions = { ...configVersions, ...cliVersions };\n\n return {\n ...options,\n cwd: resolvedCwd,\n volumes: volume,\n versions,\n };\n };\n\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(context);\n process.exit(0);\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, variables: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n\n if (!name || !valueParts.length) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n\n return [...variables, { name, value: valueParts.join('=') }];\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, volumes: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n\n switch (type) {\n case 'host':\n if (!hostPath) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n break;\n case 'isolate':\n if (!name) {\n throw new Error(`Name is required for volume type 'isolate'`);\n }\n break;\n default:\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (!containerPath) {\n throw new Error(`Container path is required`);\n }\n\n return [\n ...volumes,\n volumeMappingSchema.parse({ type, hostPath, containerPath, name }),\n ];\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host (repeatable)\",\n (value: string, previous: string[]) => [...previous, value],\n [],\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n program.option(\n `--${tool.name}-version <version>`,\n `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`,\n );\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(context, toolName));\n\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n await executeToolCommand(\n context,\n tool.name,\n args,\n await parseGlobalOptions(program),\n );\n });\n }\n\n // Allow external registration of extra commands\n registerExtraCommands?.(program, parseGlobalOptions);\n\n return program;\n};\n\nexport const runCli = async <TImageId extends string>(\n config: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Promise<void> => {\n try {\n await createCli<TImageId>(config, registerExtraCommands).parseAsync();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { generateGithubMatrix } from './VF2UWSC3.js';
1
+ import { generateGithubMatrix } from './KPLQJLFW.js';
2
2
  import { init_esm_shims, __name } from './6AHA7PAZ.js';
3
3
  import { stdout } from 'process';
4
4
 
@@ -11,5 +11,5 @@ var runGithubMatrixGenerator = /* @__PURE__ */ __name(async (images, directory,
11
11
  }, "runGithubMatrixGenerator");
12
12
 
13
13
  export { runGithubMatrixGenerator };
14
- //# sourceMappingURL=M2CDZILC.js.map
15
- //# sourceMappingURL=M2CDZILC.js.map
14
+ //# sourceMappingURL=TGTQ2DSF.js.map
15
+ //# sourceMappingURL=TGTQ2DSF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/github/index.ts"],"names":["runGithubMatrixGenerator","images","directory","versionCombinations","entries","generateGithubMatrix","console","warn","JSON","stringify","stdout","write"],"mappings":";;;;;AAAA,cAAA,EAAA;AAKO,IAAMA,wBAAAA,mBAA2B,MAAA,CAAA,OACpCC,MAAAA,EACAC,SAAAA,EACAC,mBAAAA,KAAAA;AAEA,EAAA,MAAMC,OAAAA,GAAUC,oBAAAA,CAAqBJ,MAAAA,EAAQC,SAAAA,EAAWC,mBAAAA,CAAAA;AAExDG,EAAAA,OAAAA,CAAQC,KAAK,iCAAA,EAAmCC,IAAAA,CAAKC,UAAUL,OAAAA,EAAS,IAAA,EAAM,CAAA,CAAA,CAAA;AAC9EM,EAAAA,MAAAA,CAAOC,KAAAA,CAAMH,IAAAA,CAAKC,SAAAA,CAAUL,OAAAA,CAAAA,CAAAA;AAChC,CAAA,EATwC,0BAAA","file":"M2CDZILC.js","sourcesContent":["import { stdout } from 'node:process';\n\nimport type { Image, VersionCombination } from '../config';\nimport { generateGithubMatrix } from './matrix';\n\nexport const runGithubMatrixGenerator = async (\n images: Record<string, Image>,\n directory: string,\n versionCombinations?: VersionCombination<string>[],\n): Promise<void> => {\n const entries = generateGithubMatrix(images, directory, versionCombinations);\n\n console.warn('GitHub Action matrix generated:', JSON.stringify(entries, null, 2));\n stdout.write(JSON.stringify(entries));\n};\n"]}
1
+ {"version":3,"sources":["../src/github/index.ts"],"names":["runGithubMatrixGenerator","images","directory","versionCombinations","entries","generateGithubMatrix","console","warn","JSON","stringify","stdout","write"],"mappings":";;;;;AAAA,cAAA,EAAA;AAKO,IAAMA,wBAAAA,mBAA2B,MAAA,CAAA,OACpCC,MAAAA,EACAC,SAAAA,EACAC,mBAAAA,KAAAA;AAEA,EAAA,MAAMC,OAAAA,GAAUC,oBAAAA,CAAqBJ,MAAAA,EAAQC,SAAAA,EAAWC,mBAAAA,CAAAA;AAExDG,EAAAA,OAAAA,CAAQC,KAAK,iCAAA,EAAmCC,IAAAA,CAAKC,UAAUL,OAAAA,EAAS,IAAA,EAAM,CAAA,CAAA,CAAA;AAC9EM,EAAAA,MAAAA,CAAOC,KAAAA,CAAMH,IAAAA,CAAKC,SAAAA,CAAUL,OAAAA,CAAAA,CAAAA;AAChC,CAAA,EATwC,0BAAA","file":"TGTQ2DSF.js","sourcesContent":["import { stdout } from 'node:process';\n\nimport type { Image, VersionCombination } from '../config';\nimport { generateGithubMatrix } from './matrix';\n\nexport const runGithubMatrixGenerator = async (\n images: Record<string, Image>,\n directory: string,\n versionCombinations?: VersionCombination<string>[],\n): Promise<void> => {\n const entries = generateGithubMatrix(images, directory, versionCombinations);\n\n console.warn('GitHub Action matrix generated:', JSON.stringify(entries, null, 2));\n stdout.write(JSON.stringify(entries));\n};\n"]}
@@ -49,5 +49,5 @@ var getImageDirectory = /* @__PURE__ */ __name(async () => (await getRegistryCon
49
49
  var getRegistry = /* @__PURE__ */ __name(async () => (await getRegistryConfig()).registry, "getRegistry");
50
50
 
51
51
  export { DockerRegistryMirror, getImageDirectory, getRegistry, volumeMappingSchema };
52
- //# sourceMappingURL=46I6PSJ7.js.map
53
- //# sourceMappingURL=46I6PSJ7.js.map
52
+ //# sourceMappingURL=X4R3PN6F.js.map
53
+ //# sourceMappingURL=X4R3PN6F.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config.ts"],"names":["registryConfigCache","getRegistryConfig","envRegistry","process","env","VM_TOOLING_REGISTRY","envImageDirectory","VM_TOOLING_IMAGE_DIRECTORY","registry","imageDirectory","workspaceRoot","getFullyQualifiedRepoRootPath","configPath","join","module","default","volumeMappingBaseSchema","object","containerPath","string","hostVolumeMappingSchema","extend","type","literal","hostPath","isolateVolumeMappingSchema","name","shared","optional","boolean","locked","volumeMappingSchema","union","DockerRegistryMirror","getImageDirectory","getRegistry"],"mappings":";;;;;;AAAA,cAAA,EAAA;AAaA,IAAIA,mBAAAA;AAEJ,IAAMC,oCAAoB,MAAA,CAAA,YAAA;AACtB,EAAA,IAAI,CAACD,mBAAAA,EAAqB;AACtB,IAAA,MAAME,WAAAA,GAAcC,QAAQC,GAAAA,CAAIC,mBAAAA;AAChC,IAAA,MAAMC,iBAAAA,GAAoBH,QAAQC,GAAAA,CAAIG,0BAAAA;AAEtC,IAAA,IAAIL,eAAeI,iBAAAA,EAAmB;AAClCN,MAAAA,mBAAAA,GAAsB;QAAEQ,QAAAA,EAAUN,WAAAA;QAAaO,cAAAA,EAAgBH;AAAkB,OAAA;IACrF,CAAA,MAAO;AACH,MAAA,MAAMI,aAAAA,GAAgB,MAAMC,6BAAAA,EAAAA;AAC5B,MAAA,MAAMC,aAAaC,IAAAA,CACfH,aAAAA,EACA,SAAA,EACA,YAAA,EACA,UACA,sBAAA,CAAA;AAGJ,MAAA,MAAMI,MAAAA,GAAS,MAAM,OAAOF,UAAAA,CAAAA;AAC5BZ,MAAAA,mBAAAA,GAAsBc,MAAAA,CAAOC,OAAAA;AACjC,IAAA;AACJ,EAAA;AACA,EAAA,OAAOf,mBAAAA;AACX,CAAA,EAtB0B,mBAAA,CAAA;AAwB1B,IAAMgB,0BAA4BC,CAAAA,CAAAA,MAAAA,CAAO;AACrCC,EAAAA,aAAAA,EAAiBC,CAAAA,CAAAA,MAAAA;AACrB,CAAA,CAAA;AAEA,IAAMC,uBAAAA,GAA0BJ,wBAAwBK,MAAAA,CAAO;AAC3DC,EAAAA,IAAAA,EAAQC,UAAQ,MAAA,CAAA;AAChBC,EAAAA,QAAAA,EAAYL,CAAAA,CAAAA,MAAAA;AAChB,CAAA,CAAA;AAEA,IAAMM,0BAAAA,GAA6BT,wBAAwBK,MAAAA,CAAO;AAC9DC,EAAAA,IAAAA,EAAQC,UAAQ,SAAA,CAAA;AAChBG,EAAAA,IAAAA,EAAQP,CAAAA,CAAAA,MAAAA,EAAM;EACdQ,MAAAA,EAAUC,CAAAA,CAAAA,QAAAA,CAAWC,WAAO,CAAA;EAC5BC,MAAAA,EAAUF,CAAAA,CAAAA,QAAAA,CAAWC,WAAO;AAChC,CAAA,CAAA;AAEO,IAAME,sBAAwBC,CAAAA,CAAAA,KAAAA,CAAM;AAACZ,EAAAA,uBAAAA;AAAyBK,EAAAA;AAA2B,CAAA;AA6BzF,IAAKQ,oBAAAA,6BAAAA,qBAAAA,EAAAA;;AAAAA,EAAAA,OAAAA,qBAAAA;;AAmBL,IAAMC,iBAAAA,mBAAoB,MAAA,CAAA,YAAA,CAAa,MAAMjC,iBAAAA,IAAqBQ,cAAAA,EAAxC,mBAAA;AAC1B,IAAM0B,WAAAA,mBAAc,MAAA,CAAA,YAAA,CAAa,MAAMlC,iBAAAA,IAAqBO,QAAAA,EAAxC,aAAA","file":"46I6PSJ7.js","sourcesContent":["import { join } from 'node:path';\nimport * as z from 'zod';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core/tool-executor';\n\ninterface RegistryConfig {\n registry: string;\n imageDirectory: string;\n}\n\nlet registryConfigCache: RegistryConfig | undefined;\n\nconst getRegistryConfig = async (): Promise<RegistryConfig> => {\n if (!registryConfigCache) {\n const envRegistry = process.env.VM_TOOLING_REGISTRY;\n const envImageDirectory = process.env.VM_TOOLING_IMAGE_DIRECTORY;\n\n if (envRegistry && envImageDirectory) {\n registryConfigCache = { registry: envRegistry, imageDirectory: envImageDirectory };\n } else {\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const configPath = join(\n workspaceRoot,\n 'configs',\n 'vm-tooling',\n 'values',\n 'docker-image-repo.ts',\n );\n\n const module = await import(configPath);\n registryConfigCache = module.default;\n }\n }\n return registryConfigCache!;\n};\n\nconst volumeMappingBaseSchema = z.object({\n containerPath: z.string(),\n});\n\nconst hostVolumeMappingSchema = volumeMappingBaseSchema.extend({\n type: z.literal('host'),\n hostPath: z.string(),\n});\n\nconst isolateVolumeMappingSchema = volumeMappingBaseSchema.extend({\n type: z.literal('isolate'),\n name: z.string(),\n shared: z.optional(z.boolean()),\n locked: z.optional(z.boolean()),\n});\n\nexport const volumeMappingSchema = z.union([hostVolumeMappingSchema, isolateVolumeMappingSchema]);\n\nexport type VolumeMapping = z.infer<typeof volumeMappingSchema>;\n\nexport interface EnvironmentVariable {\n name: string;\n value: string;\n}\n\nexport interface Tool {\n name: string;\n privileged?: boolean;\n\n // Default isolate volumes for caching (user volumes can override these)\n defaultVolumes?: readonly VolumeMapping[];\n\n // Default environment variables (user env vars can override these)\n defaultEnv?: readonly EnvironmentVariable[];\n\n // Optional version parsing and validation functions\n getSecondaryVersion?: (args: { cwd: string }) => Promise<string>;\n\n // Optional hook called before every tool command execution (e.g., toolchain sync)\n preExecute?: (\n context: ChainContext<string>,\n options: ToolCommandExecutionOptions,\n ) => Promise<void>;\n}\n\nexport enum DockerRegistryMirror {\n PUBLIC_GAR = 'public-gar',\n}\n\nexport interface Image {\n name: string;\n versions: Record<string, string>;\n dependencies?: Record<string, string>;\n patch?: number;\n unreleased?: boolean;\n mirrorRegistries?: DockerRegistryMirror[];\n}\n\nexport interface VersionCombination<TImageId> {\n images: Record<string, TImageId>;\n description?: string;\n stable?: boolean;\n}\n\nexport const getImageDirectory = async () => (await getRegistryConfig()).imageDirectory;\nexport const getRegistry = async () => (await getRegistryConfig()).registry;\n"]}
1
+ {"version":3,"sources":["../src/config.ts"],"names":["registryConfigCache","getRegistryConfig","envRegistry","process","env","VM_TOOLING_REGISTRY","envImageDirectory","VM_TOOLING_IMAGE_DIRECTORY","registry","imageDirectory","workspaceRoot","getFullyQualifiedRepoRootPath","configPath","join","module","default","volumeMappingBaseSchema","object","containerPath","string","hostVolumeMappingSchema","extend","type","literal","hostPath","isolateVolumeMappingSchema","name","shared","optional","boolean","locked","volumeMappingSchema","union","DockerRegistryMirror","getImageDirectory","getRegistry"],"mappings":";;;;;;AAAA,cAAA,EAAA;AAaA,IAAIA,mBAAAA;AAEJ,IAAMC,oCAAoB,MAAA,CAAA,YAAA;AACtB,EAAA,IAAI,CAACD,mBAAAA,EAAqB;AACtB,IAAA,MAAME,WAAAA,GAAcC,QAAQC,GAAAA,CAAIC,mBAAAA;AAChC,IAAA,MAAMC,iBAAAA,GAAoBH,QAAQC,GAAAA,CAAIG,0BAAAA;AAEtC,IAAA,IAAIL,eAAeI,iBAAAA,EAAmB;AAClCN,MAAAA,mBAAAA,GAAsB;QAAEQ,QAAAA,EAAUN,WAAAA;QAAaO,cAAAA,EAAgBH;AAAkB,OAAA;IACrF,CAAA,MAAO;AACH,MAAA,MAAMI,aAAAA,GAAgB,MAAMC,6BAAAA,EAAAA;AAC5B,MAAA,MAAMC,aAAaC,IAAAA,CACfH,aAAAA,EACA,SAAA,EACA,YAAA,EACA,UACA,sBAAA,CAAA;AAGJ,MAAA,MAAMI,MAAAA,GAAS,MAAM,OAAOF,UAAAA,CAAAA;AAC5BZ,MAAAA,mBAAAA,GAAsBc,MAAAA,CAAOC,OAAAA;AACjC,IAAA;AACJ,EAAA;AACA,EAAA,OAAOf,mBAAAA;AACX,CAAA,EAtB0B,mBAAA,CAAA;AAwB1B,IAAMgB,0BAA4BC,CAAAA,CAAAA,MAAAA,CAAO;AACrCC,EAAAA,aAAAA,EAAiBC,CAAAA,CAAAA,MAAAA;AACrB,CAAA,CAAA;AAEA,IAAMC,uBAAAA,GAA0BJ,wBAAwBK,MAAAA,CAAO;AAC3DC,EAAAA,IAAAA,EAAQC,UAAQ,MAAA,CAAA;AAChBC,EAAAA,QAAAA,EAAYL,CAAAA,CAAAA,MAAAA;AAChB,CAAA,CAAA;AAEA,IAAMM,0BAAAA,GAA6BT,wBAAwBK,MAAAA,CAAO;AAC9DC,EAAAA,IAAAA,EAAQC,UAAQ,SAAA,CAAA;AAChBG,EAAAA,IAAAA,EAAQP,CAAAA,CAAAA,MAAAA,EAAM;EACdQ,MAAAA,EAAUC,CAAAA,CAAAA,QAAAA,CAAWC,WAAO,CAAA;EAC5BC,MAAAA,EAAUF,CAAAA,CAAAA,QAAAA,CAAWC,WAAO;AAChC,CAAA,CAAA;AAEO,IAAME,sBAAwBC,CAAAA,CAAAA,KAAAA,CAAM;AAACZ,EAAAA,uBAAAA;AAAyBK,EAAAA;AAA2B,CAAA;AA6BzF,IAAKQ,oBAAAA,6BAAAA,qBAAAA,EAAAA;;AAAAA,EAAAA,OAAAA,qBAAAA;;AAkBL,IAAMC,iBAAAA,mBAAoB,MAAA,CAAA,YAAA,CAAa,MAAMjC,iBAAAA,IAAqBQ,cAAAA,EAAxC,mBAAA;AAC1B,IAAM0B,WAAAA,mBAAc,MAAA,CAAA,YAAA,CAAa,MAAMlC,iBAAAA,IAAqBO,QAAAA,EAAxC,aAAA","file":"X4R3PN6F.js","sourcesContent":["import { join } from 'node:path';\nimport * as z from 'zod';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core/tool-executor';\n\ninterface RegistryConfig {\n registry: string;\n imageDirectory: string;\n}\n\nlet registryConfigCache: RegistryConfig | undefined;\n\nconst getRegistryConfig = async (): Promise<RegistryConfig> => {\n if (!registryConfigCache) {\n const envRegistry = process.env.VM_TOOLING_REGISTRY;\n const envImageDirectory = process.env.VM_TOOLING_IMAGE_DIRECTORY;\n\n if (envRegistry && envImageDirectory) {\n registryConfigCache = { registry: envRegistry, imageDirectory: envImageDirectory };\n } else {\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const configPath = join(\n workspaceRoot,\n 'configs',\n 'vm-tooling',\n 'values',\n 'docker-image-repo.ts',\n );\n\n const module = await import(configPath);\n registryConfigCache = module.default;\n }\n }\n return registryConfigCache!;\n};\n\nconst volumeMappingBaseSchema = z.object({\n containerPath: z.string(),\n});\n\nconst hostVolumeMappingSchema = volumeMappingBaseSchema.extend({\n type: z.literal('host'),\n hostPath: z.string(),\n});\n\nconst isolateVolumeMappingSchema = volumeMappingBaseSchema.extend({\n type: z.literal('isolate'),\n name: z.string(),\n shared: z.optional(z.boolean()),\n locked: z.optional(z.boolean()),\n});\n\nexport const volumeMappingSchema = z.union([hostVolumeMappingSchema, isolateVolumeMappingSchema]);\n\nexport type VolumeMapping = z.infer<typeof volumeMappingSchema>;\n\nexport interface EnvironmentVariable {\n name: string;\n value: string;\n}\n\nexport interface Tool {\n name: string;\n privileged?: boolean;\n\n // Default isolate volumes for caching (user volumes can override these)\n defaultVolumes?: readonly VolumeMapping[];\n\n // Default environment variables (user env vars can override these)\n defaultEnv?: readonly EnvironmentVariable[];\n\n // Optional version parsing and validation functions\n getSecondaryVersion?: (args: { cwd: string }) => Promise<string>;\n\n // Optional hook called before every tool command execution (e.g., toolchain sync)\n preExecute?: (\n context: ChainContext<string>,\n options: ToolCommandExecutionOptions,\n ) => Promise<void>;\n}\n\nexport enum DockerRegistryMirror {\n PUBLIC_GAR = 'public-gar',\n}\n\nexport interface Image {\n name: string;\n versions: Record<string, string>;\n dependencies?: Record<string, string>;\n patch?: number;\n mirrorRegistries?: DockerRegistryMirror[];\n}\n\nexport interface VersionCombination<TImageId> {\n images: Record<string, TImageId>;\n description?: string;\n stable?: boolean;\n}\n\nexport const getImageDirectory = async () => (await getRegistryConfig()).imageDirectory;\nexport const getRegistry = async () => (await getRegistryConfig()).registry;\n"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  var O2P6E7GR_cjs = require('./O2P6E7GR.cjs');
4
- var NQIX4C7Z_cjs = require('./NQIX4C7Z.cjs');
5
- var _2NTYK3VO_cjs = require('./2NTYK3VO.cjs');
4
+ var BJD6YP5Q_cjs = require('./BJD6YP5Q.cjs');
5
+ var _7PWQZJWC_cjs = require('./7PWQZJWC.cjs');
6
6
  var _5GPMTH2I_cjs = require('./5GPMTH2I.cjs');
7
7
  var _24WEKBY3_cjs = require('./24WEKBY3.cjs');
8
8
  var commander = require('commander');
@@ -97,7 +97,7 @@ var createCli = /* @__PURE__ */ _24WEKBY3_cjs.__name((context, registerExtraComm
97
97
  }
98
98
  return [
99
99
  ...volumes,
100
- _2NTYK3VO_cjs.volumeMappingSchema.parse({
100
+ _7PWQZJWC_cjs.volumeMappingSchema.parse({
101
101
  type,
102
102
  hostPath,
103
103
  containerPath,
@@ -119,7 +119,7 @@ var createCli = /* @__PURE__ */ _24WEKBY3_cjs.__name((context, registerExtraComm
119
119
  program.command(tool.name, {
120
120
  isDefault: false
121
121
  }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool").action(async (args) => {
122
- await NQIX4C7Z_cjs.executeToolCommand(context, tool.name, args, await parseGlobalOptions(program));
122
+ await BJD6YP5Q_cjs.executeToolCommand(context, tool.name, args, await parseGlobalOptions(program));
123
123
  });
124
124
  }
125
125
  registerExtraCommands?.(program, parseGlobalOptions);
@@ -135,5 +135,5 @@ var runCli = /* @__PURE__ */ _24WEKBY3_cjs.__name(async (config, registerExtraCo
135
135
  }, "runCli");
136
136
 
137
137
  exports.runCli = runCli;
138
- //# sourceMappingURL=L364LHEH.cjs.map
139
- //# sourceMappingURL=L364LHEH.cjs.map
138
+ //# sourceMappingURL=Z7EACAGJ.cjs.map
139
+ //# sourceMappingURL=Z7EACAGJ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"names":["init_cjs_shims","createCli","__name","context","registerExtraCommands","tools","toolVersionOptions","Object","fromEntries","map","name","camelCase","parseGlobalOptions","command","cwd","volume","options","opts","resolvedCwd","process","cliVersions","entries","version","filter","tool","configVersions","getDefaultVersions","versions","volumes","program","Command","description","enablePositionalOptions","argv","includes","displayVersionCombinations","exit","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","variables","valueParts","split","length","value","join","type","hostPath","containerPath","volumeMappingSchema","parse","previous","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","executeToolCommand","runCli","config","parseAsync","error","console"],"mappings":"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","file":"L364LHEH.cjs","sourcesContent":["import { Command } from 'commander';\nimport { camelCase } from 'es-toolkit';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport type { EnvironmentVariable, VolumeMapping } from './config';\nimport { volumeMappingSchema } from './config';\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n publish?: string[];\n script?: string;\n customEntrypoint?: string;\n}\n\ntype RegisterExtraCommands = (\n program: Command,\n parseGlobalOptions: (command: Command) => Promise<ToolCommandExecutionOptions>,\n) => void;\n\nconst createCli = <TImageId extends string>(\n context: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Command => {\n const { tools } = context;\n const toolVersionOptions = Object.fromEntries(\n tools.map(({ name }) => [`${camelCase(name)}Version`, name]),\n );\n\n const parseGlobalOptions = async (command: Command): Promise<ToolCommandExecutionOptions> => {\n const { cwd, volume, ...options } = command.opts<GlobalOptions>();\n const resolvedCwd = cwd ?? process.cwd();\n\n // CLI flags take precedence over project config versions\n const cliVersions = Object.fromEntries(\n Object.entries(options)\n .map(([name, version]) => [toolVersionOptions[name], version])\n .filter(([tool]) => tool),\n );\n\n // Read defaults from project config (e.g., Anchor.toml) if the chain provides a hook\n const configVersions = (await context.getDefaultVersions?.(resolvedCwd)) ?? {};\n const versions = { ...configVersions, ...cliVersions };\n\n return {\n ...options,\n cwd: resolvedCwd,\n volumes: volume,\n versions,\n };\n };\n\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(context);\n process.exit(0);\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, variables: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n\n if (!name || !valueParts.length) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n\n return [...variables, { name, value: valueParts.join('=') }];\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, volumes: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n\n switch (type) {\n case 'host':\n if (!hostPath) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n break;\n case 'isolate':\n if (!name) {\n throw new Error(`Name is required for volume type 'isolate'`);\n }\n break;\n default:\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (!containerPath) {\n throw new Error(`Container path is required`);\n }\n\n return [\n ...volumes,\n volumeMappingSchema.parse({ type, hostPath, containerPath, name }),\n ];\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host (repeatable)\",\n (value: string, previous: string[]) => [...previous, value],\n [],\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n program.option(\n `--${tool.name}-version <version>`,\n `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`,\n );\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(context, toolName));\n\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n await executeToolCommand(\n context,\n tool.name,\n args,\n await parseGlobalOptions(program),\n );\n });\n }\n\n // Allow external registration of extra commands\n registerExtraCommands?.(program, parseGlobalOptions);\n\n return program;\n};\n\nexport const runCli = async <TImageId extends string>(\n config: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Promise<void> => {\n try {\n await createCli<TImageId>(config, registerExtraCommands).parseAsync();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/cli.ts"],"names":["init_cjs_shims","createCli","__name","context","registerExtraCommands","tools","toolVersionOptions","Object","fromEntries","map","name","camelCase","parseGlobalOptions","command","cwd","volume","options","opts","resolvedCwd","process","cliVersions","entries","version","filter","tool","configVersions","getDefaultVersions","versions","volumes","program","Command","description","enablePositionalOptions","argv","includes","displayVersionCombinations","exit","option","input","Error","path","isAbsolute","fs","existsSync","statSync","isDirectory","variables","valueParts","split","length","value","join","type","hostPath","containerPath","volumeMappingSchema","parse","previous","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","executeToolCommand","runCli","config","parseAsync","error","console"],"mappings":"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","file":"Z7EACAGJ.cjs","sourcesContent":["import { Command } from 'commander';\nimport { camelCase } from 'es-toolkit';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport type { EnvironmentVariable, VolumeMapping } from './config';\nimport { volumeMappingSchema } from './config';\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n publish?: string[];\n script?: string;\n customEntrypoint?: string;\n}\n\ntype RegisterExtraCommands = (\n program: Command,\n parseGlobalOptions: (command: Command) => Promise<ToolCommandExecutionOptions>,\n) => void;\n\nconst createCli = <TImageId extends string>(\n context: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Command => {\n const { tools } = context;\n const toolVersionOptions = Object.fromEntries(\n tools.map(({ name }) => [`${camelCase(name)}Version`, name]),\n );\n\n const parseGlobalOptions = async (command: Command): Promise<ToolCommandExecutionOptions> => {\n const { cwd, volume, ...options } = command.opts<GlobalOptions>();\n const resolvedCwd = cwd ?? process.cwd();\n\n // CLI flags take precedence over project config versions\n const cliVersions = Object.fromEntries(\n Object.entries(options)\n .map(([name, version]) => [toolVersionOptions[name], version])\n .filter(([tool]) => tool),\n );\n\n // Read defaults from project config (e.g., Anchor.toml) if the chain provides a hook\n const configVersions = (await context.getDefaultVersions?.(resolvedCwd)) ?? {};\n const versions = { ...configVersions, ...cliVersions };\n\n return {\n ...options,\n cwd: resolvedCwd,\n volumes: volume,\n versions,\n };\n };\n\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(context);\n process.exit(0);\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, variables: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n\n if (!name || !valueParts.length) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n\n return [...variables, { name, value: valueParts.join('=') }];\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, volumes: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n\n switch (type) {\n case 'host':\n if (!hostPath) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n break;\n case 'isolate':\n if (!name) {\n throw new Error(`Name is required for volume type 'isolate'`);\n }\n break;\n default:\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (!containerPath) {\n throw new Error(`Container path is required`);\n }\n\n return [\n ...volumes,\n volumeMappingSchema.parse({ type, hostPath, containerPath, name }),\n ];\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host (repeatable)\",\n (value: string, previous: string[]) => [...previous, value],\n [],\n );\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n program.option(\n `--${tool.name}-version <version>`,\n `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`,\n );\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(context, toolName));\n\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n await executeToolCommand(\n context,\n tool.name,\n args,\n await parseGlobalOptions(program),\n );\n });\n }\n\n // Allow external registration of extra commands\n registerExtraCommands?.(program, parseGlobalOptions);\n\n return program;\n};\n\nexport const runCli = async <TImageId extends string>(\n config: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Promise<void> => {\n try {\n await createCli<TImageId>(config, registerExtraCommands).parseAsync();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
package/dist/cli.cjs CHANGED
@@ -1,15 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var L364LHEH_cjs = require('./L364LHEH.cjs');
3
+ var Z7EACAGJ_cjs = require('./Z7EACAGJ.cjs');
4
4
  require('./Y76LNXBO.cjs');
5
5
  require('./O2P6E7GR.cjs');
6
6
  require('./IPYOACCU.cjs');
7
7
  require('./24NWZBNF.cjs');
8
- require('./NQIX4C7Z.cjs');
8
+ require('./BJD6YP5Q.cjs');
9
9
  require('./T3GK7LED.cjs');
10
10
  require('./A5X4BLYY.cjs');
11
- require('./533SFXIE.cjs');
12
- require('./2NTYK3VO.cjs');
11
+ require('./HSCHZUOV.cjs');
12
+ require('./7PWQZJWC.cjs');
13
13
  require('./2Z4Y2ZR3.cjs');
14
14
  require('./5GPMTH2I.cjs');
15
15
  require('./XFDJEDQJ.cjs');
@@ -19,7 +19,7 @@ require('./24WEKBY3.cjs');
19
19
 
20
20
  Object.defineProperty(exports, "runCli", {
21
21
  enumerable: true,
22
- get: function () { return L364LHEH_cjs.runCli; }
22
+ get: function () { return Z7EACAGJ_cjs.runCli; }
23
23
  });
24
24
  //# sourceMappingURL=cli.cjs.map
25
25
  //# sourceMappingURL=cli.cjs.map
package/dist/cli.js CHANGED
@@ -1,13 +1,13 @@
1
- export { runCli } from './FD5JIY4L.js';
1
+ export { runCli } from './S2D5P2IJ.js';
2
2
  import './XROMTYOP.js';
3
3
  import './HVWLZZTF.js';
4
4
  import './77VFG7S6.js';
5
5
  import './22DCFDRO.js';
6
- import './WUF26TGR.js';
6
+ import './KDX2NZOU.js';
7
7
  import './7XVJ6B7B.js';
8
8
  import './ZO7WI2XS.js';
9
- import './GPDDKHCR.js';
10
- import './46I6PSJ7.js';
9
+ import './ERBSYZRH.js';
10
+ import './X4R3PN6F.js';
11
11
  import './WSGRZJVU.js';
12
12
  import './KWRJPB5T.js';
13
13
  import './BAPGOHFS.js';
package/dist/config.cjs CHANGED
@@ -1,25 +1,25 @@
1
1
  'use strict';
2
2
 
3
- var _2NTYK3VO_cjs = require('./2NTYK3VO.cjs');
3
+ var _7PWQZJWC_cjs = require('./7PWQZJWC.cjs');
4
4
  require('./24WEKBY3.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "DockerRegistryMirror", {
9
9
  enumerable: true,
10
- get: function () { return _2NTYK3VO_cjs.DockerRegistryMirror; }
10
+ get: function () { return _7PWQZJWC_cjs.DockerRegistryMirror; }
11
11
  });
12
12
  Object.defineProperty(exports, "getImageDirectory", {
13
13
  enumerable: true,
14
- get: function () { return _2NTYK3VO_cjs.getImageDirectory; }
14
+ get: function () { return _7PWQZJWC_cjs.getImageDirectory; }
15
15
  });
16
16
  Object.defineProperty(exports, "getRegistry", {
17
17
  enumerable: true,
18
- get: function () { return _2NTYK3VO_cjs.getRegistry; }
18
+ get: function () { return _7PWQZJWC_cjs.getRegistry; }
19
19
  });
20
20
  Object.defineProperty(exports, "volumeMappingSchema", {
21
21
  enumerable: true,
22
- get: function () { return _2NTYK3VO_cjs.volumeMappingSchema; }
22
+ get: function () { return _7PWQZJWC_cjs.volumeMappingSchema; }
23
23
  });
24
24
  //# sourceMappingURL=config.cjs.map
25
25
  //# sourceMappingURL=config.cjs.map
package/dist/config.d.ts CHANGED
@@ -35,7 +35,6 @@ export interface Image {
35
35
  versions: Record<string, string>;
36
36
  dependencies?: Record<string, string>;
37
37
  patch?: number;
38
- unreleased?: boolean;
39
38
  mirrorRegistries?: DockerRegistryMirror[];
40
39
  }
41
40
  export interface VersionCombination<TImageId> {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAiDxE,eAAO,MAAM,mBAAmB;;;;;;;;;;mBAAiE,CAAC;AAElG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAG1C,UAAU,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAG5C,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAGjE,UAAU,CAAC,EAAE,CACT,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,EAC7B,OAAO,EAAE,2BAA2B,KACnC,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,oBAAY,oBAAoB;IAC5B,UAAU,eAAe;CAC5B;AAED,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB,CAAC,QAAQ;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,uBAAyD,CAAC;AACxF,eAAO,MAAM,WAAW,uBAAmD,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;AAiDxE,eAAO,MAAM,mBAAmB;;;;;;;;;;mBAAiE,CAAC;AAElG,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,IAAI;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IAGrB,cAAc,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IAG1C,UAAU,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAG5C,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAGjE,UAAU,CAAC,EAAE,CACT,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,EAC7B,OAAO,EAAE,2BAA2B,KACnC,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,oBAAY,oBAAoB;IAC5B,UAAU,eAAe;CAC5B;AAED,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB,CAAC,QAAQ;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,iBAAiB,uBAAyD,CAAC;AACxF,eAAO,MAAM,WAAW,uBAAmD,CAAC"}
package/dist/config.js CHANGED
@@ -1,4 +1,4 @@
1
- export { DockerRegistryMirror, getImageDirectory, getRegistry, volumeMappingSchema } from './46I6PSJ7.js';
1
+ export { DockerRegistryMirror, getImageDirectory, getRegistry, volumeMappingSchema } from './X4R3PN6F.js';
2
2
  import './6AHA7PAZ.js';
3
3
  //# sourceMappingURL=config.js.map
4
4
  //# sourceMappingURL=config.js.map
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  require('../24NWZBNF.cjs');
4
- var NQIX4C7Z_cjs = require('../NQIX4C7Z.cjs');
4
+ var BJD6YP5Q_cjs = require('../BJD6YP5Q.cjs');
5
5
  require('../T3GK7LED.cjs');
6
6
  var A5X4BLYY_cjs = require('../A5X4BLYY.cjs');
7
- require('../533SFXIE.cjs');
8
- require('../2NTYK3VO.cjs');
7
+ require('../HSCHZUOV.cjs');
8
+ require('../7PWQZJWC.cjs');
9
9
  require('../2Z4Y2ZR3.cjs');
10
10
  require('../5GPMTH2I.cjs');
11
11
  require('../XFDJEDQJ.cjs');
@@ -15,7 +15,7 @@ require('../24WEKBY3.cjs');
15
15
 
16
16
  Object.defineProperty(exports, "executeToolCommand", {
17
17
  enumerable: true,
18
- get: function () { return NQIX4C7Z_cjs.executeToolCommand; }
18
+ get: function () { return BJD6YP5Q_cjs.executeToolCommand; }
19
19
  });
20
20
  Object.defineProperty(exports, "resolveTypeVersions", {
21
21
  enumerable: true,
@@ -1,9 +1,9 @@
1
1
  import '../22DCFDRO.js';
2
- export { executeToolCommand } from '../WUF26TGR.js';
2
+ export { executeToolCommand } from '../KDX2NZOU.js';
3
3
  import '../7XVJ6B7B.js';
4
4
  export { resolveTypeVersions } from '../ZO7WI2XS.js';
5
- import '../GPDDKHCR.js';
6
- import '../46I6PSJ7.js';
5
+ import '../ERBSYZRH.js';
6
+ import '../X4R3PN6F.js';
7
7
  import '../WSGRZJVU.js';
8
8
  import '../KWRJPB5T.js';
9
9
  import '../BAPGOHFS.js';
@@ -1,10 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var NQIX4C7Z_cjs = require('../NQIX4C7Z.cjs');
3
+ var BJD6YP5Q_cjs = require('../BJD6YP5Q.cjs');
4
4
  require('../T3GK7LED.cjs');
5
5
  require('../A5X4BLYY.cjs');
6
- require('../533SFXIE.cjs');
7
- require('../2NTYK3VO.cjs');
6
+ require('../HSCHZUOV.cjs');
7
+ require('../7PWQZJWC.cjs');
8
8
  require('../2Z4Y2ZR3.cjs');
9
9
  require('../5GPMTH2I.cjs');
10
10
  require('../XFDJEDQJ.cjs');
@@ -14,7 +14,7 @@ require('../24WEKBY3.cjs');
14
14
 
15
15
  Object.defineProperty(exports, "executeToolCommand", {
16
16
  enumerable: true,
17
- get: function () { return NQIX4C7Z_cjs.executeToolCommand; }
17
+ get: function () { return BJD6YP5Q_cjs.executeToolCommand; }
18
18
  });
19
19
  //# sourceMappingURL=tool-executor.cjs.map
20
20
  //# sourceMappingURL=tool-executor.cjs.map
@@ -1,8 +1,8 @@
1
- export { executeToolCommand } from '../WUF26TGR.js';
1
+ export { executeToolCommand } from '../KDX2NZOU.js';
2
2
  import '../7XVJ6B7B.js';
3
3
  import '../ZO7WI2XS.js';
4
- import '../GPDDKHCR.js';
5
- import '../46I6PSJ7.js';
4
+ import '../ERBSYZRH.js';
5
+ import '../X4R3PN6F.js';
6
6
  import '../WSGRZJVU.js';
7
7
  import '../KWRJPB5T.js';
8
8
  import '../BAPGOHFS.js';
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var _33TVTWFZ_cjs = require('../33TVTWFZ.cjs');
4
- require('../7FZK5RET.cjs');
5
- require('../533SFXIE.cjs');
6
- require('../2NTYK3VO.cjs');
3
+ var HXE3NVSB_cjs = require('../HXE3NVSB.cjs');
4
+ require('../7FXZ63DE.cjs');
5
+ require('../HSCHZUOV.cjs');
6
+ require('../7PWQZJWC.cjs');
7
7
  require('../5GPMTH2I.cjs');
8
8
  require('../24WEKBY3.cjs');
9
9
 
@@ -11,7 +11,7 @@ require('../24WEKBY3.cjs');
11
11
 
12
12
  Object.defineProperty(exports, "runGithubMatrixGenerator", {
13
13
  enumerable: true,
14
- get: function () { return _33TVTWFZ_cjs.runGithubMatrixGenerator; }
14
+ get: function () { return HXE3NVSB_cjs.runGithubMatrixGenerator; }
15
15
  });
16
16
  //# sourceMappingURL=index.cjs.map
17
17
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
- export { runGithubMatrixGenerator } from '../M2CDZILC.js';
2
- import '../VF2UWSC3.js';
3
- import '../GPDDKHCR.js';
4
- import '../46I6PSJ7.js';
1
+ export { runGithubMatrixGenerator } from '../TGTQ2DSF.js';
2
+ import '../KPLQJLFW.js';
3
+ import '../ERBSYZRH.js';
4
+ import '../X4R3PN6F.js';
5
5
  import '../KWRJPB5T.js';
6
6
  import '../6AHA7PAZ.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var _7FZK5RET_cjs = require('../7FZK5RET.cjs');
4
- require('../533SFXIE.cjs');
5
- require('../2NTYK3VO.cjs');
3
+ var _7FXZ63DE_cjs = require('../7FXZ63DE.cjs');
4
+ require('../HSCHZUOV.cjs');
5
+ require('../7PWQZJWC.cjs');
6
6
  require('../5GPMTH2I.cjs');
7
7
  require('../24WEKBY3.cjs');
8
8
 
@@ -10,7 +10,7 @@ require('../24WEKBY3.cjs');
10
10
 
11
11
  Object.defineProperty(exports, "generateGithubMatrix", {
12
12
  enumerable: true,
13
- get: function () { return _7FZK5RET_cjs.generateGithubMatrix; }
13
+ get: function () { return _7FXZ63DE_cjs.generateGithubMatrix; }
14
14
  });
15
15
  //# sourceMappingURL=matrix.cjs.map
16
16
  //# sourceMappingURL=matrix.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/github/matrix.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAIhE,UAAU,UAAU;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,kBAAkB;IACxB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAKD,eAAO,MAAM,oBAAoB,GAC7B,QAAQ,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC7B,WAAW,MAAM,EACjB,sBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,KACnD,kBAgDF,CAAC"}
1
+ {"version":3,"file":"matrix.d.ts","sourceRoot":"","sources":["../../src/github/matrix.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAIhE,UAAU,UAAU;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,kBAAkB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,kBAAkB;IACxB,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACrC,YAAY,EAAE,MAAM,EAAE,CAAC;CAC1B;AAKD,eAAO,MAAM,oBAAoB,GAC7B,QAAQ,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC7B,WAAW,MAAM,EACjB,sBAAsB,kBAAkB,CAAC,MAAM,CAAC,EAAE,KACnD,kBAsDF,CAAC"}
@@ -1,6 +1,6 @@
1
- export { generateGithubMatrix } from '../VF2UWSC3.js';
2
- import '../GPDDKHCR.js';
3
- import '../46I6PSJ7.js';
1
+ export { generateGithubMatrix } from '../KPLQJLFW.js';
2
+ import '../ERBSYZRH.js';
3
+ import '../X4R3PN6F.js';
4
4
  import '../KWRJPB5T.js';
5
5
  import '../6AHA7PAZ.js';
6
6
  //# sourceMappingURL=matrix.js.map