@layerzerolabs/vm-tooling 0.0.45 → 0.0.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/{377FOBYP.cjs → 6FHMI4HI.cjs} +5 -5
  2. package/dist/{377FOBYP.cjs.map → 6FHMI4HI.cjs.map} +1 -1
  3. package/dist/{Z3UDKF22.cjs → 7PDYKZMF.cjs} +11 -11
  4. package/dist/{Z3UDKF22.cjs.map → 7PDYKZMF.cjs.map} +1 -1
  5. package/dist/{POABMLRA.js → DXKVHPTB.js} +4 -4
  6. package/dist/{POABMLRA.js.map → DXKVHPTB.js.map} +1 -1
  7. package/dist/{27HYHTXW.js → FYBVGT35.js} +3 -3
  8. package/dist/{27HYHTXW.js.map → FYBVGT35.js.map} +1 -1
  9. package/dist/{BVCDSSHB.cjs → IU7G43CF.cjs} +9 -4
  10. package/dist/IU7G43CF.cjs.map +1 -0
  11. package/dist/{3772Y3PC.js → OESMGGGL.js} +5 -5
  12. package/dist/{3772Y3PC.js.map → OESMGGGL.js.map} +1 -1
  13. package/dist/{UCOWJND6.cjs → RVM7QRW3.cjs} +13 -13
  14. package/dist/{UCOWJND6.cjs.map → RVM7QRW3.cjs.map} +1 -1
  15. package/dist/{42O3V7X5.js → S3DLREDC.js} +4 -4
  16. package/dist/{42O3V7X5.js.map → S3DLREDC.js.map} +1 -1
  17. package/dist/{BZPGQCXP.cjs → WDWUP4NU.cjs} +14 -14
  18. package/dist/{BZPGQCXP.cjs.map → WDWUP4NU.cjs.map} +1 -1
  19. package/dist/{ODR3PEGR.js → XJWXQV6E.js} +8 -3
  20. package/dist/XJWXQV6E.js.map +1 -0
  21. package/dist/config/index.cjs +6 -6
  22. package/dist/config/index.js +2 -2
  23. package/dist/config/tools.cjs +3 -3
  24. package/dist/config/tools.d.ts.map +1 -1
  25. package/dist/config/tools.js +2 -2
  26. package/dist/config/version-matrices.cjs +2 -2
  27. package/dist/config/version-matrices.js +1 -1
  28. package/dist/core/index.cjs +8 -8
  29. package/dist/core/index.js +4 -4
  30. package/dist/core/tool-executor.cjs +5 -5
  31. package/dist/core/tool-executor.js +4 -4
  32. package/dist/core/version-resolver.cjs +6 -6
  33. package/dist/core/version-resolver.js +3 -3
  34. package/dist/display/index.cjs +5 -5
  35. package/dist/display/index.js +3 -3
  36. package/dist/display/version-display.cjs +5 -5
  37. package/dist/display/version-display.js +3 -3
  38. package/dist/index.cjs +17 -28
  39. package/dist/index.cjs.map +1 -1
  40. package/dist/index.js +10 -21
  41. package/dist/index.js.map +1 -1
  42. package/dist/scripts/generate-github-matrix.cjs +2 -2
  43. package/dist/scripts/generate-github-matrix.js +1 -1
  44. package/dist/utils/finder-utils.cjs +9 -9
  45. package/dist/utils/finder-utils.js +2 -2
  46. package/dist/utils/index.cjs +13 -13
  47. package/dist/utils/index.js +2 -2
  48. package/dist/utils/version-utils.cjs +6 -6
  49. package/dist/utils/version-utils.js +2 -2
  50. package/package.json +4 -4
  51. package/dist/BVCDSSHB.cjs.map +0 -1
  52. package/dist/ODR3PEGR.js.map +0 -1
@@ -20,11 +20,11 @@ var versionMatrices = [
20
20
  isRecommended: true
21
21
  },
22
22
  {
23
- id: "forge_1.3.6_hardhat_2.26.3_dockerfile_1.0.0",
23
+ id: "forge_1.3.6_hardhat_2.26.3_dockerfile_1.1.1",
24
24
  versions: {
25
25
  forge: "1.3.6",
26
26
  hardhat: "2.26.3",
27
- dockerfile: "1.0.0"
27
+ dockerfile: "1.1.1"
28
28
  }
29
29
  }
30
30
  ]
@@ -102,7 +102,7 @@ var versionMatrices = [
102
102
  id: "scarb_2.12.0",
103
103
  versions: {
104
104
  scarb: "2.12.0",
105
- patch: "2"
105
+ patch: "3"
106
106
  }
107
107
  }
108
108
  ]
@@ -122,5 +122,5 @@ var versionMatrices = [
122
122
  ];
123
123
 
124
124
  exports.versionMatrices = versionMatrices;
125
- //# sourceMappingURL=377FOBYP.cjs.map
126
- //# sourceMappingURL=377FOBYP.cjs.map
125
+ //# sourceMappingURL=6FHMI4HI.cjs.map
126
+ //# sourceMappingURL=6FHMI4HI.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config/version-matrices.ts"],"names":["versionMatrices","toolType","combinations","id","versions","hardhat","forge","isRecommended","dockerfile","solana","anchor","description","aptos","initiad","blueprint","scarb","patch","sui"],"mappings":";;;AAMO,IAAMA,eAAAA,GAAuC;AAChD,EAAA;IACIC,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,gBAAA;QACJC,QAAAA,EAAU;UAAEC,OAAAA,EAAS;AAAS;AAClC,OAAA;AACA,MAAA;QACIF,EAAAA,EAAI,4BAAA;QACJC,QAAAA,EAAU;UAAEE,KAAAA,EAAO,OAAA;UAASD,OAAAA,EAAS;AAAS,SAAA;QAC9CE,aAAAA,EAAe;AACnB,OAAA;AACA,MAAA;QACIJ,EAAAA,EAAI,6CAAA;QACJC,QAAAA,EAAU;UAAEE,KAAAA,EAAO,OAAA;UAASD,OAAAA,EAAS,QAAA;UAAUG,UAAAA,EAAY;AAAQ;AACvE;;AAER,GAAA;AACA,EAAA;IACIP,QAAAA,EAAU,QAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,8BAAA;QACJC,QAAAA,EAAU;UAAEK,MAAAA,EAAQ,SAAA;UAAWC,MAAAA,EAAQ;AAAS,SAAA;QAChDH,aAAAA,EAAe,IAAA;QACfI,WAAAA,EAAa;AACjB,OAAA;AACA,MAAA;QACIR,EAAAA,EAAI,6BAAA;QACJC,QAAAA,EAAU;UAAEK,MAAAA,EAAQ,QAAA;UAAUC,MAAAA,EAAQ;AAAS,SAAA;QAC/CC,WAAAA,EAAa;AACjB;;AAER,GAAA;AACA,EAAA;IACIV,QAAAA,EAAU,OAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,aAAA;QACJC,QAAAA,EAAU;UAAEQ,KAAAA,EAAO;AAAQ,SAAA;QAC3BL,aAAAA,EAAe;AACnB;;AAOR,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,QAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAES,OAAAA,EAAS;AAAQ,SAAA;QAC7BN,aAAAA,EAAe;AACnB;;AAER,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,mBAAA;QACJC,QAAAA,EAAU;UAAEU,SAAAA,EAAW;AAAgB,SAAA;QACvCP,aAAAA,EAAe;AACnB;;AAER,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,UAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAEW,KAAAA,EAAO,QAAA;UAAUC,KAAAA,EAAO;AAAI,SAAA;QACxCT,aAAAA,EAAe;AACnB,OAAA;AACA,MAAA;QACIJ,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAEW,KAAAA,EAAO,QAAA;UAAUC,KAAAA,EAAO;AAAI;AAC5C;;AAER,GAAA;AACA,EAAA;IACIf,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,YAAA;QACJC,QAAAA,EAAU;UAAEa,GAAAA,EAAK;AAAgB,SAAA;QACjCV,aAAAA,EAAe;AACnB;;AAER","file":"377FOBYP.cjs","sourcesContent":["import type { ToolVersionMatrix } from '../types';\n\n/**\n * Version compatibility matrices for each tool type\n * Default combination is the first one marked as isRecommended=true\n */\nexport const versionMatrices: ToolVersionMatrix[] = [\n {\n toolType: 'evm',\n combinations: [\n {\n id: 'hardhat_2.19.3',\n versions: { hardhat: '2.19.3' },\n },\n {\n id: 'forge_1.3.6_hardhat_2.26.3',\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n isRecommended: true,\n },\n {\n id: 'forge_1.3.6_hardhat_2.26.3_dockerfile_1.0.0',\n versions: { forge: '1.3.6', hardhat: '2.26.3', dockerfile: '1.0.0' },\n },\n ],\n },\n {\n toolType: 'solana',\n combinations: [\n {\n id: 'solana_1.17.31_anchor_0.29.0',\n versions: { solana: '1.17.31', anchor: '0.29.0' },\n isRecommended: true,\n description: 'Stable and well-tested',\n },\n {\n id: 'solana_2.2.20_anchor_0.31.1',\n versions: { solana: '2.2.20', anchor: '0.31.1' },\n description: 'Latest stable release',\n },\n ],\n },\n {\n toolType: 'aptos',\n combinations: [\n {\n id: 'aptos_4.6.0',\n versions: { aptos: '4.6.0' },\n isRecommended: true,\n },\n // TODO Enable Aptos v6.\n // {\n // id: 'aptos_6.0.1',\n // versions: { aptos: '6.0.1' },\n // },\n ],\n },\n {\n toolType: 'initia',\n combinations: [\n {\n id: 'initia_0.6.3',\n versions: { initiad: '0.6.3' },\n isRecommended: true,\n },\n ],\n },\n {\n toolType: 'ton',\n combinations: [\n {\n id: 'ton_0.25.0-beta.1',\n versions: { blueprint: '0.25.0-beta.1' },\n isRecommended: true,\n },\n ],\n },\n {\n toolType: 'starknet',\n combinations: [\n {\n id: 'scarb_2.12.0',\n versions: { scarb: '2.12.0', patch: '1' },\n isRecommended: true,\n },\n {\n id: 'scarb_2.12.0',\n versions: { scarb: '2.12.0', patch: '2' },\n },\n ],\n },\n {\n toolType: 'sui',\n combinations: [\n {\n id: 'sui_1.54.1',\n versions: { sui: '1.54.1-beta.0' },\n isRecommended: true,\n },\n ],\n },\n];\n"]}
1
+ {"version":3,"sources":["../src/config/version-matrices.ts"],"names":["versionMatrices","toolType","combinations","id","versions","hardhat","forge","isRecommended","dockerfile","solana","anchor","description","aptos","initiad","blueprint","scarb","patch","sui"],"mappings":";;;AAMO,IAAMA,eAAAA,GAAuC;AAChD,EAAA;IACIC,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,gBAAA;QACJC,QAAAA,EAAU;UAAEC,OAAAA,EAAS;AAAS;AAClC,OAAA;AACA,MAAA;QACIF,EAAAA,EAAI,4BAAA;QACJC,QAAAA,EAAU;UAAEE,KAAAA,EAAO,OAAA;UAASD,OAAAA,EAAS;AAAS,SAAA;QAC9CE,aAAAA,EAAe;AACnB,OAAA;AACA,MAAA;QACIJ,EAAAA,EAAI,6CAAA;QACJC,QAAAA,EAAU;UAAEE,KAAAA,EAAO,OAAA;UAASD,OAAAA,EAAS,QAAA;UAAUG,UAAAA,EAAY;AAAQ;AACvE;;AAER,GAAA;AACA,EAAA;IACIP,QAAAA,EAAU,QAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,8BAAA;QACJC,QAAAA,EAAU;UAAEK,MAAAA,EAAQ,SAAA;UAAWC,MAAAA,EAAQ;AAAS,SAAA;QAChDH,aAAAA,EAAe,IAAA;QACfI,WAAAA,EAAa;AACjB,OAAA;AACA,MAAA;QACIR,EAAAA,EAAI,6BAAA;QACJC,QAAAA,EAAU;UAAEK,MAAAA,EAAQ,QAAA;UAAUC,MAAAA,EAAQ;AAAS,SAAA;QAC/CC,WAAAA,EAAa;AACjB;;AAER,GAAA;AACA,EAAA;IACIV,QAAAA,EAAU,OAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,aAAA;QACJC,QAAAA,EAAU;UAAEQ,KAAAA,EAAO;AAAQ,SAAA;QAC3BL,aAAAA,EAAe;AACnB;;AAOR,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,QAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAES,OAAAA,EAAS;AAAQ,SAAA;QAC7BN,aAAAA,EAAe;AACnB;;AAER,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,mBAAA;QACJC,QAAAA,EAAU;UAAEU,SAAAA,EAAW;AAAgB,SAAA;QACvCP,aAAAA,EAAe;AACnB;;AAER,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,UAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAEW,KAAAA,EAAO,QAAA;UAAUC,KAAAA,EAAO;AAAI,SAAA;QACxCT,aAAAA,EAAe;AACnB,OAAA;AACA,MAAA;QACIJ,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAEW,KAAAA,EAAO,QAAA;UAAUC,KAAAA,EAAO;AAAI;AAC5C;;AAER,GAAA;AACA,EAAA;IACIf,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,YAAA;QACJC,QAAAA,EAAU;UAAEa,GAAAA,EAAK;AAAgB,SAAA;QACjCV,aAAAA,EAAe;AACnB;;AAER","file":"6FHMI4HI.cjs","sourcesContent":["import type { ToolVersionMatrix } from '../types';\n\n/**\n * Version compatibility matrices for each tool type\n * Default combination is the first one marked as isRecommended=true\n */\nexport const versionMatrices: ToolVersionMatrix[] = [\n {\n toolType: 'evm',\n combinations: [\n {\n id: 'hardhat_2.19.3',\n versions: { hardhat: '2.19.3' },\n },\n {\n id: 'forge_1.3.6_hardhat_2.26.3',\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n isRecommended: true,\n },\n {\n id: 'forge_1.3.6_hardhat_2.26.3_dockerfile_1.1.1',\n versions: { forge: '1.3.6', hardhat: '2.26.3', dockerfile: '1.1.1' },\n },\n ],\n },\n {\n toolType: 'solana',\n combinations: [\n {\n id: 'solana_1.17.31_anchor_0.29.0',\n versions: { solana: '1.17.31', anchor: '0.29.0' },\n isRecommended: true,\n description: 'Stable and well-tested',\n },\n {\n id: 'solana_2.2.20_anchor_0.31.1',\n versions: { solana: '2.2.20', anchor: '0.31.1' },\n description: 'Latest stable release',\n },\n ],\n },\n {\n toolType: 'aptos',\n combinations: [\n {\n id: 'aptos_4.6.0',\n versions: { aptos: '4.6.0' },\n isRecommended: true,\n },\n // TODO Enable Aptos v6.\n // {\n // id: 'aptos_6.0.1',\n // versions: { aptos: '6.0.1' },\n // },\n ],\n },\n {\n toolType: 'initia',\n combinations: [\n {\n id: 'initia_0.6.3',\n versions: { initiad: '0.6.3' },\n isRecommended: true,\n },\n ],\n },\n {\n toolType: 'ton',\n combinations: [\n {\n id: 'ton_0.25.0-beta.1',\n versions: { blueprint: '0.25.0-beta.1' },\n isRecommended: true,\n },\n ],\n },\n {\n toolType: 'starknet',\n combinations: [\n {\n id: 'scarb_2.12.0',\n versions: { scarb: '2.12.0', patch: '1' },\n isRecommended: true,\n },\n {\n id: 'scarb_2.12.0',\n versions: { scarb: '2.12.0', patch: '3' },\n },\n ],\n },\n {\n toolType: 'sui',\n combinations: [\n {\n id: 'sui_1.54.1',\n versions: { sui: '1.54.1-beta.0' },\n isRecommended: true,\n },\n ],\n },\n];\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var BVCDSSHB_cjs = require('./BVCDSSHB.cjs');
3
+ var IU7G43CF_cjs = require('./IU7G43CF.cjs');
4
4
  var _3EOFF6NK_cjs = require('./3EOFF6NK.cjs');
5
5
  var _4NINFZK7_cjs = require('./4NINFZK7.cjs');
6
6
  var NX4KBEWA_cjs = require('./NX4KBEWA.cjs');
@@ -12,7 +12,7 @@ var process__default = /*#__PURE__*/_interopDefault(process);
12
12
 
13
13
  function extractUserVersions(options) {
14
14
  const userVersions = {};
15
- for (const tool of BVCDSSHB_cjs.tools) {
15
+ for (const tool of IU7G43CF_cjs.tools) {
16
16
  const versionKey = `${tool.name}Version`;
17
17
  const versionValue = options[versionKey];
18
18
  if (typeof versionValue === "string" && versionValue !== "") {
@@ -23,7 +23,7 @@ function extractUserVersions(options) {
23
23
  }
24
24
  NX4KBEWA_cjs.__name(extractUserVersions, "extractUserVersions");
25
25
  function resolveToolVersion(toolName, userSpecifiedVersions, options, cwd) {
26
- const tool = BVCDSSHB_cjs.findToolByName(toolName);
26
+ const tool = IU7G43CF_cjs.findToolByName(toolName);
27
27
  if (!tool) {
28
28
  throw new Error(`Tool ${toolName} not found`);
29
29
  }
@@ -45,12 +45,12 @@ function resolveToolVersion(toolName, userSpecifiedVersions, options, cwd) {
45
45
  }
46
46
  } catch (error) {
47
47
  }
48
- return BVCDSSHB_cjs.getToolDefaultVersion(tool.name);
48
+ return IU7G43CF_cjs.getToolDefaultVersion(tool.name);
49
49
  }
50
50
  NX4KBEWA_cjs.__name(resolveToolVersion, "resolveToolVersion");
51
51
  function resolveTypeVersions(type, userSpecifiedVersions, options, cwd) {
52
- const matrix = BVCDSSHB_cjs.findMatrixByType(type);
53
- const typeTools = BVCDSSHB_cjs.findToolsByType(type);
52
+ const matrix = IU7G43CF_cjs.findMatrixByType(type);
53
+ const typeTools = IU7G43CF_cjs.findToolsByType(type);
54
54
  if (!matrix || typeTools.length === 0) {
55
55
  throw new Error(`Type ${type} not found or no version matrix available`);
56
56
  }
@@ -63,11 +63,11 @@ function resolveTypeVersions(type, userSpecifiedVersions, options, cwd) {
63
63
  continue;
64
64
  }
65
65
  resolvedVersions[tool.name] = version;
66
- if (version === BVCDSSHB_cjs.getToolDefaultVersion(tool.name)) {
66
+ if (version === IU7G43CF_cjs.getToolDefaultVersion(tool.name)) {
67
67
  usedDefaultFor.push(tool.name);
68
68
  }
69
- if (version !== BVCDSSHB_cjs.getToolDefaultVersion(tool.name)) {
70
- const supportedVersions = BVCDSSHB_cjs.getToolSupportedVersions(tool.name);
69
+ if (version !== IU7G43CF_cjs.getToolDefaultVersion(tool.name)) {
70
+ const supportedVersions = IU7G43CF_cjs.getToolSupportedVersions(tool.name);
71
71
  if (!supportedVersions.includes(version)) {
72
72
  warnings.push(`\u26A0\uFE0F Version ${version} for ${tool.name} is not in the supported list.
73
73
  Supported versions: ${supportedVersions.join(", ")}
@@ -125,5 +125,5 @@ NX4KBEWA_cjs.__name(resolveTypeVersions, "resolveTypeVersions");
125
125
  exports.extractUserVersions = extractUserVersions;
126
126
  exports.resolveToolVersion = resolveToolVersion;
127
127
  exports.resolveTypeVersions = resolveTypeVersions;
128
- //# sourceMappingURL=Z3UDKF22.cjs.map
129
- //# sourceMappingURL=Z3UDKF22.cjs.map
128
+ //# sourceMappingURL=7PDYKZMF.cjs.map
129
+ //# sourceMappingURL=7PDYKZMF.cjs.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","Error","userVersion","envKey","toUpperCase","envVersion","process","env","parsedVersions","parseVersionFileContents","foundVersion","error","getToolDefaultVersion","resolveTypeVersions","type","matrix","findMatrixByType","typeTools","findToolsByType","length","resolvedVersions","usedDefaultFor","warnings","version","push","supportedVersions","getToolSupportedVersions","includes","join","matchedCombination","isCompatibleCombination","combo","combinations","matches","Object","entries","versions","every","compatibleCombo","findBestCompatibleCombination","adjusted","comboVersion","undefined","oldVersion","recommendedCombos","filter","c","isRecommended","map","id","description","console","info","combinationId"],"mappings":"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","file":"Z3UDKF22.cjs","sourcesContent":["import process from 'process';\n\nimport { tools } from '../config';\nimport type { ToolType, VersionCombination, VersionResolutionResult } from '../types';\nimport { parseVersionFileContents } from '../utils';\nimport {\n findMatrixByType,\n findToolByName,\n findToolsByType,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder-utils';\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 if (!tool) {\n throw new Error(`Tool ${toolName} not found`);\n }\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: ToolType,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): VersionResolutionResult {\n const matrix = findMatrixByType(type);\n const typeTools = findToolsByType(type);\n\n if (!matrix || typeTools.length === 0) {\n throw new Error(`Type ${type} not found or no version matrix 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 let matchedCombination: VersionCombination | undefined;\n let isCompatibleCombination = false;\n\n for (const combo of matrix.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, matrix);\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 recommendedCombos = matrix.combinations\n .filter((c) => c.isRecommended)\n .map((c) => c.id)\n .join(', ');\n\n warnings.push(\n `⚠️ Custom version combination detected - not officially tested.\\n` +\n ` 💡 Stable combinations: ${recommendedCombos}\\n` +\n ` 🔍 Use 'lz-tool --list-versions' to see all tested combinations.`,\n );\n } else if (matchedCombination?.description !== undefined) {\n console.info(`✅ ${matchedCombination.description} (${matchedCombination.id})`);\n }\n\n return {\n resolvedVersions,\n isCompatibleCombination,\n usedDefaultFor,\n warnings,\n combinationId: matchedCombination?.id,\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","Error","userVersion","envKey","toUpperCase","envVersion","process","env","parsedVersions","parseVersionFileContents","foundVersion","error","getToolDefaultVersion","resolveTypeVersions","type","matrix","findMatrixByType","typeTools","findToolsByType","length","resolvedVersions","usedDefaultFor","warnings","version","push","supportedVersions","getToolSupportedVersions","includes","join","matchedCombination","isCompatibleCombination","combo","combinations","matches","Object","entries","versions","every","compatibleCombo","findBestCompatibleCombination","adjusted","comboVersion","undefined","oldVersion","recommendedCombos","filter","c","isRecommended","map","id","description","console","info","combinationId"],"mappings":"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","file":"7PDYKZMF.cjs","sourcesContent":["import process from 'process';\n\nimport { tools } from '../config';\nimport type { ToolType, VersionCombination, VersionResolutionResult } from '../types';\nimport { parseVersionFileContents } from '../utils';\nimport {\n findMatrixByType,\n findToolByName,\n findToolsByType,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder-utils';\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 if (!tool) {\n throw new Error(`Tool ${toolName} not found`);\n }\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: ToolType,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): VersionResolutionResult {\n const matrix = findMatrixByType(type);\n const typeTools = findToolsByType(type);\n\n if (!matrix || typeTools.length === 0) {\n throw new Error(`Type ${type} not found or no version matrix 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 let matchedCombination: VersionCombination | undefined;\n let isCompatibleCombination = false;\n\n for (const combo of matrix.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, matrix);\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 recommendedCombos = matrix.combinations\n .filter((c) => c.isRecommended)\n .map((c) => c.id)\n .join(', ');\n\n warnings.push(\n `⚠️ Custom version combination detected - not officially tested.\\n` +\n ` 💡 Stable combinations: ${recommendedCombos}\\n` +\n ` 🔍 Use 'lz-tool --list-versions' to see all tested combinations.`,\n );\n } else if (matchedCombination?.description !== undefined) {\n console.info(`✅ ${matchedCombination.description} (${matchedCombination.id})`);\n }\n\n return {\n resolvedVersions,\n isCompatibleCombination,\n usedDefaultFor,\n warnings,\n combinationId: matchedCombination?.id,\n };\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { extractUserVersions, resolveTypeVersions } from './27HYHTXW.js';
2
- import { findToolByName, findMatrixByType, AWS_ACCOUNT_ID, AWS_REGION, getToolType, versionsSatisfied } from './ODR3PEGR.js';
1
+ import { extractUserVersions, resolveTypeVersions } from './FYBVGT35.js';
2
+ import { findToolByName, findMatrixByType, AWS_ACCOUNT_ID, AWS_REGION, getToolType, versionsSatisfied } from './XJWXQV6E.js';
3
3
  import { __name } from './VUOMXK5T.js';
4
4
  import fs from 'fs';
5
5
  import path from 'path';
@@ -268,5 +268,5 @@ function saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath) {
268
268
  __name(saveAptosModulesOrder, "saveAptosModulesOrder");
269
269
 
270
270
  export { executeToolCommand };
271
- //# sourceMappingURL=POABMLRA.js.map
272
- //# sourceMappingURL=POABMLRA.js.map
271
+ //# sourceMappingURL=DXKVHPTB.js.map
272
+ //# sourceMappingURL=DXKVHPTB.js.map
@@ -1 +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","env","customEnvVars","script","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","privileged","volumeArgs","volume","hostPath","flat","entryPoint","trim","envArgs","envVar","finalArgs","dockerArgs","saveAptosModulesOrder","exit","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":";;;;;;;;;AAeAA,CAAAA,CAAEC,OAAAA,GAAU,IAAA;AACZD,CAAAA,CAAEE,KAAAA,GAAQ;AAAC,EAAA,SAAA;AAAW,EAAA,MAAA;EAAQC,OAAAA,CAAQC;;AAMtC,SAASC,YAAAA,CACLC,gBACAC,WAAAA,EAA4B;AAE5B,EAAA,MAAMC,SAA0B,EAAA;AAChC,EAAA,MAAMC,SAAAA,GAAY,IAAIC,GAAAA,CAAIH,WAAAA,CAAYI,IAAI,CAACC,CAAAA,KAAMA,CAAAA,CAAEC,aAAa,CAAA,CAAA;AAGhEL,EAAAA,MAAAA,CAAOM,IAAAA,CAAI,GAAIP,WAAAA,CAAAA;AAGf,EAAA,KAAA,MAAWQ,iBAAiBT,cAAAA,EAAgB;AACxC,IAAA,IAAI,CAACG,SAAAA,CAAUO,GAAAA,CAAID,aAAAA,CAAcF,aAAa,CAAA,EAAG;AAC7CL,MAAAA,MAAAA,CAAOM,KAAKC,aAAAA,CAAAA;AAChB,IAAA;AACJ,EAAA;AAEA,EAAA,OAAOP,MAAAA;AACX;AAlBSH,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAuBT,SAASY,YAAAA,CACLC,MAAAA,EACAC,aAAAA,EACAC,OAAAA,EAAe;AAGf,EAAA,MAAMC,UAAAA,GAAa,CAAA,EAAGC,cAAAA,CAAAA,SAAAA,EAA0BC,UAAAA,CAAAA,4BAAAA,CAAAA;AAChD,EAAA,MAAMC,SAAAA,GAAY,GAAGN,MAAAA,CAAAA,QAAAA,CAAAA;AAGrB,EAAA,MAAMO,IAAAA,GAAOC,eAAeP,aAAAA,CAAAA;AAC5B,EAAA,IAAI,CAACM,IAAAA,EAAM;AACP,IAAA,MAAM,IAAIE,KAAAA,CAAM,CAAA,MAAA,EAASR,aAAAA,CAAAA,WAAAA,CAA0B,CAAA;AACvD,EAAA;AAGA,EAAA,MAAMS,MAAAA,GAASC,gBAAAA,CAAiBJ,IAAAA,CAAKK,QAAQ,CAAA;AAC7C,EAAA,IAAI,CAACF,MAAAA,EAAQ;AACT,IAAA,MAAM,IAAID,KAAAA,CAAM,CAAA,sCAAA,EAAyCF,IAAAA,CAAKK,QAAQ,CAAA,CAAE,CAAA;AAC5E,EAAA;AAGA,EAAA,IAAIC,gBAAAA,GAAmB,IAAA;AACvB,EAAA,KAAA,MAAWC,WAAAA,IAAeJ,OAAOK,YAAAA,EAAc;AAC3C,IAAA,MAAMC,WAAAA,GAAcF,WAAAA,CAAYG,QAAAA,CAAShB,aAAAA,CAAAA;AACzC,IAAA,IAAIe,gBAAgBd,OAAAA,EAAS;AACzBW,MAAAA,gBAAAA,GAAmBC,WAAAA,CAAYG,QAAAA;AAC/B,MAAA;AACJ,IAAA;AACJ,EAAA;AAEA,EAAA,IAAI,CAACJ,gBAAAA,EAAkB;AACnB,IAAA,MAAM,IAAIJ,KAAAA,CACN,CAAA,sCAAA,EAAyCR,aAAAA,CAAAA,cAAAA,EAA8BC,OAAAA,CAAAA,CAAS,CAAA;AAExF,EAAA;AAGA,EAAA,MAAMgB,gBAA2C,EAAC;AAClD,EAAA,KAAA,MAAW,CAACC,QAAAA,EAAUH,WAAAA,KAAgBI,MAAAA,CAAOC,OAAAA,CAAQR,gBAAAA,CAAAA,EAAmB;AACpE,IAAA,IAAI,OAAOG,WAAAA,KAAgB,QAAA,IAAYA,WAAAA,CAAYM,SAAS,CAAA,EAAG;AAC3DJ,MAAAA,aAAAA,CAAcC,QAAAA,CAAAA,GAAYH,WAAAA;AAC9B,IAAA;AACJ,EAAA;AAEA,EAAA,MAAMO,QAAAA,GAAWC,kBAAkBN,aAAAA,CAAAA;AACnC,EAAA,MAAMO,WAAW,CAAA,EAAGtB,UAAAA,CAAAA,CAAAA,EAAcG,SAAAA,IAAaiB,QAAAA,CAAAA,CAAAA;AAE/C,EAAA,OAAO;AAAEE,IAAAA,QAAAA;AAAUF,IAAAA;AAAS,GAAA;AAChC;AAjDSxB,MAAAA,CAAAA,YAAAA,EAAAA,cAAAA,CAAAA;AAsDT,SAASyB,kBAAkBE,KAAAA,EAAgC;AACvD,EAAA,MAAMC,IAAAA,GAAOP,MAAAA,CAAOC,OAAAA,CAAQK,KAAAA,CAAAA,CACvBjC,IAAI,CAAC,CAACmC,GAAAA,EAAKC,KAAAA,CAAAA,KAAW,CAAA,EAAGD,GAAAA,CAAAA,CAAAA,EAAOC,KAAAA,CAAAA,CAAO,CAAA,CACvCC,IAAAA,CAAK,CAACC,GAAGC,CAAAA,KAAMD,CAAAA,CAAEE,aAAAA,CAAcD,CAAAA,CAAAA,CAAAA;AAEpC,EAAA,OAAOL,IAAAA,CAAKO,KAAK,GAAA,CAAA;AACrB;AANSV,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAYT,eAAeW,iBAAAA,CAAkBV,UAAkBF,QAAAA,EAAgB;AAC/D,EAAA,IAAI;AAEA,IAAA,MAAMa,WAAAA,GAAc,MAAMtD,CAAAA,CAAAA,gBAAAA,EAAoB2C,QAAAA,GAAWY,OAAAA,EAAO;AAEhE,IAAA,IAAID,WAAAA,CAAYE,MAAAA,CAAOC,QAAAA,CAAShB,QAAAA,CAAAA,EAAW;AACvCiB,MAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,kCAAA,EAAgChB,QAAAA,CAAAA,CAAU,CAAA;AACvD,MAAA;AACJ,IAAA;AAGAe,IAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,yCAAA,EAAqChB,QAAAA,CAAAA,CAAU,CAAA;AAC5D,IAAA,MAAMiB,UAAAA,GAAa,MAAM5D,CAAAA,CAAAA,YAAAA,EAAgB2C,QAAAA,GAAWY,OAAAA,EAAO;AAE3D,IAAA,IAAIK,UAAAA,CAAWC,aAAa,CAAA,EAAG;AAC3BH,MAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,4BAAA,EAA0BhB,QAAAA,CAAAA,CAAU,CAAA;AACjD,MAAA;AACJ,IAAA;AAGA,IAAA,MAAMmB,cAAAA,GAAiBnB,QAAAA,CAASoB,KAAAA,CAAM,GAAA,CAAA,CAAKC,KAAG,EAAIC,OAAAA,CAAQ,MAAA,EAAQ,EAAA,CAAA,IAAO,EAAA;AACzE,IAAA,MAAMC,gBAAAA,GAAmB,SAASJ,cAAAA,CAAAA,OAAAA,CAAAA;AAElC,IAAA,MAAMK,gBAAAA,GAAmB,MAAMnE,CAAAA,CAAAA,gBAAAA,EAAoBkE,gBAAAA,GAAmBX,OAAAA,EAAO;AAE7E,IAAA,IAAIY,gBAAAA,CAAiBX,MAAAA,CAAOC,QAAAA,CAAS,QAAA,CAAA,EAAW;AAC5CC,MAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,yDAAA,EAAqDO,gBAAAA,CAAAA,CAAkB,CAAA;AAGpF,MAAA,MAAMlE,CAAAA,CAAAA,WAAAA,EAAekE,gBAAAA,CAAAA,CAAAA,EAAoBvB,QAAAA,CAAAA,CAAAA;AACzCe,MAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,wCAAA,EAA+BhB,QAAAA,CAAAA,CAAU,CAAA;AACtD,MAAA;AACJ,IAAA;AAGA,IAAA,MAAM,IAAIhB,KAAAA,CACN,CAAA;iBACsBgB,QAAAA,CAAAA;sBACKuB,gBAAAA,CAAAA;;;kEAE4C3C,UAAAA,CAAAA,gDAAAA,EAA6DD,cAAAA,CAAAA,SAAAA,EAA0BC,UAAAA,CAAAA;0CAC/G2C,gBAAAA,CAAAA;AACA,yCAAA,CAAA,CAAA;AAEvD,EAAA,CAAA,CAAA,OAASE,KAAAA,EAAO;AACZ,IAAA,IAAIA,iBAAiBzC,KAAAA,IAASyC,KAAAA,CAAMC,OAAAA,CAAQZ,QAAAA,CAAS,mCAAA,CAAA,EAAiC;AAClF,MAAA,MAAMW,KAAAA;AACV,IAAA;AACA,IAAA,MAAM,IAAIzC,KAAAA,CACN,CAAA,8BAAA,EAAiCgB,QAAAA,CAAAA,EAAAA,EAAayB,KAAAA,YAAiBzC,KAAAA,GAAQyC,KAAAA,CAAMC,OAAAA,GAAUC,MAAAA,CAAOF,KAAAA,CAAAA,CAAAA,CAAQ,CAAA;AAE9G,EAAA;AACJ;AApDef,MAAAA,CAAAA,iBAAAA,EAAAA,mBAAAA,CAAAA;AAyDf,eAAsBkB,kBAAAA,CAClBC,OAAAA,EACAC,IAAAA,EACAC,OAAAA,EAQC;AAED,EAAA,MAAM,EACFC,KACAC,WAAAA,EACAC,OAAAA,EAAStE,aACTuE,gBAAAA,EACAC,GAAAA,EAAKC,aAAAA,EACLC,MAAAA,EAAM,GACNP,OAAAA;AAEJ,EAAA,MAAMjD,IAAAA,GAAOC,eAAe8C,OAAAA,CAAAA;AAC5B,EAAA,MAAMU,IAAAA,GAAOC,YAAYX,OAAAA,CAAAA;AAEzB,EAAA,IAAI,CAAC/C,IAAAA,IAAQyD,IAAAA,KAASE,MAAAA,EAAW;AAC7B,IAAA,MAAM,EAAEC,KAAAA,EAAK,GAAK,MAAM,OAAO,mBAAA,CAAA;AAC/B,IAAA,MAAMC,cAAAA,GAAiBD,MAAM1E,GAAAA,CAAI,CAAC4E,MAAMA,CAAAA,CAAEC,IAAI,CAAA,CAAEpC,IAAAA,CAAK,IAAA,CAAA;AACrD,IAAA,MAAM,IAAIzB,KAAAA,CACN,CAAA,aAAA,EAAW6C,OAAAA,CAAAA;mBACac,cAAAA;AACqC,uDAAA,CAAA,CAAA;AAErE,EAAA;AAGA,EAAA,MAAMhF,cAAAA,GAAiBmB,IAAAA,CAAKnB,cAAAA,IAAkB,EAAA;AAC9C,EAAA,MAAMuE,OAAAA,GAAUxE,YAAAA,CAAaC,cAAAA,EAAgBC,WAAAA,CAAAA;AAE7C,EAAA,IAAID,cAAAA,CAAekC,SAAS,CAAA,EAAG;AAC3BkB,IAAAA,OAAAA,CAAQC,KAAK,CAAA,gBAAA,EAAYrD,cAAAA,CAAekC,MAAM,CAAA,6BAAA,EAAgCgC,OAAAA,CAAAA,CAAS,CAAA;AACvF,IAAA,IAAIjE,WAAAA,CAAYiC,SAAS,CAAA,EAAG;AACxB,MAAA,MAAMiD,SAAAA,GAAYlF,WAAAA,CAAYmF,MAAAA,CAAO,CAACC,EAAAA,KAClCrF,cAAAA,CAAesF,IAAAA,CAAK,CAACC,EAAAA,KAAOA,EAAAA,CAAGhF,aAAAA,KAAkB8E,EAAAA,CAAG9E,aAAa,CAAA,CAAA;AAErE,MAAA,IAAI4E,SAAAA,CAAUjD,SAAS,CAAA,EAAG;AACtBkB,QAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,gCAAA,EAA4B8B,SAAAA,CAAUjD,MAAM,CAAA,kBAAA,CAAoB,CAAA;AACjF,MAAA;AACJ,IAAA;AACJ,EAAA;AAGA,EAAA,MAAMsD,qBAAAA,GAAwBC,oBAAoBrB,OAAAA,CAAAA;AAGlD,EAAA,MAAMsB,aAAAA,GAAgBC,mBAAAA,CAAoBf,IAAAA,EAAMY,qBAAAA,EAAuBpB,SAASC,GAAAA,CAAAA;AAGhFqB,EAAAA,aAAAA,CAAcE,QAAAA,CAASC,OAAAA,CAAQ,CAACC,OAAAA,KAAAA;AAC5B1C,IAAAA,OAAAA,CAAQ2C,KAAKD,OAAAA,CAAAA;EACjB,CAAA,CAAA;AAGA,EAAA,MAAME,eAAAA,GAAkBN,aAAAA,CAAcO,gBAAAA,CAAiB/B,OAAAA,CAAAA;AACvD,EAAA,IAAI,OAAO8B,eAAAA,KAAoB,QAAA,IAAYA,eAAAA,KAAoB,EAAA,EAAI;AAC/D,IAAA,MAAM,IAAI3E,KAAAA,CAAM,CAAA,6BAAA,EAAgC6C,OAAAA,CAAAA,CAAS,CAAA;AAC7D,EAAA;AAEAd,EAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,UAAA,EAAMa,OAAAA,CAAAA,UAAAA,EAAoB8B,eAAAA,CAAAA,CAAiB,CAAA;AAGxD,EAAA,IAAI7E,KAAK+E,6BAAAA,EAA+B;AACpC,IAAA,IAAI;AACA,MAAA,MAAMC,gBAAAA,GAAmBhF,KAAK+E,6BAAAA,CAA8B;AAAE7B,QAAAA;OAAI,CAAA;AAClE,MAAA,MAAM+B,kBAAAA,GAA8B;QAAEtF,OAAAA,EAASkF;AAAgB,OAAA;AAE/D,MAAA,IAAI,CAACK,iBAAAA,CAAkBF,gBAAAA,EAAkBC,kBAAAA,CAAAA,EAAqB;AAC1DhD,QAAAA,OAAAA,CAAQ2C,KACJ,CAAA,sCAAA,EAAyCI,gBAAAA,CAAiBrF,OAAO,CAAA,iCAAA,EAAoCkF,eAAAA,CAAAA,CAAAA,CAAkB,CAAA;AAE/H,MAAA;AACJ,IAAA,CAAA,CAAA,OAASlC,KAAAA,EAAO;AAEZV,MAAAA,OAAAA,CAAQ2C,IAAAA,CACJ,yCAAyCjC,KAAAA,YAAiBzC,KAAAA,GAAQyC,MAAMC,OAAAA,GAAUC,MAAAA,CAAOF,KAAAA,CAAAA,CAAAA,CAAQ,CAAA;AAEzG,IAAA;AACJ,EAAA;AAGA,EAAA,IAAIwC,kBAAAA,GAAqB,KAAA;AAEzB,EAAA,IAAI,CAAChC,WAAAA,EAAa;AACd,IAAA,MAAMiC,YAAAA,GAAepF,KAAKqF,mBAAAA,IAAuB;AAAC,MAAA;;AAElD,IAAA,IAAI;AACA,MAAA,MAAMC,MAAAA,GAAS,MAAM/G,CAAAA,CAAAA,EAAIwE,OAAAA,IAAWqC,YAAAA,CAAAA,CAAAA;AAGpC,MAAA,IAAIpF,KAAKuF,4BAAAA,EAA8B;AACnC,QAAA,MAAMC,gBAAAA,GAAmBxF,IAAAA,CAAKuF,4BAAAA,CAA6BD,MAAAA,CAAOvD,MAAM,CAAA;AACxE,QAAA,MAAMkD,kBAAAA,GAA8B;UAAEtF,OAAAA,EAASkF;AAAgB,SAAA;AAE/D,QAAA,IAAIK,iBAAAA,CAAkBM,gBAAAA,EAAkBP,kBAAAA,CAAAA,EAAqB;AACzDE,UAAAA,kBAAAA,GAAqB,IAAA;AACrBlD,UAAAA,OAAAA,CAAQC,KAAK,CAAA,mBAAA,EAAiBa,OAAAA,CAAAA,EAAAA,EAAYyC,gBAAAA,CAAiB7F,OAAO,CAAA,CAAE,CAAA;QACxE,CAAA,MAAO;AACHsC,UAAAA,OAAAA,CAAQC,IAAAA,CACJ,mBAAYa,OAAAA,CAAAA,EAAAA,EAAYyC,iBAAiB7F,OAAO,CAAA,kBAAA,EAAgBkF,eAAAA,CAAAA,cAAAA,CAA+B,CAAA;AAEvG,QAAA;AACJ,MAAA;AACJ,IAAA,CAAA,CAAA,OAASlC,KAAAA,EAAO;AAEZ,MAAA,IAAI,EAAEA,iBAAiBzC,KAAAA,CAAAA,IAAU,EAAE,cAAcyC,KAAAA,CAAAA,IAAUA,KAAAA,CAAMP,aAAa,GAAA,EAAK;AAC/E,QAAA,MAAMO,KAAAA;AACV,MAAA;AACAV,MAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,UAAA,EAAMa,OAAAA,CAAAA,gCAAAA,CAAyC,CAAA;AAChE,IAAA;AACJ,EAAA;AAEA,EAAA,IAAI0C,aAAAA;AAEJ,EAAA,IAAIN,kBAAAA,EAAoB;AAEpBM,IAAAA,aAAAA,GAAgB,MAAMlH,CAAAA,CAAAA,EAAIwE,OAAAA,CAAAA,CAAAA,EAAWC,IAAAA,GAAOlB,OAAAA,EAAO;EACvD,CAAA,MAAO;AAEH,IAAA,MAAM,EAAEd,UAAUE,QAAAA,EAAQ,GAAK1B,aAAaQ,IAAAA,CAAK0F,SAAAA,EAAW1F,IAAAA,CAAK+D,IAAAA,EAAMc,eAAAA,CAAAA;AACvE,IAAA,MAAMc,aAAAA,GAAgB,MAAMC,6BAAAA,EAAAA;AAC5B,IAAA,MAAMC,OAAAA,GAAUC,IAAAA,CAAKC,QAAAA,CAASJ,aAAAA,EAAezC,GAAAA,CAAAA;AAC7C,IAAA,MAAM8C,UAAAA,GAAahG,KAAKgG,UAAAA,IAAc,KAAA;AAGtC,IAAA,MAAMpE,iBAAAA,CAAkBV,UAAUF,QAAAA,CAAAA;AAElC,IAAA,MAAMiF,UAAAA,GAAa7C,OAAAA,CACdlE,GAAAA,CAAI,CAACgH,MAAAA,KAAAA;AACF,MAAA,IAAIA,MAAAA,CAAOzC,SAAS,MAAA,EAAQ;AACxB,QAAA,IAAIyC,MAAAA,CAAOC,aAAaxC,MAAAA,EAAW;AAC/B,UAAA,MAAM,IAAIzD,MAAM,CAAA,uDAAA,CAAyD,CAAA;AAC7E,QAAA;AACA,QAAA,OAAO;AAAC,UAAA,IAAA;AAAM,UAAA,CAAA,EAAGgG,MAAAA,CAAOC,QAAQ,CAAA,CAAA,EAAID,MAAAA,CAAO9G,aAAa,CAAA;;MAC5D,CAAA,MAAO;AACH,QAAA,IAAI8G,MAAAA,CAAOnC,SAASJ,MAAAA,EAAW;AAC3B,UAAA,MAAM,IAAIzD,MAAM,CAAA,qDAAA,CAAuD,CAAA;AAC3E,QAAA;AACA,QAAA,OAAO;AAAC,UAAA,IAAA;AAAM,UAAA,CAAA,EAAGgG,MAAAA,CAAOnC,IAAI,CAAA,CAAA,EAAImC,MAAAA,CAAO9G,aAAa,CAAA;;AACxD,MAAA;AACJ,IAAA,CAAA,EACCgH,IAAAA,EAAI;AAGT,IAAA,MAAMC,UAAAA,GAAahD,oBAAoBrD,IAAAA,CAAKqG,UAAAA;AAE5C,IAAA,IAAIhD,gBAAAA,KAAqBM,MAAAA,IAAaN,gBAAAA,CAAiBiD,IAAAA,OAAW,EAAA,EAAI;AAClErE,MAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,mCAAA,EAA+BmB,gBAAAA,CAAAA,CAAkB,CAAA;AAClE,IAAA;AAGA,IAAA,MAAMkD,OAAAA,GAAUhD,aAAAA,CACXrE,GAAAA,CAAI,CAACsH,MAAAA,KAAW;AAAC,MAAA,IAAA;AAAM,MAAA,CAAA,EAAGA,MAAAA,CAAOzC,IAAI,CAAA,CAAA,EAAIyC,MAAAA,CAAOlF,KAAK,CAAA;AAAG,KAAA,CAAA,CACxD8E,IAAAA,EAAI;AAET,IAAA,IAAI7C,aAAAA,CAAcxC,SAAS,CAAA,EAAG;AAC1BkB,MAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,gBAAA,EAAYqB,aAAAA,CAAcxC,MAAM,CAAA,+BAAA,CAAiC,CAAA;AAClF,IAAA;AAGA,IAAA,IAAI0F,SAAAA;AACJ,IAAA,IAAIjD,MAAAA,KAAWG,MAAAA,IAAaH,MAAAA,CAAO8C,IAAAA,OAAW,EAAA,EAAI;AAC9CrE,MAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,mCAAA,EAA+BsB,MAAAA,CAAAA,CAAQ,CAAA;AACpDiD,MAAAA,SAAAA,GAAY;AAAC,QAAA,MAAA;AAAQ,QAAA,IAAA;AAAMjD,QAAAA;;IAC/B,CAAA,MAAO;AACHiD,MAAAA,SAAAA,GAAYJ,eAAe1C,MAAAA,GAAY;QAAC3D,IAAAA,CAAK+D,IAAAA;AAASf,QAAAA,GAAAA;AAAQA,OAAAA,GAAAA,IAAAA;AAClE,IAAA;AAGA,IAAA,MAAM0D,UAAAA,GAAa;AACf,MAAA,KAAA;SACIV,UAAAA,GAAa;AAAC,QAAA;UAAkB,EAAA;AACpC,MAAA,MAAA;AACGO,MAAAA,GAAAA,OAAAA;AACH,MAAA,IAAA;AACA,MAAA,CAAA,EAAGZ,aAAAA,CAAAA,WAAAA,CAAAA;AACH,MAAA,IAAA;AACA,MAAA,CAAA,WAAA,EAAcE,OAAAA,CAAAA,CAAAA;AACXI,MAAAA,GAAAA,UAAAA;SACCI,UAAAA,KAAe1C,MAAAA,GAAY,EAAA,GAAK;AAAC,QAAA,cAAA;AAAgB0C,QAAAA;;AACrDnF,MAAAA,QAAAA;AACGuF,MAAAA,GAAAA;;AAGPhB,IAAAA,aAAAA,GAAgB,MAAMlH,CAAAA,CAAAA,OAAAA,EAAWmI,UAAAA,CAAAA,CAAAA,CAAa5E,OAAAA,EAAO;AACrD6E,IAAAA,qBAAAA,CAAsB5D,OAAAA,EAAS0C,aAAAA,EAAeE,aAAAA,EAAeE,OAAAA,CAAAA;AACjE,EAAA;AAGA,EAAA,MAAM,EAAEzD,UAAQ,GAAKqD,aAAAA;AACrB,EAAA,IAAIrD,aAAa,CAAA,EAAG;AAChB1D,IAAAA,OAAAA,CAAQkI,IAAAA,CAAKxE,YAAY,CAAA,CAAA;AAC7B,EAAA;AACJ;AA1MsBU,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AA4MtB,SAAS6D,qBAAAA,CACL5D,OAAAA,EACA0C,aAAAA,EACAE,aAAAA,EACAE,OAAAA,EAAe;AAEf,EAAA,IAAI,YAAY9C,OAAAA,EAAS;AACrB,IAAA,MAAM8D,UAAAA,GAAmCpB,cAAcqB,IAAAA,EAAI;AAC3D,IAAA,MAAMC,OAAAA,GAAUF,UAAAA,CAAWG,MAAAA,CAAO9H,GAAAA,CAAI,CAAC+H,IAAAA,KAAiB,CAAA,EAAGA,IAAAA,CAAK3E,KAAAA,CAAM,IAAA,CAAA,CAAM,CAAA,CAAE,CAAA,GAAA,CAAK,CAAA;AACnF4E,IAAAA,EAAAA,CAAGC,aAAAA,CACCrB,IAAAA,CAAKnE,IAAAA,CAAKgE,aAAAA,EAAeE,OAAAA,EAAS,cAAA,CAAA,EAClCuB,IAAAA,CAAKC,SAAAA,CAAUN,OAAAA,EAAS,IAAA,EAAM,CAAA,CAAA,CAAA;AAEtC,EAAA;AACJ;AAdSJ,MAAAA,CAAAA,qBAAAA,EAAAA,uBAAAA,CAAAA","file":"POABMLRA.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 { EnvironmentVariable, 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 env: EnvironmentVariable[];\n script?: string;\n [key: string]: any;\n },\n): Promise<void> {\n const {\n cwd,\n forceDocker,\n volumes: userVolumes,\n customEntrypoint,\n env: customEnvVars,\n script,\n } = 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 const privileged = tool.privileged ?? false;\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;\n\n if (customEntrypoint !== undefined && customEntrypoint.trim() !== '') {\n console.info(`🔧 Using custom entrypoint: ${customEntrypoint}`);\n }\n\n // Build the Docker command with proper argument separation\n const envArgs = customEnvVars\n .map((envVar) => ['-e', `${envVar.name}=${envVar.value}`])\n .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 !== undefined && 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 ...(privileged ? ['--privileged'] : []),\n '--rm',\n ...envArgs,\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relPath}`,\n ...volumeArgs,\n ...(entryPoint === undefined ? [] : ['--entrypoint', entryPoint]),\n imageURI,\n ...finalArgs,\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"]}
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","env","customEnvVars","script","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","privileged","volumeArgs","volume","hostPath","flat","entryPoint","trim","envArgs","envVar","finalArgs","dockerArgs","saveAptosModulesOrder","exit","outputJson","json","modules","Result","item","fs","writeFileSync","JSON","stringify"],"mappings":"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","file":"DXKVHPTB.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 { EnvironmentVariable, 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 env: EnvironmentVariable[];\n script?: string;\n [key: string]: any;\n },\n): Promise<void> {\n const {\n cwd,\n forceDocker,\n volumes: userVolumes,\n customEntrypoint,\n env: customEnvVars,\n script,\n } = 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 const privileged = tool.privileged ?? false;\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;\n\n if (customEntrypoint !== undefined && customEntrypoint.trim() !== '') {\n console.info(`🔧 Using custom entrypoint: ${customEntrypoint}`);\n }\n\n // Build the Docker command with proper argument separation\n const envArgs = customEnvVars\n .map((envVar) => ['-e', `${envVar.name}=${envVar.value}`])\n .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 !== undefined && 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 ...(privileged ? ['--privileged'] : []),\n '--rm',\n ...envArgs,\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relPath}`,\n ...volumeArgs,\n ...(entryPoint === undefined ? [] : ['--entrypoint', entryPoint]),\n imageURI,\n ...finalArgs,\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"]}
@@ -1,4 +1,4 @@
1
- import { tools, findToolByName, getToolDefaultVersion, findMatrixByType, findToolsByType, getToolSupportedVersions } from './ODR3PEGR.js';
1
+ import { tools, findToolByName, getToolDefaultVersion, findMatrixByType, findToolsByType, getToolSupportedVersions } from './XJWXQV6E.js';
2
2
  import { parseVersionFileContents } from './BA2LAHMY.js';
3
3
  import { findBestCompatibleCombination } from './GAZMRBLT.js';
4
4
  import { __name } from './VUOMXK5T.js';
@@ -117,5 +117,5 @@ function resolveTypeVersions(type, userSpecifiedVersions, options, cwd) {
117
117
  __name(resolveTypeVersions, "resolveTypeVersions");
118
118
 
119
119
  export { extractUserVersions, resolveToolVersion, resolveTypeVersions };
120
- //# sourceMappingURL=27HYHTXW.js.map
121
- //# sourceMappingURL=27HYHTXW.js.map
120
+ //# sourceMappingURL=FYBVGT35.js.map
121
+ //# sourceMappingURL=FYBVGT35.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","Error","userVersion","envKey","toUpperCase","envVersion","process","env","parsedVersions","parseVersionFileContents","foundVersion","error","getToolDefaultVersion","resolveTypeVersions","type","matrix","findMatrixByType","typeTools","findToolsByType","length","resolvedVersions","usedDefaultFor","warnings","version","push","supportedVersions","getToolSupportedVersions","includes","join","matchedCombination","isCompatibleCombination","combo","combinations","matches","Object","entries","versions","every","compatibleCombo","findBestCompatibleCombination","adjusted","comboVersion","undefined","oldVersion","recommendedCombos","filter","c","isRecommended","map","id","description","console","info","combinationId"],"mappings":"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","file":"27HYHTXW.js","sourcesContent":["import process from 'process';\n\nimport { tools } from '../config';\nimport type { ToolType, VersionCombination, VersionResolutionResult } from '../types';\nimport { parseVersionFileContents } from '../utils';\nimport {\n findMatrixByType,\n findToolByName,\n findToolsByType,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder-utils';\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 if (!tool) {\n throw new Error(`Tool ${toolName} not found`);\n }\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: ToolType,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): VersionResolutionResult {\n const matrix = findMatrixByType(type);\n const typeTools = findToolsByType(type);\n\n if (!matrix || typeTools.length === 0) {\n throw new Error(`Type ${type} not found or no version matrix 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 let matchedCombination: VersionCombination | undefined;\n let isCompatibleCombination = false;\n\n for (const combo of matrix.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, matrix);\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 recommendedCombos = matrix.combinations\n .filter((c) => c.isRecommended)\n .map((c) => c.id)\n .join(', ');\n\n warnings.push(\n `⚠️ Custom version combination detected - not officially tested.\\n` +\n ` 💡 Stable combinations: ${recommendedCombos}\\n` +\n ` 🔍 Use 'lz-tool --list-versions' to see all tested combinations.`,\n );\n } else if (matchedCombination?.description !== undefined) {\n console.info(`✅ ${matchedCombination.description} (${matchedCombination.id})`);\n }\n\n return {\n resolvedVersions,\n isCompatibleCombination,\n usedDefaultFor,\n warnings,\n combinationId: matchedCombination?.id,\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","Error","userVersion","envKey","toUpperCase","envVersion","process","env","parsedVersions","parseVersionFileContents","foundVersion","error","getToolDefaultVersion","resolveTypeVersions","type","matrix","findMatrixByType","typeTools","findToolsByType","length","resolvedVersions","usedDefaultFor","warnings","version","push","supportedVersions","getToolSupportedVersions","includes","join","matchedCombination","isCompatibleCombination","combo","combinations","matches","Object","entries","versions","every","compatibleCombo","findBestCompatibleCombination","adjusted","comboVersion","undefined","oldVersion","recommendedCombos","filter","c","isRecommended","map","id","description","console","info","combinationId"],"mappings":";;;;;;AAiBO,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;AAC5B,EAAA,IAAI,CAACN,IAAAA,EAAM;AACP,IAAA,MAAM,IAAIU,KAAAA,CAAM,CAAA,KAAA,EAAQJ,QAAAA,CAAAA,UAAAA,CAAoB,CAAA;AAChD,EAAA;AAGA,EAAA,MAAMK,WAAAA,GAAcJ,sBAAsBD,QAAAA,CAAAA;AAC1C,EAAA,IAAI,OAAOK,WAAAA,KAAgB,QAAA,IAAYA,WAAAA,KAAgB,EAAA,EAAI;AACvD,IAAA,OAAOA,WAAAA;AACX,EAAA;AAGA,EAAA,MAAMC,MAAAA,GAAS,CAAA,EAAGZ,IAAAA,CAAKG,IAAAA,CAAKU,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,yBAAyBV,GAAAA,CAAAA;AAChD,IAAA,MAAMN,UAAAA,GAAa,CAAA,EAAGF,IAAAA,CAAKG,IAAI,WAAWU,WAAAA,EAAW;AACrD,IAAA,MAAMM,YAAAA,GAAeF,eAAef,UAAAA,CAAAA;AAEpC,IAAA,IAAI,OAAOiB,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,CAAsBrB,KAAKG,IAAI,CAAA;AAC1C;AAxCgBE,MAAAA,CAAAA,kBAAAA,EAAAA,oBAAAA,CAAAA;AA6CT,SAASiB,mBAAAA,CACZC,IAAAA,EACAhB,qBAAAA,EACAT,OAAAA,EACAU,GAAAA,EAAW;AAEX,EAAA,MAAMgB,MAAAA,GAASC,iBAAiBF,IAAAA,CAAAA;AAChC,EAAA,MAAMG,SAAAA,GAAYC,gBAAgBJ,IAAAA,CAAAA;AAElC,EAAA,IAAI,CAACC,MAAAA,IAAUE,SAAAA,CAAUE,MAAAA,KAAW,CAAA,EAAG;AACnC,IAAA,MAAM,IAAIlB,KAAAA,CAAM,CAAA,KAAA,EAAQa,IAAAA,CAAAA,yCAAAA,CAA+C,CAAA;AAC3E,EAAA;AAGA,EAAA,MAAMM,mBAA8C,EAAC;AACrD,EAAA,MAAMC,iBAA2B,EAAA;AACjC,EAAA,MAAMC,WAAqB,EAAA;AAE3B,EAAA,KAAA,MAAW/B,QAAQ0B,SAAAA,EAAW;AAC1B,IAAA,MAAMM,UAAU3B,kBAAAA,CAAmBL,IAAAA,CAAKG,IAAAA,EAAMI,qBAAAA,EAAuBT,SAASU,GAAAA,CAAAA;AAE9E,IAAA,IAAI,CAACwB,OAAAA,EAAS;AACV,MAAA;AACJ,IAAA;AAEAH,IAAAA,gBAAAA,CAAiB7B,IAAAA,CAAKG,IAAI,CAAA,GAAI6B,OAAAA;AAE9B,IAAA,IAAIA,OAAAA,KAAYX,qBAAAA,CAAsBrB,IAAAA,CAAKG,IAAI,CAAA,EAAG;AAC9C2B,MAAAA,cAAAA,CAAeG,IAAAA,CAAKjC,KAAKG,IAAI,CAAA;AACjC,IAAA;AAGA,IAAA,IAAI6B,OAAAA,KAAYX,qBAAAA,CAAsBrB,IAAAA,CAAKG,IAAI,CAAA,EAAG;AAC9C,MAAA,MAAM+B,iBAAAA,GAAoBC,wBAAAA,CAAyBnC,IAAAA,CAAKG,IAAI,CAAA;AAC5D,MAAA,IAAI,CAAC+B,iBAAAA,CAAkBE,QAAAA,CAASJ,OAAAA,CAAAA,EAAU;AACtCD,QAAAA,QAAAA,CAASE,IAAAA,CACL,CAAA,sBAAA,EAAeD,OAAAA,CAAAA,KAAAA,EAAehC,KAAKG,IAAI,CAAA;yBACT+B,iBAAAA,CAAkBG,IAAAA,CAAK,IAAA,CAAA;AACc,6DAAA,CAAA,CAAA;AAE3E,MAAA;AACJ,IAAA;AACJ,EAAA;AAGA,EAAA,IAAIC,kBAAAA;AACJ,EAAA,IAAIC,uBAAAA,GAA0B,KAAA;AAE9B,EAAA,KAAA,MAAWC,KAAAA,IAAShB,OAAOiB,YAAAA,EAAc;AACrC,IAAA,MAAMC,OAAAA,GAAUC,MAAAA,CAAOC,OAAAA,CAAQJ,KAAAA,CAAMK,QAAQ,CAAA,CAAEC,KAAAA,CAC3C,CAAC,CAAC9C,MAAMgC,OAAAA,CAAAA,KAAaH,gBAAAA,CAAiB7B,IAAAA,MAAUgC,OAAAA,CAAAA;AAGpD,IAAA,IAAIU,OAAAA,EAAS;AACTJ,MAAAA,kBAAAA,GAAqBE,KAAAA;AACrBD,MAAAA,uBAAAA,GAA0B,IAAA;AAC1B,MAAA;AACJ,IAAA;AACJ,EAAA;AAGA,EAAA,IAAI,CAACA,uBAAAA,IAA2BT,cAAAA,CAAeF,MAAAA,GAAS,CAAA,EAAG;AACvD,IAAA,MAAMmB,eAAAA,GAAkBC,6BAAAA,CAA8BnB,gBAAAA,EAAkBL,MAAAA,CAAAA;AAExE,IAAA,IAAIuB,eAAAA,EAAiB;AACjB,MAAA,IAAIE,QAAAA,GAAW,KAAA;AAEf,MAAA,KAAA,MAAW3C,YAAYwB,cAAAA,EAAgB;AACnC,QAAA,MAAMoB,YAAAA,GAAeH,eAAAA,CAAgBF,QAAAA,CAASvC,QAAAA,CAAAA;AAC9C,QAAA,IAAI4C,YAAAA,KAAiBC,MAAAA,IAAaD,YAAAA,KAAiBrB,gBAAAA,CAAiBvB,QAAAA,CAAAA,EAAW;AAC3E,UAAA,MAAM8C,UAAAA,GAAavB,iBAAiBvB,QAAAA,CAAAA;AACpCuB,UAAAA,gBAAAA,CAAiBvB,QAAAA,CAAAA,GAAY4C,YAAAA;AAC7BnB,UAAAA,QAAAA,CAASE,KACL,CAAA,wBAAA,EAAoB3B,QAAAA,KAAa8C,UAAAA,CAAAA,QAAAA,EAAgBF,YAAAA,CAAAA,oBAAAA,CAAkC,CAAA;AAEvFD,UAAAA,QAAAA,GAAW,IAAA;AACf,QAAA;AACJ,MAAA;AAEA,MAAA,IAAIA,QAAAA,EAAU;AACVX,QAAAA,kBAAAA,GAAqBS,eAAAA;AACrBR,QAAAA,uBAAAA,GAA0B,IAAA;AAC9B,MAAA;AACJ,IAAA;AACJ,EAAA;AAGA,EAAA,IAAI,CAACA,uBAAAA,EAAyB;AAC1B,IAAA,MAAMc,oBAAoB7B,MAAAA,CAAOiB,YAAAA,CAC5Ba,MAAAA,CAAO,CAACC,MAAMA,CAAAA,CAAEC,aAAa,CAAA,CAC7BC,GAAAA,CAAI,CAACF,CAAAA,KAAMA,CAAAA,CAAEG,EAAE,CAAA,CACfrB,KAAK,IAAA,CAAA;AAEVN,IAAAA,QAAAA,CAASE,IAAAA,CACL,CAAA;oCACkCoB,iBAAAA;AACuC,0EAAA,CAAA,CAAA;EAEjF,CAAA,MAAA,IAAWf,kBAAAA,EAAoBqB,gBAAgBR,MAAAA,EAAW;AACtDS,IAAAA,OAAAA,CAAQC,KAAK,CAAA,OAAA,EAAKvB,kBAAAA,CAAmBqB,WAAW,CAAA,EAAA,EAAKrB,kBAAAA,CAAmBoB,EAAE,CAAA,CAAA,CAAG,CAAA;AACjF,EAAA;AAEA,EAAA,OAAO;AACH7B,IAAAA,gBAAAA;AACAU,IAAAA,uBAAAA;AACAT,IAAAA,cAAAA;AACAC,IAAAA,QAAAA;AACA+B,IAAAA,aAAAA,EAAexB,kBAAAA,EAAoBoB;AACvC,GAAA;AACJ;AA7GgBpC,MAAAA,CAAAA,mBAAAA,EAAAA,qBAAAA,CAAAA","file":"FYBVGT35.js","sourcesContent":["import process from 'process';\n\nimport { tools } from '../config';\nimport type { ToolType, VersionCombination, VersionResolutionResult } from '../types';\nimport { parseVersionFileContents } from '../utils';\nimport {\n findMatrixByType,\n findToolByName,\n findToolsByType,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder-utils';\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 if (!tool) {\n throw new Error(`Tool ${toolName} not found`);\n }\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: ToolType,\n userSpecifiedVersions: { [key: string]: string },\n options: { [key: string]: any },\n cwd: string,\n): VersionResolutionResult {\n const matrix = findMatrixByType(type);\n const typeTools = findToolsByType(type);\n\n if (!matrix || typeTools.length === 0) {\n throw new Error(`Type ${type} not found or no version matrix 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 let matchedCombination: VersionCombination | undefined;\n let isCompatibleCombination = false;\n\n for (const combo of matrix.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, matrix);\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 recommendedCombos = matrix.combinations\n .filter((c) => c.isRecommended)\n .map((c) => c.id)\n .join(', ');\n\n warnings.push(\n `⚠️ Custom version combination detected - not officially tested.\\n` +\n ` 💡 Stable combinations: ${recommendedCombos}\\n` +\n ` 🔍 Use 'lz-tool --list-versions' to see all tested combinations.`,\n );\n } else if (matchedCombination?.description !== undefined) {\n console.info(`✅ ${matchedCombination.description} (${matchedCombination.id})`);\n }\n\n return {\n resolvedVersions,\n isCompatibleCombination,\n usedDefaultFor,\n warnings,\n combinationId: matchedCombination?.id,\n };\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var _3EOFF6NK_cjs = require('./3EOFF6NK.cjs');
4
- var _377FOBYP_cjs = require('./377FOBYP.cjs');
4
+ var _6FHMI4HI_cjs = require('./6FHMI4HI.cjs');
5
5
  var NX4KBEWA_cjs = require('./NX4KBEWA.cjs');
6
6
  var fs = require('fs');
7
7
  var semver = require('semver');
@@ -171,6 +171,11 @@ var tools = [
171
171
  type: "isolate",
172
172
  containerPath: "/root/.move",
173
173
  name: "lz-tooling-sui-cache"
174
+ },
175
+ {
176
+ type: "isolate",
177
+ containerPath: "/root/.sui",
178
+ name: "lz-tooling-sui-config"
174
179
  }
175
180
  ],
176
181
  versionCliArguments: [
@@ -198,7 +203,7 @@ function getToolType(toolName) {
198
203
  }
199
204
  NX4KBEWA_cjs.__name(getToolType, "getToolType");
200
205
  function findMatrixByType(type) {
201
- return _377FOBYP_cjs.versionMatrices.find((matrix) => matrix.toolType === type);
206
+ return _6FHMI4HI_cjs.versionMatrices.find((matrix) => matrix.toolType === type);
202
207
  }
203
208
  NX4KBEWA_cjs.__name(findMatrixByType, "findMatrixByType");
204
209
  function findDefaultCombination(matrix) {
@@ -264,5 +269,5 @@ exports.parseAnchorTomlVersion = parseAnchorTomlVersion;
264
269
  exports.tools = tools;
265
270
  exports.validateToolVersion = validateToolVersion;
266
271
  exports.versionsSatisfied = versionsSatisfied;
267
- //# sourceMappingURL=BVCDSSHB.cjs.map
268
- //# sourceMappingURL=BVCDSSHB.cjs.map
272
+ //# sourceMappingURL=IU7G43CF.cjs.map
273
+ //# sourceMappingURL=IU7G43CF.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/version-utils.ts","../src/config/tools.ts","../src/config/index.ts","../src/utils/finder-utils.ts"],"names":["versionsSatisfied","current","expected","satisfies","version","parseAnchorTomlVersion","cwd","name","projectFolder","findParentDirectoryWithFile","Error","toml","fs","readFileSync","file","test","match","exec","_","matchedName","findSemVersionFromString","input","length","validateToolVersion","toolName","supportedVersions","getToolSupportedVersions","includes","SolanaDefaultVolumes","type","containerPath","tools","toolType","fromImage","defaultVolumes","versionCliArguments","privileged","getSecondaryVersionCheckValue","__name","entryPoint","AWS_ACCOUNT_ID","AWS_REGION","findToolByName","find","tool","findToolsByType","filter","getToolType","findMatrixByType","versionMatrices","matrix","findDefaultCombination","recommended","combinations","combo","isRecommended","getToolDefaultVersion","defaultCombination","defaultVersion","versions","console","warn","Set","combination","add","Array","from","sort"],"mappings":"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","file":"IU7G43CF.cjs","sourcesContent":["import fs from 'fs';\nimport * as semver from 'semver';\n\nimport type { Version } from '../types';\nimport { findParentDirectoryWithFile } from '../utils';\nimport { getToolSupportedVersions } from './finder-utils';\n\n/**\n * Check if current version satisfies expected version using semver\n */\nexport function versionsSatisfied(current: Version, expected: Version): boolean {\n return semver.satisfies(current.version, expected.version);\n}\n\n/**\n * Parse anchor/solana version from Anchor.toml file\n */\nexport function parseAnchorTomlVersion(cwd: string, name: 'anchor' | 'solana'): Version {\n const projectFolder = findParentDirectoryWithFile(cwd, 'Anchor.toml');\n\n if (projectFolder === null) {\n throw new Error('Anchor project not found');\n }\n\n const toml = fs.readFileSync(projectFolder.file, 'utf-8');\n\n const test = /^([a-z]+)(?:_version ?= ?\")((?:[0-9]+\\.?){3})(?:\")$/gm;\n\n let match;\n while ((match = test.exec(toml))) {\n const [_, matchedName, version] = match;\n if (matchedName === name) {\n return { version };\n }\n }\n\n throw new Error(`${name} version not found in ${projectFolder.file}`);\n}\n\n/**\n * Find semantic version from string output\n */\nexport function findSemVersionFromString(input: string): Version {\n const match = input.match(/^(solana-cli|anchor-cli|aptos)\\s+(([0-9]+\\.?){3}).*?/m);\n if (match === null || match.length < 3) {\n throw new Error(`Invalid semver version: ${input}`);\n }\n\n return { version: match[2] };\n}\n\n/**\n * Validate if a tool version is in the supported versions list\n */\nexport function validateToolVersion(toolName: string, version: string): boolean {\n const supportedVersions = getToolSupportedVersions(toolName);\n return supportedVersions.includes(version);\n}\n","import type { GetExpectedVersionParameter, Tool, Version, VolumeMapping } from '../types';\nimport { parseAnchorTomlVersion } from '../utils/version-utils';\n\nconst SolanaDefaultVolumes: VolumeMapping[] = [\n {\n type: 'isolate',\n containerPath: '/usr/local/cargo',\n name: 'lz-tooling-cargo-cache',\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/rustup',\n name: 'lz-tooling-rustup-cache',\n },\n {\n type: 'isolate',\n containerPath: '/var/lib/docker',\n name: 'lz-tooling-docker-cache',\n },\n];\n\n/**\n * Tool configurations with individual settings (version info managed by version-matrices)\n */\nexport const tools: readonly Tool[] = [\n {\n name: 'hardhat',\n toolType: 'evm',\n fromImage: 'evm',\n defaultVolumes: [],\n versionCliArguments: ['--version'],\n },\n {\n name: 'forge',\n toolType: 'evm',\n fromImage: 'evm',\n },\n {\n name: 'anchor',\n toolType: 'solana',\n fromImage: 'solana',\n privileged: true,\n defaultVolumes: SolanaDefaultVolumes,\n getSecondaryVersionCheckValue: ({ cwd }: GetExpectedVersionParameter): Version => {\n return parseAnchorTomlVersion(cwd, 'anchor');\n },\n },\n {\n name: 'solana',\n toolType: 'solana',\n fromImage: 'solana',\n privileged: true,\n defaultVolumes: SolanaDefaultVolumes,\n getSecondaryVersionCheckValue: ({ cwd }: GetExpectedVersionParameter): Version => {\n return parseAnchorTomlVersion(cwd, 'solana');\n },\n },\n {\n name: 'aptos',\n toolType: 'aptos',\n fromImage: 'aptos',\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'lz-tooling-aptos-cache',\n },\n ],\n versionCliArguments: ['--version'],\n },\n {\n name: 'initiad',\n toolType: 'initia',\n fromImage: 'initia',\n entryPoint: 'initiad', // Explicitly set the same as name for clarity\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'lz-tooling-initia-cache',\n },\n ],\n versionCliArguments: ['--version'],\n },\n {\n name: 'blueprint',\n toolType: 'ton',\n fromImage: 'ton',\n },\n {\n name: 'scarb',\n toolType: 'starknet',\n fromImage: 'starknet',\n },\n {\n name: 'sui',\n toolType: 'sui',\n fromImage: 'sui',\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'lz-tooling-sui-cache',\n },\n {\n type: 'isolate',\n containerPath: '/root/.sui',\n name: 'lz-tooling-sui-config',\n },\n ],\n versionCliArguments: ['--version'],\n },\n];\n","// Export configuration data\nexport { tools } from './tools';\nexport { versionMatrices } from './version-matrices';\nexport const AWS_ACCOUNT_ID = '438003944538';\nexport const AWS_REGION = 'us-east-1';\n","import { tools, versionMatrices } from '../config';\nimport type { Tool, ToolType, ToolVersionMatrix, VersionCombination } from '../types';\n\n/**\n * Find a tool configuration by name\n */\nexport function findToolByName(toolName: string): Tool | undefined {\n return tools.find((tool) => tool.name === toolName);\n}\n\n/**\n * Find all tools in a specific type\n */\nexport function findToolsByType(type: ToolType): Tool[] {\n return tools.filter((tool) => tool.toolType === type);\n}\n\n/**\n * Get the type for a specific tool\n */\nexport function getToolType(toolName: string): ToolType | undefined {\n const tool = findToolByName(toolName);\n return tool?.toolType;\n}\n\n/**\n * Find version matrix for a specific tool type\n */\nexport function findMatrixByType(type: ToolType): ToolVersionMatrix | undefined {\n return versionMatrices.find((matrix) => matrix.toolType === type);\n}\n\n/**\n * Find the default combination for a tool type\n * Returns the first combination marked as isRecommended=true, or combinations[0] if none marked\n */\nexport function findDefaultCombination(matrix: ToolVersionMatrix): VersionCombination {\n // First, try to find a recommended combination\n const recommended = matrix.combinations.find((combo) => combo.isRecommended === true);\n if (recommended) {\n return recommended;\n }\n\n // If no recommended combination, use the first one\n if (matrix.combinations.length === 0) {\n throw new Error(`No combinations found in matrix for type '${matrix.toolType}'`);\n }\n\n return matrix.combinations[0];\n}\n\n/**\n * Get default version for a specific tool from version matrix\n */\nexport function getToolDefaultVersion(toolName: string): string | null {\n const tool = findToolByName(toolName);\n if (!tool) {\n throw new Error(`Tool '${toolName}' not found`);\n }\n\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 const defaultCombination = findDefaultCombination(matrix);\n const defaultVersion = defaultCombination.versions[toolName];\n if (!defaultVersion?.length) {\n console.warn(`No default version found for tool '${toolName}' in matrix`);\n return null;\n }\n\n return defaultVersion;\n}\n\n/**\n * Get supported versions for a specific tool from version matrix\n */\nexport function getToolSupportedVersions(toolName: string): string[] {\n const tool = findToolByName(toolName);\n if (!tool) {\n throw new Error(`Tool '${toolName}' not found`);\n }\n\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 // Extract all unique versions for this tool from all combinations\n const versions = new Set<string>();\n for (const combination of matrix.combinations) {\n const version = combination.versions[toolName];\n if (version != null && version.length > 0) {\n versions.add(version);\n }\n }\n\n return Array.from(versions).sort();\n}\n"]}
@@ -18,11 +18,11 @@ var versionMatrices = [
18
18
  isRecommended: true
19
19
  },
20
20
  {
21
- id: "forge_1.3.6_hardhat_2.26.3_dockerfile_1.0.0",
21
+ id: "forge_1.3.6_hardhat_2.26.3_dockerfile_1.1.1",
22
22
  versions: {
23
23
  forge: "1.3.6",
24
24
  hardhat: "2.26.3",
25
- dockerfile: "1.0.0"
25
+ dockerfile: "1.1.1"
26
26
  }
27
27
  }
28
28
  ]
@@ -100,7 +100,7 @@ var versionMatrices = [
100
100
  id: "scarb_2.12.0",
101
101
  versions: {
102
102
  scarb: "2.12.0",
103
- patch: "2"
103
+ patch: "3"
104
104
  }
105
105
  }
106
106
  ]
@@ -120,5 +120,5 @@ var versionMatrices = [
120
120
  ];
121
121
 
122
122
  export { versionMatrices };
123
- //# sourceMappingURL=3772Y3PC.js.map
124
- //# sourceMappingURL=3772Y3PC.js.map
123
+ //# sourceMappingURL=OESMGGGL.js.map
124
+ //# sourceMappingURL=OESMGGGL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/config/version-matrices.ts"],"names":["versionMatrices","toolType","combinations","id","versions","hardhat","forge","isRecommended","dockerfile","solana","anchor","description","aptos","initiad","blueprint","scarb","patch","sui"],"mappings":";AAMO,IAAMA,eAAAA,GAAuC;AAChD,EAAA;IACIC,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,gBAAA;QACJC,QAAAA,EAAU;UAAEC,OAAAA,EAAS;AAAS;AAClC,OAAA;AACA,MAAA;QACIF,EAAAA,EAAI,4BAAA;QACJC,QAAAA,EAAU;UAAEE,KAAAA,EAAO,OAAA;UAASD,OAAAA,EAAS;AAAS,SAAA;QAC9CE,aAAAA,EAAe;AACnB,OAAA;AACA,MAAA;QACIJ,EAAAA,EAAI,6CAAA;QACJC,QAAAA,EAAU;UAAEE,KAAAA,EAAO,OAAA;UAASD,OAAAA,EAAS,QAAA;UAAUG,UAAAA,EAAY;AAAQ;AACvE;;AAER,GAAA;AACA,EAAA;IACIP,QAAAA,EAAU,QAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,8BAAA;QACJC,QAAAA,EAAU;UAAEK,MAAAA,EAAQ,SAAA;UAAWC,MAAAA,EAAQ;AAAS,SAAA;QAChDH,aAAAA,EAAe,IAAA;QACfI,WAAAA,EAAa;AACjB,OAAA;AACA,MAAA;QACIR,EAAAA,EAAI,6BAAA;QACJC,QAAAA,EAAU;UAAEK,MAAAA,EAAQ,QAAA;UAAUC,MAAAA,EAAQ;AAAS,SAAA;QAC/CC,WAAAA,EAAa;AACjB;;AAER,GAAA;AACA,EAAA;IACIV,QAAAA,EAAU,OAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,aAAA;QACJC,QAAAA,EAAU;UAAEQ,KAAAA,EAAO;AAAQ,SAAA;QAC3BL,aAAAA,EAAe;AACnB;;AAOR,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,QAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAES,OAAAA,EAAS;AAAQ,SAAA;QAC7BN,aAAAA,EAAe;AACnB;;AAER,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,mBAAA;QACJC,QAAAA,EAAU;UAAEU,SAAAA,EAAW;AAAgB,SAAA;QACvCP,aAAAA,EAAe;AACnB;;AAER,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,UAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAEW,KAAAA,EAAO,QAAA;UAAUC,KAAAA,EAAO;AAAI,SAAA;QACxCT,aAAAA,EAAe;AACnB,OAAA;AACA,MAAA;QACIJ,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAEW,KAAAA,EAAO,QAAA;UAAUC,KAAAA,EAAO;AAAI;AAC5C;;AAER,GAAA;AACA,EAAA;IACIf,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,YAAA;QACJC,QAAAA,EAAU;UAAEa,GAAAA,EAAK;AAAgB,SAAA;QACjCV,aAAAA,EAAe;AACnB;;AAER","file":"3772Y3PC.js","sourcesContent":["import type { ToolVersionMatrix } from '../types';\n\n/**\n * Version compatibility matrices for each tool type\n * Default combination is the first one marked as isRecommended=true\n */\nexport const versionMatrices: ToolVersionMatrix[] = [\n {\n toolType: 'evm',\n combinations: [\n {\n id: 'hardhat_2.19.3',\n versions: { hardhat: '2.19.3' },\n },\n {\n id: 'forge_1.3.6_hardhat_2.26.3',\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n isRecommended: true,\n },\n {\n id: 'forge_1.3.6_hardhat_2.26.3_dockerfile_1.0.0',\n versions: { forge: '1.3.6', hardhat: '2.26.3', dockerfile: '1.0.0' },\n },\n ],\n },\n {\n toolType: 'solana',\n combinations: [\n {\n id: 'solana_1.17.31_anchor_0.29.0',\n versions: { solana: '1.17.31', anchor: '0.29.0' },\n isRecommended: true,\n description: 'Stable and well-tested',\n },\n {\n id: 'solana_2.2.20_anchor_0.31.1',\n versions: { solana: '2.2.20', anchor: '0.31.1' },\n description: 'Latest stable release',\n },\n ],\n },\n {\n toolType: 'aptos',\n combinations: [\n {\n id: 'aptos_4.6.0',\n versions: { aptos: '4.6.0' },\n isRecommended: true,\n },\n // TODO Enable Aptos v6.\n // {\n // id: 'aptos_6.0.1',\n // versions: { aptos: '6.0.1' },\n // },\n ],\n },\n {\n toolType: 'initia',\n combinations: [\n {\n id: 'initia_0.6.3',\n versions: { initiad: '0.6.3' },\n isRecommended: true,\n },\n ],\n },\n {\n toolType: 'ton',\n combinations: [\n {\n id: 'ton_0.25.0-beta.1',\n versions: { blueprint: '0.25.0-beta.1' },\n isRecommended: true,\n },\n ],\n },\n {\n toolType: 'starknet',\n combinations: [\n {\n id: 'scarb_2.12.0',\n versions: { scarb: '2.12.0', patch: '1' },\n isRecommended: true,\n },\n {\n id: 'scarb_2.12.0',\n versions: { scarb: '2.12.0', patch: '2' },\n },\n ],\n },\n {\n toolType: 'sui',\n combinations: [\n {\n id: 'sui_1.54.1',\n versions: { sui: '1.54.1-beta.0' },\n isRecommended: true,\n },\n ],\n },\n];\n"]}
1
+ {"version":3,"sources":["../src/config/version-matrices.ts"],"names":["versionMatrices","toolType","combinations","id","versions","hardhat","forge","isRecommended","dockerfile","solana","anchor","description","aptos","initiad","blueprint","scarb","patch","sui"],"mappings":";AAMO,IAAMA,eAAAA,GAAuC;AAChD,EAAA;IACIC,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,gBAAA;QACJC,QAAAA,EAAU;UAAEC,OAAAA,EAAS;AAAS;AAClC,OAAA;AACA,MAAA;QACIF,EAAAA,EAAI,4BAAA;QACJC,QAAAA,EAAU;UAAEE,KAAAA,EAAO,OAAA;UAASD,OAAAA,EAAS;AAAS,SAAA;QAC9CE,aAAAA,EAAe;AACnB,OAAA;AACA,MAAA;QACIJ,EAAAA,EAAI,6CAAA;QACJC,QAAAA,EAAU;UAAEE,KAAAA,EAAO,OAAA;UAASD,OAAAA,EAAS,QAAA;UAAUG,UAAAA,EAAY;AAAQ;AACvE;;AAER,GAAA;AACA,EAAA;IACIP,QAAAA,EAAU,QAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,8BAAA;QACJC,QAAAA,EAAU;UAAEK,MAAAA,EAAQ,SAAA;UAAWC,MAAAA,EAAQ;AAAS,SAAA;QAChDH,aAAAA,EAAe,IAAA;QACfI,WAAAA,EAAa;AACjB,OAAA;AACA,MAAA;QACIR,EAAAA,EAAI,6BAAA;QACJC,QAAAA,EAAU;UAAEK,MAAAA,EAAQ,QAAA;UAAUC,MAAAA,EAAQ;AAAS,SAAA;QAC/CC,WAAAA,EAAa;AACjB;;AAER,GAAA;AACA,EAAA;IACIV,QAAAA,EAAU,OAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,aAAA;QACJC,QAAAA,EAAU;UAAEQ,KAAAA,EAAO;AAAQ,SAAA;QAC3BL,aAAAA,EAAe;AACnB;;AAOR,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,QAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAES,OAAAA,EAAS;AAAQ,SAAA;QAC7BN,aAAAA,EAAe;AACnB;;AAER,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,mBAAA;QACJC,QAAAA,EAAU;UAAEU,SAAAA,EAAW;AAAgB,SAAA;QACvCP,aAAAA,EAAe;AACnB;;AAER,GAAA;AACA,EAAA;IACIN,QAAAA,EAAU,UAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAEW,KAAAA,EAAO,QAAA;UAAUC,KAAAA,EAAO;AAAI,SAAA;QACxCT,aAAAA,EAAe;AACnB,OAAA;AACA,MAAA;QACIJ,EAAAA,EAAI,cAAA;QACJC,QAAAA,EAAU;UAAEW,KAAAA,EAAO,QAAA;UAAUC,KAAAA,EAAO;AAAI;AAC5C;;AAER,GAAA;AACA,EAAA;IACIf,QAAAA,EAAU,KAAA;IACVC,YAAAA,EAAc;AACV,MAAA;QACIC,EAAAA,EAAI,YAAA;QACJC,QAAAA,EAAU;UAAEa,GAAAA,EAAK;AAAgB,SAAA;QACjCV,aAAAA,EAAe;AACnB;;AAER","file":"OESMGGGL.js","sourcesContent":["import type { ToolVersionMatrix } from '../types';\n\n/**\n * Version compatibility matrices for each tool type\n * Default combination is the first one marked as isRecommended=true\n */\nexport const versionMatrices: ToolVersionMatrix[] = [\n {\n toolType: 'evm',\n combinations: [\n {\n id: 'hardhat_2.19.3',\n versions: { hardhat: '2.19.3' },\n },\n {\n id: 'forge_1.3.6_hardhat_2.26.3',\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n isRecommended: true,\n },\n {\n id: 'forge_1.3.6_hardhat_2.26.3_dockerfile_1.1.1',\n versions: { forge: '1.3.6', hardhat: '2.26.3', dockerfile: '1.1.1' },\n },\n ],\n },\n {\n toolType: 'solana',\n combinations: [\n {\n id: 'solana_1.17.31_anchor_0.29.0',\n versions: { solana: '1.17.31', anchor: '0.29.0' },\n isRecommended: true,\n description: 'Stable and well-tested',\n },\n {\n id: 'solana_2.2.20_anchor_0.31.1',\n versions: { solana: '2.2.20', anchor: '0.31.1' },\n description: 'Latest stable release',\n },\n ],\n },\n {\n toolType: 'aptos',\n combinations: [\n {\n id: 'aptos_4.6.0',\n versions: { aptos: '4.6.0' },\n isRecommended: true,\n },\n // TODO Enable Aptos v6.\n // {\n // id: 'aptos_6.0.1',\n // versions: { aptos: '6.0.1' },\n // },\n ],\n },\n {\n toolType: 'initia',\n combinations: [\n {\n id: 'initia_0.6.3',\n versions: { initiad: '0.6.3' },\n isRecommended: true,\n },\n ],\n },\n {\n toolType: 'ton',\n combinations: [\n {\n id: 'ton_0.25.0-beta.1',\n versions: { blueprint: '0.25.0-beta.1' },\n isRecommended: true,\n },\n ],\n },\n {\n toolType: 'starknet',\n combinations: [\n {\n id: 'scarb_2.12.0',\n versions: { scarb: '2.12.0', patch: '1' },\n isRecommended: true,\n },\n {\n id: 'scarb_2.12.0',\n versions: { scarb: '2.12.0', patch: '3' },\n },\n ],\n },\n {\n toolType: 'sui',\n combinations: [\n {\n id: 'sui_1.54.1',\n versions: { sui: '1.54.1-beta.0' },\n isRecommended: true,\n },\n ],\n },\n];\n"]}