@layerzerolabs/vm-tooling 0.0.61 → 0.0.62

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.
@@ -1,6 +1,6 @@
1
- import { findBestCompatibleCombination } from './PWDCAN6N.js';
2
1
  import { tools, findToolByName, parseVersionFileContents, getToolDefaultVersion, findToolsByType, getToolSupportedVersions, getCombinationId } from './CJNBA2MN.js';
3
2
  import { versionMatrices } from './NX66I36H.js';
3
+ import { findBestCompatibleCombination } from './PWDCAN6N.js';
4
4
  import { init_esm_shims, __name } from './4RNWLMHM.js';
5
5
  import process from 'process';
6
6
 
@@ -115,5 +115,5 @@ function resolveTypeVersions(type, userSpecifiedVersions, options, cwd) {
115
115
  __name(resolveTypeVersions, "resolveTypeVersions");
116
116
 
117
117
  export { extractUserVersions, resolveToolVersion, resolveTypeVersions };
118
- //# sourceMappingURL=QBFQWBQ4.js.map
119
- //# sourceMappingURL=QBFQWBQ4.js.map
118
+ //# sourceMappingURL=5JYEGDVK.js.map
119
+ //# sourceMappingURL=5JYEGDVK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/version-resolver.ts"],"names":["extractUserVersions","options","userVersions","tool","tools","versionKey","name","versionValue","resolveToolVersion","toolName","userSpecifiedVersions","cwd","findToolByName","userVersion","envKey","toUpperCase","envVersion","process","env","parsedVersions","parseVersionFileContents","foundVersion","error","getToolDefaultVersion","resolveTypeVersions","type","typeTools","findToolsByType","length","Error","resolvedVersions","usedDefaultFor","warnings","version","push","supportedVersions","getToolSupportedVersions","includes","join","combinations","versionMatrices","matchedCombination","isCompatibleCombination","combo","matches","Object","entries","versions","every","compatibleCombo","findBestCompatibleCombination","adjusted","comboVersion","undefined","oldVersion","stableCombinations","filter","stable","map","combination","getCombinationId","description","console","info"],"mappings":"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","file":"QBFQWBQ4.js","sourcesContent":["import process from 'process';\n\nimport type { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport { tools, versionMatrices } from '../config';\nimport type { VersionCombination, VersionResolutionResult } from '../types';\nimport { getCombinationId, parseVersionFileContents } from '../utils';\nimport {\n findToolByName,\n findToolsByType,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder';\nimport { findBestCompatibleCombination } from './compatibility';\n\n/**\n * Extract user-specified versions from command line options\n */\nexport function extractUserVersions(options: { [key: string]: any }): { [key: string]: string } {\n const userVersions: { [key: string]: string } = {};\n\n // Extract versions from command line options\n for (const tool of tools) {\n const versionKey = `${tool.name}Version`;\n const versionValue = options[versionKey] as unknown;\n if (typeof versionValue === 'string' && versionValue !== '') {\n userVersions[tool.name] = versionValue;\n }\n }\n\n return userVersions;\n}\n\n/**\n * Resolve version for a single tool following priority order:\n * 1. Command line options\n * 2. Environment variables\n * 3. .versions file\n * 4. Default version\n */\nexport function resolveToolVersion(\n toolName: string,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): string | null {\n const tool = findToolByName(toolName);\n\n // 1. Check command line options (highest priority)\n const userVersion = userSpecifiedVersions[toolName];\n if (typeof userVersion === 'string' && userVersion !== '') {\n return userVersion;\n }\n\n // 2. Check environment variables\n const envKey = `${tool.name.toUpperCase()}_VERSION`;\n const envVersion = process.env[envKey];\n if (typeof envVersion === 'string' && envVersion !== '') {\n return envVersion;\n }\n\n // 3. Check .versions file\n try {\n const parsedVersions = parseVersionFileContents(cwd);\n const versionKey = `${tool.name}_version`.toUpperCase();\n const foundVersion = parsedVersions[versionKey];\n\n if (typeof foundVersion === 'string' && foundVersion !== '') {\n return foundVersion;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n // If .versions file doesn't exist or can't be parsed, continue to default\n }\n\n // 4. Use default version\n return getToolDefaultVersion(tool.name);\n}\n\n/**\n * Resolve versions for all tools in a type with compatibility checking\n */\nexport function resolveTypeVersions(\n type: ChainType,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): VersionResolutionResult {\n const typeTools = findToolsByType(type);\n\n if (!typeTools.length) {\n throw new Error(`Type ${type} not found or no tools available`);\n }\n\n // 1. Collect versions from all sources for each tool\n const resolvedVersions: { [key: string]: string } = {};\n const usedDefaultFor: string[] = [];\n const warnings: string[] = [];\n\n for (const tool of typeTools) {\n const version = resolveToolVersion(tool.name, userSpecifiedVersions, options, cwd);\n\n if (!version) {\n continue;\n }\n\n resolvedVersions[tool.name] = version;\n\n if (version === getToolDefaultVersion(tool.name)) {\n usedDefaultFor.push(tool.name);\n }\n\n // Validate user-specified version if not default\n if (version !== getToolDefaultVersion(tool.name)) {\n const supportedVersions = getToolSupportedVersions(tool.name);\n if (!supportedVersions.includes(version)) {\n warnings.push(\n `⚠️ Version ${version} for ${tool.name} is not in the supported list.\\n` +\n ` Supported versions: ${supportedVersions.join(', ')}\\n` +\n ` Continuing with Docker availability as final validation...`,\n );\n }\n }\n }\n\n // 2. Check if current combination matches any compatible combination\n const combinations = versionMatrices[type];\n let matchedCombination: VersionCombination | undefined;\n let isCompatibleCombination = false;\n\n for (const combo of combinations) {\n const matches = Object.entries(combo.versions).every(\n ([tool, version]) => resolvedVersions[tool] === version,\n );\n\n if (matches) {\n matchedCombination = combo;\n isCompatibleCombination = true;\n break;\n }\n }\n\n // 3. If not compatible and some tools used defaults, try to auto-adjust\n if (!isCompatibleCombination && usedDefaultFor.length > 0) {\n const compatibleCombo = findBestCompatibleCombination(resolvedVersions, combinations);\n\n if (compatibleCombo) {\n let adjusted = false;\n\n for (const toolName of usedDefaultFor) {\n const comboVersion = compatibleCombo.versions[toolName];\n if (comboVersion !== undefined && comboVersion !== resolvedVersions[toolName]) {\n const oldVersion = resolvedVersions[toolName];\n resolvedVersions[toolName] = comboVersion;\n warnings.push(\n `🔄 Auto-adjusted ${toolName}: ${oldVersion} → ${comboVersion} (for compatibility)`,\n );\n adjusted = true;\n }\n }\n\n if (adjusted) {\n matchedCombination = compatibleCombo;\n isCompatibleCombination = true;\n }\n }\n }\n\n // 4. Add compatibility warnings\n if (!isCompatibleCombination) {\n const stableCombinations = combinations\n .filter(({ stable }) => stable)\n .map((combination) => getCombinationId(combination))\n .join(', ');\n\n warnings.push(\n `⚠️ Custom version combination detected - not officially tested.\\n` +\n ` 💡 Stable combinations: ${stableCombinations}\\n` +\n ` 🔍 Use 'lz-tool --list-versions' to see all tested combinations.`,\n );\n } else if (matchedCombination?.description !== undefined) {\n console.info(\n `✅ ${matchedCombination.description} (${getCombinationId(matchedCombination)})`,\n );\n }\n\n return {\n resolvedVersions,\n isCompatibleCombination,\n usedDefaultFor,\n warnings,\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/core/version-resolver.ts"],"names":["extractUserVersions","options","userVersions","tool","tools","versionKey","name","versionValue","resolveToolVersion","toolName","userSpecifiedVersions","cwd","findToolByName","userVersion","envKey","toUpperCase","envVersion","process","env","parsedVersions","parseVersionFileContents","foundVersion","error","getToolDefaultVersion","resolveTypeVersions","type","typeTools","findToolsByType","length","Error","resolvedVersions","usedDefaultFor","warnings","version","push","supportedVersions","getToolSupportedVersions","includes","join","combinations","versionMatrices","matchedCombination","isCompatibleCombination","combo","matches","Object","entries","versions","every","compatibleCombo","findBestCompatibleCombination","adjusted","comboVersion","undefined","oldVersion","stableCombinations","filter","stable","map","combination","getCombinationId","description","console","info"],"mappings":";;;;;;;AAAA,cAAA,EAAA;AAkBO,SAASA,oBAAoBC,OAAAA,EAA+B;AAC/D,EAAA,MAAMC,eAA0C,EAAC;AAGjD,EAAA,KAAA,MAAWC,QAAQC,KAAAA,EAAO;AACtB,IAAA,MAAMC,UAAAA,GAAa,CAAA,EAAGF,IAAAA,CAAKG,IAAI,CAAA,OAAA,CAAA;AAC/B,IAAA,MAAMC,YAAAA,GAAeN,QAAQI,UAAAA,CAAAA;AAC7B,IAAA,IAAI,OAAOE,YAAAA,KAAiB,QAAA,IAAYA,YAAAA,KAAiB,EAAA,EAAI;AACzDL,MAAAA,YAAAA,CAAaC,IAAAA,CAAKG,IAAI,CAAA,GAAIC,YAAAA;AAC9B,IAAA;AACJ,EAAA;AAEA,EAAA,OAAOL,YAAAA;AACX;AAbgBF,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA;AAsBT,SAASQ,kBAAAA,CACZC,QAAAA,EACAC,qBAAAA,EACAT,OAAAA,EACAU,GAAAA,EAAW;AAEX,EAAA,MAAMR,IAAAA,GAAOS,eAAeH,QAAAA,CAAAA;AAG5B,EAAA,MAAMI,WAAAA,GAAcH,sBAAsBD,QAAAA,CAAAA;AAC1C,EAAA,IAAI,OAAOI,WAAAA,KAAgB,QAAA,IAAYA,WAAAA,KAAgB,EAAA,EAAI;AACvD,IAAA,OAAOA,WAAAA;AACX,EAAA;AAGA,EAAA,MAAMC,MAAAA,GAAS,CAAA,EAAGX,IAAAA,CAAKG,IAAAA,CAAKS,aAAW,CAAA,QAAA,CAAA;AACvC,EAAA,MAAMC,UAAAA,GAAaC,OAAAA,CAAQC,GAAAA,CAAIJ,MAAAA,CAAAA;AAC/B,EAAA,IAAI,OAAOE,UAAAA,KAAe,QAAA,IAAYA,UAAAA,KAAe,EAAA,EAAI;AACrD,IAAA,OAAOA,UAAAA;AACX,EAAA;AAGA,EAAA,IAAI;AACA,IAAA,MAAMG,cAAAA,GAAiBC,yBAAyBT,GAAAA,CAAAA;AAChD,IAAA,MAAMN,UAAAA,GAAa,CAAA,EAAGF,IAAAA,CAAKG,IAAI,WAAWS,WAAAA,EAAW;AACrD,IAAA,MAAMM,YAAAA,GAAeF,eAAed,UAAAA,CAAAA;AAEpC,IAAA,IAAI,OAAOgB,YAAAA,KAAiB,QAAA,IAAYA,YAAAA,KAAiB,EAAA,EAAI;AACzD,MAAA,OAAOA,YAAAA;AACX,IAAA;AAEJ,EAAA,CAAA,CAAA,OAASC,KAAAA,EAAO;AAEhB,EAAA;AAGA,EAAA,OAAOC,qBAAAA,CAAsBpB,KAAKG,IAAI,CAAA;AAC1C;AArCgBE,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AA0CT,SAASgB,mBAAAA,CACZC,IAAAA,EACAf,qBAAAA,EACAT,OAAAA,EACAU,GAAAA,EAAW;AAEX,EAAA,MAAMe,SAAAA,GAAYC,gBAAgBF,IAAAA,CAAAA;AAElC,EAAA,IAAI,CAACC,UAAUE,MAAAA,EAAQ;AACnB,IAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,KAAA,EAAQJ,IAAAA,CAAAA,gCAAAA,CAAsC,CAAA;AAClE,EAAA;AAGA,EAAA,MAAMK,mBAA8C,EAAC;AACrD,EAAA,MAAMC,iBAA2B,EAAA;AACjC,EAAA,MAAMC,WAAqB,EAAA;AAE3B,EAAA,KAAA,MAAW7B,QAAQuB,SAAAA,EAAW;AAC1B,IAAA,MAAMO,UAAUzB,kBAAAA,CAAmBL,IAAAA,CAAKG,IAAAA,EAAMI,qBAAAA,EAAuBT,SAASU,GAAAA,CAAAA;AAE9E,IAAA,IAAI,CAACsB,OAAAA,EAAS;AACV,MAAA;AACJ,IAAA;AAEAH,IAAAA,gBAAAA,CAAiB3B,IAAAA,CAAKG,IAAI,CAAA,GAAI2B,OAAAA;AAE9B,IAAA,IAAIA,OAAAA,KAAYV,qBAAAA,CAAsBpB,IAAAA,CAAKG,IAAI,CAAA,EAAG;AAC9CyB,MAAAA,cAAAA,CAAeG,IAAAA,CAAK/B,KAAKG,IAAI,CAAA;AACjC,IAAA;AAGA,IAAA,IAAI2B,OAAAA,KAAYV,qBAAAA,CAAsBpB,IAAAA,CAAKG,IAAI,CAAA,EAAG;AAC9C,MAAA,MAAM6B,iBAAAA,GAAoBC,wBAAAA,CAAyBjC,IAAAA,CAAKG,IAAI,CAAA;AAC5D,MAAA,IAAI,CAAC6B,iBAAAA,CAAkBE,QAAAA,CAASJ,OAAAA,CAAAA,EAAU;AACtCD,QAAAA,QAAAA,CAASE,IAAAA,CACL,CAAA,sBAAA,EAAeD,OAAAA,CAAAA,KAAAA,EAAe9B,KAAKG,IAAI,CAAA;yBACT6B,iBAAAA,CAAkBG,IAAAA,CAAK,IAAA,CAAA;AACc,6DAAA,CAAA,CAAA;AAE3E,MAAA;AACJ,IAAA;AACJ,EAAA;AAGA,EAAA,MAAMC,YAAAA,GAAeC,gBAAgBf,IAAAA,CAAAA;AACrC,EAAA,IAAIgB,kBAAAA;AACJ,EAAA,IAAIC,uBAAAA,GAA0B,KAAA;AAE9B,EAAA,KAAA,MAAWC,SAASJ,YAAAA,EAAc;AAC9B,IAAA,MAAMK,OAAAA,GAAUC,MAAAA,CAAOC,OAAAA,CAAQH,KAAAA,CAAMI,QAAQ,CAAA,CAAEC,KAAAA,CAC3C,CAAC,CAAC7C,MAAM8B,OAAAA,CAAAA,KAAaH,gBAAAA,CAAiB3B,IAAAA,MAAU8B,OAAAA,CAAAA;AAGpD,IAAA,IAAIW,OAAAA,EAAS;AACTH,MAAAA,kBAAAA,GAAqBE,KAAAA;AACrBD,MAAAA,uBAAAA,GAA0B,IAAA;AAC1B,MAAA;AACJ,IAAA;AACJ,EAAA;AAGA,EAAA,IAAI,CAACA,uBAAAA,IAA2BX,cAAAA,CAAeH,MAAAA,GAAS,CAAA,EAAG;AACvD,IAAA,MAAMqB,eAAAA,GAAkBC,6BAAAA,CAA8BpB,gBAAAA,EAAkBS,YAAAA,CAAAA;AAExE,IAAA,IAAIU,eAAAA,EAAiB;AACjB,MAAA,IAAIE,QAAAA,GAAW,KAAA;AAEf,MAAA,KAAA,MAAW1C,YAAYsB,cAAAA,EAAgB;AACnC,QAAA,MAAMqB,YAAAA,GAAeH,eAAAA,CAAgBF,QAAAA,CAAStC,QAAAA,CAAAA;AAC9C,QAAA,IAAI2C,YAAAA,KAAiBC,MAAAA,IAAaD,YAAAA,KAAiBtB,gBAAAA,CAAiBrB,QAAAA,CAAAA,EAAW;AAC3E,UAAA,MAAM6C,UAAAA,GAAaxB,iBAAiBrB,QAAAA,CAAAA;AACpCqB,UAAAA,gBAAAA,CAAiBrB,QAAAA,CAAAA,GAAY2C,YAAAA;AAC7BpB,UAAAA,QAAAA,CAASE,KACL,CAAA,wBAAA,EAAoBzB,QAAAA,KAAa6C,UAAAA,CAAAA,QAAAA,EAAgBF,YAAAA,CAAAA,oBAAAA,CAAkC,CAAA;AAEvFD,UAAAA,QAAAA,GAAW,IAAA;AACf,QAAA;AACJ,MAAA;AAEA,MAAA,IAAIA,QAAAA,EAAU;AACVV,QAAAA,kBAAAA,GAAqBQ,eAAAA;AACrBP,QAAAA,uBAAAA,GAA0B,IAAA;AAC9B,MAAA;AACJ,IAAA;AACJ,EAAA;AAGA,EAAA,IAAI,CAACA,uBAAAA,EAAyB;AAC1B,IAAA,MAAMa,qBAAqBhB,YAAAA,CACtBiB,MAAAA,CAAO,CAAC,EAAEC,QAAM,KAAOA,MAAAA,CAAAA,CACvBC,GAAAA,CAAI,CAACC,WAAAA,KAAgBC,gBAAAA,CAAiBD,WAAAA,CAAAA,CAAAA,CACtCrB,KAAK,IAAA,CAAA;AAEVN,IAAAA,QAAAA,CAASE,IAAAA,CACL,CAAA;oCACkCqB,kBAAAA;AACuC,0EAAA,CAAA,CAAA;EAEjF,CAAA,MAAA,IAAWd,kBAAAA,EAAoBoB,gBAAgBR,MAAAA,EAAW;AACtDS,IAAAA,OAAAA,CAAQC,IAAAA,CACJ,UAAKtB,kBAAAA,CAAmBoB,WAAW,KAAKD,gBAAAA,CAAiBnB,kBAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CAAA;AAEvF,EAAA;AAEA,EAAA,OAAO;AACHX,IAAAA,gBAAAA;AACAY,IAAAA,uBAAAA;AACAX,IAAAA,cAAAA;AACAC,IAAAA;AACJ,GAAA;AACJ;AA9GgBR,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"5JYEGDVK.js","sourcesContent":["import process from 'process';\n\nimport type { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport { tools, versionMatrices } from '../config';\nimport type { VersionCombination, VersionResolutionResult } from '../types';\nimport { getCombinationId, parseVersionFileContents } from '../utils';\nimport {\n findToolByName,\n findToolsByType,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder';\nimport { findBestCompatibleCombination } from './compatibility';\n\n/**\n * Extract user-specified versions from command line options\n */\nexport function extractUserVersions(options: { [key: string]: any }): { [key: string]: string } {\n const userVersions: { [key: string]: string } = {};\n\n // Extract versions from command line options\n for (const tool of tools) {\n const versionKey = `${tool.name}Version`;\n const versionValue = options[versionKey] as unknown;\n if (typeof versionValue === 'string' && versionValue !== '') {\n userVersions[tool.name] = versionValue;\n }\n }\n\n return userVersions;\n}\n\n/**\n * Resolve version for a single tool following priority order:\n * 1. Command line options\n * 2. Environment variables\n * 3. .versions file\n * 4. Default version\n */\nexport function resolveToolVersion(\n toolName: string,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): string | null {\n const tool = findToolByName(toolName);\n\n // 1. Check command line options (highest priority)\n const userVersion = userSpecifiedVersions[toolName];\n if (typeof userVersion === 'string' && userVersion !== '') {\n return userVersion;\n }\n\n // 2. Check environment variables\n const envKey = `${tool.name.toUpperCase()}_VERSION`;\n const envVersion = process.env[envKey];\n if (typeof envVersion === 'string' && envVersion !== '') {\n return envVersion;\n }\n\n // 3. Check .versions file\n try {\n const parsedVersions = parseVersionFileContents(cwd);\n const versionKey = `${tool.name}_version`.toUpperCase();\n const foundVersion = parsedVersions[versionKey];\n\n if (typeof foundVersion === 'string' && foundVersion !== '') {\n return foundVersion;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n // If .versions file doesn't exist or can't be parsed, continue to default\n }\n\n // 4. Use default version\n return getToolDefaultVersion(tool.name);\n}\n\n/**\n * Resolve versions for all tools in a type with compatibility checking\n */\nexport function resolveTypeVersions(\n type: ChainType,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): VersionResolutionResult {\n const typeTools = findToolsByType(type);\n\n if (!typeTools.length) {\n throw new Error(`Type ${type} not found or no tools available`);\n }\n\n // 1. Collect versions from all sources for each tool\n const resolvedVersions: { [key: string]: string } = {};\n const usedDefaultFor: string[] = [];\n const warnings: string[] = [];\n\n for (const tool of typeTools) {\n const version = resolveToolVersion(tool.name, userSpecifiedVersions, options, cwd);\n\n if (!version) {\n continue;\n }\n\n resolvedVersions[tool.name] = version;\n\n if (version === getToolDefaultVersion(tool.name)) {\n usedDefaultFor.push(tool.name);\n }\n\n // Validate user-specified version if not default\n if (version !== getToolDefaultVersion(tool.name)) {\n const supportedVersions = getToolSupportedVersions(tool.name);\n if (!supportedVersions.includes(version)) {\n warnings.push(\n `⚠️ Version ${version} for ${tool.name} is not in the supported list.\\n` +\n ` Supported versions: ${supportedVersions.join(', ')}\\n` +\n ` Continuing with Docker availability as final validation...`,\n );\n }\n }\n }\n\n // 2. Check if current combination matches any compatible combination\n const combinations = versionMatrices[type];\n let matchedCombination: VersionCombination | undefined;\n let isCompatibleCombination = false;\n\n for (const combo of combinations) {\n const matches = Object.entries(combo.versions).every(\n ([tool, version]) => resolvedVersions[tool] === version,\n );\n\n if (matches) {\n matchedCombination = combo;\n isCompatibleCombination = true;\n break;\n }\n }\n\n // 3. If not compatible and some tools used defaults, try to auto-adjust\n if (!isCompatibleCombination && usedDefaultFor.length > 0) {\n const compatibleCombo = findBestCompatibleCombination(resolvedVersions, combinations);\n\n if (compatibleCombo) {\n let adjusted = false;\n\n for (const toolName of usedDefaultFor) {\n const comboVersion = compatibleCombo.versions[toolName];\n if (comboVersion !== undefined && comboVersion !== resolvedVersions[toolName]) {\n const oldVersion = resolvedVersions[toolName];\n resolvedVersions[toolName] = comboVersion;\n warnings.push(\n `🔄 Auto-adjusted ${toolName}: ${oldVersion} → ${comboVersion} (for compatibility)`,\n );\n adjusted = true;\n }\n }\n\n if (adjusted) {\n matchedCombination = compatibleCombo;\n isCompatibleCombination = true;\n }\n }\n }\n\n // 4. Add compatibility warnings\n if (!isCompatibleCombination) {\n const stableCombinations = combinations\n .filter(({ stable }) => stable)\n .map((combination) => getCombinationId(combination))\n .join(', ');\n\n warnings.push(\n `⚠️ Custom version combination detected - not officially tested.\\n` +\n ` 💡 Stable combinations: ${stableCombinations}\\n` +\n ` 🔍 Use 'lz-tool --list-versions' to see all tested combinations.`,\n );\n } else if (matchedCombination?.description !== undefined) {\n console.info(\n `✅ ${matchedCombination.description} (${getCombinationId(matchedCombination)})`,\n );\n }\n\n return {\n resolvedVersions,\n isCompatibleCombination,\n usedDefaultFor,\n warnings,\n };\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { stringifyError } from './IWNVWC3I.js';
2
- import { lockMany } from './3PEVFTZ5.js';
3
- import { extractUserVersions, resolveTypeVersions } from './QBFQWBQ4.js';
2
+ import { extractUserVersions, resolveTypeVersions } from './5JYEGDVK.js';
4
3
  import { AWS_REGION, AWS_ACCOUNT_ID, findToolByName, getChainTypeForTool, tools, versionsSatisfied, getImageURI } from './CJNBA2MN.js';
4
+ import { lockMany } from './3PEVFTZ5.js';
5
5
  import { init_esm_shims, __name } from './4RNWLMHM.js';
6
6
  import fs from 'node:fs';
7
7
  import path from 'node:path';
@@ -188,5 +188,5 @@ function saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath) {
188
188
  __name(saveAptosModulesOrder, "saveAptosModulesOrder");
189
189
 
190
190
  export { executeToolCommand };
191
- //# sourceMappingURL=ARTA3TG2.js.map
192
- //# sourceMappingURL=ARTA3TG2.js.map
191
+ //# sourceMappingURL=GQAEO3WU.js.map
192
+ //# sourceMappingURL=GQAEO3WU.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/tool-executor.ts"],"names":["$","verbose","stdio","process","stderr","mergeVolumes","defaultVolumes","userVolumes","paths","Set","map","volume","containerPath","filter","has","ensureDockerImage","imageURI","output","nothrow","stdout","includes","split","console","info","error","Error","stringifyError","exitCode","AWS_REGION","AWS_ACCOUNT_ID","join","executeToolCommand","command","args","options","cwd","volumes","customEntrypoint","entrypoint","env","customEnvVars","script","publish","tool","findToolByName","type","getChainTypeForTool","undefined","tools","name","length","overrides","uv","some","dv","userSpecifiedVersions","extractUserVersions","versionResult","resolveTypeVersions","warning","warnings","warn","resolvedVersion","resolvedVersions","getSecondaryVersionCheckValue","secondaryVersion","resolvedVersionObj","version","versionsSatisfied","getImageURI","workspaceRoot","getFullyQualifiedRepoRootPath","relativePath","path","relative","volumeArgs","hostPath","components","shared","packageName","npm_package_name","push","basename","flatMap","trim","envArgs","envVar","value","flat","finalArgs","dockerArgs","privileged","lockMany","locked","saveAptosModulesOrder","exit","processOutput","relPath","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":"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","file":"ARTA3TG2.js","sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\nimport { $, type ProcessOutput } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION, tools } from '../config';\nimport type { EnvironmentVariable, Version, VolumeMapping } from '../types';\nimport { getImageURI } from '../utils/docker';\nimport { stringifyError } from '../utils/error';\nimport { findToolByName, getChainTypeForTool } from '../utils/finder';\nimport { versionsSatisfied } from '../utils/version';\nimport { lockMany } from './lock';\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 */\nconst mergeVolumes = (\n defaultVolumes: VolumeMapping[],\n userVolumes: VolumeMapping[],\n): VolumeMapping[] => {\n const paths = new Set(userVolumes.map((volume) => volume.containerPath));\n\n return [...userVolumes, ...defaultVolumes.filter((volume) => !paths.has(volume.containerPath))];\n};\n\nasync function ensureDockerImage(imageURI: string): Promise<void> {\n let output: ProcessOutput;\n\n try {\n // Check local images first.\n output = await $`docker image ls ${imageURI}`.nothrow();\n\n if (output.stdout.includes(imageURI.split(':')[1])) {\n console.info(`✅ Using cached Docker image: ${imageURI}`);\n return;\n }\n\n console.info('📥 Pulling Docker image from ECR:', imageURI);\n output = await $`docker pull ${imageURI}`.nothrow();\n } catch (error: unknown) {\n throw new Error(`Failed to pull Docker image ${imageURI}: ${stringifyError(error)}`);\n }\n\n if (output.exitCode) {\n throw new Error(\n [\n 'Docker image not available:',\n ` - ECR image: ${imageURI} (pull failed)`,\n '',\n '💡 Solutions:',\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | ` +\n `docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`,\n ' 2. Check if the image tag exists in ECR.',\n ].join('\\n'),\n );\n }\n\n console.info(`✅ Successfully pulled: ${imageURI}`);\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 volumes: VolumeMapping[];\n customEntrypoint?: string;\n env: EnvironmentVariable[];\n script?: string;\n [key: string]: unknown;\n publish?: string;\n },\n): Promise<void> {\n const {\n cwd,\n volumes: userVolumes,\n customEntrypoint: entrypoint,\n env: customEnvVars,\n script,\n publish,\n } = options;\n\n const tool = findToolByName(command);\n const type = getChainTypeForTool(command);\n\n if (type === undefined) {\n throw new Error(\n [\n `Tool '${command}' not found or no type configuration available.`,\n `Available tools: ${tools.map(({ name }) => name).join(', ')}`,\n `Try: lz-tool --list-versions to see all available tools`,\n ].join('\\n'),\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 for (const warning of versionResult.warnings) {\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('Could not validate secondary version:', stringifyError(error));\n }\n }\n\n // Use Docker image with merged volumes\n const imageURI = getImageURI(tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relativePath = path.relative(workspaceRoot, cwd);\n\n await ensureDockerImage(imageURI);\n\n const volumeArgs = volumes\n .map((volume) => {\n if (volume.type === 'host') {\n return `${volume.hostPath}:${volume.containerPath}`;\n }\n\n const components = ['lz-tooling-cache', volume.name];\n\n if (!volume.shared) {\n // This is the package name where the `lz-tool` command is executed.\n // eslint-disable-next-line turbo/no-undeclared-env-vars\n const packageName = process.env.npm_package_name;\n\n if (!packageName) {\n throw new Error('npm_package_name environment variable not defined');\n }\n\n components.push(path.basename(packageName));\n }\n\n return `${components.join('-')}:${volume.containerPath}`;\n })\n .flatMap((volume) => ['-v', volume]);\n\n if (entrypoint?.trim()) {\n console.info(`🔧 Using custom entrypoint: ${entrypoint}`);\n }\n\n // Build the Docker command with proper argument separation\n const envArgs = customEnvVars.map((envVar) => ['-e', `${envVar.name}=${envVar.value}`]).flat();\n\n if (customEnvVars.length > 0) {\n console.info(`🌍 Using ${customEnvVars.length} custom environment variable(s)`);\n }\n\n // Handle custom script execution\n let finalArgs: string[];\n if (script && script.trim() !== '') {\n console.info(`📜 Executing custom script: ${script}`);\n finalArgs = ['bash', '-c', script];\n } else {\n finalArgs = entrypoint === undefined ? [tool.name, ...args] : args;\n }\n\n // Build the Docker command with proper argument separation\n const dockerArgs = [\n 'run',\n ...(tool.privileged ? ['--privileged'] : []),\n '--rm',\n ...envArgs,\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relativePath}`,\n ...(publish ? ['-p', publish.trim()] : []),\n ...volumeArgs,\n ...(entrypoint ? ['--entrypoint', entrypoint] : []),\n imageURI,\n ...finalArgs,\n ];\n\n const output = await lockMany(\n volumes.flatMap((volume) =>\n volume.type === 'isolate' && volume.locked ? [volume.name] : [],\n ),\n () => $`docker ${dockerArgs}`.nothrow(),\n );\n saveAptosModulesOrder(command, output, workspaceRoot, relativePath);\n\n // Handle the process completion\n const { exitCode } = output;\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"]}
1
+ {"version":3,"sources":["../src/core/tool-executor.ts"],"names":["$","verbose","stdio","process","stderr","mergeVolumes","defaultVolumes","userVolumes","paths","Set","map","volume","containerPath","filter","has","ensureDockerImage","imageURI","output","nothrow","stdout","includes","split","console","info","error","Error","stringifyError","exitCode","AWS_REGION","AWS_ACCOUNT_ID","join","executeToolCommand","command","args","options","cwd","volumes","customEntrypoint","entrypoint","env","customEnvVars","script","publish","tool","findToolByName","type","getChainTypeForTool","undefined","tools","name","length","overrides","uv","some","dv","userSpecifiedVersions","extractUserVersions","versionResult","resolveTypeVersions","warning","warnings","warn","resolvedVersion","resolvedVersions","getSecondaryVersionCheckValue","secondaryVersion","resolvedVersionObj","version","versionsSatisfied","getImageURI","workspaceRoot","getFullyQualifiedRepoRootPath","relativePath","path","relative","volumeArgs","hostPath","components","shared","packageName","npm_package_name","push","basename","flatMap","trim","envArgs","envVar","value","flat","finalArgs","dockerArgs","privileged","lockMany","locked","saveAptosModulesOrder","exit","processOutput","relPath","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":"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","file":"GQAEO3WU.js","sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\nimport { $, type ProcessOutput } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION, tools } from '../config';\nimport type { EnvironmentVariable, Version, VolumeMapping } from '../types';\nimport { getImageURI } from '../utils/docker';\nimport { stringifyError } from '../utils/error';\nimport { findToolByName, getChainTypeForTool } from '../utils/finder';\nimport { versionsSatisfied } from '../utils/version';\nimport { lockMany } from './lock';\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 */\nconst mergeVolumes = (\n defaultVolumes: VolumeMapping[],\n userVolumes: VolumeMapping[],\n): VolumeMapping[] => {\n const paths = new Set(userVolumes.map((volume) => volume.containerPath));\n\n return [...userVolumes, ...defaultVolumes.filter((volume) => !paths.has(volume.containerPath))];\n};\n\nasync function ensureDockerImage(imageURI: string): Promise<void> {\n let output: ProcessOutput;\n\n try {\n // Check local images first.\n output = await $`docker image ls ${imageURI}`.nothrow();\n\n if (output.stdout.includes(imageURI.split(':')[1])) {\n console.info(`✅ Using cached Docker image: ${imageURI}`);\n return;\n }\n\n console.info('📥 Pulling Docker image from ECR:', imageURI);\n output = await $`docker pull ${imageURI}`.nothrow();\n } catch (error: unknown) {\n throw new Error(`Failed to pull Docker image ${imageURI}: ${stringifyError(error)}`);\n }\n\n if (output.exitCode) {\n throw new Error(\n [\n 'Docker image not available:',\n ` - ECR image: ${imageURI} (pull failed)`,\n '',\n '💡 Solutions:',\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | ` +\n `docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`,\n ' 2. Check if the image tag exists in ECR.',\n ].join('\\n'),\n );\n }\n\n console.info(`✅ Successfully pulled: ${imageURI}`);\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 volumes: VolumeMapping[];\n customEntrypoint?: string;\n env: EnvironmentVariable[];\n script?: string;\n [key: string]: unknown;\n publish?: string;\n },\n): Promise<void> {\n const {\n cwd,\n volumes: userVolumes,\n customEntrypoint: entrypoint,\n env: customEnvVars,\n script,\n publish,\n } = options;\n\n const tool = findToolByName(command);\n const type = getChainTypeForTool(command);\n\n if (type === undefined) {\n throw new Error(\n [\n `Tool '${command}' not found or no type configuration available.`,\n `Available tools: ${tools.map(({ name }) => name).join(', ')}`,\n `Try: lz-tool --list-versions to see all available tools`,\n ].join('\\n'),\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 for (const warning of versionResult.warnings) {\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('Could not validate secondary version:', stringifyError(error));\n }\n }\n\n // Use Docker image with merged volumes\n const imageURI = getImageURI(tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relativePath = path.relative(workspaceRoot, cwd);\n\n await ensureDockerImage(imageURI);\n\n const volumeArgs = volumes\n .map((volume) => {\n if (volume.type === 'host') {\n return `${volume.hostPath}:${volume.containerPath}`;\n }\n\n const components = ['lz-tooling-cache', volume.name];\n\n if (!volume.shared) {\n // This is the package name where the `lz-tool` command is executed.\n // eslint-disable-next-line turbo/no-undeclared-env-vars\n const packageName = process.env.npm_package_name;\n\n if (!packageName) {\n throw new Error('npm_package_name environment variable not defined');\n }\n\n components.push(path.basename(packageName));\n }\n\n return `${components.join('-')}:${volume.containerPath}`;\n })\n .flatMap((volume) => ['-v', volume]);\n\n if (entrypoint?.trim()) {\n console.info(`🔧 Using custom entrypoint: ${entrypoint}`);\n }\n\n // Build the Docker command with proper argument separation\n const envArgs = customEnvVars.map((envVar) => ['-e', `${envVar.name}=${envVar.value}`]).flat();\n\n if (customEnvVars.length > 0) {\n console.info(`🌍 Using ${customEnvVars.length} custom environment variable(s)`);\n }\n\n // Handle custom script execution\n let finalArgs: string[];\n if (script && script.trim() !== '') {\n console.info(`📜 Executing custom script: ${script}`);\n finalArgs = ['bash', '-c', script];\n } else {\n finalArgs = entrypoint === undefined ? [tool.name, ...args] : args;\n }\n\n // Build the Docker command with proper argument separation\n const dockerArgs = [\n 'run',\n ...(tool.privileged ? ['--privileged'] : []),\n '--rm',\n ...envArgs,\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relativePath}`,\n ...(publish ? ['-p', publish.trim()] : []),\n ...volumeArgs,\n ...(entrypoint ? ['--entrypoint', entrypoint] : []),\n imageURI,\n ...finalArgs,\n ];\n\n const output = await lockMany(\n volumes.flatMap((volume) =>\n volume.type === 'isolate' && volume.locked ? [volume.name] : [],\n ),\n () => $`docker ${dockerArgs}`.nothrow(),\n );\n saveAptosModulesOrder(command, output, workspaceRoot, relativePath);\n\n // Handle the process completion\n const { exitCode } = output;\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"]}
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var QYB5VPZE_cjs = require('./QYB5VPZE.cjs');
4
3
  var WHAPJZ3U_cjs = require('./WHAPJZ3U.cjs');
5
4
  var JLKKDVCL_cjs = require('./JLKKDVCL.cjs');
5
+ var QYB5VPZE_cjs = require('./QYB5VPZE.cjs');
6
6
  var U7VZULNU_cjs = require('./U7VZULNU.cjs');
7
7
  var process = require('process');
8
8
 
@@ -123,5 +123,5 @@ U7VZULNU_cjs.__name(resolveTypeVersions, "resolveTypeVersions");
123
123
  exports.extractUserVersions = extractUserVersions;
124
124
  exports.resolveToolVersion = resolveToolVersion;
125
125
  exports.resolveTypeVersions = resolveTypeVersions;
126
- //# sourceMappingURL=ZQZTKVYB.cjs.map
127
- //# sourceMappingURL=ZQZTKVYB.cjs.map
126
+ //# sourceMappingURL=L6RZSSWB.cjs.map
127
+ //# sourceMappingURL=L6RZSSWB.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/version-resolver.ts"],"names":["init_cjs_shims","extractUserVersions","options","userVersions","tool","tools","versionKey","name","versionValue","resolveToolVersion","toolName","userSpecifiedVersions","cwd","findToolByName","userVersion","envKey","toUpperCase","envVersion","process","env","parsedVersions","parseVersionFileContents","foundVersion","error","getToolDefaultVersion","resolveTypeVersions","type","typeTools","findToolsByType","length","Error","resolvedVersions","usedDefaultFor","warnings","version","push","supportedVersions","getToolSupportedVersions","includes","join","combinations","versionMatrices","matchedCombination","isCompatibleCombination","combo","matches","Object","entries","versions","every","compatibleCombo","findBestCompatibleCombination","adjusted","comboVersion","undefined","oldVersion","stableCombinations","filter","stable","map","combination","getCombinationId","description","console","info"],"mappings":"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","file":"ZQZTKVYB.cjs","sourcesContent":["import process from 'process';\n\nimport type { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport { tools, versionMatrices } from '../config';\nimport type { VersionCombination, VersionResolutionResult } from '../types';\nimport { getCombinationId, parseVersionFileContents } from '../utils';\nimport {\n findToolByName,\n findToolsByType,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder';\nimport { findBestCompatibleCombination } from './compatibility';\n\n/**\n * Extract user-specified versions from command line options\n */\nexport function extractUserVersions(options: { [key: string]: any }): { [key: string]: string } {\n const userVersions: { [key: string]: string } = {};\n\n // Extract versions from command line options\n for (const tool of tools) {\n const versionKey = `${tool.name}Version`;\n const versionValue = options[versionKey] as unknown;\n if (typeof versionValue === 'string' && versionValue !== '') {\n userVersions[tool.name] = versionValue;\n }\n }\n\n return userVersions;\n}\n\n/**\n * Resolve version for a single tool following priority order:\n * 1. Command line options\n * 2. Environment variables\n * 3. .versions file\n * 4. Default version\n */\nexport function resolveToolVersion(\n toolName: string,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): string | null {\n const tool = findToolByName(toolName);\n\n // 1. Check command line options (highest priority)\n const userVersion = userSpecifiedVersions[toolName];\n if (typeof userVersion === 'string' && userVersion !== '') {\n return userVersion;\n }\n\n // 2. Check environment variables\n const envKey = `${tool.name.toUpperCase()}_VERSION`;\n const envVersion = process.env[envKey];\n if (typeof envVersion === 'string' && envVersion !== '') {\n return envVersion;\n }\n\n // 3. Check .versions file\n try {\n const parsedVersions = parseVersionFileContents(cwd);\n const versionKey = `${tool.name}_version`.toUpperCase();\n const foundVersion = parsedVersions[versionKey];\n\n if (typeof foundVersion === 'string' && foundVersion !== '') {\n return foundVersion;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n // If .versions file doesn't exist or can't be parsed, continue to default\n }\n\n // 4. Use default version\n return getToolDefaultVersion(tool.name);\n}\n\n/**\n * Resolve versions for all tools in a type with compatibility checking\n */\nexport function resolveTypeVersions(\n type: ChainType,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): VersionResolutionResult {\n const typeTools = findToolsByType(type);\n\n if (!typeTools.length) {\n throw new Error(`Type ${type} not found or no tools available`);\n }\n\n // 1. Collect versions from all sources for each tool\n const resolvedVersions: { [key: string]: string } = {};\n const usedDefaultFor: string[] = [];\n const warnings: string[] = [];\n\n for (const tool of typeTools) {\n const version = resolveToolVersion(tool.name, userSpecifiedVersions, options, cwd);\n\n if (!version) {\n continue;\n }\n\n resolvedVersions[tool.name] = version;\n\n if (version === getToolDefaultVersion(tool.name)) {\n usedDefaultFor.push(tool.name);\n }\n\n // Validate user-specified version if not default\n if (version !== getToolDefaultVersion(tool.name)) {\n const supportedVersions = getToolSupportedVersions(tool.name);\n if (!supportedVersions.includes(version)) {\n warnings.push(\n `⚠️ Version ${version} for ${tool.name} is not in the supported list.\\n` +\n ` Supported versions: ${supportedVersions.join(', ')}\\n` +\n ` Continuing with Docker availability as final validation...`,\n );\n }\n }\n }\n\n // 2. Check if current combination matches any compatible combination\n const combinations = versionMatrices[type];\n let matchedCombination: VersionCombination | undefined;\n let isCompatibleCombination = false;\n\n for (const combo of combinations) {\n const matches = Object.entries(combo.versions).every(\n ([tool, version]) => resolvedVersions[tool] === version,\n );\n\n if (matches) {\n matchedCombination = combo;\n isCompatibleCombination = true;\n break;\n }\n }\n\n // 3. If not compatible and some tools used defaults, try to auto-adjust\n if (!isCompatibleCombination && usedDefaultFor.length > 0) {\n const compatibleCombo = findBestCompatibleCombination(resolvedVersions, combinations);\n\n if (compatibleCombo) {\n let adjusted = false;\n\n for (const toolName of usedDefaultFor) {\n const comboVersion = compatibleCombo.versions[toolName];\n if (comboVersion !== undefined && comboVersion !== resolvedVersions[toolName]) {\n const oldVersion = resolvedVersions[toolName];\n resolvedVersions[toolName] = comboVersion;\n warnings.push(\n `🔄 Auto-adjusted ${toolName}: ${oldVersion} → ${comboVersion} (for compatibility)`,\n );\n adjusted = true;\n }\n }\n\n if (adjusted) {\n matchedCombination = compatibleCombo;\n isCompatibleCombination = true;\n }\n }\n }\n\n // 4. Add compatibility warnings\n if (!isCompatibleCombination) {\n const stableCombinations = combinations\n .filter(({ stable }) => stable)\n .map((combination) => getCombinationId(combination))\n .join(', ');\n\n warnings.push(\n `⚠️ Custom version combination detected - not officially tested.\\n` +\n ` 💡 Stable combinations: ${stableCombinations}\\n` +\n ` 🔍 Use 'lz-tool --list-versions' to see all tested combinations.`,\n );\n } else if (matchedCombination?.description !== undefined) {\n console.info(\n `✅ ${matchedCombination.description} (${getCombinationId(matchedCombination)})`,\n );\n }\n\n return {\n resolvedVersions,\n isCompatibleCombination,\n usedDefaultFor,\n warnings,\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/core/version-resolver.ts"],"names":["init_cjs_shims","extractUserVersions","options","userVersions","tool","tools","versionKey","name","versionValue","resolveToolVersion","toolName","userSpecifiedVersions","cwd","findToolByName","userVersion","envKey","toUpperCase","envVersion","process","env","parsedVersions","parseVersionFileContents","foundVersion","error","getToolDefaultVersion","resolveTypeVersions","type","typeTools","findToolsByType","length","Error","resolvedVersions","usedDefaultFor","warnings","version","push","supportedVersions","getToolSupportedVersions","includes","join","combinations","versionMatrices","matchedCombination","isCompatibleCombination","combo","matches","Object","entries","versions","every","compatibleCombo","findBestCompatibleCombination","adjusted","comboVersion","undefined","oldVersion","stableCombinations","filter","stable","map","combination","getCombinationId","description","console","info"],"mappings":"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","file":"L6RZSSWB.cjs","sourcesContent":["import process from 'process';\n\nimport type { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport { tools, versionMatrices } from '../config';\nimport type { VersionCombination, VersionResolutionResult } from '../types';\nimport { getCombinationId, parseVersionFileContents } from '../utils';\nimport {\n findToolByName,\n findToolsByType,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder';\nimport { findBestCompatibleCombination } from './compatibility';\n\n/**\n * Extract user-specified versions from command line options\n */\nexport function extractUserVersions(options: { [key: string]: any }): { [key: string]: string } {\n const userVersions: { [key: string]: string } = {};\n\n // Extract versions from command line options\n for (const tool of tools) {\n const versionKey = `${tool.name}Version`;\n const versionValue = options[versionKey] as unknown;\n if (typeof versionValue === 'string' && versionValue !== '') {\n userVersions[tool.name] = versionValue;\n }\n }\n\n return userVersions;\n}\n\n/**\n * Resolve version for a single tool following priority order:\n * 1. Command line options\n * 2. Environment variables\n * 3. .versions file\n * 4. Default version\n */\nexport function resolveToolVersion(\n toolName: string,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): string | null {\n const tool = findToolByName(toolName);\n\n // 1. Check command line options (highest priority)\n const userVersion = userSpecifiedVersions[toolName];\n if (typeof userVersion === 'string' && userVersion !== '') {\n return userVersion;\n }\n\n // 2. Check environment variables\n const envKey = `${tool.name.toUpperCase()}_VERSION`;\n const envVersion = process.env[envKey];\n if (typeof envVersion === 'string' && envVersion !== '') {\n return envVersion;\n }\n\n // 3. Check .versions file\n try {\n const parsedVersions = parseVersionFileContents(cwd);\n const versionKey = `${tool.name}_version`.toUpperCase();\n const foundVersion = parsedVersions[versionKey];\n\n if (typeof foundVersion === 'string' && foundVersion !== '') {\n return foundVersion;\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (error) {\n // If .versions file doesn't exist or can't be parsed, continue to default\n }\n\n // 4. Use default version\n return getToolDefaultVersion(tool.name);\n}\n\n/**\n * Resolve versions for all tools in a type with compatibility checking\n */\nexport function resolveTypeVersions(\n type: ChainType,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): VersionResolutionResult {\n const typeTools = findToolsByType(type);\n\n if (!typeTools.length) {\n throw new Error(`Type ${type} not found or no tools available`);\n }\n\n // 1. Collect versions from all sources for each tool\n const resolvedVersions: { [key: string]: string } = {};\n const usedDefaultFor: string[] = [];\n const warnings: string[] = [];\n\n for (const tool of typeTools) {\n const version = resolveToolVersion(tool.name, userSpecifiedVersions, options, cwd);\n\n if (!version) {\n continue;\n }\n\n resolvedVersions[tool.name] = version;\n\n if (version === getToolDefaultVersion(tool.name)) {\n usedDefaultFor.push(tool.name);\n }\n\n // Validate user-specified version if not default\n if (version !== getToolDefaultVersion(tool.name)) {\n const supportedVersions = getToolSupportedVersions(tool.name);\n if (!supportedVersions.includes(version)) {\n warnings.push(\n `⚠️ Version ${version} for ${tool.name} is not in the supported list.\\n` +\n ` Supported versions: ${supportedVersions.join(', ')}\\n` +\n ` Continuing with Docker availability as final validation...`,\n );\n }\n }\n }\n\n // 2. Check if current combination matches any compatible combination\n const combinations = versionMatrices[type];\n let matchedCombination: VersionCombination | undefined;\n let isCompatibleCombination = false;\n\n for (const combo of combinations) {\n const matches = Object.entries(combo.versions).every(\n ([tool, version]) => resolvedVersions[tool] === version,\n );\n\n if (matches) {\n matchedCombination = combo;\n isCompatibleCombination = true;\n break;\n }\n }\n\n // 3. If not compatible and some tools used defaults, try to auto-adjust\n if (!isCompatibleCombination && usedDefaultFor.length > 0) {\n const compatibleCombo = findBestCompatibleCombination(resolvedVersions, combinations);\n\n if (compatibleCombo) {\n let adjusted = false;\n\n for (const toolName of usedDefaultFor) {\n const comboVersion = compatibleCombo.versions[toolName];\n if (comboVersion !== undefined && comboVersion !== resolvedVersions[toolName]) {\n const oldVersion = resolvedVersions[toolName];\n resolvedVersions[toolName] = comboVersion;\n warnings.push(\n `🔄 Auto-adjusted ${toolName}: ${oldVersion} → ${comboVersion} (for compatibility)`,\n );\n adjusted = true;\n }\n }\n\n if (adjusted) {\n matchedCombination = compatibleCombo;\n isCompatibleCombination = true;\n }\n }\n }\n\n // 4. Add compatibility warnings\n if (!isCompatibleCombination) {\n const stableCombinations = combinations\n .filter(({ stable }) => stable)\n .map((combination) => getCombinationId(combination))\n .join(', ');\n\n warnings.push(\n `⚠️ Custom version combination detected - not officially tested.\\n` +\n ` 💡 Stable combinations: ${stableCombinations}\\n` +\n ` 🔍 Use 'lz-tool --list-versions' to see all tested combinations.`,\n );\n } else if (matchedCombination?.description !== undefined) {\n console.info(\n `✅ ${matchedCombination.description} (${getCombinationId(matchedCombination)})`,\n );\n }\n\n return {\n resolvedVersions,\n isCompatibleCombination,\n usedDefaultFor,\n warnings,\n };\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var YNMZEV5X_cjs = require('./YNMZEV5X.cjs');
4
- var TQMUPD75_cjs = require('./TQMUPD75.cjs');
5
- var ZQZTKVYB_cjs = require('./ZQZTKVYB.cjs');
4
+ var L6RZSSWB_cjs = require('./L6RZSSWB.cjs');
6
5
  var WHAPJZ3U_cjs = require('./WHAPJZ3U.cjs');
6
+ var TQMUPD75_cjs = require('./TQMUPD75.cjs');
7
7
  var U7VZULNU_cjs = require('./U7VZULNU.cjs');
8
8
  var fs = require('fs');
9
9
  var path = require('path');
@@ -80,8 +80,8 @@ async function executeToolCommand(command, args, options) {
80
80
  }
81
81
  }
82
82
  }
83
- const userSpecifiedVersions = ZQZTKVYB_cjs.extractUserVersions(options);
84
- const versionResult = ZQZTKVYB_cjs.resolveTypeVersions(type, userSpecifiedVersions, options, cwd);
83
+ const userSpecifiedVersions = L6RZSSWB_cjs.extractUserVersions(options);
84
+ const versionResult = L6RZSSWB_cjs.resolveTypeVersions(type, userSpecifiedVersions, options, cwd);
85
85
  for (const warning of versionResult.warnings) {
86
86
  console.warn(warning);
87
87
  }
@@ -196,5 +196,5 @@ function saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath) {
196
196
  U7VZULNU_cjs.__name(saveAptosModulesOrder, "saveAptosModulesOrder");
197
197
 
198
198
  exports.executeToolCommand = executeToolCommand;
199
- //# sourceMappingURL=IVSX4QVP.cjs.map
200
- //# sourceMappingURL=IVSX4QVP.cjs.map
199
+ //# sourceMappingURL=S5DRZSZW.cjs.map
200
+ //# sourceMappingURL=S5DRZSZW.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/tool-executor.ts"],"names":["init_cjs_shims","$","verbose","stdio","process","stderr","mergeVolumes","__name","defaultVolumes","userVolumes","paths","Set","map","volume","containerPath","filter","has","ensureDockerImage","imageURI","output","nothrow","stdout","includes","split","console","info","error","Error","stringifyError","exitCode","AWS_REGION","AWS_ACCOUNT_ID","join","executeToolCommand","command","args","options","cwd","volumes","customEntrypoint","entrypoint","env","customEnvVars","script","publish","tool","findToolByName","type","getChainTypeForTool","undefined","tools","name","length","overrides","uv","some","dv","userSpecifiedVersions","extractUserVersions","versionResult","resolveTypeVersions","warning","warnings","warn","resolvedVersion","resolvedVersions","getSecondaryVersionCheckValue","secondaryVersion","resolvedVersionObj","version","versionsSatisfied","getImageURI","workspaceRoot","getFullyQualifiedRepoRootPath","relativePath","path","relative","volumeArgs","hostPath","components","shared","packageName","npm_package_name","push","basename","flatMap","trim","envArgs","envVar","value","flat","finalArgs","dockerArgs","privileged","lockMany","locked","saveAptosModulesOrder","exit","processOutput","relPath","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":"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","file":"IVSX4QVP.cjs","sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\nimport { $, type ProcessOutput } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION, tools } from '../config';\nimport type { EnvironmentVariable, Version, VolumeMapping } from '../types';\nimport { getImageURI } from '../utils/docker';\nimport { stringifyError } from '../utils/error';\nimport { findToolByName, getChainTypeForTool } from '../utils/finder';\nimport { versionsSatisfied } from '../utils/version';\nimport { lockMany } from './lock';\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 */\nconst mergeVolumes = (\n defaultVolumes: VolumeMapping[],\n userVolumes: VolumeMapping[],\n): VolumeMapping[] => {\n const paths = new Set(userVolumes.map((volume) => volume.containerPath));\n\n return [...userVolumes, ...defaultVolumes.filter((volume) => !paths.has(volume.containerPath))];\n};\n\nasync function ensureDockerImage(imageURI: string): Promise<void> {\n let output: ProcessOutput;\n\n try {\n // Check local images first.\n output = await $`docker image ls ${imageURI}`.nothrow();\n\n if (output.stdout.includes(imageURI.split(':')[1])) {\n console.info(`✅ Using cached Docker image: ${imageURI}`);\n return;\n }\n\n console.info('📥 Pulling Docker image from ECR:', imageURI);\n output = await $`docker pull ${imageURI}`.nothrow();\n } catch (error: unknown) {\n throw new Error(`Failed to pull Docker image ${imageURI}: ${stringifyError(error)}`);\n }\n\n if (output.exitCode) {\n throw new Error(\n [\n 'Docker image not available:',\n ` - ECR image: ${imageURI} (pull failed)`,\n '',\n '💡 Solutions:',\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | ` +\n `docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`,\n ' 2. Check if the image tag exists in ECR.',\n ].join('\\n'),\n );\n }\n\n console.info(`✅ Successfully pulled: ${imageURI}`);\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 volumes: VolumeMapping[];\n customEntrypoint?: string;\n env: EnvironmentVariable[];\n script?: string;\n [key: string]: unknown;\n publish?: string;\n },\n): Promise<void> {\n const {\n cwd,\n volumes: userVolumes,\n customEntrypoint: entrypoint,\n env: customEnvVars,\n script,\n publish,\n } = options;\n\n const tool = findToolByName(command);\n const type = getChainTypeForTool(command);\n\n if (type === undefined) {\n throw new Error(\n [\n `Tool '${command}' not found or no type configuration available.`,\n `Available tools: ${tools.map(({ name }) => name).join(', ')}`,\n `Try: lz-tool --list-versions to see all available tools`,\n ].join('\\n'),\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 for (const warning of versionResult.warnings) {\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('Could not validate secondary version:', stringifyError(error));\n }\n }\n\n // Use Docker image with merged volumes\n const imageURI = getImageURI(tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relativePath = path.relative(workspaceRoot, cwd);\n\n await ensureDockerImage(imageURI);\n\n const volumeArgs = volumes\n .map((volume) => {\n if (volume.type === 'host') {\n return `${volume.hostPath}:${volume.containerPath}`;\n }\n\n const components = ['lz-tooling-cache', volume.name];\n\n if (!volume.shared) {\n // This is the package name where the `lz-tool` command is executed.\n // eslint-disable-next-line turbo/no-undeclared-env-vars\n const packageName = process.env.npm_package_name;\n\n if (!packageName) {\n throw new Error('npm_package_name environment variable not defined');\n }\n\n components.push(path.basename(packageName));\n }\n\n return `${components.join('-')}:${volume.containerPath}`;\n })\n .flatMap((volume) => ['-v', volume]);\n\n if (entrypoint?.trim()) {\n console.info(`🔧 Using custom entrypoint: ${entrypoint}`);\n }\n\n // Build the Docker command with proper argument separation\n const envArgs = customEnvVars.map((envVar) => ['-e', `${envVar.name}=${envVar.value}`]).flat();\n\n if (customEnvVars.length > 0) {\n console.info(`🌍 Using ${customEnvVars.length} custom environment variable(s)`);\n }\n\n // Handle custom script execution\n let finalArgs: string[];\n if (script && script.trim() !== '') {\n console.info(`📜 Executing custom script: ${script}`);\n finalArgs = ['bash', '-c', script];\n } else {\n finalArgs = entrypoint === undefined ? [tool.name, ...args] : args;\n }\n\n // Build the Docker command with proper argument separation\n const dockerArgs = [\n 'run',\n ...(tool.privileged ? ['--privileged'] : []),\n '--rm',\n ...envArgs,\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relativePath}`,\n ...(publish ? ['-p', publish.trim()] : []),\n ...volumeArgs,\n ...(entrypoint ? ['--entrypoint', entrypoint] : []),\n imageURI,\n ...finalArgs,\n ];\n\n const output = await lockMany(\n volumes.flatMap((volume) =>\n volume.type === 'isolate' && volume.locked ? [volume.name] : [],\n ),\n () => $`docker ${dockerArgs}`.nothrow(),\n );\n saveAptosModulesOrder(command, output, workspaceRoot, relativePath);\n\n // Handle the process completion\n const { exitCode } = output;\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"]}
1
+ {"version":3,"sources":["../src/core/tool-executor.ts"],"names":["init_cjs_shims","$","verbose","stdio","process","stderr","mergeVolumes","__name","defaultVolumes","userVolumes","paths","Set","map","volume","containerPath","filter","has","ensureDockerImage","imageURI","output","nothrow","stdout","includes","split","console","info","error","Error","stringifyError","exitCode","AWS_REGION","AWS_ACCOUNT_ID","join","executeToolCommand","command","args","options","cwd","volumes","customEntrypoint","entrypoint","env","customEnvVars","script","publish","tool","findToolByName","type","getChainTypeForTool","undefined","tools","name","length","overrides","uv","some","dv","userSpecifiedVersions","extractUserVersions","versionResult","resolveTypeVersions","warning","warnings","warn","resolvedVersion","resolvedVersions","getSecondaryVersionCheckValue","secondaryVersion","resolvedVersionObj","version","versionsSatisfied","getImageURI","workspaceRoot","getFullyQualifiedRepoRootPath","relativePath","path","relative","volumeArgs","hostPath","components","shared","packageName","npm_package_name","push","basename","flatMap","trim","envArgs","envVar","value","flat","finalArgs","dockerArgs","privileged","lockMany","locked","saveAptosModulesOrder","exit","processOutput","relPath","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":"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","file":"S5DRZSZW.cjs","sourcesContent":["import fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\nimport { $, type ProcessOutput } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION, tools } from '../config';\nimport type { EnvironmentVariable, Version, VolumeMapping } from '../types';\nimport { getImageURI } from '../utils/docker';\nimport { stringifyError } from '../utils/error';\nimport { findToolByName, getChainTypeForTool } from '../utils/finder';\nimport { versionsSatisfied } from '../utils/version';\nimport { lockMany } from './lock';\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 */\nconst mergeVolumes = (\n defaultVolumes: VolumeMapping[],\n userVolumes: VolumeMapping[],\n): VolumeMapping[] => {\n const paths = new Set(userVolumes.map((volume) => volume.containerPath));\n\n return [...userVolumes, ...defaultVolumes.filter((volume) => !paths.has(volume.containerPath))];\n};\n\nasync function ensureDockerImage(imageURI: string): Promise<void> {\n let output: ProcessOutput;\n\n try {\n // Check local images first.\n output = await $`docker image ls ${imageURI}`.nothrow();\n\n if (output.stdout.includes(imageURI.split(':')[1])) {\n console.info(`✅ Using cached Docker image: ${imageURI}`);\n return;\n }\n\n console.info('📥 Pulling Docker image from ECR:', imageURI);\n output = await $`docker pull ${imageURI}`.nothrow();\n } catch (error: unknown) {\n throw new Error(`Failed to pull Docker image ${imageURI}: ${stringifyError(error)}`);\n }\n\n if (output.exitCode) {\n throw new Error(\n [\n 'Docker image not available:',\n ` - ECR image: ${imageURI} (pull failed)`,\n '',\n '💡 Solutions:',\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | ` +\n `docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`,\n ' 2. Check if the image tag exists in ECR.',\n ].join('\\n'),\n );\n }\n\n console.info(`✅ Successfully pulled: ${imageURI}`);\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 volumes: VolumeMapping[];\n customEntrypoint?: string;\n env: EnvironmentVariable[];\n script?: string;\n [key: string]: unknown;\n publish?: string;\n },\n): Promise<void> {\n const {\n cwd,\n volumes: userVolumes,\n customEntrypoint: entrypoint,\n env: customEnvVars,\n script,\n publish,\n } = options;\n\n const tool = findToolByName(command);\n const type = getChainTypeForTool(command);\n\n if (type === undefined) {\n throw new Error(\n [\n `Tool '${command}' not found or no type configuration available.`,\n `Available tools: ${tools.map(({ name }) => name).join(', ')}`,\n `Try: lz-tool --list-versions to see all available tools`,\n ].join('\\n'),\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 for (const warning of versionResult.warnings) {\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('Could not validate secondary version:', stringifyError(error));\n }\n }\n\n // Use Docker image with merged volumes\n const imageURI = getImageURI(tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relativePath = path.relative(workspaceRoot, cwd);\n\n await ensureDockerImage(imageURI);\n\n const volumeArgs = volumes\n .map((volume) => {\n if (volume.type === 'host') {\n return `${volume.hostPath}:${volume.containerPath}`;\n }\n\n const components = ['lz-tooling-cache', volume.name];\n\n if (!volume.shared) {\n // This is the package name where the `lz-tool` command is executed.\n // eslint-disable-next-line turbo/no-undeclared-env-vars\n const packageName = process.env.npm_package_name;\n\n if (!packageName) {\n throw new Error('npm_package_name environment variable not defined');\n }\n\n components.push(path.basename(packageName));\n }\n\n return `${components.join('-')}:${volume.containerPath}`;\n })\n .flatMap((volume) => ['-v', volume]);\n\n if (entrypoint?.trim()) {\n console.info(`🔧 Using custom entrypoint: ${entrypoint}`);\n }\n\n // Build the Docker command with proper argument separation\n const envArgs = customEnvVars.map((envVar) => ['-e', `${envVar.name}=${envVar.value}`]).flat();\n\n if (customEnvVars.length > 0) {\n console.info(`🌍 Using ${customEnvVars.length} custom environment variable(s)`);\n }\n\n // Handle custom script execution\n let finalArgs: string[];\n if (script && script.trim() !== '') {\n console.info(`📜 Executing custom script: ${script}`);\n finalArgs = ['bash', '-c', script];\n } else {\n finalArgs = entrypoint === undefined ? [tool.name, ...args] : args;\n }\n\n // Build the Docker command with proper argument separation\n const dockerArgs = [\n 'run',\n ...(tool.privileged ? ['--privileged'] : []),\n '--rm',\n ...envArgs,\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relativePath}`,\n ...(publish ? ['-p', publish.trim()] : []),\n ...volumeArgs,\n ...(entrypoint ? ['--entrypoint', entrypoint] : []),\n imageURI,\n ...finalArgs,\n ];\n\n const output = await lockMany(\n volumes.flatMap((volume) =>\n volume.type === 'isolate' && volume.locked ? [volume.name] : [],\n ),\n () => $`docker ${dockerArgs}`.nothrow(),\n );\n saveAptosModulesOrder(command, output, workspaceRoot, relativePath);\n\n // Handle the process completion\n const { exitCode } = output;\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"]}
@@ -1,32 +1,32 @@
1
1
  'use strict';
2
2
 
3
3
  require('../GSHFVQRI.cjs');
4
- var IVSX4QVP_cjs = require('../IVSX4QVP.cjs');
4
+ var S5DRZSZW_cjs = require('../S5DRZSZW.cjs');
5
5
  require('../YNMZEV5X.cjs');
6
- require('../TQMUPD75.cjs');
7
- var ZQZTKVYB_cjs = require('../ZQZTKVYB.cjs');
8
- var QYB5VPZE_cjs = require('../QYB5VPZE.cjs');
6
+ var L6RZSSWB_cjs = require('../L6RZSSWB.cjs');
9
7
  require('../WHAPJZ3U.cjs');
10
8
  require('../JLKKDVCL.cjs');
9
+ var QYB5VPZE_cjs = require('../QYB5VPZE.cjs');
10
+ require('../TQMUPD75.cjs');
11
11
  require('../U7VZULNU.cjs');
12
12
 
13
13
 
14
14
 
15
15
  Object.defineProperty(exports, "executeToolCommand", {
16
16
  enumerable: true,
17
- get: function () { return IVSX4QVP_cjs.executeToolCommand; }
17
+ get: function () { return S5DRZSZW_cjs.executeToolCommand; }
18
18
  });
19
19
  Object.defineProperty(exports, "extractUserVersions", {
20
20
  enumerable: true,
21
- get: function () { return ZQZTKVYB_cjs.extractUserVersions; }
21
+ get: function () { return L6RZSSWB_cjs.extractUserVersions; }
22
22
  });
23
23
  Object.defineProperty(exports, "resolveToolVersion", {
24
24
  enumerable: true,
25
- get: function () { return ZQZTKVYB_cjs.resolveToolVersion; }
25
+ get: function () { return L6RZSSWB_cjs.resolveToolVersion; }
26
26
  });
27
27
  Object.defineProperty(exports, "resolveTypeVersions", {
28
28
  enumerable: true,
29
- get: function () { return ZQZTKVYB_cjs.resolveTypeVersions; }
29
+ get: function () { return L6RZSSWB_cjs.resolveTypeVersions; }
30
30
  });
31
31
  Object.defineProperty(exports, "findBestCompatibleCombination", {
32
32
  enumerable: true,
@@ -1,11 +1,11 @@
1
1
  import '../OAO7CCJW.js';
2
- export { executeToolCommand } from '../ARTA3TG2.js';
2
+ export { executeToolCommand } from '../GQAEO3WU.js';
3
3
  import '../IWNVWC3I.js';
4
- import '../3PEVFTZ5.js';
5
- export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../QBFQWBQ4.js';
6
- export { findBestCompatibleCombination } from '../PWDCAN6N.js';
4
+ export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../5JYEGDVK.js';
7
5
  import '../CJNBA2MN.js';
8
6
  import '../NX66I36H.js';
7
+ export { findBestCompatibleCombination } from '../PWDCAN6N.js';
8
+ import '../3PEVFTZ5.js';
9
9
  import '../4RNWLMHM.js';
10
10
  //# sourceMappingURL=index.js.map
11
11
  //# sourceMappingURL=index.js.map
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
- var IVSX4QVP_cjs = require('../IVSX4QVP.cjs');
3
+ var S5DRZSZW_cjs = require('../S5DRZSZW.cjs');
4
4
  require('../YNMZEV5X.cjs');
5
- require('../TQMUPD75.cjs');
6
- require('../ZQZTKVYB.cjs');
7
- require('../QYB5VPZE.cjs');
5
+ require('../L6RZSSWB.cjs');
8
6
  require('../WHAPJZ3U.cjs');
9
7
  require('../JLKKDVCL.cjs');
8
+ require('../QYB5VPZE.cjs');
9
+ require('../TQMUPD75.cjs');
10
10
  require('../U7VZULNU.cjs');
11
11
 
12
12
 
13
13
 
14
14
  Object.defineProperty(exports, "executeToolCommand", {
15
15
  enumerable: true,
16
- get: function () { return IVSX4QVP_cjs.executeToolCommand; }
16
+ get: function () { return S5DRZSZW_cjs.executeToolCommand; }
17
17
  });
18
18
  //# sourceMappingURL=tool-executor.cjs.map
19
19
  //# sourceMappingURL=tool-executor.cjs.map
@@ -1,10 +1,10 @@
1
- export { executeToolCommand } from '../ARTA3TG2.js';
1
+ export { executeToolCommand } from '../GQAEO3WU.js';
2
2
  import '../IWNVWC3I.js';
3
- import '../3PEVFTZ5.js';
4
- import '../QBFQWBQ4.js';
5
- import '../PWDCAN6N.js';
3
+ import '../5JYEGDVK.js';
6
4
  import '../CJNBA2MN.js';
7
5
  import '../NX66I36H.js';
6
+ import '../PWDCAN6N.js';
7
+ import '../3PEVFTZ5.js';
8
8
  import '../4RNWLMHM.js';
9
9
  //# sourceMappingURL=tool-executor.js.map
10
10
  //# sourceMappingURL=tool-executor.js.map
@@ -1,24 +1,24 @@
1
1
  'use strict';
2
2
 
3
- var ZQZTKVYB_cjs = require('../ZQZTKVYB.cjs');
4
- require('../QYB5VPZE.cjs');
3
+ var L6RZSSWB_cjs = require('../L6RZSSWB.cjs');
5
4
  require('../WHAPJZ3U.cjs');
6
5
  require('../JLKKDVCL.cjs');
6
+ require('../QYB5VPZE.cjs');
7
7
  require('../U7VZULNU.cjs');
8
8
 
9
9
 
10
10
 
11
11
  Object.defineProperty(exports, "extractUserVersions", {
12
12
  enumerable: true,
13
- get: function () { return ZQZTKVYB_cjs.extractUserVersions; }
13
+ get: function () { return L6RZSSWB_cjs.extractUserVersions; }
14
14
  });
15
15
  Object.defineProperty(exports, "resolveToolVersion", {
16
16
  enumerable: true,
17
- get: function () { return ZQZTKVYB_cjs.resolveToolVersion; }
17
+ get: function () { return L6RZSSWB_cjs.resolveToolVersion; }
18
18
  });
19
19
  Object.defineProperty(exports, "resolveTypeVersions", {
20
20
  enumerable: true,
21
- get: function () { return ZQZTKVYB_cjs.resolveTypeVersions; }
21
+ get: function () { return L6RZSSWB_cjs.resolveTypeVersions; }
22
22
  });
23
23
  //# sourceMappingURL=version-resolver.cjs.map
24
24
  //# sourceMappingURL=version-resolver.cjs.map
@@ -1,7 +1,7 @@
1
- export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../QBFQWBQ4.js';
2
- import '../PWDCAN6N.js';
1
+ export { extractUserVersions, resolveToolVersion, resolveTypeVersions } from '../5JYEGDVK.js';
3
2
  import '../CJNBA2MN.js';
4
3
  import '../NX66I36H.js';
4
+ import '../PWDCAN6N.js';
5
5
  import '../4RNWLMHM.js';
6
6
  //# sourceMappingURL=version-resolver.js.map
7
7
  //# sourceMappingURL=version-resolver.js.map
package/dist/index.cjs CHANGED
@@ -2,17 +2,17 @@
2
2
 
3
3
  require('./FKPK53TD.cjs');
4
4
  var DPCW4JIV_cjs = require('./DPCW4JIV.cjs');
5
- require('./GSHFVQRI.cjs');
6
- var IVSX4QVP_cjs = require('./IVSX4QVP.cjs');
7
- var YNMZEV5X_cjs = require('./YNMZEV5X.cjs');
8
- require('./TQMUPD75.cjs');
9
- require('./ZQZTKVYB.cjs');
10
- require('./QYB5VPZE.cjs');
11
5
  require('./CYUSPBTH.cjs');
12
6
  var KONCDJAL_cjs = require('./KONCDJAL.cjs');
13
7
  require('./FI3AZBYE.cjs');
8
+ require('./GSHFVQRI.cjs');
9
+ var S5DRZSZW_cjs = require('./S5DRZSZW.cjs');
10
+ var YNMZEV5X_cjs = require('./YNMZEV5X.cjs');
11
+ require('./L6RZSSWB.cjs');
14
12
  var WHAPJZ3U_cjs = require('./WHAPJZ3U.cjs');
15
13
  require('./JLKKDVCL.cjs');
14
+ require('./QYB5VPZE.cjs');
15
+ require('./TQMUPD75.cjs');
16
16
  var U7VZULNU_cjs = require('./U7VZULNU.cjs');
17
17
  var commander = require('commander');
18
18
  var fs = require('fs');
@@ -92,7 +92,7 @@ async function run() {
92
92
  isDefault: false
93
93
  }).description(`Run ${tool.name} with version checking`).passThroughOptions(true).allowUnknownOption().helpOption(false).argument("[args...]", "Arguments to pass to the tool").action(async (args) => {
94
94
  const globalOptions = program.opts();
95
- await IVSX4QVP_cjs.executeToolCommand(tool.name, args, {
95
+ await S5DRZSZW_cjs.executeToolCommand(tool.name, args, {
96
96
  cwd: globalOptions.cwd ?? process__default.default.cwd(),
97
97
  volumes: globalOptions.volume,
98
98
  ...globalOptions
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  import './M4PGJV5D.js';
2
2
  import { buildTypescriptSdk } from './MMIV5S36.js';
3
- import './OAO7CCJW.js';
4
- import { executeToolCommand } from './ARTA3TG2.js';
5
- import { stringifyError } from './IWNVWC3I.js';
6
- import './3PEVFTZ5.js';
7
- import './QBFQWBQ4.js';
8
- import './PWDCAN6N.js';
9
3
  import './7BFNUKIW.js';
10
4
  import { displayVersionCombinations, displayToolVersionInfo } from './45K4IRAA.js';
11
5
  import './UHPHZ6AE.js';
6
+ import './OAO7CCJW.js';
7
+ import { executeToolCommand } from './GQAEO3WU.js';
8
+ import { stringifyError } from './IWNVWC3I.js';
9
+ import './5JYEGDVK.js';
12
10
  import { tools, getToolDefaultVersion, getToolSupportedVersions } from './CJNBA2MN.js';
13
11
  import './NX66I36H.js';
12
+ import './PWDCAN6N.js';
13
+ import './3PEVFTZ5.js';
14
14
  import { init_esm_shims, __name } from './4RNWLMHM.js';
15
15
  import { Command } from 'commander';
16
16
  import fs from 'node:fs';
package/package.json CHANGED
@@ -26,8 +26,8 @@
26
26
  "semver": "^7.5.4",
27
27
  "zod": "3.25.56",
28
28
  "zx": "^8.1.3",
29
- "@layerzerolabs/common-node-utils": "0.0.61",
30
- "@layerzerolabs/layerzero-definitions": "0.0.61"
29
+ "@layerzerolabs/common-node-utils": "0.0.62",
30
+ "@layerzerolabs/layerzero-definitions": "0.0.62"
31
31
  },
32
32
  "devDependencies": {
33
33
  "@aws-sdk/client-ecr": "3.879.0",
@@ -40,14 +40,14 @@
40
40
  "tsx": "^4.19.3",
41
41
  "typescript": "^5.8.2",
42
42
  "vitest": "^3.2.3",
43
- "@layerzerolabs/typescript-configuration": "0.0.61",
44
- "@layerzerolabs/tsup-configuration": "0.0.61"
43
+ "@layerzerolabs/tsup-configuration": "0.0.62",
44
+ "@layerzerolabs/typescript-configuration": "0.0.62"
45
45
  },
46
46
  "publishConfig": {
47
47
  "access": "restricted",
48
48
  "registry": "https://registry.npmjs.org/"
49
49
  },
50
- "version": "0.0.61",
50
+ "version": "0.0.62",
51
51
  "scripts": {
52
52
  "prebuild": "chmod +x bin/lz-tool.js",
53
53
  "build": "tsup",