@layerzerolabs/vm-tooling 0.0.66 → 0.0.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{JEOLJJ6F.js → 35BIBLTE.js} +5 -5
- package/dist/{JEOLJJ6F.js.map → 35BIBLTE.js.map} +1 -1
- package/dist/36UU6CJU.cjs +57 -0
- package/dist/36UU6CJU.cjs.map +1 -0
- package/dist/{JZHAF3IW.js → 3YHRHIKS.js} +8 -11
- package/dist/3YHRHIKS.js.map +1 -0
- package/dist/{EPPFFBGP.cjs → 4CTWHZA4.cjs} +3 -3
- package/dist/{EPPFFBGP.cjs.map → 4CTWHZA4.cjs.map} +1 -1
- package/dist/55HL3CFD.js +50 -0
- package/dist/55HL3CFD.js.map +1 -0
- package/dist/{DEL75SYN.cjs → 6MCEHW2U.cjs} +49 -49
- package/dist/{DEL75SYN.cjs.map → 6MCEHW2U.cjs.map} +1 -1
- package/dist/{TQMUPD75.cjs → 6NIOUVPA.cjs} +25 -4
- package/dist/6NIOUVPA.cjs.map +1 -0
- package/dist/{GBR35MZ7.js → 6OU7NCZK.js} +6 -6
- package/dist/{GBR35MZ7.js.map → 6OU7NCZK.js.map} +1 -1
- package/dist/{OAO7CCJW.js → 6QZPR4XG.js} +2 -2
- package/dist/6QZPR4XG.js.map +1 -0
- package/dist/6YTOLRHQ.js +6 -0
- package/dist/6YTOLRHQ.js.map +1 -0
- package/dist/{UN57VWAW.cjs → 7ZH64OYR.cjs} +4 -4
- package/dist/{UN57VWAW.cjs.map → 7ZH64OYR.cjs.map} +1 -1
- package/dist/ACDTMA6Q.cjs +72 -0
- package/dist/ACDTMA6Q.cjs.map +1 -0
- package/dist/{BNMJ5QME.cjs → ASYXJJD4.cjs} +49 -49
- package/dist/{BNMJ5QME.cjs.map → ASYXJJD4.cjs.map} +1 -1
- package/dist/{MMIV5S36.js → BTXB2LKA.js} +14 -8
- package/dist/BTXB2LKA.js.map +1 -0
- package/dist/{KTAMTSBK.cjs → BVXMXRYL.cjs} +7 -7
- package/dist/{KTAMTSBK.cjs.map → BVXMXRYL.cjs.map} +1 -1
- package/dist/D3JHHTB6.js +152 -0
- package/dist/D3JHHTB6.js.map +1 -0
- package/dist/{DPCW4JIV.cjs → DB5GRF5K.cjs} +14 -8
- package/dist/DB5GRF5K.cjs.map +1 -0
- package/dist/{QMXX45TO.js → EDWLY6YP.js} +3 -3
- package/dist/{QMXX45TO.js.map → EDWLY6YP.js.map} +1 -1
- package/dist/EYP6JZRD.cjs +86 -0
- package/dist/EYP6JZRD.cjs.map +1 -0
- package/dist/F35TPZS3.js +121 -0
- package/dist/F35TPZS3.js.map +1 -0
- package/dist/{3PEVFTZ5.js → FL2DFW3Y.js} +5 -4
- package/dist/FL2DFW3Y.js.map +1 -0
- package/dist/{GERMNIDG.cjs → FOFSZBOK.cjs} +87 -107
- package/dist/FOFSZBOK.cjs.map +1 -0
- package/dist/FQUILSS5.js +52 -0
- package/dist/FQUILSS5.js.map +1 -0
- package/dist/FUT2FDDD.cjs +48 -0
- package/dist/FUT2FDDD.cjs.map +1 -0
- package/dist/GIS4KMDM.js +6 -0
- package/dist/GIS4KMDM.js.map +1 -0
- package/dist/{BOOCAPHW.js → GLJJOBCM.js} +6 -6
- package/dist/{BOOCAPHW.js.map → GLJJOBCM.js.map} +1 -1
- package/dist/{22KWM667.cjs → GSWL56ZH.cjs} +36 -72
- package/dist/GSWL56ZH.cjs.map +1 -0
- package/dist/{6YQKZHZ5.js → H7LPHZJT.js} +86 -103
- package/dist/H7LPHZJT.js.map +1 -0
- package/dist/IDMMHZJ3.cjs +8 -0
- package/dist/IDMMHZJ3.cjs.map +1 -0
- package/dist/{QPWLW7SN.js → II7QHMLF.js} +31 -66
- package/dist/II7QHMLF.js.map +1 -0
- package/dist/KSZMBVFB.cjs +154 -0
- package/dist/KSZMBVFB.cjs.map +1 -0
- package/dist/{HVBHNWI7.js → LF6BYBZY.js} +3 -3
- package/dist/{HVBHNWI7.js.map → LF6BYBZY.js.map} +1 -1
- package/dist/{OZNFYXME.cjs → LH4V3GFX.cjs} +3 -3
- package/dist/{OZNFYXME.cjs.map → LH4V3GFX.cjs.map} +1 -1
- package/dist/LNCARCBD.cjs +48 -0
- package/dist/LNCARCBD.cjs.map +1 -0
- package/dist/M6KBN6B2.cjs +21 -0
- package/dist/M6KBN6B2.cjs.map +1 -0
- package/dist/{4QL6ZBHT.cjs → MQTCD42Y.cjs} +6 -6
- package/dist/{4QL6ZBHT.cjs.map → MQTCD42Y.cjs.map} +1 -1
- package/dist/N67IGBHN.js +29 -0
- package/dist/N67IGBHN.js.map +1 -0
- package/dist/O2C74Z3Q.cjs +17 -0
- package/dist/O2C74Z3Q.cjs.map +1 -0
- package/dist/{Y3REZYJA.js → OANFSFAO.js} +7 -7
- package/dist/{Y3REZYJA.js.map → OANFSFAO.js.map} +1 -1
- package/dist/OLQR7R3W.js +84 -0
- package/dist/OLQR7R3W.js.map +1 -0
- package/dist/ORWR6LWW.js +26 -0
- package/dist/ORWR6LWW.js.map +1 -0
- package/dist/OUJ5TG6W.js +26 -0
- package/dist/OUJ5TG6W.js.map +1 -0
- package/dist/{Q3ORCLJH.cjs → PUL6NSHI.cjs} +46 -53
- package/dist/PUL6NSHI.cjs.map +1 -0
- package/dist/{W5XVOHRB.js → S37YVMJL.js} +6 -6
- package/dist/{W5XVOHRB.js.map → S37YVMJL.js.map} +1 -1
- package/dist/S3PHE6F2.cjs +8 -0
- package/dist/S3PHE6F2.cjs.map +1 -0
- package/dist/{Y5ZXTD76.cjs → SHJCZ6NL.cjs} +49 -49
- package/dist/{Y5ZXTD76.cjs.map → SHJCZ6NL.cjs.map} +1 -1
- package/dist/{FAOU2ZJO.js → TXDLSUBD.js} +4 -4
- package/dist/{FAOU2ZJO.js.map → TXDLSUBD.js.map} +1 -1
- package/dist/VPKYL66J.cjs +18270 -0
- package/dist/VPKYL66J.cjs.map +1 -0
- package/dist/{CMSYZVLH.js → WDAYI6EQ.js} +3 -3
- package/dist/{CMSYZVLH.js.map → WDAYI6EQ.js.map} +1 -1
- package/dist/XCMLC6HI.js +18267 -0
- package/dist/XCMLC6HI.js.map +1 -0
- package/dist/XYT4PCRV.cjs +31 -0
- package/dist/XYT4PCRV.cjs.map +1 -0
- package/dist/Y27GTZ2Q.js +19 -0
- package/dist/Y27GTZ2Q.js.map +1 -0
- package/dist/YLHOHCRW.js +15 -0
- package/dist/YLHOHCRW.js.map +1 -0
- package/dist/{GSHFVQRI.cjs → Z253B63X.cjs} +2 -2
- package/dist/Z253B63X.cjs.map +1 -0
- package/dist/{ER722VGO.cjs → ZD3LAY33.cjs} +17 -20
- package/dist/ZD3LAY33.cjs.map +1 -0
- package/dist/{37UR3RSN.cjs → ZQFCLTYU.cjs} +4 -4
- package/dist/{37UR3RSN.cjs.map → ZQFCLTYU.cjs.map} +1 -1
- package/dist/commands/aptos.cjs +22 -0
- package/dist/commands/aptos.cjs.map +1 -0
- package/dist/commands/aptos.d.ts +3 -0
- package/dist/commands/aptos.d.ts.map +1 -0
- package/dist/commands/aptos.js +13 -0
- package/dist/commands/aptos.js.map +1 -0
- package/dist/commands/iota.cjs +23 -0
- package/dist/commands/iota.cjs.map +1 -0
- package/dist/commands/iota.d.ts +3 -0
- package/dist/commands/iota.d.ts.map +1 -0
- package/dist/commands/iota.js +14 -0
- package/dist/commands/iota.js.map +1 -0
- package/dist/commands/starknet.cjs +13 -0
- package/dist/commands/starknet.cjs.map +1 -0
- package/dist/commands/{starknet/build-typescript-sdk.d.ts → starknet.d.ts} +1 -1
- package/dist/commands/starknet.d.ts.map +1 -0
- package/dist/commands/starknet.js +4 -0
- package/dist/commands/starknet.js.map +1 -0
- package/dist/commands/sui.cjs +23 -0
- package/dist/commands/sui.cjs.map +1 -0
- package/dist/commands/sui.d.ts +3 -0
- package/dist/commands/sui.d.ts.map +1 -0
- package/dist/commands/sui.js +14 -0
- package/dist/commands/sui.js.map +1 -0
- package/dist/commands/utility/sui-like.cjs +22 -0
- package/dist/commands/utility/sui-like.cjs.map +1 -0
- package/dist/commands/utility/sui-like.d.ts +16 -0
- package/dist/commands/utility/sui-like.d.ts.map +1 -0
- package/dist/commands/utility/sui-like.js +13 -0
- package/dist/commands/utility/sui-like.js.map +1 -0
- package/dist/config/docker-images.cjs +13 -0
- package/dist/config/docker-images.cjs.map +1 -0
- package/dist/config/docker-images.d.ts +145 -0
- package/dist/config/docker-images.d.ts.map +1 -0
- package/dist/config/docker-images.js +4 -0
- package/dist/config/docker-images.js.map +1 -0
- package/dist/config/docker-images.test.cjs +21 -0
- package/dist/config/docker-images.test.cjs.map +1 -0
- package/dist/config/docker-images.test.js +19 -0
- package/dist/config/docker-images.test.js.map +1 -0
- package/dist/config/index.cjs +21 -8
- package/dist/config/index.d.ts +3 -2
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -2
- package/dist/config/tools.cjs +9 -4
- package/dist/config/tools.d.ts +1 -0
- package/dist/config/tools.d.ts.map +1 -1
- package/dist/config/tools.js +3 -2
- package/dist/config/version-matrices.cjs +2 -2
- package/dist/config/version-matrices.d.ts +8 -1
- package/dist/config/version-matrices.d.ts.map +1 -1
- package/dist/config/version-matrices.js +1 -1
- package/dist/core/index.cjs +10 -21
- package/dist/core/index.d.ts +2 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +8 -7
- package/dist/core/lock.cjs +4 -4
- package/dist/core/lock.d.ts.map +1 -1
- package/dist/core/lock.js +1 -1
- package/dist/core/lock.test.cjs +11 -18274
- package/dist/core/lock.test.cjs.map +1 -1
- package/dist/core/lock.test.js +3 -18266
- package/dist/core/lock.test.js.map +1 -1
- package/dist/core/tool-executor.cjs +8 -7
- package/dist/core/tool-executor.d.ts +3 -2
- package/dist/core/tool-executor.d.ts.map +1 -1
- package/dist/core/tool-executor.js +7 -6
- package/dist/core/version-resolver.cjs +5 -13
- package/dist/core/version-resolver.d.ts +1 -24
- package/dist/core/version-resolver.d.ts.map +1 -1
- package/dist/core/version-resolver.js +4 -4
- package/dist/display/formatters.cjs +5 -4
- package/dist/display/formatters.d.ts +1 -1
- package/dist/display/formatters.d.ts.map +1 -1
- package/dist/display/formatters.js +4 -3
- package/dist/display/index.cjs +8 -7
- package/dist/display/index.js +5 -4
- package/dist/display/version-display.cjs +7 -6
- package/dist/display/version-display.d.ts.map +1 -1
- package/dist/display/version-display.js +5 -4
- package/dist/index.cjs +84 -56
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -49
- package/dist/index.js.map +1 -1
- package/dist/scripts/generate-github-matrix.cjs +73 -67
- package/dist/scripts/generate-github-matrix.cjs.map +1 -1
- package/dist/scripts/generate-github-matrix.js +30 -24
- package/dist/scripts/generate-github-matrix.js.map +1 -1
- package/dist/types/docker.cjs +8 -3
- package/dist/types/docker.cjs.map +1 -1
- package/dist/types/docker.d.ts +32 -15
- package/dist/types/docker.d.ts.map +1 -1
- package/dist/types/docker.js +2 -4
- package/dist/types/docker.js.map +1 -1
- package/dist/types/index.cjs +10 -3
- package/dist/types/index.cjs.map +1 -1
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -4
- package/dist/types/index.js.map +1 -1
- package/dist/types/tool.cjs +2 -3
- package/dist/types/tool.cjs.map +1 -1
- package/dist/types/tool.d.ts +3 -7
- package/dist/types/tool.d.ts.map +1 -1
- package/dist/types/tool.js +2 -4
- package/dist/types/tool.js.map +1 -1
- package/dist/utils/docker.cjs +15 -5
- package/dist/utils/docker.d.ts +6 -3
- package/dist/utils/docker.d.ts.map +1 -1
- package/dist/utils/docker.js +4 -2
- package/dist/utils/finder.cjs +15 -18
- package/dist/utils/finder.d.ts +5 -5
- package/dist/utils/finder.d.ts.map +1 -1
- package/dist/utils/finder.js +3 -2
- package/dist/utils/version.cjs +7 -6
- package/dist/utils/version.d.ts +3 -4
- package/dist/utils/version.d.ts.map +1 -1
- package/dist/utils/version.js +3 -2
- package/dist/utils.cjs +5 -8
- package/dist/utils.d.ts +1 -4
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -2
- package/package.json +5 -6
- package/dist/22KWM667.cjs.map +0 -1
- package/dist/3H446V2K.js +0 -6
- package/dist/3H446V2K.js.map +0 -1
- package/dist/3PEVFTZ5.js.map +0 -1
- package/dist/6YQKZHZ5.js.map +0 -1
- package/dist/7PSRMQMS.cjs +0 -51
- package/dist/7PSRMQMS.cjs.map +0 -1
- package/dist/BG3MG6IF.cjs +0 -127
- package/dist/BG3MG6IF.cjs.map +0 -1
- package/dist/DN5VBC3L.js +0 -128
- package/dist/DN5VBC3L.js.map +0 -1
- package/dist/DPCW4JIV.cjs.map +0 -1
- package/dist/ER722VGO.cjs.map +0 -1
- package/dist/FKPK53TD.cjs +0 -8
- package/dist/FKPK53TD.cjs.map +0 -1
- package/dist/GERMNIDG.cjs.map +0 -1
- package/dist/GSHFVQRI.cjs.map +0 -1
- package/dist/JZHAF3IW.js.map +0 -1
- package/dist/KFXJIHI6.js +0 -20
- package/dist/KFXJIHI6.js.map +0 -1
- package/dist/KPYTMXHJ.cjs +0 -22
- package/dist/KPYTMXHJ.cjs.map +0 -1
- package/dist/M4PGJV5D.js +0 -6
- package/dist/M4PGJV5D.js.map +0 -1
- package/dist/MMIV5S36.js.map +0 -1
- package/dist/OAO7CCJW.js.map +0 -1
- package/dist/PWDCAN6N.js +0 -37
- package/dist/PWDCAN6N.js.map +0 -1
- package/dist/Q3ORCLJH.cjs.map +0 -1
- package/dist/QPWLW7SN.js.map +0 -1
- package/dist/QYB5VPZE.cjs +0 -39
- package/dist/QYB5VPZE.cjs.map +0 -1
- package/dist/R2U2WXP4.js +0 -49
- package/dist/R2U2WXP4.js.map +0 -1
- package/dist/TQMUPD75.cjs.map +0 -1
- package/dist/XYNAO6GV.js +0 -119
- package/dist/XYNAO6GV.js.map +0 -1
- package/dist/Y7OWS2C2.cjs +0 -8
- package/dist/Y7OWS2C2.cjs.map +0 -1
- package/dist/commands/starknet/build-typescript-sdk.cjs +0 -13
- package/dist/commands/starknet/build-typescript-sdk.cjs.map +0 -1
- package/dist/commands/starknet/build-typescript-sdk.d.ts.map +0 -1
- package/dist/commands/starknet/build-typescript-sdk.js +0 -4
- package/dist/commands/starknet/build-typescript-sdk.js.map +0 -1
- package/dist/commands/starknet/index.cjs +0 -14
- package/dist/commands/starknet/index.cjs.map +0 -1
- package/dist/commands/starknet/index.d.ts +0 -2
- package/dist/commands/starknet/index.d.ts.map +0 -1
- package/dist/commands/starknet/index.js +0 -5
- package/dist/commands/starknet/index.js.map +0 -1
- package/dist/commands/sui/build.cjs +0 -20
- package/dist/commands/sui/build.cjs.map +0 -1
- package/dist/commands/sui/build.d.ts +0 -3
- package/dist/commands/sui/build.d.ts.map +0 -1
- package/dist/commands/sui/build.js +0 -11
- package/dist/commands/sui/build.js.map +0 -1
- package/dist/commands/sui/index.cjs +0 -21
- package/dist/commands/sui/index.cjs.map +0 -1
- package/dist/commands/sui/index.d.ts +0 -2
- package/dist/commands/sui/index.d.ts.map +0 -1
- package/dist/commands/sui/index.js +0 -12
- package/dist/commands/sui/index.js.map +0 -1
- package/dist/core/compatibility.cjs +0 -13
- package/dist/core/compatibility.cjs.map +0 -1
- package/dist/core/compatibility.d.ts +0 -8
- package/dist/core/compatibility.d.ts.map +0 -1
- package/dist/core/compatibility.js +0 -4
- package/dist/core/compatibility.js.map +0 -1
- package/dist/types/version.cjs +0 -8
- package/dist/types/version.cjs.map +0 -1
- package/dist/types/version.d.ts +0 -25
- package/dist/types/version.d.ts.map +0 -1
- package/dist/types/version.js +0 -6
- package/dist/types/version.js.map +0 -1
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import { versionMatrices } from './
|
|
1
|
+
import { versionMatrices } from './F35TPZS3.js';
|
|
2
|
+
import { images } from './D3JHHTB6.js';
|
|
2
3
|
import { init_esm_shims, __name } from './4RNWLMHM.js';
|
|
4
|
+
import { isString } from 'es-toolkit';
|
|
3
5
|
import { ChainType } from '@layerzerolabs/layerzero-definitions';
|
|
4
6
|
import fs2 from 'fs';
|
|
5
7
|
import * as semver from 'semver';
|
|
6
|
-
import { parse } from 'dotenv';
|
|
7
8
|
import fs from 'node:fs';
|
|
8
|
-
import path
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
|
|
11
|
+
// src/utils/finder.ts
|
|
12
|
+
init_esm_shims();
|
|
9
13
|
|
|
10
14
|
// src/config/index.ts
|
|
11
15
|
init_esm_shims();
|
|
@@ -18,65 +22,6 @@ init_esm_shims();
|
|
|
18
22
|
|
|
19
23
|
// src/utils.ts
|
|
20
24
|
init_esm_shims();
|
|
21
|
-
|
|
22
|
-
// src/utils/docker.ts
|
|
23
|
-
init_esm_shims();
|
|
24
|
-
|
|
25
|
-
// src/utils/finder.ts
|
|
26
|
-
init_esm_shims();
|
|
27
|
-
var findToolByName = /* @__PURE__ */ __name((toolName) => {
|
|
28
|
-
const tool = tools.find((tool2) => tool2.name === toolName);
|
|
29
|
-
if (!tool) {
|
|
30
|
-
throw new Error(`Tool '${toolName}' not found`);
|
|
31
|
-
}
|
|
32
|
-
return tool;
|
|
33
|
-
}, "findToolByName");
|
|
34
|
-
var findToolsByType = /* @__PURE__ */ __name((type) => tools.filter((tool) => tool.chainType === type), "findToolsByType");
|
|
35
|
-
var getChainTypeForTool = /* @__PURE__ */ __name((toolName) => findToolByName(toolName).chainType, "getChainTypeForTool");
|
|
36
|
-
var typeToImageBasename = {
|
|
37
|
-
[ChainType.APTOSMOVE]: "aptos",
|
|
38
|
-
[ChainType.SUIMOVE]: "sui"
|
|
39
|
-
};
|
|
40
|
-
var getImageBasenameForType = /* @__PURE__ */ __name((chainType) => typeToImageBasename[chainType] ?? chainType, "getImageBasenameForType");
|
|
41
|
-
var getImageNameForType = /* @__PURE__ */ __name((chainType) => `${getImageBasenameForType(chainType)}-tooling`, "getImageNameForType");
|
|
42
|
-
var getImageNameForTool = /* @__PURE__ */ __name((toolName) => getImageNameForType(getChainTypeForTool(toolName)), "getImageNameForTool");
|
|
43
|
-
var findMatrixForTool = /* @__PURE__ */ __name((toolName) => {
|
|
44
|
-
const combinations = Object.values(versionMatrices).find((combinations2) => combinations2.some(({ versions }) => versions[toolName]));
|
|
45
|
-
if (!combinations) {
|
|
46
|
-
throw new Error(`No version matrix found for tool '${toolName}'`);
|
|
47
|
-
}
|
|
48
|
-
return combinations;
|
|
49
|
-
}, "findMatrixForTool");
|
|
50
|
-
function getToolDefaultVersion(toolName) {
|
|
51
|
-
const version = findMatrixForTool(toolName)[0].versions[toolName];
|
|
52
|
-
if (!version) {
|
|
53
|
-
console.warn(`No default version found for tool '${toolName}' in matrix`);
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
return version;
|
|
57
|
-
}
|
|
58
|
-
__name(getToolDefaultVersion, "getToolDefaultVersion");
|
|
59
|
-
var getToolSupportedVersions = /* @__PURE__ */ __name((toolName) => [
|
|
60
|
-
...new Set(findMatrixForTool(toolName).map(({ versions }) => versions[toolName]).filter(Boolean))
|
|
61
|
-
].sort(), "getToolSupportedVersions");
|
|
62
|
-
|
|
63
|
-
// src/utils/docker.ts
|
|
64
|
-
var getImageURI = /* @__PURE__ */ __name((toolName, version) => {
|
|
65
|
-
const combination = findMatrixForTool(toolName).find(({ versions }) => versions[toolName] === version);
|
|
66
|
-
if (!combination) {
|
|
67
|
-
throw new Error(`No version combination found for tool ${toolName} with version ${version}`);
|
|
68
|
-
}
|
|
69
|
-
return join(ECR_REGISTRY, ECR_IMAGE_DIRECTORY, `${getImageNameForTool(toolName)}:${getImageTag(combination)}`);
|
|
70
|
-
}, "getImageURI");
|
|
71
|
-
var getImageTag = /* @__PURE__ */ __name(({ versions, patch }, separator = "_") => [
|
|
72
|
-
...Object.entries(versions).sort().flat(),
|
|
73
|
-
...patch ? [
|
|
74
|
-
"patch",
|
|
75
|
-
patch
|
|
76
|
-
] : []
|
|
77
|
-
].join(separator), "getImageTag");
|
|
78
|
-
|
|
79
|
-
// src/utils.ts
|
|
80
25
|
function findParentDirectoryWithFile(dir, filename) {
|
|
81
26
|
let cur = dir;
|
|
82
27
|
while (cur !== "/") {
|
|
@@ -92,30 +37,11 @@ function findParentDirectoryWithFile(dir, filename) {
|
|
|
92
37
|
return null;
|
|
93
38
|
}
|
|
94
39
|
__name(findParentDirectoryWithFile, "findParentDirectoryWithFile");
|
|
95
|
-
|
|
96
|
-
let out = {};
|
|
97
|
-
let cur = dir;
|
|
98
|
-
while (cur !== "/") {
|
|
99
|
-
const found = findParentDirectoryWithFile(cur, ".versions");
|
|
100
|
-
if (found === null) {
|
|
101
|
-
break;
|
|
102
|
-
}
|
|
103
|
-
cur = path.dirname(found.directory);
|
|
104
|
-
const contents = fs.readFileSync(found.file, "utf-8");
|
|
105
|
-
const parsed = parse(contents);
|
|
106
|
-
out = {
|
|
107
|
-
...parsed,
|
|
108
|
-
...out
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
return out;
|
|
112
|
-
}
|
|
113
|
-
__name(parseVersionFileContents, "parseVersionFileContents");
|
|
114
|
-
var getCombinationId = /* @__PURE__ */ __name((combination) => getImageTag(combination, "-"), "getCombinationId");
|
|
40
|
+
var getCombinationId = /* @__PURE__ */ __name((combination) => Object.entries(findToolVersionsForCombination(combination)).toSorted().flat().join("-"), "getCombinationId");
|
|
115
41
|
|
|
116
42
|
// src/utils/version.ts
|
|
117
43
|
function versionsSatisfied(current, expected) {
|
|
118
|
-
return semver.satisfies(current
|
|
44
|
+
return semver.satisfies(current, expected);
|
|
119
45
|
}
|
|
120
46
|
__name(versionsSatisfied, "versionsSatisfied");
|
|
121
47
|
function parseAnchorTomlVersion(cwd, name) {
|
|
@@ -128,23 +54,19 @@ function parseAnchorTomlVersion(cwd, name) {
|
|
|
128
54
|
let match;
|
|
129
55
|
while (match = test.exec(toml)) {
|
|
130
56
|
const [, matchedName, version] = match;
|
|
131
|
-
if (matchedName === name) {
|
|
132
|
-
return
|
|
133
|
-
version
|
|
134
|
-
};
|
|
57
|
+
if (matchedName === name && version) {
|
|
58
|
+
return version;
|
|
135
59
|
}
|
|
136
60
|
}
|
|
137
61
|
throw new Error(`${name} version not found in ${projectFolder.file}`);
|
|
138
62
|
}
|
|
139
63
|
__name(parseAnchorTomlVersion, "parseAnchorTomlVersion");
|
|
140
64
|
function findSemVersionFromString(input) {
|
|
141
|
-
const
|
|
142
|
-
if (
|
|
65
|
+
const version = input.match(/^(solana-cli|anchor-cli|aptos)\s+(([0-9]+\.?){3}).*?/m)?.[2];
|
|
66
|
+
if (!version) {
|
|
143
67
|
throw new Error(`Invalid semver version: ${input}`);
|
|
144
68
|
}
|
|
145
|
-
return
|
|
146
|
-
version: match[2]
|
|
147
|
-
};
|
|
69
|
+
return version;
|
|
148
70
|
}
|
|
149
71
|
__name(findSemVersionFromString, "findSemVersionFromString");
|
|
150
72
|
function validateToolVersion(toolName, version) {
|
|
@@ -193,6 +115,20 @@ var suiDefaultVolumes = [
|
|
|
193
115
|
shared: true
|
|
194
116
|
}
|
|
195
117
|
];
|
|
118
|
+
var iotaDefaultVolumes = [
|
|
119
|
+
{
|
|
120
|
+
type: "isolate",
|
|
121
|
+
containerPath: "/root/.move",
|
|
122
|
+
name: "iota",
|
|
123
|
+
shared: true
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
type: "isolate",
|
|
127
|
+
containerPath: "/root/.iota",
|
|
128
|
+
name: "iota-config",
|
|
129
|
+
shared: true
|
|
130
|
+
}
|
|
131
|
+
];
|
|
196
132
|
var tools = [
|
|
197
133
|
{
|
|
198
134
|
name: "hardhat",
|
|
@@ -208,18 +144,20 @@ var tools = [
|
|
|
208
144
|
chainType: ChainType.SOLANA,
|
|
209
145
|
privileged: true,
|
|
210
146
|
defaultVolumes: solanaDefaultVolumes,
|
|
211
|
-
|
|
212
|
-
return parseAnchorTomlVersion(cwd, "anchor");
|
|
213
|
-
}, "getSecondaryVersionCheckValue")
|
|
147
|
+
getSecondaryVersion: /* @__PURE__ */ __name(({ cwd }) => parseAnchorTomlVersion(cwd, "anchor"), "getSecondaryVersion")
|
|
214
148
|
},
|
|
215
149
|
{
|
|
216
150
|
name: "solana",
|
|
217
151
|
chainType: ChainType.SOLANA,
|
|
218
152
|
privileged: true,
|
|
219
153
|
defaultVolumes: solanaDefaultVolumes,
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
154
|
+
getSecondaryVersion: /* @__PURE__ */ __name(({ cwd }) => parseAnchorTomlVersion(cwd, "solana"), "getSecondaryVersion")
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: "solana-verify",
|
|
158
|
+
chainType: ChainType.SOLANA,
|
|
159
|
+
privileged: true,
|
|
160
|
+
defaultVolumes: solanaDefaultVolumes
|
|
223
161
|
},
|
|
224
162
|
{
|
|
225
163
|
name: "aptos",
|
|
@@ -267,6 +205,11 @@ var tools = [
|
|
|
267
205
|
chainType: ChainType.SUIMOVE,
|
|
268
206
|
defaultVolumes: suiDefaultVolumes
|
|
269
207
|
},
|
|
208
|
+
{
|
|
209
|
+
name: "iota",
|
|
210
|
+
chainType: ChainType.SUIMOVE,
|
|
211
|
+
defaultVolumes: iotaDefaultVolumes
|
|
212
|
+
},
|
|
270
213
|
{
|
|
271
214
|
name: "stellar",
|
|
272
215
|
chainType: ChainType.STELLAR,
|
|
@@ -283,14 +226,14 @@ var tools = [
|
|
|
283
226
|
containerPath: "/usr/local/cargo",
|
|
284
227
|
name: "stellar-cargo",
|
|
285
228
|
shared: true,
|
|
286
|
-
locked:
|
|
229
|
+
locked: true
|
|
287
230
|
},
|
|
288
231
|
{
|
|
289
232
|
type: "isolate",
|
|
290
233
|
containerPath: "/usr/local/rustup",
|
|
291
234
|
name: "stellar-rustup",
|
|
292
235
|
shared: true,
|
|
293
|
-
locked:
|
|
236
|
+
locked: true
|
|
294
237
|
}
|
|
295
238
|
]
|
|
296
239
|
},
|
|
@@ -315,6 +258,46 @@ var AWS_REGION = "us-east-1";
|
|
|
315
258
|
var ECR_REGISTRY = `${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`;
|
|
316
259
|
var ECR_IMAGE_DIRECTORY = "layerzerolabs";
|
|
317
260
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
261
|
+
// src/utils/finder.ts
|
|
262
|
+
var findToolByName = /* @__PURE__ */ __name((toolName) => {
|
|
263
|
+
const tool = tools.find((tool2) => tool2.name === toolName);
|
|
264
|
+
if (!tool) {
|
|
265
|
+
throw new Error(`Tool '${toolName}' not found`);
|
|
266
|
+
}
|
|
267
|
+
return tool;
|
|
268
|
+
}, "findToolByName");
|
|
269
|
+
var findToolsByType = /* @__PURE__ */ __name((type) => tools.filter((tool) => tool.chainType === type), "findToolsByType");
|
|
270
|
+
var getChainTypeForTool = /* @__PURE__ */ __name((toolName) => findToolByName(toolName).chainType, "getChainTypeForTool");
|
|
271
|
+
var getImageName = /* @__PURE__ */ __name((basename) => `${basename}-tooling`, "getImageName");
|
|
272
|
+
var findMatrixForTool = /* @__PURE__ */ __name((toolName) => Object.values(versionMatrices).find((combinations) => combinations.some(({ images: images2 }) => images2[toolName])) ?? [], "findMatrixForTool");
|
|
273
|
+
function getToolDefaultVersion(toolName) {
|
|
274
|
+
const combination = findMatrixForTool(toolName)[0];
|
|
275
|
+
if (!combination) {
|
|
276
|
+
return null;
|
|
277
|
+
}
|
|
278
|
+
const version = findToolVersionsForCombination(combination)[toolName];
|
|
279
|
+
if (!version) {
|
|
280
|
+
console.warn(`No default version found for tool '${toolName}' in matrix`);
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
return version;
|
|
284
|
+
}
|
|
285
|
+
__name(getToolDefaultVersion, "getToolDefaultVersion");
|
|
286
|
+
var findToolVersionsForCombination = /* @__PURE__ */ __name((combination) => Object.fromEntries(Object.entries(combination.images).map(([tool, imageId]) => {
|
|
287
|
+
const versions = images[imageId].versions;
|
|
288
|
+
const version = versions[tool];
|
|
289
|
+
if (!version) {
|
|
290
|
+
throw new Error(`Tool ${tool} not found in Docker image: ${imageId}`);
|
|
291
|
+
}
|
|
292
|
+
return [
|
|
293
|
+
tool,
|
|
294
|
+
version
|
|
295
|
+
];
|
|
296
|
+
})), "findToolVersionsForCombination");
|
|
297
|
+
var getToolSupportedVersions = /* @__PURE__ */ __name((toolName) => [
|
|
298
|
+
...new Set(findMatrixForTool(toolName).map((combination) => findToolVersionsForCombination(combination)[toolName]).filter(isString))
|
|
299
|
+
].sort(), "getToolSupportedVersions");
|
|
300
|
+
|
|
301
|
+
export { AWS_ACCOUNT_ID, AWS_REGION, ECR_IMAGE_DIRECTORY, ECR_REGISTRY, findMatrixForTool, findParentDirectoryWithFile, findSemVersionFromString, findToolByName, findToolVersionsForCombination, findToolsByType, getChainTypeForTool, getCombinationId, getImageName, getToolDefaultVersion, getToolSupportedVersions, iotaDefaultVolumes, parseAnchorTomlVersion, suiDefaultVolumes, tools, validateToolVersion, versionsSatisfied };
|
|
302
|
+
//# sourceMappingURL=H7LPHZJT.js.map
|
|
303
|
+
//# sourceMappingURL=H7LPHZJT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/finder.ts","../src/config/index.ts","../src/config/tools.ts","../src/utils/version.ts","../src/utils.ts"],"names":["findParentDirectoryWithFile","dir","filename","cur","filePath","path","join","fs","existsSync","directory","file","dirname","getCombinationId","combination","Object","entries","findToolVersionsForCombination","toSorted","flat","versionsSatisfied","current","expected","satisfies","parseAnchorTomlVersion","cwd","name","projectFolder","Error","toml","readFileSync","test","match","exec","matchedName","version","findSemVersionFromString","input","validateToolVersion","toolName","supportedVersions","getToolSupportedVersions","includes","solanaDefaultVolumes","type","containerPath","shared","suiDefaultVolumes","iotaDefaultVolumes","tools","chainType","ChainType","EVM","defaultVolumes","SOLANA","privileged","getSecondaryVersion","APTOSMOVE","TON","STARKNET","SUIMOVE","STELLAR","locked","CANTON","AWS_ACCOUNT_ID","AWS_REGION","ECR_REGISTRY","ECR_IMAGE_DIRECTORY","findToolByName","tool","find","findToolsByType","filter","getChainTypeForTool","getImageName","basename","findMatrixForTool","values","versionMatrices","combinations","some","images","getToolDefaultVersion","console","warn","fromEntries","map","imageId","versions","Set","isString","sort"],"mappings":"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","file":"H7LPHZJT.js","sourcesContent":["import { isString } from 'es-toolkit';\n\nimport type { ChainType } from '@layerzerolabs/layerzero-definitions';\n\nimport type { ImageId, VersionCombination } from '../config';\nimport { images, tools, versionMatrices } from '../config';\nimport type { Tool } 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\nexport const getImageName = (basename: string): string => `${basename}-tooling`;\n\n/**\n * Find version matrix that contains a specific tool\n */\nexport const findMatrixForTool = (toolName: string): VersionCombination[] =>\n Object.values(versionMatrices).find((combinations) =>\n combinations.some(({ images }) => images[toolName]),\n ) ?? [];\n\n/**\n * Get default version for a specific tool from version matrix\n */\nexport function getToolDefaultVersion(toolName: string): string | null {\n const combination = findMatrixForTool(toolName)[0];\n\n if (!combination) {\n return null;\n }\n\n const version = findToolVersionsForCombination(combination)[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\nexport const findToolVersionsForCombination = (\n combination: VersionCombination,\n): Record<string, string> =>\n Object.fromEntries(\n Object.entries(combination.images).map(([tool, imageId]) => {\n const versions: Record<string, string> = images[imageId as ImageId].versions;\n const version = versions[tool];\n\n if (!version) {\n throw new Error(`Tool ${tool} not found in Docker image: ${imageId}`);\n }\n\n return [tool, version];\n }),\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((combination) => findToolVersionsForCombination(combination)[toolName])\n .filter(isString),\n ),\n ].sort();\n","export * from './docker-images';\nexport * from './tools';\nexport * 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 { Tool, VolumeMapping } from '../types';\nimport { parseAnchorTomlVersion } from '../utils/version';\n\nconst solanaDefaultVolumes: readonly VolumeMapping[] = [\n {\n type: 'isolate',\n containerPath: '/usr/local/cargo',\n name: 'solana-cargo',\n shared: true,\n },\n {\n // Rustup installs Rust toolchain binaries into the Cargo binary directory.\n // Thus, we can share neither the directory nor its Docker volume.\n type: 'isolate',\n containerPath: '/usr/local/cargo/bin',\n name: 'solana-cargo-bin',\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\nexport const suiDefaultVolumes: readonly VolumeMapping[] = [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'sui',\n shared: true,\n },\n {\n type: 'isolate',\n containerPath: '/root/.sui',\n name: 'sui-config',\n shared: true,\n },\n];\n\nexport const iotaDefaultVolumes: readonly VolumeMapping[] = [\n {\n type: 'isolate',\n containerPath: '/root/.move',\n name: 'iota',\n shared: true,\n },\n {\n type: 'isolate',\n containerPath: '/root/.iota',\n name: 'iota-config',\n shared: true,\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 getSecondaryVersion: ({ cwd }) => parseAnchorTomlVersion(cwd, 'anchor'),\n },\n {\n name: 'solana',\n chainType: ChainType.SOLANA,\n privileged: true,\n defaultVolumes: solanaDefaultVolumes,\n getSecondaryVersion: ({ cwd }) => parseAnchorTomlVersion(cwd, 'solana'),\n },\n {\n name: 'solana-verify',\n chainType: ChainType.SOLANA,\n privileged: true,\n defaultVolumes: solanaDefaultVolumes,\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: suiDefaultVolumes,\n },\n {\n name: 'iota',\n chainType: ChainType.SUIMOVE,\n defaultVolumes: iotaDefaultVolumes,\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: true,\n },\n {\n type: 'isolate',\n containerPath: '/usr/local/rustup',\n name: 'stellar-rustup',\n shared: true,\n locked: true,\n },\n ],\n },\n {\n name: 'daml',\n chainType: ChainType.CANTON,\n defaultVolumes: [\n {\n type: 'isolate',\n containerPath: '/root/.daml',\n name: 'canton-daml-cache',\n shared: true,\n locked: false,\n },\n ],\n },\n];\n","import fs from 'fs';\nimport * as semver from 'semver';\n\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: string, expected: string): boolean {\n return semver.satisfies(current, expected);\n}\n\n/**\n * Parse anchor/solana version from Anchor.toml file\n */\nexport function parseAnchorTomlVersion(cwd: string, name: 'anchor' | 'solana'): string {\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 && version) {\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): string {\n const version = input.match(/^(solana-cli|anchor-cli|aptos)\\s+(([0-9]+\\.?){3}).*?/m)?.[2];\n\n if (!version) {\n throw new Error(`Invalid semver version: ${input}`);\n }\n\n return version;\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 fs from 'node:fs';\nimport path from 'node:path';\n\nimport type { VersionCombination } from './config';\nimport { findToolVersionsForCombination } from './utils/finder';\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 const getCombinationId = (combination: VersionCombination): string =>\n Object.entries(findToolVersionsForCombination(combination)).toSorted().flat().join('-');\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/index.ts"],"names":["init_cjs_shims"],"mappings":";;;;;AAAAA,2BAAA,EAAA","file":"IDMMHZJ3.cjs","sourcesContent":["export * from './docker';\nexport * from './tool';\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { stringifyError } from './IWNVWC3I.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { lockMany } from './FL2DFW3Y.js';
|
|
3
|
+
import { resolveTypeVersions } from './55HL3CFD.js';
|
|
4
|
+
import { getImageUriForTool, getVolumeName } from './FQUILSS5.js';
|
|
5
|
+
import { AWS_REGION, AWS_ACCOUNT_ID, findToolByName, getChainTypeForTool, tools, versionsSatisfied } from './H7LPHZJT.js';
|
|
5
6
|
import { init_esm_shims, __name } from './4RNWLMHM.js';
|
|
6
|
-
import fs from 'node:fs';
|
|
7
7
|
import path from 'node:path';
|
|
8
8
|
import process from 'node:process';
|
|
9
9
|
import { $ } from 'zx';
|
|
@@ -24,37 +24,36 @@ var mergeVolumes = /* @__PURE__ */ __name((defaultVolumes, userVolumes) => {
|
|
|
24
24
|
...defaultVolumes.filter((volume) => !paths.has(volume.containerPath))
|
|
25
25
|
];
|
|
26
26
|
}, "mergeVolumes");
|
|
27
|
-
async function ensureDockerImage(
|
|
27
|
+
async function ensureDockerImage(imageUri) {
|
|
28
28
|
let output;
|
|
29
29
|
try {
|
|
30
|
-
output = await $`docker image ls ${
|
|
31
|
-
if (output.stdout.includes(
|
|
32
|
-
console.info(`\u2705 Using cached Docker image: ${
|
|
30
|
+
output = await $`docker image ls ${imageUri}`.nothrow();
|
|
31
|
+
if (output.stdout.includes(imageUri)) {
|
|
32
|
+
console.info(`\u2705 Using cached Docker image: ${imageUri}`);
|
|
33
33
|
return;
|
|
34
34
|
}
|
|
35
|
-
console.info("\u{1F4E5} Pulling Docker image from ECR:",
|
|
36
|
-
output = await $`docker pull ${
|
|
35
|
+
console.info("\u{1F4E5} Pulling Docker image from ECR:", imageUri);
|
|
36
|
+
output = await $`docker pull ${imageUri}`.nothrow();
|
|
37
37
|
} catch (error) {
|
|
38
|
-
throw new Error(`Failed to pull Docker image ${
|
|
38
|
+
throw new Error(`Failed to pull Docker image ${imageUri}: ${stringifyError(error)}`);
|
|
39
39
|
}
|
|
40
40
|
if (output.exitCode) {
|
|
41
41
|
throw new Error([
|
|
42
42
|
"Docker image not available:",
|
|
43
|
-
` - ECR image: ${
|
|
43
|
+
` - ECR image: ${imageUri} (pull failed)`,
|
|
44
44
|
"",
|
|
45
45
|
"\u{1F4A1} Solutions:",
|
|
46
46
|
` 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`,
|
|
47
47
|
" 2. Check if the image tag exists in ECR."
|
|
48
48
|
].join("\n"));
|
|
49
49
|
}
|
|
50
|
-
console.info(`\u2705 Successfully pulled: ${
|
|
50
|
+
console.info(`\u2705 Successfully pulled: ${imageUri}`);
|
|
51
51
|
}
|
|
52
52
|
__name(ensureDockerImage, "ensureDockerImage");
|
|
53
|
-
async function executeToolCommand(command, args,
|
|
54
|
-
const { cwd, volumes: userVolumes, customEntrypoint: entrypoint, env: customEnvVars, script, publish } = options;
|
|
53
|
+
async function executeToolCommand(command, args, { cwd, volumes: userVolumes, customEntrypoint: entrypoint, env: customEnvVars, script, publish, versions = {} }) {
|
|
55
54
|
const tool = findToolByName(command);
|
|
56
55
|
const type = getChainTypeForTool(command);
|
|
57
|
-
if (type
|
|
56
|
+
if (!type) {
|
|
58
57
|
throw new Error([
|
|
59
58
|
`Tool '${command}' not found or no type configuration available.`,
|
|
60
59
|
`Available tools: ${tools.map(({ name }) => name).join(", ")}`,
|
|
@@ -72,55 +71,27 @@ async function executeToolCommand(command, args, options) {
|
|
|
72
71
|
}
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
for (const warning of versionResult.warnings) {
|
|
78
|
-
console.warn(warning);
|
|
79
|
-
}
|
|
80
|
-
const resolvedVersion = versionResult.resolvedVersions[command];
|
|
81
|
-
if (typeof resolvedVersion !== "string" || resolvedVersion === "") {
|
|
74
|
+
const resolvedVersion = resolveTypeVersions(type, versions)[command];
|
|
75
|
+
if (!resolvedVersion) {
|
|
82
76
|
throw new Error(`No version resolved for tool ${command}`);
|
|
83
77
|
}
|
|
84
78
|
console.info(`\u{1F527} ${command} version: ${resolvedVersion}`);
|
|
85
|
-
if (tool.
|
|
79
|
+
if (tool.getSecondaryVersion) {
|
|
86
80
|
try {
|
|
87
|
-
const secondaryVersion = tool.
|
|
81
|
+
const secondaryVersion = tool.getSecondaryVersion({
|
|
88
82
|
cwd
|
|
89
83
|
});
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
};
|
|
93
|
-
if (!versionsSatisfied(secondaryVersion, resolvedVersionObj)) {
|
|
94
|
-
console.warn(`Warning: Local configuration version (${secondaryVersion.version}) differs from resolved version (${resolvedVersion})`);
|
|
84
|
+
if (!versionsSatisfied(secondaryVersion, resolvedVersion)) {
|
|
85
|
+
console.warn(`Warning: Local configuration version (${secondaryVersion}) differs from resolved version (${resolvedVersion})`);
|
|
95
86
|
}
|
|
96
87
|
} catch (error) {
|
|
97
88
|
console.warn("Could not validate secondary version:", stringifyError(error));
|
|
98
89
|
}
|
|
99
90
|
}
|
|
100
|
-
const imageURI =
|
|
91
|
+
const imageURI = getImageUriForTool(tool.name, resolvedVersion);
|
|
101
92
|
const workspaceRoot = await getFullyQualifiedRepoRootPath();
|
|
102
93
|
const relativePath = path.relative(workspaceRoot, cwd);
|
|
103
94
|
await ensureDockerImage(imageURI);
|
|
104
|
-
const volumeArgs = volumes.map((volume) => {
|
|
105
|
-
if (volume.type === "host") {
|
|
106
|
-
return `${volume.hostPath}:${volume.containerPath}`;
|
|
107
|
-
}
|
|
108
|
-
const components = [
|
|
109
|
-
"lz-tooling-cache",
|
|
110
|
-
volume.name
|
|
111
|
-
];
|
|
112
|
-
if (!volume.shared) {
|
|
113
|
-
const packageName = process.env.npm_package_name;
|
|
114
|
-
if (!packageName) {
|
|
115
|
-
throw new Error("npm_package_name environment variable not defined");
|
|
116
|
-
}
|
|
117
|
-
components.push(path.basename(packageName));
|
|
118
|
-
}
|
|
119
|
-
return `${components.join("-")}:${volume.containerPath}`;
|
|
120
|
-
}).flatMap((volume) => [
|
|
121
|
-
"-v",
|
|
122
|
-
volume
|
|
123
|
-
]);
|
|
124
95
|
if (entrypoint?.trim()) {
|
|
125
96
|
console.info(`\u{1F527} Using custom entrypoint: ${entrypoint}`);
|
|
126
97
|
}
|
|
@@ -160,7 +131,10 @@ async function executeToolCommand(command, args, options) {
|
|
|
160
131
|
"-p",
|
|
161
132
|
publish.trim()
|
|
162
133
|
] : [],
|
|
163
|
-
...
|
|
134
|
+
...volumes.map(getVolumeName).flatMap((volume) => [
|
|
135
|
+
"-v",
|
|
136
|
+
volume
|
|
137
|
+
]),
|
|
164
138
|
...entrypoint ? [
|
|
165
139
|
"--entrypoint",
|
|
166
140
|
entrypoint
|
|
@@ -171,22 +145,13 @@ async function executeToolCommand(command, args, options) {
|
|
|
171
145
|
const output = await lockMany(volumes.flatMap((volume) => volume.type === "isolate" && volume.locked ? [
|
|
172
146
|
volume.name
|
|
173
147
|
] : []), () => $`docker ${dockerArgs}`.nothrow());
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if (exitCode !== 0) {
|
|
177
|
-
process.exit(exitCode ?? 1);
|
|
148
|
+
if (output.exitCode) {
|
|
149
|
+
throw new Error(`Failed to run Docker container (exit code: ${output.exitCode})`);
|
|
178
150
|
}
|
|
151
|
+
return output;
|
|
179
152
|
}
|
|
180
153
|
__name(executeToolCommand, "executeToolCommand");
|
|
181
|
-
function saveAptosModulesOrder(command, processOutput, workspaceRoot, relPath) {
|
|
182
|
-
if ("aptos" === command) {
|
|
183
|
-
const outputJson = processOutput.json();
|
|
184
|
-
const modules = outputJson.Result.map((item) => `${item.split("::")[1]}.mv`);
|
|
185
|
-
fs.writeFileSync(path.join(workspaceRoot, relPath, "modules.json"), JSON.stringify(modules, null, 2));
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
__name(saveAptosModulesOrder, "saveAptosModulesOrder");
|
|
189
154
|
|
|
190
155
|
export { executeToolCommand };
|
|
191
|
-
//# sourceMappingURL=
|
|
192
|
-
//# sourceMappingURL=
|
|
156
|
+
//# sourceMappingURL=II7QHMLF.js.map
|
|
157
|
+
//# sourceMappingURL=II7QHMLF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/tool-executor.ts"],"names":["$","verbose","stdio","process","stderr","mergeVolumes","defaultVolumes","userVolumes","paths","Set","map","volume","containerPath","filter","has","ensureDockerImage","imageUri","output","nothrow","stdout","includes","console","info","error","Error","stringifyError","exitCode","AWS_REGION","AWS_ACCOUNT_ID","join","executeToolCommand","command","args","cwd","volumes","customEntrypoint","entrypoint","env","customEnvVars","script","publish","versions","tool","findToolByName","type","getChainTypeForTool","tools","name","length","overrides","uv","some","dv","resolvedVersion","resolveTypeVersions","getSecondaryVersion","secondaryVersion","versionsSatisfied","warn","imageURI","getImageUriForTool","workspaceRoot","getFullyQualifiedRepoRootPath","relativePath","path","relative","trim","envArgs","envVar","value","flat","finalArgs","undefined","dockerArgs","privileged","getVolumeName","flatMap","lockMany","locked"],"mappings":"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","file":"II7QHMLF.js","sourcesContent":["import path from 'node:path';\nimport process from 'node:process';\nimport { $, type ProcessOutput } from 'zx';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport { AWS_ACCOUNT_ID, AWS_REGION, tools } from '../config';\nimport type { EnvironmentVariable, VolumeMapping } from '../types';\nimport { getImageUriForTool, getVolumeName } from '../utils/docker';\nimport { stringifyError } from '../utils/error';\nimport { findToolByName, getChainTypeForTool } from '../utils/finder';\nimport { versionsSatisfied } from '../utils/version';\nimport { lockMany } from './lock';\nimport { resolveTypeVersions } from './version-resolver';\n\n// Configure zx to inherit stdio by default (moved from original setup)\n$.verbose = true;\n$.stdio = ['inherit', 'pipe', process.stderr];\n\n/**\n * Merge default volumes with user-specified volumes\n * User volumes take precedence when containerPath conflicts\n */\nconst mergeVolumes = (\n defaultVolumes: readonly VolumeMapping[],\n userVolumes: readonly VolumeMapping[],\n): VolumeMapping[] => {\n const paths = new Set(userVolumes.map((volume) => volume.containerPath));\n\n return [...userVolumes, ...defaultVolumes.filter((volume) => !paths.has(volume.containerPath))];\n};\n\nasync function ensureDockerImage(imageUri: string): Promise<void> {\n let output: ProcessOutput;\n\n try {\n // Check local images first.\n output = await $`docker image ls ${imageUri}`.nothrow();\n\n if (output.stdout.includes(imageUri)) {\n console.info(`✅ Using cached Docker image: ${imageUri}`);\n return;\n }\n\n console.info('📥 Pulling Docker image from ECR:', imageUri);\n output = await $`docker pull ${imageUri}`.nothrow();\n } catch (error: unknown) {\n throw new Error(`Failed to pull Docker image ${imageUri}: ${stringifyError(error)}`);\n }\n\n if (output.exitCode) {\n throw new Error(\n [\n 'Docker image not available:',\n ` - ECR image: ${imageUri} (pull failed)`,\n '',\n '💡 Solutions:',\n ` 1. Authenticate with ECR: aws ecr get-login-password --region ${AWS_REGION} | ` +\n `docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com`,\n ' 2. Check if the image tag exists in ECR.',\n ].join('\\n'),\n );\n }\n\n console.info(`✅ Successfully pulled: ${imageUri}`);\n}\n\nexport interface ToolCommandExecutionOptions {\n cwd: string;\n volumes: readonly VolumeMapping[];\n customEntrypoint?: string;\n env: EnvironmentVariable[];\n script?: string;\n publish?: string;\n versions?: Record<string, string>;\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 {\n cwd,\n volumes: userVolumes,\n customEntrypoint: entrypoint,\n env: customEnvVars,\n script,\n publish,\n versions = {},\n }: ToolCommandExecutionOptions,\n): Promise<ProcessOutput> {\n const tool = findToolByName(command);\n const type = getChainTypeForTool(command);\n\n if (!type) {\n throw new Error(\n [\n `Tool '${command}' not found or no type configuration available.`,\n `Available tools: ${tools.map(({ name }) => name).join(', ')}`,\n `Try: lz-tool --list-versions to see all available tools`,\n ].join('\\n'),\n );\n }\n\n // Merge default volumes with user-specified volumes\n const defaultVolumes = tool.defaultVolumes ?? [];\n const volumes = mergeVolumes(defaultVolumes, userVolumes);\n\n if (defaultVolumes.length > 0) {\n console.info(`📦 Using ${defaultVolumes.length} default cache volume(s) for ${command}`);\n if (userVolumes.length > 0) {\n const overrides = userVolumes.filter((uv) =>\n defaultVolumes.some((dv) => dv.containerPath === uv.containerPath),\n );\n if (overrides.length > 0) {\n console.info(`🔧 User volumes override ${overrides.length} default volume(s)`);\n }\n }\n }\n\n // Get the resolved version for the current tool\n const resolvedVersion = resolveTypeVersions(type, versions)[command];\n if (!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.getSecondaryVersion) {\n try {\n const secondaryVersion = tool.getSecondaryVersion({ cwd });\n\n if (!versionsSatisfied(secondaryVersion, resolvedVersion)) {\n console.warn(\n `Warning: Local configuration version (${secondaryVersion}) differs from resolved version (${resolvedVersion})`,\n );\n }\n } catch (error) {\n // Secondary version check failed, but continue with resolved version\n console.warn('Could not validate secondary version:', stringifyError(error));\n }\n }\n\n // Use Docker image with merged volumes\n const imageURI = getImageUriForTool(tool.name, resolvedVersion);\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const relativePath = path.relative(workspaceRoot, cwd);\n\n await ensureDockerImage(imageURI);\n\n if (entrypoint?.trim()) {\n console.info(`🔧 Using custom entrypoint: ${entrypoint}`);\n }\n\n // Build the Docker command with proper argument separation\n const envArgs = customEnvVars.map((envVar) => ['-e', `${envVar.name}=${envVar.value}`]).flat();\n\n if (customEnvVars.length > 0) {\n console.info(`🌍 Using ${customEnvVars.length} custom environment variable(s)`);\n }\n\n // Handle custom script execution\n let finalArgs: string[];\n if (script && script.trim() !== '') {\n console.info(`📜 Executing custom script: ${script}`);\n finalArgs = ['bash', '-c', script];\n } else {\n finalArgs = entrypoint === undefined ? [tool.name, ...args] : args;\n }\n\n // Build the Docker command with proper argument separation\n const dockerArgs = [\n 'run',\n ...(tool.privileged ? ['--privileged'] : []),\n '--rm',\n ...envArgs,\n '-v',\n `${workspaceRoot}:/workspace`,\n '-w',\n `/workspace/${relativePath}`,\n ...(publish ? ['-p', publish.trim()] : []),\n ...volumes.map(getVolumeName).flatMap((volume) => ['-v', volume]),\n ...(entrypoint ? ['--entrypoint', entrypoint] : []),\n imageURI,\n ...finalArgs,\n ];\n\n const output = await lockMany(\n volumes.flatMap((volume) =>\n volume.type === 'isolate' && volume.locked ? [volume.name] : [],\n ),\n () => $`docker ${dockerArgs}`.nothrow(),\n );\n\n if (output.exitCode) {\n throw new Error(`Failed to run Docker container (exit code: ${output.exitCode})`);\n }\n\n return output;\n}\n"]}
|