@layerzerolabs/vm-tooling 0.0.30 → 0.0.31
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.
- package/dist/{EJCGU7LP.cjs → DIMA5OXC.cjs} +4 -4
- package/dist/DIMA5OXC.cjs.map +1 -0
- package/dist/{7PKC46XS.js → JMREETWO.js} +3 -3
- package/dist/JMREETWO.js.map +1 -0
- package/dist/core/index.cjs +2 -2
- package/dist/core/index.js +1 -1
- package/dist/core/tool-executor.cjs +2 -2
- package/dist/core/tool-executor.js +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/package.json +4 -4
- package/dist/7PKC46XS.js.map +0 -1
- package/dist/EJCGU7LP.cjs.map +0 -1
|
@@ -7,7 +7,7 @@ var fs = require('fs');
|
|
|
7
7
|
var path = require('path');
|
|
8
8
|
var process = require('process');
|
|
9
9
|
var zx = require('zx');
|
|
10
|
-
var
|
|
10
|
+
var commonNodeUtils = require('@layerzerolabs/common-node-utils');
|
|
11
11
|
|
|
12
12
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
13
|
|
|
@@ -190,7 +190,7 @@ Try: lz-tool --list-versions to see all available tools`);
|
|
|
190
190
|
processOutput = await zx.$`${command} ${args}`.nothrow();
|
|
191
191
|
} else {
|
|
192
192
|
const { imageTag, imageURI } = getImageName(tool.fromImage, tool.name, resolvedVersion);
|
|
193
|
-
const workspaceRoot = await
|
|
193
|
+
const workspaceRoot = await commonNodeUtils.getFullyQualifiedRepoRootPath();
|
|
194
194
|
const relPath = path__default.default.relative(workspaceRoot, cwd);
|
|
195
195
|
await ensureDockerImage(imageURI, imageTag);
|
|
196
196
|
const volumeArgs = volumes.map((volume) => {
|
|
@@ -248,5 +248,5 @@ function saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath) {
|
|
|
248
248
|
NX4KBEWA_cjs.__name(saveAptosModulesOrder, "saveAptosModulesOrder");
|
|
249
249
|
|
|
250
250
|
exports.executeToolCommand = executeToolCommand;
|
|
251
|
-
//# sourceMappingURL=
|
|
252
|
-
//# sourceMappingURL=
|
|
251
|
+
//# sourceMappingURL=DIMA5OXC.cjs.map
|
|
252
|
+
//# sourceMappingURL=DIMA5OXC.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/tool-executor.ts"],"names":["$","verbose","stdio","process","stderr","mergeVolumes","defaultVolumes","userVolumes","merged","userPaths","Set","map","v","containerPath","push","defaultVolume","has","getImageName","target","vmToolingName","version","repository","AWS_ACCOUNT_ID","AWS_REGION","imageName","tool","findToolByName","Error","matrix","findMatrixByType","toolType","foundCombination","combination","combinations","toolVersion","versions","validVersions","toolName","Object","entries","length","imageTag","getCombinationTag","imageURI","input","tags","key","value","sort","a","b","localeCompare","join","ensureDockerImage","checkResult","nothrow","stdout","includes","console","info","pullResult","exitCode","localImageName","split","pop","replace","localFallbackURI","localCheckResult","error","message","String","executeToolCommand","command","args","options","cwd","forceDocker","volumes","customEntrypoint","type","getToolType","undefined","tools","availableTools","t","name","overrides","filter","uv","some","dv","userSpecifiedVersions","extractUserVersions","versionResult","resolveTypeVersions","warnings","forEach","warning","warn","resolvedVersion","resolvedVersions","getSecondaryVersionCheckValue","secondaryVersion","resolvedVersionObj","versionsSatisfied","hasLocalExecutable","versionFlags","versionCliArguments","result","parseVersionCliVersionOutput","installedVersion","processOutput","fromImage","workspaceRoot","getFullyQualifiedRepoRootPath","relPath","path","relative","volumeArgs","volume","hostPath","flat","entryPoint","trim","dockerArgs","saveAptosModulesOrder","exit","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":"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","file":"DIMA5OXC.cjs","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport process from 'process';\nimport type { ProcessOutput } from 'zx';\nimport { $ } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION } from '../config';\nimport type { ToolingImageTargetName, Version, VolumeMapping } from '../types';\nimport { findMatrixByType, findToolByName, getToolType } from '../utils/finder-utils';\nimport { versionsSatisfied } from '../utils/version-utils';\nimport { extractUserVersions, resolveTypeVersions } from './version-resolver';\n\n// Configure zx to inherit stdio by default (moved from original setup)\n$.verbose = true;\n$.stdio = ['inherit', 'pipe', process.stderr];\n\n/**\n * Merge default volumes with user-specified volumes\n * User volumes take precedence when containerPath conflicts\n */\nfunction mergeVolumes(\n defaultVolumes: VolumeMapping[],\n userVolumes: VolumeMapping[],\n): VolumeMapping[] {\n const merged: VolumeMapping[] = [];\n const userPaths = new Set(userVolumes.map((v) => v.containerPath));\n\n // Add user volumes first (highest priority)\n merged.push(...userVolumes);\n\n // Add default volumes that don't conflict with user volumes\n for (const defaultVolume of defaultVolumes) {\n if (!userPaths.has(defaultVolume.containerPath)) {\n merged.push(defaultVolume);\n }\n }\n\n return merged;\n}\n\n/**\n * Get Docker image name and tag for a specific tool and version\n */\nfunction getImageName(\n target: ToolingImageTargetName,\n vmToolingName: string,\n version: string,\n): { imageURI: string; imageTag: string } {\n // const repository = 'ghcr.io/layerzero-labs';\n const repository = `${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/layerzerolabs`;\n const imageName = `${target}-tooling`;\n\n // Find the tool and its type\n const tool = findToolByName(vmToolingName);\n if (!tool) {\n throw new Error(`Tool '${vmToolingName}' not found`);\n }\n\n // Find the version matrix for this tool type\n const matrix = findMatrixByType(tool.toolType);\n if (!matrix) {\n throw new Error(`No version matrix found for tool type ${tool.toolType}`);\n }\n\n // Find a combination that includes this tool with the specified version\n let foundCombination = null;\n for (const combination of matrix.combinations) {\n const toolVersion = combination.versions[vmToolingName];\n if (toolVersion === version) {\n foundCombination = combination.versions;\n break;\n }\n }\n\n if (!foundCombination) {\n throw new Error(\n `No version combination found for tool ${vmToolingName} with version ${version}`,\n );\n }\n\n // Filter out undefined/empty values for tag generation\n const validVersions: { [key: string]: string } = {};\n for (const [toolName, toolVersion] of Object.entries(foundCombination)) {\n if (typeof toolVersion === 'string' && toolVersion.length > 0) {\n validVersions[toolName] = toolVersion;\n }\n }\n\n const imageTag = getCombinationTag(validVersions);\n const imageURI = `${repository}/${imageName}:${imageTag}`;\n\n return { imageURI, imageTag };\n}\n\n/**\n * Generate Docker image tag from version combination\n */\nfunction getCombinationTag(input: { [key: string]: string }): string {\n const tags = Object.entries(input)\n .map(([key, value]) => `${key}_${value}`)\n .sort((a, b) => a.localeCompare(b));\n\n return tags.join('_');\n}\n\n/**\n * Enhanced Docker image management with intelligent caching\n * Tries ECR first, falls back to local build if available, and caches locally\n */\nasync function ensureDockerImage(imageURI: string, imageTag: string): Promise<void> {\n try {\n // Check if image exists locally first\n const checkResult = await $`docker image ls ${imageURI}`.nothrow();\n\n if (checkResult.stdout.includes(imageTag)) {\n console.info(`✅ Using cached Docker image: ${imageURI}`);\n return;\n }\n\n // Try to pull from ECR\n console.info(`📥 Pulling Docker image from ECR: ${imageURI}`);\n const pullResult = await $`docker pull ${imageURI}`.nothrow();\n\n if (pullResult.exitCode === 0) {\n console.info(`✅ Successfully pulled: ${imageURI}`);\n return;\n }\n\n // If ECR pull fails, check for local fallback image\n const localImageName = imageURI.split('/').pop()?.replace(/:.*$/, '') || '';\n const localFallbackURI = `local-${localImageName}:latest`;\n\n const localCheckResult = await $`docker image ls ${localFallbackURI}`.nothrow();\n\n if (localCheckResult.stdout.includes('local-')) {\n console.info(`🏠 ECR image not available, using local fallback: ${localFallbackURI}`);\n\n // Tag the local image with the ECR URI for consistency\n await $`docker tag ${localFallbackURI} ${imageURI}`;\n console.info(`🏷️ Tagged local image as: ${imageURI}`);\n return;\n }\n\n // If all else fails, provide helpful error message\n throw new Error(\n `❌ Docker image not available:\\n` +\n ` - ECR image: ${imageURI} (pull failed)\\n` +\n ` - Local fallback: ${localFallbackURI} (not found)\\n` +\n `\\n💡 Solutions:\\n` +\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com\\n` +\n ` 2. Build local image: docker build -t ${localFallbackURI} <dockerfile-path>\\n` +\n ` 3. Check if the image tag exists in ECR`,\n );\n } catch (error) {\n if (error instanceof Error && error.message.includes('❌ Docker image not available')) {\n throw error;\n }\n throw new Error(\n `Failed to ensure Docker image ${imageURI}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n}\n\n/**\n * Enhanced tool command execution using the new version compatibility matrix system\n */\nexport async function executeToolCommand(\n command: string,\n args: string[],\n options: {\n cwd: string;\n forceDocker: boolean;\n volumes: VolumeMapping[];\n customEntrypoint?: string;\n [key: string]: any;\n },\n): Promise<void> {\n const { cwd, forceDocker, volumes: userVolumes, customEntrypoint } = options;\n\n const tool = findToolByName(command);\n const type = getToolType(command);\n\n if (!tool || type === undefined) {\n const { tools } = await import('../config');\n const availableTools = tools.map((t) => t.name).join(', ');\n throw new Error(\n `❌ Tool '${command}' not found or no type configuration available.\\n` +\n `Available tools: ${availableTools}\\n` +\n `Try: lz-tool --list-versions to see all available tools`,\n );\n }\n\n // Merge default volumes with user-specified volumes\n const defaultVolumes = tool.defaultVolumes ?? [];\n const volumes = mergeVolumes(defaultVolumes, userVolumes);\n\n if (defaultVolumes.length > 0) {\n console.info(`📦 Using ${defaultVolumes.length} default cache volume(s) for ${command}`);\n if (userVolumes.length > 0) {\n const overrides = userVolumes.filter((uv) =>\n defaultVolumes.some((dv) => dv.containerPath === uv.containerPath),\n );\n if (overrides.length > 0) {\n console.info(`🔧 User volumes override ${overrides.length} default volume(s)`);\n }\n }\n }\n\n // Extract user-specified versions from command line options\n const userSpecifiedVersions = extractUserVersions(options);\n\n // Resolve versions for all tools in the type using compatibility matrix\n const versionResult = resolveTypeVersions(type, userSpecifiedVersions, options, cwd);\n\n // Display any warnings\n versionResult.warnings.forEach((warning) => {\n console.warn(warning);\n });\n\n // Get the resolved version for the current tool\n const resolvedVersion = versionResult.resolvedVersions[command];\n if (typeof resolvedVersion !== 'string' || resolvedVersion === '') {\n throw new Error(`No version resolved for tool ${command}`);\n }\n\n console.info(`🔧 ${command} version: ${resolvedVersion}`);\n\n // Check secondary version validation if available\n if (tool.getSecondaryVersionCheckValue) {\n try {\n const secondaryVersion = tool.getSecondaryVersionCheckValue({ cwd });\n const resolvedVersionObj: Version = { version: resolvedVersion };\n\n if (!versionsSatisfied(secondaryVersion, resolvedVersionObj)) {\n console.warn(\n `Warning: Local configuration version (${secondaryVersion.version}) differs from resolved version (${resolvedVersion})`,\n );\n }\n } catch (error) {\n // Secondary version check failed, but continue with resolved version\n console.warn(\n `Could not validate secondary version: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n\n // Check if we should try to use local executable first\n let hasLocalExecutable = false;\n\n if (!forceDocker) {\n const versionFlags = tool.versionCliArguments ?? ['--version'];\n\n try {\n const result = await $`${command} ${versionFlags}`;\n\n // Use tool for parsing output\n if (tool.parseVersionCliVersionOutput) {\n const installedVersion = tool.parseVersionCliVersionOutput(result.stdout);\n const resolvedVersionObj: Version = { version: resolvedVersion };\n\n if (versionsSatisfied(installedVersion, resolvedVersionObj)) {\n hasLocalExecutable = true;\n console.info(`✅ Using local ${command} v${installedVersion.version}`);\n } else {\n console.info(\n `🐳 Local ${command} v${installedVersion.version} ≠ required v${resolvedVersion}, using Docker`,\n );\n }\n }\n } catch (error) {\n // Check if the command is not found (127 exit code)\n if (!(error instanceof Error) || !('exitCode' in error) || error.exitCode !== 127) {\n throw error;\n }\n console.info(`🐳 ${command} not found locally, using Docker`);\n }\n }\n\n let processOutput: ProcessOutput;\n\n if (hasLocalExecutable) {\n // Execute command directly\n processOutput = await $`${command} ${args}`.nothrow();\n } else {\n // Use Docker image with merged volumes\n const { imageTag, imageURI } = getImageName(tool.fromImage, tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relPath = path.relative(workspaceRoot, cwd);\n\n // Enhanced Docker image caching logic\n await ensureDockerImage(imageURI, imageTag);\n\n const volumeArgs = volumes\n .map((volume) => {\n if (volume.type === 'host') {\n if (volume.hostPath === undefined) {\n throw new Error(`Host path is required for volume mapping of type 'host'`);\n }\n return ['-v', `${volume.hostPath}:${volume.containerPath}`];\n } else {\n if (volume.name === undefined) {\n throw new Error(`Name is required for volume mapping of type 'isolate'`);\n }\n return ['-v', `${volume.name}:${volume.containerPath}`];\n }\n })\n .flat(); // Flatten the array to get ['-v', 'vol1', '-v', 'vol2', ...]\n\n // Use custom entrypoint if provided, otherwise fall back to tool config or tool name\n const entryPoint = customEntrypoint ?? tool.entryPoint ?? tool.name;\n\n if (customEntrypoint !== undefined && customEntrypoint.trim() !== '') {\n console.info(`🔧 Using custom entrypoint: ${customEntrypoint}`);\n }\n\n const dockerArgs = [\n 'run',\n '--rm',\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relPath}`,\n ...volumeArgs,\n '--entrypoint',\n entryPoint,\n imageURI,\n ...args,\n ];\n\n processOutput = await $`docker ${dockerArgs}`.nothrow();\n saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath);\n }\n\n // Handle the process completion\n const { exitCode } = processOutput;\n if (exitCode !== 0) {\n process.exit(exitCode ?? 1);\n }\n}\n\nfunction saveAptosModulesOrder(\n command: string,\n processOutput: ProcessOutput,\n workspaceRoot: string,\n relPath: string,\n): void {\n if ('aptos' === command) {\n const outputJson: { Result: string[] } = processOutput.json();\n const modules = outputJson.Result.map((item: string) => `${item.split('::')[1]}.mv`);\n fs.writeFileSync(\n path.join(workspaceRoot, relPath, 'modules.json'),\n JSON.stringify(modules, null, 2),\n );\n }\n}\n"]}
|
|
@@ -5,7 +5,7 @@ import fs from 'fs';
|
|
|
5
5
|
import path from 'path';
|
|
6
6
|
import process from 'process';
|
|
7
7
|
import { $ } from 'zx';
|
|
8
|
-
import { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-utils';
|
|
8
|
+
import { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';
|
|
9
9
|
|
|
10
10
|
$.verbose = true;
|
|
11
11
|
$.stdio = [
|
|
@@ -240,5 +240,5 @@ function saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath) {
|
|
|
240
240
|
__name(saveAptosModulesOrder, "saveAptosModulesOrder");
|
|
241
241
|
|
|
242
242
|
export { executeToolCommand };
|
|
243
|
-
//# sourceMappingURL=
|
|
244
|
-
//# sourceMappingURL=
|
|
243
|
+
//# sourceMappingURL=JMREETWO.js.map
|
|
244
|
+
//# sourceMappingURL=JMREETWO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/tool-executor.ts"],"names":["$","verbose","stdio","process","stderr","mergeVolumes","defaultVolumes","userVolumes","merged","userPaths","Set","map","v","containerPath","push","defaultVolume","has","getImageName","target","vmToolingName","version","repository","AWS_ACCOUNT_ID","AWS_REGION","imageName","tool","findToolByName","Error","matrix","findMatrixByType","toolType","foundCombination","combination","combinations","toolVersion","versions","validVersions","toolName","Object","entries","length","imageTag","getCombinationTag","imageURI","input","tags","key","value","sort","a","b","localeCompare","join","ensureDockerImage","checkResult","nothrow","stdout","includes","console","info","pullResult","exitCode","localImageName","split","pop","replace","localFallbackURI","localCheckResult","error","message","String","executeToolCommand","command","args","options","cwd","forceDocker","volumes","customEntrypoint","type","getToolType","undefined","tools","availableTools","t","name","overrides","filter","uv","some","dv","userSpecifiedVersions","extractUserVersions","versionResult","resolveTypeVersions","warnings","forEach","warning","warn","resolvedVersion","resolvedVersions","getSecondaryVersionCheckValue","secondaryVersion","resolvedVersionObj","versionsSatisfied","hasLocalExecutable","versionFlags","versionCliArguments","result","parseVersionCliVersionOutput","installedVersion","processOutput","fromImage","workspaceRoot","getFullyQualifiedRepoRootPath","relPath","path","relative","volumeArgs","volume","hostPath","flat","entryPoint","trim","dockerArgs","saveAptosModulesOrder","exit","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":"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","file":"JMREETWO.js","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport process from 'process';\nimport type { ProcessOutput } from 'zx';\nimport { $ } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION } from '../config';\nimport type { ToolingImageTargetName, Version, VolumeMapping } from '../types';\nimport { findMatrixByType, findToolByName, getToolType } from '../utils/finder-utils';\nimport { versionsSatisfied } from '../utils/version-utils';\nimport { extractUserVersions, resolveTypeVersions } from './version-resolver';\n\n// Configure zx to inherit stdio by default (moved from original setup)\n$.verbose = true;\n$.stdio = ['inherit', 'pipe', process.stderr];\n\n/**\n * Merge default volumes with user-specified volumes\n * User volumes take precedence when containerPath conflicts\n */\nfunction mergeVolumes(\n defaultVolumes: VolumeMapping[],\n userVolumes: VolumeMapping[],\n): VolumeMapping[] {\n const merged: VolumeMapping[] = [];\n const userPaths = new Set(userVolumes.map((v) => v.containerPath));\n\n // Add user volumes first (highest priority)\n merged.push(...userVolumes);\n\n // Add default volumes that don't conflict with user volumes\n for (const defaultVolume of defaultVolumes) {\n if (!userPaths.has(defaultVolume.containerPath)) {\n merged.push(defaultVolume);\n }\n }\n\n return merged;\n}\n\n/**\n * Get Docker image name and tag for a specific tool and version\n */\nfunction getImageName(\n target: ToolingImageTargetName,\n vmToolingName: string,\n version: string,\n): { imageURI: string; imageTag: string } {\n // const repository = 'ghcr.io/layerzero-labs';\n const repository = `${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/layerzerolabs`;\n const imageName = `${target}-tooling`;\n\n // Find the tool and its type\n const tool = findToolByName(vmToolingName);\n if (!tool) {\n throw new Error(`Tool '${vmToolingName}' not found`);\n }\n\n // Find the version matrix for this tool type\n const matrix = findMatrixByType(tool.toolType);\n if (!matrix) {\n throw new Error(`No version matrix found for tool type ${tool.toolType}`);\n }\n\n // Find a combination that includes this tool with the specified version\n let foundCombination = null;\n for (const combination of matrix.combinations) {\n const toolVersion = combination.versions[vmToolingName];\n if (toolVersion === version) {\n foundCombination = combination.versions;\n break;\n }\n }\n\n if (!foundCombination) {\n throw new Error(\n `No version combination found for tool ${vmToolingName} with version ${version}`,\n );\n }\n\n // Filter out undefined/empty values for tag generation\n const validVersions: { [key: string]: string } = {};\n for (const [toolName, toolVersion] of Object.entries(foundCombination)) {\n if (typeof toolVersion === 'string' && toolVersion.length > 0) {\n validVersions[toolName] = toolVersion;\n }\n }\n\n const imageTag = getCombinationTag(validVersions);\n const imageURI = `${repository}/${imageName}:${imageTag}`;\n\n return { imageURI, imageTag };\n}\n\n/**\n * Generate Docker image tag from version combination\n */\nfunction getCombinationTag(input: { [key: string]: string }): string {\n const tags = Object.entries(input)\n .map(([key, value]) => `${key}_${value}`)\n .sort((a, b) => a.localeCompare(b));\n\n return tags.join('_');\n}\n\n/**\n * Enhanced Docker image management with intelligent caching\n * Tries ECR first, falls back to local build if available, and caches locally\n */\nasync function ensureDockerImage(imageURI: string, imageTag: string): Promise<void> {\n try {\n // Check if image exists locally first\n const checkResult = await $`docker image ls ${imageURI}`.nothrow();\n\n if (checkResult.stdout.includes(imageTag)) {\n console.info(`✅ Using cached Docker image: ${imageURI}`);\n return;\n }\n\n // Try to pull from ECR\n console.info(`📥 Pulling Docker image from ECR: ${imageURI}`);\n const pullResult = await $`docker pull ${imageURI}`.nothrow();\n\n if (pullResult.exitCode === 0) {\n console.info(`✅ Successfully pulled: ${imageURI}`);\n return;\n }\n\n // If ECR pull fails, check for local fallback image\n const localImageName = imageURI.split('/').pop()?.replace(/:.*$/, '') || '';\n const localFallbackURI = `local-${localImageName}:latest`;\n\n const localCheckResult = await $`docker image ls ${localFallbackURI}`.nothrow();\n\n if (localCheckResult.stdout.includes('local-')) {\n console.info(`🏠 ECR image not available, using local fallback: ${localFallbackURI}`);\n\n // Tag the local image with the ECR URI for consistency\n await $`docker tag ${localFallbackURI} ${imageURI}`;\n console.info(`🏷️ Tagged local image as: ${imageURI}`);\n return;\n }\n\n // If all else fails, provide helpful error message\n throw new Error(\n `❌ Docker image not available:\\n` +\n ` - ECR image: ${imageURI} (pull failed)\\n` +\n ` - Local fallback: ${localFallbackURI} (not found)\\n` +\n `\\n💡 Solutions:\\n` +\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com\\n` +\n ` 2. Build local image: docker build -t ${localFallbackURI} <dockerfile-path>\\n` +\n ` 3. Check if the image tag exists in ECR`,\n );\n } catch (error) {\n if (error instanceof Error && error.message.includes('❌ Docker image not available')) {\n throw error;\n }\n throw new Error(\n `Failed to ensure Docker image ${imageURI}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n}\n\n/**\n * Enhanced tool command execution using the new version compatibility matrix system\n */\nexport async function executeToolCommand(\n command: string,\n args: string[],\n options: {\n cwd: string;\n forceDocker: boolean;\n volumes: VolumeMapping[];\n customEntrypoint?: string;\n [key: string]: any;\n },\n): Promise<void> {\n const { cwd, forceDocker, volumes: userVolumes, customEntrypoint } = options;\n\n const tool = findToolByName(command);\n const type = getToolType(command);\n\n if (!tool || type === undefined) {\n const { tools } = await import('../config');\n const availableTools = tools.map((t) => t.name).join(', ');\n throw new Error(\n `❌ Tool '${command}' not found or no type configuration available.\\n` +\n `Available tools: ${availableTools}\\n` +\n `Try: lz-tool --list-versions to see all available tools`,\n );\n }\n\n // Merge default volumes with user-specified volumes\n const defaultVolumes = tool.defaultVolumes ?? [];\n const volumes = mergeVolumes(defaultVolumes, userVolumes);\n\n if (defaultVolumes.length > 0) {\n console.info(`📦 Using ${defaultVolumes.length} default cache volume(s) for ${command}`);\n if (userVolumes.length > 0) {\n const overrides = userVolumes.filter((uv) =>\n defaultVolumes.some((dv) => dv.containerPath === uv.containerPath),\n );\n if (overrides.length > 0) {\n console.info(`🔧 User volumes override ${overrides.length} default volume(s)`);\n }\n }\n }\n\n // Extract user-specified versions from command line options\n const userSpecifiedVersions = extractUserVersions(options);\n\n // Resolve versions for all tools in the type using compatibility matrix\n const versionResult = resolveTypeVersions(type, userSpecifiedVersions, options, cwd);\n\n // Display any warnings\n versionResult.warnings.forEach((warning) => {\n console.warn(warning);\n });\n\n // Get the resolved version for the current tool\n const resolvedVersion = versionResult.resolvedVersions[command];\n if (typeof resolvedVersion !== 'string' || resolvedVersion === '') {\n throw new Error(`No version resolved for tool ${command}`);\n }\n\n console.info(`🔧 ${command} version: ${resolvedVersion}`);\n\n // Check secondary version validation if available\n if (tool.getSecondaryVersionCheckValue) {\n try {\n const secondaryVersion = tool.getSecondaryVersionCheckValue({ cwd });\n const resolvedVersionObj: Version = { version: resolvedVersion };\n\n if (!versionsSatisfied(secondaryVersion, resolvedVersionObj)) {\n console.warn(\n `Warning: Local configuration version (${secondaryVersion.version}) differs from resolved version (${resolvedVersion})`,\n );\n }\n } catch (error) {\n // Secondary version check failed, but continue with resolved version\n console.warn(\n `Could not validate secondary version: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n\n // Check if we should try to use local executable first\n let hasLocalExecutable = false;\n\n if (!forceDocker) {\n const versionFlags = tool.versionCliArguments ?? ['--version'];\n\n try {\n const result = await $`${command} ${versionFlags}`;\n\n // Use tool for parsing output\n if (tool.parseVersionCliVersionOutput) {\n const installedVersion = tool.parseVersionCliVersionOutput(result.stdout);\n const resolvedVersionObj: Version = { version: resolvedVersion };\n\n if (versionsSatisfied(installedVersion, resolvedVersionObj)) {\n hasLocalExecutable = true;\n console.info(`✅ Using local ${command} v${installedVersion.version}`);\n } else {\n console.info(\n `🐳 Local ${command} v${installedVersion.version} ≠ required v${resolvedVersion}, using Docker`,\n );\n }\n }\n } catch (error) {\n // Check if the command is not found (127 exit code)\n if (!(error instanceof Error) || !('exitCode' in error) || error.exitCode !== 127) {\n throw error;\n }\n console.info(`🐳 ${command} not found locally, using Docker`);\n }\n }\n\n let processOutput: ProcessOutput;\n\n if (hasLocalExecutable) {\n // Execute command directly\n processOutput = await $`${command} ${args}`.nothrow();\n } else {\n // Use Docker image with merged volumes\n const { imageTag, imageURI } = getImageName(tool.fromImage, tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relPath = path.relative(workspaceRoot, cwd);\n\n // Enhanced Docker image caching logic\n await ensureDockerImage(imageURI, imageTag);\n\n const volumeArgs = volumes\n .map((volume) => {\n if (volume.type === 'host') {\n if (volume.hostPath === undefined) {\n throw new Error(`Host path is required for volume mapping of type 'host'`);\n }\n return ['-v', `${volume.hostPath}:${volume.containerPath}`];\n } else {\n if (volume.name === undefined) {\n throw new Error(`Name is required for volume mapping of type 'isolate'`);\n }\n return ['-v', `${volume.name}:${volume.containerPath}`];\n }\n })\n .flat(); // Flatten the array to get ['-v', 'vol1', '-v', 'vol2', ...]\n\n // Use custom entrypoint if provided, otherwise fall back to tool config or tool name\n const entryPoint = customEntrypoint ?? tool.entryPoint ?? tool.name;\n\n if (customEntrypoint !== undefined && customEntrypoint.trim() !== '') {\n console.info(`🔧 Using custom entrypoint: ${customEntrypoint}`);\n }\n\n const dockerArgs = [\n 'run',\n '--rm',\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relPath}`,\n ...volumeArgs,\n '--entrypoint',\n entryPoint,\n imageURI,\n ...args,\n ];\n\n processOutput = await $`docker ${dockerArgs}`.nothrow();\n saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath);\n }\n\n // Handle the process completion\n const { exitCode } = processOutput;\n if (exitCode !== 0) {\n process.exit(exitCode ?? 1);\n }\n}\n\nfunction saveAptosModulesOrder(\n command: string,\n processOutput: ProcessOutput,\n workspaceRoot: string,\n relPath: string,\n): void {\n if ('aptos' === command) {\n const outputJson: { Result: string[] } = processOutput.json();\n const modules = outputJson.Result.map((item: string) => `${item.split('::')[1]}.mv`);\n fs.writeFileSync(\n path.join(workspaceRoot, relPath, 'modules.json'),\n JSON.stringify(modules, null, 2),\n );\n }\n}\n"]}
|
package/dist/core/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
require('../5N3Q6FCT.cjs');
|
|
4
|
-
var
|
|
4
|
+
var DIMA5OXC_cjs = require('../DIMA5OXC.cjs');
|
|
5
5
|
var TA2DABDY_cjs = require('../TA2DABDY.cjs');
|
|
6
6
|
require('../2TPNSECS.cjs');
|
|
7
7
|
require('../3EOFF6NK.cjs');
|
|
@@ -13,7 +13,7 @@ require('../NX4KBEWA.cjs');
|
|
|
13
13
|
|
|
14
14
|
Object.defineProperty(exports, "executeToolCommand", {
|
|
15
15
|
enumerable: true,
|
|
16
|
-
get: function () { return
|
|
16
|
+
get: function () { return DIMA5OXC_cjs.executeToolCommand; }
|
|
17
17
|
});
|
|
18
18
|
Object.defineProperty(exports, "extractUserVersions", {
|
|
19
19
|
enumerable: true,
|
package/dist/core/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import '../ZEW74YLA.js';
|
|
2
|
-
export { executeToolCommand } from '../
|
|
2
|
+
export { executeToolCommand } from '../JMREETWO.js';
|
|
3
3
|
export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../SKAV3OJX.js';
|
|
4
4
|
import '../TPVIFJX4.js';
|
|
5
5
|
import '../BA2LAHMY.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var DIMA5OXC_cjs = require('../DIMA5OXC.cjs');
|
|
4
4
|
require('../TA2DABDY.cjs');
|
|
5
5
|
require('../2TPNSECS.cjs');
|
|
6
6
|
require('../3EOFF6NK.cjs');
|
|
@@ -12,7 +12,7 @@ require('../NX4KBEWA.cjs');
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, "executeToolCommand", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
15
|
+
get: function () { return DIMA5OXC_cjs.executeToolCommand; }
|
|
16
16
|
});
|
|
17
17
|
//# sourceMappingURL=tool-executor.cjs.map
|
|
18
18
|
//# sourceMappingURL=tool-executor.cjs.map
|
package/dist/index.cjs
CHANGED
|
@@ -4,7 +4,7 @@ require('./RLUL6JFM.cjs');
|
|
|
4
4
|
var W3KWDJYA_cjs = require('./W3KWDJYA.cjs');
|
|
5
5
|
require('./LBQPL6VK.cjs');
|
|
6
6
|
require('./5N3Q6FCT.cjs');
|
|
7
|
-
var
|
|
7
|
+
var DIMA5OXC_cjs = require('./DIMA5OXC.cjs');
|
|
8
8
|
require('./TA2DABDY.cjs');
|
|
9
9
|
var _2TPNSECS_cjs = require('./2TPNSECS.cjs');
|
|
10
10
|
require('./3EOFF6NK.cjs');
|
|
@@ -92,7 +92,7 @@ async function main() {
|
|
|
92
92
|
};
|
|
93
93
|
const cwd = mergedOptions.cwd ?? process__default.default.cwd();
|
|
94
94
|
try {
|
|
95
|
-
await
|
|
95
|
+
await DIMA5OXC_cjs.executeToolCommand(tool.name, args, {
|
|
96
96
|
cwd,
|
|
97
97
|
volumes: mergedOptions.volume,
|
|
98
98
|
...mergedOptions
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import './EKUFNO5X.js';
|
|
|
2
2
|
import { displayVersionCombinations, displayToolVersionInfo } from './5EKZTTNT.js';
|
|
3
3
|
import './QNKHVJNZ.js';
|
|
4
4
|
import './ZEW74YLA.js';
|
|
5
|
-
import { executeToolCommand } from './
|
|
5
|
+
import { executeToolCommand } from './JMREETWO.js';
|
|
6
6
|
import './SKAV3OJX.js';
|
|
7
7
|
import { tools, getToolDefaultVersion, getToolSupportedVersions } from './TPVIFJX4.js';
|
|
8
8
|
import './BA2LAHMY.js';
|
package/package.json
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"dotenv": "16.4.5",
|
|
25
25
|
"semver": "^7.5.4",
|
|
26
26
|
"zx": "^8.1.3",
|
|
27
|
-
"@layerzerolabs/common-utils": "0.0.
|
|
27
|
+
"@layerzerolabs/common-node-utils": "0.0.31"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
30
|
"@aws-sdk/client-ecr": "3.879.0",
|
|
@@ -36,14 +36,14 @@
|
|
|
36
36
|
"tsup": "^8.4.0",
|
|
37
37
|
"tsx": "^4.19.3",
|
|
38
38
|
"typescript": "^5.8.2",
|
|
39
|
-
"@layerzerolabs/
|
|
40
|
-
"@layerzerolabs/
|
|
39
|
+
"@layerzerolabs/typescript-configuration": "0.0.31",
|
|
40
|
+
"@layerzerolabs/tsup-configuration": "0.0.31"
|
|
41
41
|
},
|
|
42
42
|
"publishConfig": {
|
|
43
43
|
"access": "restricted",
|
|
44
44
|
"registry": "https://registry.npmjs.org/"
|
|
45
45
|
},
|
|
46
|
-
"version": "0.0.
|
|
46
|
+
"version": "0.0.31",
|
|
47
47
|
"scripts": {
|
|
48
48
|
"prebuild": "chmod +x bin/lz-tool.cjs || true",
|
|
49
49
|
"build": "tsup",
|
package/dist/7PKC46XS.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/tool-executor.ts"],"names":["$","verbose","stdio","process","stderr","mergeVolumes","defaultVolumes","userVolumes","merged","userPaths","Set","map","v","containerPath","push","defaultVolume","has","getImageName","target","vmToolingName","version","repository","AWS_ACCOUNT_ID","AWS_REGION","imageName","tool","findToolByName","Error","matrix","findMatrixByType","toolType","foundCombination","combination","combinations","toolVersion","versions","validVersions","toolName","Object","entries","length","imageTag","getCombinationTag","imageURI","input","tags","key","value","sort","a","b","localeCompare","join","ensureDockerImage","checkResult","nothrow","stdout","includes","console","info","pullResult","exitCode","localImageName","split","pop","replace","localFallbackURI","localCheckResult","error","message","String","executeToolCommand","command","args","options","cwd","forceDocker","volumes","customEntrypoint","type","getToolType","undefined","tools","availableTools","t","name","overrides","filter","uv","some","dv","userSpecifiedVersions","extractUserVersions","versionResult","resolveTypeVersions","warnings","forEach","warning","warn","resolvedVersion","resolvedVersions","getSecondaryVersionCheckValue","secondaryVersion","resolvedVersionObj","versionsSatisfied","hasLocalExecutable","versionFlags","versionCliArguments","result","parseVersionCliVersionOutput","installedVersion","processOutput","fromImage","workspaceRoot","getFullyQualifiedRepoRootPath","relPath","path","relative","volumeArgs","volume","hostPath","flat","entryPoint","trim","dockerArgs","saveAptosModulesOrder","exit","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":"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","file":"7PKC46XS.js","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport process from 'process';\nimport type { ProcessOutput } from 'zx';\nimport { $ } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION } from '../config';\nimport type { ToolingImageTargetName, Version, VolumeMapping } from '../types';\nimport { findMatrixByType, findToolByName, getToolType } from '../utils/finder-utils';\nimport { versionsSatisfied } from '../utils/version-utils';\nimport { extractUserVersions, resolveTypeVersions } from './version-resolver';\n\n// Configure zx to inherit stdio by default (moved from original setup)\n$.verbose = true;\n$.stdio = ['inherit', 'pipe', process.stderr];\n\n/**\n * Merge default volumes with user-specified volumes\n * User volumes take precedence when containerPath conflicts\n */\nfunction mergeVolumes(\n defaultVolumes: VolumeMapping[],\n userVolumes: VolumeMapping[],\n): VolumeMapping[] {\n const merged: VolumeMapping[] = [];\n const userPaths = new Set(userVolumes.map((v) => v.containerPath));\n\n // Add user volumes first (highest priority)\n merged.push(...userVolumes);\n\n // Add default volumes that don't conflict with user volumes\n for (const defaultVolume of defaultVolumes) {\n if (!userPaths.has(defaultVolume.containerPath)) {\n merged.push(defaultVolume);\n }\n }\n\n return merged;\n}\n\n/**\n * Get Docker image name and tag for a specific tool and version\n */\nfunction getImageName(\n target: ToolingImageTargetName,\n vmToolingName: string,\n version: string,\n): { imageURI: string; imageTag: string } {\n // const repository = 'ghcr.io/layerzero-labs';\n const repository = `${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/layerzerolabs`;\n const imageName = `${target}-tooling`;\n\n // Find the tool and its type\n const tool = findToolByName(vmToolingName);\n if (!tool) {\n throw new Error(`Tool '${vmToolingName}' not found`);\n }\n\n // Find the version matrix for this tool type\n const matrix = findMatrixByType(tool.toolType);\n if (!matrix) {\n throw new Error(`No version matrix found for tool type ${tool.toolType}`);\n }\n\n // Find a combination that includes this tool with the specified version\n let foundCombination = null;\n for (const combination of matrix.combinations) {\n const toolVersion = combination.versions[vmToolingName];\n if (toolVersion === version) {\n foundCombination = combination.versions;\n break;\n }\n }\n\n if (!foundCombination) {\n throw new Error(\n `No version combination found for tool ${vmToolingName} with version ${version}`,\n );\n }\n\n // Filter out undefined/empty values for tag generation\n const validVersions: { [key: string]: string } = {};\n for (const [toolName, toolVersion] of Object.entries(foundCombination)) {\n if (typeof toolVersion === 'string' && toolVersion.length > 0) {\n validVersions[toolName] = toolVersion;\n }\n }\n\n const imageTag = getCombinationTag(validVersions);\n const imageURI = `${repository}/${imageName}:${imageTag}`;\n\n return { imageURI, imageTag };\n}\n\n/**\n * Generate Docker image tag from version combination\n */\nfunction getCombinationTag(input: { [key: string]: string }): string {\n const tags = Object.entries(input)\n .map(([key, value]) => `${key}_${value}`)\n .sort((a, b) => a.localeCompare(b));\n\n return tags.join('_');\n}\n\n/**\n * Enhanced Docker image management with intelligent caching\n * Tries ECR first, falls back to local build if available, and caches locally\n */\nasync function ensureDockerImage(imageURI: string, imageTag: string): Promise<void> {\n try {\n // Check if image exists locally first\n const checkResult = await $`docker image ls ${imageURI}`.nothrow();\n\n if (checkResult.stdout.includes(imageTag)) {\n console.info(`✅ Using cached Docker image: ${imageURI}`);\n return;\n }\n\n // Try to pull from ECR\n console.info(`📥 Pulling Docker image from ECR: ${imageURI}`);\n const pullResult = await $`docker pull ${imageURI}`.nothrow();\n\n if (pullResult.exitCode === 0) {\n console.info(`✅ Successfully pulled: ${imageURI}`);\n return;\n }\n\n // If ECR pull fails, check for local fallback image\n const localImageName = imageURI.split('/').pop()?.replace(/:.*$/, '') || '';\n const localFallbackURI = `local-${localImageName}:latest`;\n\n const localCheckResult = await $`docker image ls ${localFallbackURI}`.nothrow();\n\n if (localCheckResult.stdout.includes('local-')) {\n console.info(`🏠 ECR image not available, using local fallback: ${localFallbackURI}`);\n\n // Tag the local image with the ECR URI for consistency\n await $`docker tag ${localFallbackURI} ${imageURI}`;\n console.info(`🏷️ Tagged local image as: ${imageURI}`);\n return;\n }\n\n // If all else fails, provide helpful error message\n throw new Error(\n `❌ Docker image not available:\\n` +\n ` - ECR image: ${imageURI} (pull failed)\\n` +\n ` - Local fallback: ${localFallbackURI} (not found)\\n` +\n `\\n💡 Solutions:\\n` +\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com\\n` +\n ` 2. Build local image: docker build -t ${localFallbackURI} <dockerfile-path>\\n` +\n ` 3. Check if the image tag exists in ECR`,\n );\n } catch (error) {\n if (error instanceof Error && error.message.includes('❌ Docker image not available')) {\n throw error;\n }\n throw new Error(\n `Failed to ensure Docker image ${imageURI}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n}\n\n/**\n * Enhanced tool command execution using the new version compatibility matrix system\n */\nexport async function executeToolCommand(\n command: string,\n args: string[],\n options: {\n cwd: string;\n forceDocker: boolean;\n volumes: VolumeMapping[];\n customEntrypoint?: string;\n [key: string]: any;\n },\n): Promise<void> {\n const { cwd, forceDocker, volumes: userVolumes, customEntrypoint } = options;\n\n const tool = findToolByName(command);\n const type = getToolType(command);\n\n if (!tool || type === undefined) {\n const { tools } = await import('../config');\n const availableTools = tools.map((t) => t.name).join(', ');\n throw new Error(\n `❌ Tool '${command}' not found or no type configuration available.\\n` +\n `Available tools: ${availableTools}\\n` +\n `Try: lz-tool --list-versions to see all available tools`,\n );\n }\n\n // Merge default volumes with user-specified volumes\n const defaultVolumes = tool.defaultVolumes ?? [];\n const volumes = mergeVolumes(defaultVolumes, userVolumes);\n\n if (defaultVolumes.length > 0) {\n console.info(`📦 Using ${defaultVolumes.length} default cache volume(s) for ${command}`);\n if (userVolumes.length > 0) {\n const overrides = userVolumes.filter((uv) =>\n defaultVolumes.some((dv) => dv.containerPath === uv.containerPath),\n );\n if (overrides.length > 0) {\n console.info(`🔧 User volumes override ${overrides.length} default volume(s)`);\n }\n }\n }\n\n // Extract user-specified versions from command line options\n const userSpecifiedVersions = extractUserVersions(options);\n\n // Resolve versions for all tools in the type using compatibility matrix\n const versionResult = resolveTypeVersions(type, userSpecifiedVersions, options, cwd);\n\n // Display any warnings\n versionResult.warnings.forEach((warning) => {\n console.warn(warning);\n });\n\n // Get the resolved version for the current tool\n const resolvedVersion = versionResult.resolvedVersions[command];\n if (typeof resolvedVersion !== 'string' || resolvedVersion === '') {\n throw new Error(`No version resolved for tool ${command}`);\n }\n\n console.info(`🔧 ${command} version: ${resolvedVersion}`);\n\n // Check secondary version validation if available\n if (tool.getSecondaryVersionCheckValue) {\n try {\n const secondaryVersion = tool.getSecondaryVersionCheckValue({ cwd });\n const resolvedVersionObj: Version = { version: resolvedVersion };\n\n if (!versionsSatisfied(secondaryVersion, resolvedVersionObj)) {\n console.warn(\n `Warning: Local configuration version (${secondaryVersion.version}) differs from resolved version (${resolvedVersion})`,\n );\n }\n } catch (error) {\n // Secondary version check failed, but continue with resolved version\n console.warn(\n `Could not validate secondary version: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n\n // Check if we should try to use local executable first\n let hasLocalExecutable = false;\n\n if (!forceDocker) {\n const versionFlags = tool.versionCliArguments ?? ['--version'];\n\n try {\n const result = await $`${command} ${versionFlags}`;\n\n // Use tool for parsing output\n if (tool.parseVersionCliVersionOutput) {\n const installedVersion = tool.parseVersionCliVersionOutput(result.stdout);\n const resolvedVersionObj: Version = { version: resolvedVersion };\n\n if (versionsSatisfied(installedVersion, resolvedVersionObj)) {\n hasLocalExecutable = true;\n console.info(`✅ Using local ${command} v${installedVersion.version}`);\n } else {\n console.info(\n `🐳 Local ${command} v${installedVersion.version} ≠ required v${resolvedVersion}, using Docker`,\n );\n }\n }\n } catch (error) {\n // Check if the command is not found (127 exit code)\n if (!(error instanceof Error) || !('exitCode' in error) || error.exitCode !== 127) {\n throw error;\n }\n console.info(`🐳 ${command} not found locally, using Docker`);\n }\n }\n\n let processOutput: ProcessOutput;\n\n if (hasLocalExecutable) {\n // Execute command directly\n processOutput = await $`${command} ${args}`.nothrow();\n } else {\n // Use Docker image with merged volumes\n const { imageTag, imageURI } = getImageName(tool.fromImage, tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relPath = path.relative(workspaceRoot, cwd);\n\n // Enhanced Docker image caching logic\n await ensureDockerImage(imageURI, imageTag);\n\n const volumeArgs = volumes\n .map((volume) => {\n if (volume.type === 'host') {\n if (volume.hostPath === undefined) {\n throw new Error(`Host path is required for volume mapping of type 'host'`);\n }\n return ['-v', `${volume.hostPath}:${volume.containerPath}`];\n } else {\n if (volume.name === undefined) {\n throw new Error(`Name is required for volume mapping of type 'isolate'`);\n }\n return ['-v', `${volume.name}:${volume.containerPath}`];\n }\n })\n .flat(); // Flatten the array to get ['-v', 'vol1', '-v', 'vol2', ...]\n\n // Use custom entrypoint if provided, otherwise fall back to tool config or tool name\n const entryPoint = customEntrypoint ?? tool.entryPoint ?? tool.name;\n\n if (customEntrypoint !== undefined && customEntrypoint.trim() !== '') {\n console.info(`🔧 Using custom entrypoint: ${customEntrypoint}`);\n }\n\n const dockerArgs = [\n 'run',\n '--rm',\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relPath}`,\n ...volumeArgs,\n '--entrypoint',\n entryPoint,\n imageURI,\n ...args,\n ];\n\n processOutput = await $`docker ${dockerArgs}`.nothrow();\n saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath);\n }\n\n // Handle the process completion\n const { exitCode } = processOutput;\n if (exitCode !== 0) {\n process.exit(exitCode ?? 1);\n }\n}\n\nfunction saveAptosModulesOrder(\n command: string,\n processOutput: ProcessOutput,\n workspaceRoot: string,\n relPath: string,\n): void {\n if ('aptos' === command) {\n const outputJson: { Result: string[] } = processOutput.json();\n const modules = outputJson.Result.map((item: string) => `${item.split('::')[1]}.mv`);\n fs.writeFileSync(\n path.join(workspaceRoot, relPath, 'modules.json'),\n JSON.stringify(modules, null, 2),\n );\n }\n}\n"]}
|
package/dist/EJCGU7LP.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/core/tool-executor.ts"],"names":["$","verbose","stdio","process","stderr","mergeVolumes","defaultVolumes","userVolumes","merged","userPaths","Set","map","v","containerPath","push","defaultVolume","has","getImageName","target","vmToolingName","version","repository","AWS_ACCOUNT_ID","AWS_REGION","imageName","tool","findToolByName","Error","matrix","findMatrixByType","toolType","foundCombination","combination","combinations","toolVersion","versions","validVersions","toolName","Object","entries","length","imageTag","getCombinationTag","imageURI","input","tags","key","value","sort","a","b","localeCompare","join","ensureDockerImage","checkResult","nothrow","stdout","includes","console","info","pullResult","exitCode","localImageName","split","pop","replace","localFallbackURI","localCheckResult","error","message","String","executeToolCommand","command","args","options","cwd","forceDocker","volumes","customEntrypoint","type","getToolType","undefined","tools","availableTools","t","name","overrides","filter","uv","some","dv","userSpecifiedVersions","extractUserVersions","versionResult","resolveTypeVersions","warnings","forEach","warning","warn","resolvedVersion","resolvedVersions","getSecondaryVersionCheckValue","secondaryVersion","resolvedVersionObj","versionsSatisfied","hasLocalExecutable","versionFlags","versionCliArguments","result","parseVersionCliVersionOutput","installedVersion","processOutput","fromImage","workspaceRoot","getFullyQualifiedRepoRootPath","relPath","path","relative","volumeArgs","volume","hostPath","flat","entryPoint","trim","dockerArgs","saveAptosModulesOrder","exit","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":"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","file":"EJCGU7LP.cjs","sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport process from 'process';\nimport type { ProcessOutput } from 'zx';\nimport { $ } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION } from '../config';\nimport type { ToolingImageTargetName, Version, VolumeMapping } from '../types';\nimport { findMatrixByType, findToolByName, getToolType } from '../utils/finder-utils';\nimport { versionsSatisfied } from '../utils/version-utils';\nimport { extractUserVersions, resolveTypeVersions } from './version-resolver';\n\n// Configure zx to inherit stdio by default (moved from original setup)\n$.verbose = true;\n$.stdio = ['inherit', 'pipe', process.stderr];\n\n/**\n * Merge default volumes with user-specified volumes\n * User volumes take precedence when containerPath conflicts\n */\nfunction mergeVolumes(\n defaultVolumes: VolumeMapping[],\n userVolumes: VolumeMapping[],\n): VolumeMapping[] {\n const merged: VolumeMapping[] = [];\n const userPaths = new Set(userVolumes.map((v) => v.containerPath));\n\n // Add user volumes first (highest priority)\n merged.push(...userVolumes);\n\n // Add default volumes that don't conflict with user volumes\n for (const defaultVolume of defaultVolumes) {\n if (!userPaths.has(defaultVolume.containerPath)) {\n merged.push(defaultVolume);\n }\n }\n\n return merged;\n}\n\n/**\n * Get Docker image name and tag for a specific tool and version\n */\nfunction getImageName(\n target: ToolingImageTargetName,\n vmToolingName: string,\n version: string,\n): { imageURI: string; imageTag: string } {\n // const repository = 'ghcr.io/layerzero-labs';\n const repository = `${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com/layerzerolabs`;\n const imageName = `${target}-tooling`;\n\n // Find the tool and its type\n const tool = findToolByName(vmToolingName);\n if (!tool) {\n throw new Error(`Tool '${vmToolingName}' not found`);\n }\n\n // Find the version matrix for this tool type\n const matrix = findMatrixByType(tool.toolType);\n if (!matrix) {\n throw new Error(`No version matrix found for tool type ${tool.toolType}`);\n }\n\n // Find a combination that includes this tool with the specified version\n let foundCombination = null;\n for (const combination of matrix.combinations) {\n const toolVersion = combination.versions[vmToolingName];\n if (toolVersion === version) {\n foundCombination = combination.versions;\n break;\n }\n }\n\n if (!foundCombination) {\n throw new Error(\n `No version combination found for tool ${vmToolingName} with version ${version}`,\n );\n }\n\n // Filter out undefined/empty values for tag generation\n const validVersions: { [key: string]: string } = {};\n for (const [toolName, toolVersion] of Object.entries(foundCombination)) {\n if (typeof toolVersion === 'string' && toolVersion.length > 0) {\n validVersions[toolName] = toolVersion;\n }\n }\n\n const imageTag = getCombinationTag(validVersions);\n const imageURI = `${repository}/${imageName}:${imageTag}`;\n\n return { imageURI, imageTag };\n}\n\n/**\n * Generate Docker image tag from version combination\n */\nfunction getCombinationTag(input: { [key: string]: string }): string {\n const tags = Object.entries(input)\n .map(([key, value]) => `${key}_${value}`)\n .sort((a, b) => a.localeCompare(b));\n\n return tags.join('_');\n}\n\n/**\n * Enhanced Docker image management with intelligent caching\n * Tries ECR first, falls back to local build if available, and caches locally\n */\nasync function ensureDockerImage(imageURI: string, imageTag: string): Promise<void> {\n try {\n // Check if image exists locally first\n const checkResult = await $`docker image ls ${imageURI}`.nothrow();\n\n if (checkResult.stdout.includes(imageTag)) {\n console.info(`✅ Using cached Docker image: ${imageURI}`);\n return;\n }\n\n // Try to pull from ECR\n console.info(`📥 Pulling Docker image from ECR: ${imageURI}`);\n const pullResult = await $`docker pull ${imageURI}`.nothrow();\n\n if (pullResult.exitCode === 0) {\n console.info(`✅ Successfully pulled: ${imageURI}`);\n return;\n }\n\n // If ECR pull fails, check for local fallback image\n const localImageName = imageURI.split('/').pop()?.replace(/:.*$/, '') || '';\n const localFallbackURI = `local-${localImageName}:latest`;\n\n const localCheckResult = await $`docker image ls ${localFallbackURI}`.nothrow();\n\n if (localCheckResult.stdout.includes('local-')) {\n console.info(`🏠 ECR image not available, using local fallback: ${localFallbackURI}`);\n\n // Tag the local image with the ECR URI for consistency\n await $`docker tag ${localFallbackURI} ${imageURI}`;\n console.info(`🏷️ Tagged local image as: ${imageURI}`);\n return;\n }\n\n // If all else fails, provide helpful error message\n throw new Error(\n `❌ Docker image not available:\\n` +\n ` - ECR image: ${imageURI} (pull failed)\\n` +\n ` - Local fallback: ${localFallbackURI} (not found)\\n` +\n `\\n💡 Solutions:\\n` +\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com\\n` +\n ` 2. Build local image: docker build -t ${localFallbackURI} <dockerfile-path>\\n` +\n ` 3. Check if the image tag exists in ECR`,\n );\n } catch (error) {\n if (error instanceof Error && error.message.includes('❌ Docker image not available')) {\n throw error;\n }\n throw new Error(\n `Failed to ensure Docker image ${imageURI}: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n}\n\n/**\n * Enhanced tool command execution using the new version compatibility matrix system\n */\nexport async function executeToolCommand(\n command: string,\n args: string[],\n options: {\n cwd: string;\n forceDocker: boolean;\n volumes: VolumeMapping[];\n customEntrypoint?: string;\n [key: string]: any;\n },\n): Promise<void> {\n const { cwd, forceDocker, volumes: userVolumes, customEntrypoint } = options;\n\n const tool = findToolByName(command);\n const type = getToolType(command);\n\n if (!tool || type === undefined) {\n const { tools } = await import('../config');\n const availableTools = tools.map((t) => t.name).join(', ');\n throw new Error(\n `❌ Tool '${command}' not found or no type configuration available.\\n` +\n `Available tools: ${availableTools}\\n` +\n `Try: lz-tool --list-versions to see all available tools`,\n );\n }\n\n // Merge default volumes with user-specified volumes\n const defaultVolumes = tool.defaultVolumes ?? [];\n const volumes = mergeVolumes(defaultVolumes, userVolumes);\n\n if (defaultVolumes.length > 0) {\n console.info(`📦 Using ${defaultVolumes.length} default cache volume(s) for ${command}`);\n if (userVolumes.length > 0) {\n const overrides = userVolumes.filter((uv) =>\n defaultVolumes.some((dv) => dv.containerPath === uv.containerPath),\n );\n if (overrides.length > 0) {\n console.info(`🔧 User volumes override ${overrides.length} default volume(s)`);\n }\n }\n }\n\n // Extract user-specified versions from command line options\n const userSpecifiedVersions = extractUserVersions(options);\n\n // Resolve versions for all tools in the type using compatibility matrix\n const versionResult = resolveTypeVersions(type, userSpecifiedVersions, options, cwd);\n\n // Display any warnings\n versionResult.warnings.forEach((warning) => {\n console.warn(warning);\n });\n\n // Get the resolved version for the current tool\n const resolvedVersion = versionResult.resolvedVersions[command];\n if (typeof resolvedVersion !== 'string' || resolvedVersion === '') {\n throw new Error(`No version resolved for tool ${command}`);\n }\n\n console.info(`🔧 ${command} version: ${resolvedVersion}`);\n\n // Check secondary version validation if available\n if (tool.getSecondaryVersionCheckValue) {\n try {\n const secondaryVersion = tool.getSecondaryVersionCheckValue({ cwd });\n const resolvedVersionObj: Version = { version: resolvedVersion };\n\n if (!versionsSatisfied(secondaryVersion, resolvedVersionObj)) {\n console.warn(\n `Warning: Local configuration version (${secondaryVersion.version}) differs from resolved version (${resolvedVersion})`,\n );\n }\n } catch (error) {\n // Secondary version check failed, but continue with resolved version\n console.warn(\n `Could not validate secondary version: ${error instanceof Error ? error.message : String(error)}`,\n );\n }\n }\n\n // Check if we should try to use local executable first\n let hasLocalExecutable = false;\n\n if (!forceDocker) {\n const versionFlags = tool.versionCliArguments ?? ['--version'];\n\n try {\n const result = await $`${command} ${versionFlags}`;\n\n // Use tool for parsing output\n if (tool.parseVersionCliVersionOutput) {\n const installedVersion = tool.parseVersionCliVersionOutput(result.stdout);\n const resolvedVersionObj: Version = { version: resolvedVersion };\n\n if (versionsSatisfied(installedVersion, resolvedVersionObj)) {\n hasLocalExecutable = true;\n console.info(`✅ Using local ${command} v${installedVersion.version}`);\n } else {\n console.info(\n `🐳 Local ${command} v${installedVersion.version} ≠ required v${resolvedVersion}, using Docker`,\n );\n }\n }\n } catch (error) {\n // Check if the command is not found (127 exit code)\n if (!(error instanceof Error) || !('exitCode' in error) || error.exitCode !== 127) {\n throw error;\n }\n console.info(`🐳 ${command} not found locally, using Docker`);\n }\n }\n\n let processOutput: ProcessOutput;\n\n if (hasLocalExecutable) {\n // Execute command directly\n processOutput = await $`${command} ${args}`.nothrow();\n } else {\n // Use Docker image with merged volumes\n const { imageTag, imageURI } = getImageName(tool.fromImage, tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relPath = path.relative(workspaceRoot, cwd);\n\n // Enhanced Docker image caching logic\n await ensureDockerImage(imageURI, imageTag);\n\n const volumeArgs = volumes\n .map((volume) => {\n if (volume.type === 'host') {\n if (volume.hostPath === undefined) {\n throw new Error(`Host path is required for volume mapping of type 'host'`);\n }\n return ['-v', `${volume.hostPath}:${volume.containerPath}`];\n } else {\n if (volume.name === undefined) {\n throw new Error(`Name is required for volume mapping of type 'isolate'`);\n }\n return ['-v', `${volume.name}:${volume.containerPath}`];\n }\n })\n .flat(); // Flatten the array to get ['-v', 'vol1', '-v', 'vol2', ...]\n\n // Use custom entrypoint if provided, otherwise fall back to tool config or tool name\n const entryPoint = customEntrypoint ?? tool.entryPoint ?? tool.name;\n\n if (customEntrypoint !== undefined && customEntrypoint.trim() !== '') {\n console.info(`🔧 Using custom entrypoint: ${customEntrypoint}`);\n }\n\n const dockerArgs = [\n 'run',\n '--rm',\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relPath}`,\n ...volumeArgs,\n '--entrypoint',\n entryPoint,\n imageURI,\n ...args,\n ];\n\n processOutput = await $`docker ${dockerArgs}`.nothrow();\n saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath);\n }\n\n // Handle the process completion\n const { exitCode } = processOutput;\n if (exitCode !== 0) {\n process.exit(exitCode ?? 1);\n }\n}\n\nfunction saveAptosModulesOrder(\n command: string,\n processOutput: ProcessOutput,\n workspaceRoot: string,\n relPath: string,\n): void {\n if ('aptos' === command) {\n const outputJson: { Result: string[] } = processOutput.json();\n const modules = outputJson.Result.map((item: string) => `${item.split('::')[1]}.mv`);\n fs.writeFileSync(\n path.join(workspaceRoot, relPath, 'modules.json'),\n JSON.stringify(modules, null, 2),\n );\n }\n}\n"]}
|