@layerzerolabs/vm-tooling 0.0.63 → 0.0.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/{DV6Y5YK3.cjs → 22KWM667.cjs} +12 -12
  2. package/dist/22KWM667.cjs.map +1 -0
  3. package/dist/3H446V2K.js +6 -0
  4. package/dist/3H446V2K.js.map +1 -0
  5. package/dist/{KFOKN2M2.cjs → 4QL6ZBHT.cjs} +4 -4
  6. package/dist/{KFOKN2M2.cjs.map → 4QL6ZBHT.cjs.map} +1 -1
  7. package/dist/{CJNBA2MN.js → 6YQKZHZ5.js} +81 -61
  8. package/dist/6YQKZHZ5.js.map +1 -0
  9. package/dist/7PSRMQMS.cjs +51 -0
  10. package/dist/7PSRMQMS.cjs.map +1 -0
  11. package/dist/{L6RZSSWB.cjs → BG3MG6IF.cjs} +15 -15
  12. package/dist/{L6RZSSWB.cjs.map → BG3MG6IF.cjs.map} +1 -1
  13. package/dist/{HSC5AWAD.cjs → BNMJ5QME.cjs} +3 -3
  14. package/dist/{HSC5AWAD.cjs.map → BNMJ5QME.cjs.map} +1 -1
  15. package/dist/{NX66I36H.js → DN5VBC3L.js} +17 -20
  16. package/dist/DN5VBC3L.js.map +1 -0
  17. package/dist/{KONCDJAL.cjs → ER722VGO.cjs} +14 -14
  18. package/dist/{KONCDJAL.cjs.map → ER722VGO.cjs.map} +1 -1
  19. package/dist/{TBDZQONT.js → GBR35MZ7.js} +3 -3
  20. package/dist/{TBDZQONT.js.map → GBR35MZ7.js.map} +1 -1
  21. package/dist/{WHAPJZ3U.cjs → GERMNIDG.cjs} +81 -60
  22. package/dist/GERMNIDG.cjs.map +1 -0
  23. package/dist/{45K4IRAA.js → JZHAF3IW.js} +5 -5
  24. package/dist/{45K4IRAA.js.map → JZHAF3IW.js.map} +1 -1
  25. package/dist/{UHPHZ6AE.js → KFXJIHI6.js} +3 -3
  26. package/dist/{UHPHZ6AE.js.map → KFXJIHI6.js.map} +1 -1
  27. package/dist/{FI3AZBYE.cjs → KPYTMXHJ.cjs} +4 -4
  28. package/dist/{FI3AZBYE.cjs.map → KPYTMXHJ.cjs.map} +1 -1
  29. package/dist/{SPOUVTPR.cjs → KTAMTSBK.cjs} +3 -3
  30. package/dist/{SPOUVTPR.cjs.map → KTAMTSBK.cjs.map} +1 -1
  31. package/dist/{JLKKDVCL.cjs → Q3ORCLJH.cjs} +17 -20
  32. package/dist/Q3ORCLJH.cjs.map +1 -0
  33. package/dist/{5APCIOW3.js → QPWLW7SN.js} +4 -4
  34. package/dist/QPWLW7SN.js.map +1 -0
  35. package/dist/R2U2WXP4.js +49 -0
  36. package/dist/R2U2WXP4.js.map +1 -0
  37. package/dist/{5QGJ7CFM.js → W5XVOHRB.js} +4 -4
  38. package/dist/{5QGJ7CFM.js.map → W5XVOHRB.js.map} +1 -1
  39. package/dist/{5JYEGDVK.js → XYNAO6GV.js} +4 -4
  40. package/dist/{5JYEGDVK.js.map → XYNAO6GV.js.map} +1 -1
  41. package/dist/{U4OLGGKH.js → Y3REZYJA.js} +3 -3
  42. package/dist/{U4OLGGKH.js.map → Y3REZYJA.js.map} +1 -1
  43. package/dist/Y7OWS2C2.cjs +8 -0
  44. package/dist/Y7OWS2C2.cjs.map +1 -0
  45. package/dist/commands/sui/build.cjs +20 -0
  46. package/dist/commands/sui/build.cjs.map +1 -0
  47. package/dist/commands/sui/build.d.ts +3 -0
  48. package/dist/commands/sui/build.d.ts.map +1 -0
  49. package/dist/commands/sui/build.js +11 -0
  50. package/dist/commands/sui/build.js.map +1 -0
  51. package/dist/commands/sui/index.cjs +21 -0
  52. package/dist/commands/sui/index.cjs.map +1 -0
  53. package/dist/commands/sui/index.d.ts +2 -0
  54. package/dist/commands/sui/index.d.ts.map +1 -0
  55. package/dist/commands/sui/index.js +12 -0
  56. package/dist/commands/sui/index.js.map +1 -0
  57. package/dist/config/index.cjs +8 -8
  58. package/dist/config/index.js +2 -2
  59. package/dist/config/tools.cjs +7 -3
  60. package/dist/config/tools.d.ts +2 -1
  61. package/dist/config/tools.d.ts.map +1 -1
  62. package/dist/config/tools.js +2 -2
  63. package/dist/config/version-matrices.cjs +2 -2
  64. package/dist/config/version-matrices.js +1 -1
  65. package/dist/core/index.cjs +9 -9
  66. package/dist/core/index.js +5 -5
  67. package/dist/core/tool-executor.cjs +6 -6
  68. package/dist/core/tool-executor.d.ts +7 -6
  69. package/dist/core/tool-executor.d.ts.map +1 -1
  70. package/dist/core/tool-executor.js +5 -5
  71. package/dist/core/version-resolver.cjs +6 -6
  72. package/dist/core/version-resolver.js +3 -3
  73. package/dist/display/formatters.cjs +4 -4
  74. package/dist/display/formatters.js +3 -3
  75. package/dist/display/index.cjs +7 -7
  76. package/dist/display/index.js +4 -4
  77. package/dist/display/version-display.cjs +6 -6
  78. package/dist/display/version-display.js +4 -4
  79. package/dist/index.cjs +25 -15
  80. package/dist/index.cjs.map +1 -1
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +18 -8
  83. package/dist/index.js.map +1 -1
  84. package/dist/scripts/generate-github-matrix.cjs +9 -9
  85. package/dist/scripts/generate-github-matrix.js +5 -5
  86. package/dist/types/tool.cjs.map +1 -1
  87. package/dist/types/tool.d.ts +1 -1
  88. package/dist/types/tool.d.ts.map +1 -1
  89. package/dist/types/tool.js.map +1 -1
  90. package/dist/utils/docker.cjs +4 -4
  91. package/dist/utils/docker.js +2 -2
  92. package/dist/utils/finder.cjs +11 -11
  93. package/dist/utils/finder.js +2 -2
  94. package/dist/utils/version.cjs +6 -6
  95. package/dist/utils/version.js +2 -2
  96. package/dist/utils.cjs +5 -5
  97. package/dist/utils.js +2 -2
  98. package/package.json +5 -5
  99. package/dist/5APCIOW3.js.map +0 -1
  100. package/dist/CJNBA2MN.js.map +0 -1
  101. package/dist/DV6Y5YK3.cjs.map +0 -1
  102. package/dist/JLKKDVCL.cjs.map +0 -1
  103. package/dist/NX66I36H.js.map +0 -1
  104. package/dist/WHAPJZ3U.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/config/version-matrices.ts"],"names":["init_cjs_shims","versionMatrices","ChainType","EVM","versions","forge","hardhat","patch","stable","SOLANA","solana","anchor","description","APTOSMOVE","aptos","initiad","movement","TON","blueprint","STARKNET","scarb","SUIMOVE","sui","STELLAR","stellar"],"mappings":";;;;;;AAAAA,2BAAA,EAAA;AAQO,IAAMC,eAAAA,GAAoF;EAC7F,CAACC,8BAAAA,CAAUC,GAAG,GAAG;AACb,IAAA;MACIC,QAAAA,EAAU;QAAEC,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAS,OAAA;MAC9CC,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEC,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAS;AAClD,KAAA;AACA,IAAA;;MAEIF,QAAAA,EAAU;QAAEE,OAAAA,EAAS;AAAS;AAClC;;EAEJ,CAACJ,8BAAAA,CAAUO,MAAM,GAAG;AAChB,IAAA;;MAEIL,QAAAA,EAAU;QAAEM,MAAAA,EAAQ,SAAA;QAAWC,MAAAA,EAAQ;AAAS,OAAA;MAChDC,WAAAA,EAAa,wBAAA;MACbJ,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEM,MAAAA,EAAQ,QAAA;QAAUC,MAAAA,EAAQ;AAAS,OAAA;MAC/CC,WAAAA,EAAa;AACjB;;EAEJ,CAACV,8BAAAA,CAAUW,SAAS,GAAG;AACnB,IAAA;MACIT,QAAAA,EAAU;QAAEU,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAQ,OAAA;MAC7CP,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEU,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS,OAAA;QAASC,QAAAA,EAAU;AAAQ;AACpE,KAAA;AACA,IAAA;MACIZ,QAAAA,EAAU;QAAEU,KAAAA,EAAO;AAAQ;AAC/B,KAAA;AACA,IAAA;;MAEIV,QAAAA,EAAU;QAAEU,KAAAA,EAAO;AAAQ;AAC/B;;EAEJ,CAACZ,8BAAAA,CAAUe,GAAG,GAAG;AACb,IAAA;;;;;MAKIb,QAAAA,EAAU;QAAEc,SAAAA,EAAW;AAAgB,OAAA;MACvCX,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ;;EAEJ,CAACN,8BAAAA,CAAUiB,QAAQ,GAAG;AAClB,IAAA;MACIf,QAAAA,EAAU;QAAEgB,KAAAA,EAAO;AAAS,OAAA;MAC5Bb,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEgB,KAAAA,EAAO;AAAS,OAAA;MAC5Bb,KAAAA,EAAO;AACX;;EAEJ,CAACL,8BAAAA,CAAUmB,OAAO,GAAG;AACjB,IAAA;;MAEIjB,QAAAA,EAAU;QAAEkB,GAAAA,EAAK;AAAgB,OAAA;MACjCd,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;;MAEIJ,QAAAA,EAAU;QAAEkB,GAAAA,EAAK;AAAS,OAAA;MAC1Bf,KAAAA,EAAO;AACX;;EAEJ,CAACL,8BAAAA,CAAUqB,OAAO,GAAG;AACjB,IAAA;MACInB,QAAAA,EAAU;QAAEoB,OAAAA,EAAS;AAAS,OAAA;MAC9BZ,WAAAA,EAAa,mCAAA;MACbJ,MAAAA,EAAQ;AACZ;;AAER","file":"JLKKDVCL.cjs","sourcesContent":["import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport type { VersionCombination } from '../types';\n\n/**\n * Version compatibility matrices for each tool type\n * Default combination is the first one marked as isRecommended=true\n */\nexport const versionMatrices: Record<ChainType, [VersionCombination, ...VersionCombination[]]> = {\n [ChainType.EVM]: [\n {\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n patch: 1,\n stable: true,\n },\n {\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n },\n {\n // Built in the old `monorepo` repository.\n versions: { hardhat: '2.19.3' },\n },\n ],\n [ChainType.SOLANA]: [\n {\n // Built in the old `monorepo` repository.\n versions: { solana: '1.17.31', anchor: '0.29.0' },\n description: 'Stable and well-tested',\n stable: true,\n },\n {\n versions: { solana: '2.2.20', anchor: '0.31.1' },\n description: 'Latest stable release',\n },\n ],\n [ChainType.APTOSMOVE]: [\n {\n versions: { aptos: '4.7.0', initiad: '0.6.3' },\n stable: true,\n },\n {\n versions: { aptos: '4.7.0', initiad: '0.6.3', movement: '3.5.0' },\n },\n {\n versions: { aptos: '4.7.0' },\n },\n {\n // Built in the old `monorepo` repository.\n versions: { aptos: '4.6.0' },\n },\n ],\n [ChainType.TON]: [\n {\n // In TON's offchain SDK, we derive contract addresses dynamically from their\n // bytecode and initial state even for contracts deployed already.\n // Therefore, we cannot update the compiler version even when the minor version is the same\n // since it would change the resulting bytecode and thus the contract address.\n versions: { blueprint: '0.25.0-beta.1' },\n patch: 2,\n stable: true,\n },\n ],\n [ChainType.STARKNET]: [\n {\n versions: { scarb: '2.12.0' },\n patch: 3,\n stable: true,\n },\n {\n versions: { scarb: '2.12.0' },\n patch: 4,\n },\n ],\n [ChainType.SUIMOVE]: [\n {\n // Built in the old `monorepo` repository.\n versions: { sui: '1.54.1-beta.0' },\n stable: true,\n },\n {\n // Test building from monorepo-internal\n versions: { sui: '1.54.1' },\n patch: 1,\n },\n ],\n [ChainType.STELLAR]: [\n {\n versions: { stellar: '23.1.4' },\n description: 'Latest stable Stellar CLI release',\n stable: true,\n },\n ],\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/config/version-matrices.ts"],"names":["versionMatrices","ChainType","EVM","versions","forge","hardhat","patch","stable","SOLANA","solana","anchor","description","APTOSMOVE","aptos","initiad","movement","TON","blueprint","STARKNET","scarb","SUIMOVE","sui","STELLAR","stellar"],"mappings":";;;;AAAA,cAAA,EAAA;AAQO,IAAMA,eAAAA,GAAoF;EAC7F,CAACC,SAAAA,CAAUC,GAAG,GAAG;AACb,IAAA;MACIC,QAAAA,EAAU;QAAEC,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAS,OAAA;MAC9CC,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEC,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAS;AAClD,KAAA;AACA,IAAA;;MAEIF,QAAAA,EAAU;QAAEE,OAAAA,EAAS;AAAS;AAClC;;EAEJ,CAACJ,SAAAA,CAAUO,MAAM,GAAG;AAChB,IAAA;;MAEIL,QAAAA,EAAU;QAAEM,MAAAA,EAAQ,SAAA;QAAWC,MAAAA,EAAQ;AAAS,OAAA;MAChDC,WAAAA,EAAa,wBAAA;MACbJ,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEM,MAAAA,EAAQ,QAAA;QAAUC,MAAAA,EAAQ;AAAS,OAAA;MAC/CC,WAAAA,EAAa;AACjB;;EAEJ,CAACV,SAAAA,CAAUW,SAAS,GAAG;AACnB,IAAA;MACIT,QAAAA,EAAU;QAAEU,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS;AAAQ,OAAA;MAC7CP,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEU,KAAAA,EAAO,OAAA;QAASC,OAAAA,EAAS,OAAA;QAASC,QAAAA,EAAU;AAAQ;AACpE,KAAA;AACA,IAAA;MACIZ,QAAAA,EAAU;QAAEU,KAAAA,EAAO;AAAQ;AAC/B,KAAA;AACA,IAAA;;MAEIV,QAAAA,EAAU;QAAEU,KAAAA,EAAO;AAAQ;AAC/B;;EAEJ,CAACZ,SAAAA,CAAUe,GAAG,GAAG;AACb,IAAA;;;;;MAKIb,QAAAA,EAAU;QAAEc,SAAAA,EAAW;AAAgB,OAAA;MACvCX,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ;;EAEJ,CAACN,SAAAA,CAAUiB,QAAQ,GAAG;AAClB,IAAA;MACIf,QAAAA,EAAU;QAAEgB,KAAAA,EAAO;AAAS,OAAA;MAC5Bb,KAAAA,EAAO,CAAA;MACPC,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;MACIJ,QAAAA,EAAU;QAAEgB,KAAAA,EAAO;AAAS,OAAA;MAC5Bb,KAAAA,EAAO;AACX;;EAEJ,CAACL,SAAAA,CAAUmB,OAAO,GAAG;AACjB,IAAA;;MAEIjB,QAAAA,EAAU;QAAEkB,GAAAA,EAAK;AAAgB,OAAA;MACjCd,MAAAA,EAAQ;AACZ,KAAA;AACA,IAAA;;MAEIJ,QAAAA,EAAU;QAAEkB,GAAAA,EAAK;AAAS,OAAA;MAC1Bf,KAAAA,EAAO;AACX;;EAEJ,CAACL,SAAAA,CAAUqB,OAAO,GAAG;AACjB,IAAA;MACInB,QAAAA,EAAU;QAAEoB,OAAAA,EAAS;AAAS,OAAA;MAC9BZ,WAAAA,EAAa,mCAAA;MACbJ,MAAAA,EAAQ;AACZ;;AAER","file":"NX66I36H.js","sourcesContent":["import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport type { VersionCombination } from '../types';\n\n/**\n * Version compatibility matrices for each tool type\n * Default combination is the first one marked as isRecommended=true\n */\nexport const versionMatrices: Record<ChainType, [VersionCombination, ...VersionCombination[]]> = {\n [ChainType.EVM]: [\n {\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n patch: 1,\n stable: true,\n },\n {\n versions: { forge: '1.3.6', hardhat: '2.26.3' },\n },\n {\n // Built in the old `monorepo` repository.\n versions: { hardhat: '2.19.3' },\n },\n ],\n [ChainType.SOLANA]: [\n {\n // Built in the old `monorepo` repository.\n versions: { solana: '1.17.31', anchor: '0.29.0' },\n description: 'Stable and well-tested',\n stable: true,\n },\n {\n versions: { solana: '2.2.20', anchor: '0.31.1' },\n description: 'Latest stable release',\n },\n ],\n [ChainType.APTOSMOVE]: [\n {\n versions: { aptos: '4.7.0', initiad: '0.6.3' },\n stable: true,\n },\n {\n versions: { aptos: '4.7.0', initiad: '0.6.3', movement: '3.5.0' },\n },\n {\n versions: { aptos: '4.7.0' },\n },\n {\n // Built in the old `monorepo` repository.\n versions: { aptos: '4.6.0' },\n },\n ],\n [ChainType.TON]: [\n {\n // In TON's offchain SDK, we derive contract addresses dynamically from their\n // bytecode and initial state even for contracts deployed already.\n // Therefore, we cannot update the compiler version even when the minor version is the same\n // since it would change the resulting bytecode and thus the contract address.\n versions: { blueprint: '0.25.0-beta.1' },\n patch: 2,\n stable: true,\n },\n ],\n [ChainType.STARKNET]: [\n {\n versions: { scarb: '2.12.0' },\n patch: 3,\n stable: true,\n },\n {\n versions: { scarb: '2.12.0' },\n patch: 4,\n },\n ],\n [ChainType.SUIMOVE]: [\n {\n // Built in the old `monorepo` repository.\n versions: { sui: '1.54.1-beta.0' },\n stable: true,\n },\n {\n // Test building from monorepo-internal\n versions: { sui: '1.54.1' },\n patch: 1,\n },\n ],\n [ChainType.STELLAR]: [\n {\n versions: { stellar: '23.1.4' },\n description: 'Latest stable Stellar CLI release',\n stable: true,\n },\n ],\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils/finder.ts","../src/config/index.ts","../src/config/tools.ts","../src/utils/version.ts","../src/utils.ts","../src/utils/docker.ts"],"names":["init_cjs_shims","getImageURI","__name","toolName","version","combination","findMatrixForTool","find","versions","Error","join","ECR_REGISTRY","ECR_IMAGE_DIRECTORY","getImageNameForTool","getImageTag","patch","separator","Object","entries","sort","flat","findParentDirectoryWithFile","dir","filename","cur","filePath","path","fs","existsSync","directory","file","dirname","parseVersionFileContents","out","found","contents","readFileSync","parsed","dotenvParse","getCombinationId","versionsSatisfied","current","expected","satisfies","parseAnchorTomlVersion","cwd","name","projectFolder","toml","test","match","exec","matchedName","findSemVersionFromString","input","length","validateToolVersion","supportedVersions","getToolSupportedVersions","includes","solanaDefaultVolumes","type","containerPath","tools","chainType","ChainType","EVM","defaultVolumes","SOLANA","privileged","getSecondaryVersionCheckValue","APTOSMOVE","TON","STARKNET","SUIMOVE","shared","locked","STELLAR","AWS_ACCOUNT_ID","AWS_REGION","findToolByName","tool","findToolsByType","filter","getChainTypeForTool","typeToImageBasename","getImageBasenameForType","getImageNameForType","combinations","values","versionMatrices","some","getToolDefaultVersion","console","warn","Set","map","Boolean"],"mappings":"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","file":"WHAPJZ3U.cjs","sourcesContent":["import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport { tools, versionMatrices } from '../config';\nimport type { Tool, VersionCombination } from '../types';\n\nexport const findToolByName = (toolName: string): Tool => {\n const tool = tools.find((tool) => tool.name === toolName);\n\n if (!tool) {\n throw new Error(`Tool '${toolName}' not found`);\n }\n\n return tool;\n};\n\nexport const findToolsByType = (type: ChainType): Tool[] =>\n tools.filter((tool) => tool.chainType === type);\n\nexport const getChainTypeForTool = (toolName: string): ChainType =>\n findToolByName(toolName).chainType;\n\nconst typeToImageBasename: Partial<Record<ChainType, string>> = {\n [ChainType.APTOSMOVE]: 'aptos',\n [ChainType.SUIMOVE]: 'sui',\n};\n\nexport const getImageBasenameForType = (chainType: ChainType): string =>\n typeToImageBasename[chainType] ?? chainType;\n\nexport const getImageNameForType = (chainType: ChainType): string =>\n `${getImageBasenameForType(chainType)}-tooling`;\n\nexport const getImageNameForTool = (toolName: string): string =>\n getImageNameForType(getChainTypeForTool(toolName));\n\n/**\n * Find version matrix that contains a specific tool\n */\nexport const findMatrixForTool = (toolName: string): VersionCombination[] => {\n const combinations = Object.values(versionMatrices).find((combinations) =>\n combinations.some(({ versions }) => versions[toolName]),\n );\n\n if (!combinations) {\n throw new Error(`No version matrix found for tool '${toolName}'`);\n }\n\n return combinations;\n};\n\n/**\n * Get default version for a specific tool from version matrix\n */\nexport function getToolDefaultVersion(toolName: string): string | null {\n const version = findMatrixForTool(toolName)[0].versions[toolName];\n\n if (!version) {\n console.warn(`No default version found for tool '${toolName}' in matrix`);\n return null;\n }\n\n return version;\n}\n\n/**\n * Get supported versions for a specific tool from version matrix\n */\nexport const getToolSupportedVersions = (toolName: string): string[] =>\n [\n ...new Set(\n findMatrixForTool(toolName)\n .map(({ versions }) => versions[toolName])\n .filter(Boolean),\n ),\n ].sort();\n","export { tools } from './tools';\nexport { versionMatrices } from './version-matrices';\n\nexport const AWS_ACCOUNT_ID = '438003944538';\nexport const AWS_REGION = 'us-east-1';\n\nexport const ECR_REGISTRY = `${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`;\nexport const ECR_IMAGE_DIRECTORY = 'layerzerolabs';\n","import { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport type { GetExpectedVersionParameter, Tool, Version, VolumeMapping } from '../types';\nimport { parseAnchorTomlVersion } from '../utils/version';\n\nconst solanaDefaultVolumes: VolumeMapping[] = [\n {\n type: 'isolate',\n containerPath: '/usr/local/cargo',\n name: 'solana-cargo',\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/rustup',\n name: 'solana-rustup',\n },\n {\n type: 'isolate',\n containerPath: '/var/lib/docker',\n name: 'docker',\n },\n];\n\n/**\n * Tool configurations with individual settings (version info managed by version-matrices)\n */\nexport const tools: readonly Tool[] = [\n {\n name: 'hardhat',\n chainType: ChainType.EVM,\n defaultVolumes: [],\n },\n {\n name: 'forge',\n chainType: ChainType.EVM,\n },\n {\n name: 'anchor',\n chainType: ChainType.SOLANA,\n privileged: true,\n defaultVolumes: solanaDefaultVolumes,\n getSecondaryVersionCheckValue: ({ cwd }: GetExpectedVersionParameter): Version => {\n return parseAnchorTomlVersion(cwd, 'anchor');\n },\n },\n {\n name: 'solana',\n chainType: ChainType.SOLANA,\n privileged: true,\n defaultVolumes: solanaDefaultVolumes,\n getSecondaryVersionCheckValue: ({ cwd }: GetExpectedVersionParameter): Version => {\n return parseAnchorTomlVersion(cwd, 'solana');\n },\n },\n {\n name: 'aptos',\n chainType: ChainType.APTOSMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'aptos',\n },\n ],\n },\n {\n name: 'initiad',\n chainType: ChainType.APTOSMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'initia',\n },\n ],\n },\n {\n name: 'movement',\n chainType: ChainType.APTOSMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'movement',\n },\n ],\n },\n {\n name: 'blueprint',\n chainType: ChainType.TON,\n },\n {\n name: 'scarb',\n chainType: ChainType.STARKNET,\n },\n {\n name: 'sui',\n chainType: ChainType.SUIMOVE,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'sui',\n shared: true,\n locked: true,\n },\n {\n type: 'isolate',\n containerPath: '/root/.sui',\n name: 'sui-config',\n shared: true,\n locked: true,\n },\n ],\n },\n {\n name: 'stellar',\n chainType: ChainType.STELLAR,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.config/stellar',\n name: 'stellar-config',\n shared: true,\n locked: true,\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/cargo',\n name: 'stellar-cargo',\n shared: true,\n locked: false,\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/rustup',\n name: 'stellar-rustup',\n shared: true,\n locked: false,\n },\n ],\n },\n];\n","import fs from 'fs';\nimport * as semver from 'semver';\n\nimport type { Version } from '../types';\nimport { findParentDirectoryWithFile } from '../utils';\nimport { getToolSupportedVersions } from './finder';\n\n/**\n * Check if current version satisfies expected version using semver\n */\nexport function versionsSatisfied(current: Version, expected: Version): boolean {\n return semver.satisfies(current.version, expected.version);\n}\n\n/**\n * Parse anchor/solana version from Anchor.toml file\n */\nexport function parseAnchorTomlVersion(cwd: string, name: 'anchor' | 'solana'): Version {\n const projectFolder = findParentDirectoryWithFile(cwd, 'Anchor.toml');\n\n if (projectFolder === null) {\n throw new Error('Anchor project not found');\n }\n\n const toml = fs.readFileSync(projectFolder.file, 'utf-8');\n\n const test = /^([a-z]+)(?:_version ?= ?\")((?:[0-9]+\\.?){3})(?:\")$/gm;\n\n let match;\n while ((match = test.exec(toml))) {\n const [, matchedName, version] = match;\n if (matchedName === name) {\n return { version };\n }\n }\n\n throw new Error(`${name} version not found in ${projectFolder.file}`);\n}\n\n/**\n * Find semantic version from string output\n */\nexport function findSemVersionFromString(input: string): Version {\n const match = input.match(/^(solana-cli|anchor-cli|aptos)\\s+(([0-9]+\\.?){3}).*?/m);\n if (match === null || match.length < 3) {\n throw new Error(`Invalid semver version: ${input}`);\n }\n\n return { version: match[2] };\n}\n\n/**\n * Validate if a tool version is in the supported versions list\n */\nexport function validateToolVersion(toolName: string, version: string): boolean {\n const supportedVersions = getToolSupportedVersions(toolName);\n return supportedVersions.includes(version);\n}\n","import { parse as dotenvParse } from 'dotenv';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { VersionCombination } from './types';\nimport { getImageTag } from './utils/docker';\n\nexport interface FoundDirectory {\n directory: string;\n file: string;\n}\n\nexport function findParentDirectoryWithFile(dir: string, filename: string): FoundDirectory | null {\n let cur = dir;\n\n while (cur !== '/') {\n const filePath = path.join(cur, filename);\n if (fs.existsSync(filePath)) {\n return { directory: cur, file: filePath };\n }\n\n cur = path.dirname(cur);\n }\n\n return null;\n}\n\nexport function parseVersionFileContents(dir: string): { [key: string]: string | undefined } {\n let out = {};\n\n let cur = dir;\n while (cur !== '/') {\n const found = findParentDirectoryWithFile(cur, '.versions');\n if (found === null) {\n break;\n }\n cur = path.dirname(found.directory);\n\n const contents = fs.readFileSync(found.file, 'utf-8');\n const parsed = dotenvParse(contents);\n\n out = {\n ...parsed,\n ...out,\n };\n }\n\n return out;\n}\n\nexport const getCombinationId = (combination: VersionCombination): string =>\n getImageTag(combination, '-');\n","import { join } from 'node:path';\n\nimport { ECR_IMAGE_DIRECTORY, ECR_REGISTRY } from '../config/index.js';\nimport type { VersionCombination } from '../types/version.js';\nimport { findMatrixForTool, getImageNameForTool } from './finder.js';\n\nexport const getImageURI = (toolName: string, version: string): string => {\n const combination = findMatrixForTool(toolName).find(\n ({ versions }) => versions[toolName] === version,\n );\n\n if (!combination) {\n throw new Error(\n `No version combination found for tool ${toolName} with version ${version}`,\n );\n }\n\n return join(\n ECR_REGISTRY,\n ECR_IMAGE_DIRECTORY,\n `${getImageNameForTool(toolName)}:${getImageTag(combination)}`,\n );\n};\n\nexport const getImageTag = (\n { versions, patch }: VersionCombination,\n separator: '_' | '-' = '_',\n): string =>\n [...Object.entries(versions).sort().flat(), ...(patch ? ['patch', patch] : [])].join(separator);\n"]}