@layerzerolabs/vm-tooling 0.2.112 → 0.2.114
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/2ICMBBWU.js +6 -0
- package/dist/{N53MNPWU.js.map → 2ICMBBWU.js.map} +1 -1
- package/dist/{TWCQHE4E.js → 337JSZDD.js} +4 -4
- package/dist/{TWCQHE4E.js.map → 337JSZDD.js.map} +1 -1
- package/dist/{7CGWPLOJ.js → 4LO2IH4K.js} +6 -5
- package/dist/4LO2IH4K.js.map +1 -0
- package/dist/{NAWFODGG.js → 4Y7MN3EA.js} +5 -5
- package/dist/{NAWFODGG.js.map → 4Y7MN3EA.js.map} +1 -1
- package/dist/{IIZVEHVD.js → 5GPTK3MH.js} +12 -5
- package/dist/5GPTK3MH.js.map +1 -0
- package/dist/{TXIQ74D3.js → 6M2RYAT4.js} +9 -5
- package/dist/6M2RYAT4.js.map +1 -0
- package/dist/{UUWRT3Q2.js → 7AOPRLRU.js} +4 -4
- package/dist/{UUWRT3Q2.js.map → 7AOPRLRU.js.map} +1 -1
- package/dist/7ZZ35UQB.js +6 -0
- package/dist/{3N42XVZL.js.map → 7ZZ35UQB.js.map} +1 -1
- package/dist/BTTCOAYB.js +145 -0
- package/dist/BTTCOAYB.js.map +1 -0
- package/dist/{2PIH5TOH.js → CWBC3WMF.js} +3 -3
- package/dist/{2PIH5TOH.js.map → CWBC3WMF.js.map} +1 -1
- package/dist/{IPZ5KX7M.js → DCLKPAAD.js} +3 -3
- package/dist/{IPZ5KX7M.js.map → DCLKPAAD.js.map} +1 -1
- package/dist/{RORYN2CM.js → DHOHK2AA.js} +3 -3
- package/dist/{RORYN2CM.js.map → DHOHK2AA.js.map} +1 -1
- package/dist/DTNGUD3B.js +349 -0
- package/dist/DTNGUD3B.js.map +1 -0
- package/dist/{FFE7SXCG.js → EN67HYJT.js} +3 -3
- package/dist/{FFE7SXCG.js.map → EN67HYJT.js.map} +1 -1
- package/dist/{KBUFOLY3.js → H7PAZQ2B.js} +5 -5
- package/dist/{KBUFOLY3.js.map → H7PAZQ2B.js.map} +1 -1
- package/dist/{H6FLARPD.js → H7YRHR5O.js} +3 -3
- package/dist/{H6FLARPD.js.map → H7YRHR5O.js.map} +1 -1
- package/dist/ID575YY3.js +158 -0
- package/dist/ID575YY3.js.map +1 -0
- package/dist/{AIKNZKYE.js → INJJFIX2.js} +5 -5
- package/dist/{AIKNZKYE.js.map → INJJFIX2.js.map} +1 -1
- package/dist/LYF4JPSK.js +24 -0
- package/dist/LYF4JPSK.js.map +1 -0
- package/dist/{PNCVL7HO.js → MAF3KTCC.js} +5 -5
- package/dist/{PNCVL7HO.js.map → MAF3KTCC.js.map} +1 -1
- package/dist/SKMNEOBU.js +49 -0
- package/dist/SKMNEOBU.js.map +1 -0
- package/dist/{X6QPMSID.js → UBSQYHMB.js} +3 -3
- package/dist/{X6QPMSID.js.map → UBSQYHMB.js.map} +1 -1
- package/dist/{7DDNJRV6.js → V4633Q24.js} +8 -8
- package/dist/{7DDNJRV6.js.map → V4633Q24.js.map} +1 -1
- package/dist/WIT6LHNF.js +84 -0
- package/dist/WIT6LHNF.js.map +1 -0
- package/dist/{FT4JK367.js → WTU5LLJL.js} +5 -5
- package/dist/{FT4JK367.js.map → WTU5LLJL.js.map} +1 -1
- package/dist/ZBEXHZRK.js +46 -0
- package/dist/ZBEXHZRK.js.map +1 -0
- package/dist/cli.js +21 -16
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -3
- package/dist/context.js +1 -1
- package/dist/core/index.js +17 -12
- package/dist/core/local-executor.js +2 -2
- package/dist/core/local-executor.test.js +3 -3
- package/dist/core/lock.js +2 -2
- package/dist/core/lock.test.js +3 -3
- package/dist/core/tool-executor.d.ts.map +1 -1
- package/dist/core/tool-executor.js +16 -11
- package/dist/core/tool-executor.test.js +17 -12
- package/dist/core/tool-executor.test.js.map +1 -1
- package/dist/core/version-resolver.js +4 -4
- package/dist/display/formatters.js +4 -4
- package/dist/display/index.js +6 -6
- package/dist/display/version-display.js +5 -5
- package/dist/environment.js +2 -2
- package/dist/github/index.js +7 -7
- package/dist/github/matrix.js +6 -6
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -19
- package/dist/index.js.map +1 -1
- package/dist/mini-workspace/index.d.ts +6 -0
- package/dist/mini-workspace/index.d.ts.map +1 -0
- package/dist/mini-workspace/index.js +10 -0
- package/dist/mini-workspace/index.js.map +1 -0
- package/dist/mini-workspace/mini-workspace.test.js +643 -0
- package/dist/mini-workspace/mini-workspace.test.js.map +1 -0
- package/dist/mini-workspace/node-modules.d.ts +19 -0
- package/dist/mini-workspace/node-modules.d.ts.map +1 -0
- package/dist/mini-workspace/node-modules.js +4 -0
- package/dist/mini-workspace/node-modules.js.map +1 -0
- package/dist/mini-workspace/types.d.ts +82 -0
- package/dist/mini-workspace/types.d.ts.map +1 -0
- package/dist/mini-workspace/types.js +6 -0
- package/dist/mini-workspace/types.js.map +1 -0
- package/dist/mini-workspace/workspace-dependency-graph.d.ts +10 -0
- package/dist/mini-workspace/workspace-dependency-graph.d.ts.map +1 -0
- package/dist/mini-workspace/workspace-dependency-graph.js +7 -0
- package/dist/mini-workspace/workspace-dependency-graph.js.map +1 -0
- package/dist/mini-workspace/workspace-source-copy.d.ts +15 -0
- package/dist/mini-workspace/workspace-source-copy.d.ts.map +1 -0
- package/dist/mini-workspace/workspace-source-copy.js +6 -0
- package/dist/mini-workspace/workspace-source-copy.js.map +1 -0
- package/dist/test.js +6 -6
- package/dist/utils/docker.js +5 -5
- package/dist/utils/docker.test.js +6 -6
- package/dist/utils/error.js +2 -2
- package/dist/utils/finder.js +2 -2
- package/dist/utils/fs.d.ts +12 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +4 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils.d.ts +0 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -3
- package/package.json +8 -5
- package/dist/3N42XVZL.js +0 -6
- package/dist/7CGWPLOJ.js.map +0 -1
- package/dist/IIZVEHVD.js.map +0 -1
- package/dist/N53MNPWU.js +0 -6
- package/dist/PXDULNML.js +0 -37
- package/dist/PXDULNML.js.map +0 -1
- package/dist/TXIQ74D3.js.map +0 -1
- package/dist/U3L7CZHW.js +0 -284
- package/dist/U3L7CZHW.js.map +0 -1
package/dist/ID575YY3.js
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { isInside } from './SKMNEOBU.js';
|
|
2
|
+
import { findFileInParentDirectory } from './LYF4JPSK.js';
|
|
3
|
+
import { init_esm_shims, __name } from './6M2RYAT4.js';
|
|
4
|
+
import { realpath, open, lstat } from 'fs/promises';
|
|
5
|
+
import { resolve, relative, dirname, join, sep } from 'path';
|
|
6
|
+
import { parse } from 'yaml';
|
|
7
|
+
|
|
8
|
+
// src/mini-workspace/workspace-dependency-graph.ts
|
|
9
|
+
init_esm_shims();
|
|
10
|
+
var LOCKFILE_DEPENDENCY_GROUPS = [
|
|
11
|
+
"dependencies",
|
|
12
|
+
"devDependencies",
|
|
13
|
+
"optionalDependencies"
|
|
14
|
+
];
|
|
15
|
+
var lockfileImportersCache;
|
|
16
|
+
var normalizeRelativePath = /* @__PURE__ */ __name((path) => path.split(sep).join("/"), "normalizeRelativePath");
|
|
17
|
+
var isLinkVersion = /* @__PURE__ */ __name((dependency) => dependency.version.startsWith("link:"), "isLinkVersion");
|
|
18
|
+
var findPnpmWorkspaceRoot = /* @__PURE__ */ __name(async (startDir) => {
|
|
19
|
+
const workspaceFile = await findFileInParentDirectory(startDir, "pnpm-workspace.yaml");
|
|
20
|
+
if (!workspaceFile) {
|
|
21
|
+
throw new Error(`Could not find pnpm-workspace.yaml above ${startDir}`);
|
|
22
|
+
}
|
|
23
|
+
return dirname(workspaceFile);
|
|
24
|
+
}, "findPnpmWorkspaceRoot");
|
|
25
|
+
var isFileNotFoundError = /* @__PURE__ */ __name((error) => {
|
|
26
|
+
const code = typeof error === "object" && error !== null ? error.code : void 0;
|
|
27
|
+
return code === "ENOENT";
|
|
28
|
+
}, "isFileNotFoundError");
|
|
29
|
+
var isFile = /* @__PURE__ */ __name(async (path) => {
|
|
30
|
+
try {
|
|
31
|
+
const stats = await lstat(path);
|
|
32
|
+
return stats.isFile();
|
|
33
|
+
} catch (error) {
|
|
34
|
+
if (!isFileNotFoundError(error)) {
|
|
35
|
+
throw error;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}, "isFile");
|
|
40
|
+
var findPackageRoot = /* @__PURE__ */ __name(async (startDir, repoRoot, importers) => {
|
|
41
|
+
let current = startDir;
|
|
42
|
+
for (; ; ) {
|
|
43
|
+
const relativePath = normalizeRelativePath(relative(repoRoot, current)) || ".";
|
|
44
|
+
if (await isFile(join(current, "package.json"))) {
|
|
45
|
+
if (importers[relativePath]) return current;
|
|
46
|
+
}
|
|
47
|
+
if (current === repoRoot) break;
|
|
48
|
+
const parent = dirname(current);
|
|
49
|
+
if (parent === current) break;
|
|
50
|
+
current = parent;
|
|
51
|
+
}
|
|
52
|
+
const startRelativePath = normalizeRelativePath(relative(repoRoot, startDir)) || ".";
|
|
53
|
+
throw new Error(`No pnpm-lock.yaml importer found for ${startRelativePath} or any ancestor package.json`);
|
|
54
|
+
}, "findPackageRoot");
|
|
55
|
+
var readLockfileImporters = /* @__PURE__ */ __name(async (repoRoot) => {
|
|
56
|
+
const lockfilePath = join(repoRoot, "pnpm-lock.yaml");
|
|
57
|
+
const handle = await open(lockfilePath, "r");
|
|
58
|
+
const cached = lockfileImportersCache;
|
|
59
|
+
try {
|
|
60
|
+
const stats = await handle.stat();
|
|
61
|
+
if (cached && cached.repoRoot === repoRoot && cached.mtimeMs === stats.mtimeMs && cached.size === stats.size) {
|
|
62
|
+
return cached.importers;
|
|
63
|
+
}
|
|
64
|
+
const lockfile = parse(await handle.readFile("utf-8"));
|
|
65
|
+
if (!lockfile?.importers) {
|
|
66
|
+
throw new Error(`Could not read pnpm-lock.yaml from ${repoRoot}`);
|
|
67
|
+
}
|
|
68
|
+
lockfileImportersCache = {
|
|
69
|
+
repoRoot,
|
|
70
|
+
mtimeMs: stats.mtimeMs,
|
|
71
|
+
size: stats.size,
|
|
72
|
+
importers: lockfile.importers
|
|
73
|
+
};
|
|
74
|
+
return lockfile.importers;
|
|
75
|
+
} finally {
|
|
76
|
+
await handle.close();
|
|
77
|
+
}
|
|
78
|
+
}, "readLockfileImporters");
|
|
79
|
+
var getDependencyVersion = /* @__PURE__ */ __name((dependency) => typeof dependency === "string" ? dependency : dependency.version, "getDependencyVersion");
|
|
80
|
+
var getImporterDependencies = /* @__PURE__ */ __name((importer) => LOCKFILE_DEPENDENCY_GROUPS.flatMap((group) => Object.entries(importer[group] ?? {}).flatMap(([name, dependency]) => {
|
|
81
|
+
const version = getDependencyVersion(dependency);
|
|
82
|
+
return version ? [
|
|
83
|
+
{
|
|
84
|
+
name,
|
|
85
|
+
version
|
|
86
|
+
}
|
|
87
|
+
] : [];
|
|
88
|
+
})), "getImporterDependencies");
|
|
89
|
+
var resolveLockfileLinkTarget = /* @__PURE__ */ __name((repoRoot, importerRelativePath, version) => {
|
|
90
|
+
const linkTarget = version.slice("link:".length);
|
|
91
|
+
const importerDir = importerRelativePath === "." ? repoRoot : join(repoRoot, importerRelativePath);
|
|
92
|
+
return resolve(importerDir, linkTarget);
|
|
93
|
+
}, "resolveLockfileLinkTarget");
|
|
94
|
+
var resolveWorkspaceDependencyGraph = /* @__PURE__ */ __name(async (options = {}) => {
|
|
95
|
+
const cwd = resolve(options.cwd ?? process.cwd());
|
|
96
|
+
const cwdReal = await realpath(cwd);
|
|
97
|
+
const repoRoot = options.repoRoot ? await realpath(options.repoRoot) : await findPnpmWorkspaceRoot(cwdReal);
|
|
98
|
+
const importers = await readLockfileImporters(repoRoot);
|
|
99
|
+
const packageRootReal = await findPackageRoot(cwdReal, repoRoot, importers);
|
|
100
|
+
const packageRelativePath = normalizeRelativePath(relative(repoRoot, packageRootReal)) || ".";
|
|
101
|
+
if (!importers[packageRelativePath]) {
|
|
102
|
+
throw new Error(`No pnpm-lock.yaml importer found for ${packageRelativePath}`);
|
|
103
|
+
}
|
|
104
|
+
const rootImporterDependencyNames = new Set(getImporterDependencies(importers["."] ?? {}).map((dependency) => dependency.name));
|
|
105
|
+
const queue = [
|
|
106
|
+
packageRelativePath
|
|
107
|
+
];
|
|
108
|
+
const visitedImporters = /* @__PURE__ */ new Set();
|
|
109
|
+
const includedByPath = /* @__PURE__ */ new Map();
|
|
110
|
+
const rootNodeModulesDependencyNames = /* @__PURE__ */ new Set();
|
|
111
|
+
while (queue.length > 0) {
|
|
112
|
+
const importerRelativePath = queue.shift();
|
|
113
|
+
if (visitedImporters.has(importerRelativePath)) continue;
|
|
114
|
+
visitedImporters.add(importerRelativePath);
|
|
115
|
+
const importer = importers[importerRelativePath];
|
|
116
|
+
if (!importer) {
|
|
117
|
+
throw new Error(`No pnpm-lock.yaml importer found for transitive workspace package ${importerRelativePath}`);
|
|
118
|
+
}
|
|
119
|
+
const dependencies = getImporterDependencies(importer);
|
|
120
|
+
for (const dependency of dependencies) {
|
|
121
|
+
if (rootImporterDependencyNames.has(dependency.name)) {
|
|
122
|
+
rootNodeModulesDependencyNames.add(dependency.name);
|
|
123
|
+
}
|
|
124
|
+
if (!isLinkVersion(dependency)) continue;
|
|
125
|
+
const absolutePath = await realpath(resolveLockfileLinkTarget(repoRoot, importerRelativePath, dependency.version));
|
|
126
|
+
const dependencyRelativePath = normalizeRelativePath(relative(repoRoot, absolutePath));
|
|
127
|
+
if (!isInside(repoRoot, absolutePath)) {
|
|
128
|
+
throw new Error(`Workspace dependency ${dependency.name} resolves outside the repository: ${absolutePath}`);
|
|
129
|
+
}
|
|
130
|
+
if (dependencyRelativePath === packageRelativePath) continue;
|
|
131
|
+
if (!includedByPath.has(dependencyRelativePath)) {
|
|
132
|
+
includedByPath.set(dependencyRelativePath, {
|
|
133
|
+
name: dependency.name,
|
|
134
|
+
importerRelativePath,
|
|
135
|
+
relativePath: dependencyRelativePath,
|
|
136
|
+
absolutePath,
|
|
137
|
+
version: dependency.version
|
|
138
|
+
});
|
|
139
|
+
queue.push(dependencyRelativePath);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
return {
|
|
144
|
+
repoRoot,
|
|
145
|
+
packageRoot: packageRootReal,
|
|
146
|
+
packageRelativePath,
|
|
147
|
+
rootNodeModulesDependencyNames: [
|
|
148
|
+
...rootNodeModulesDependencyNames
|
|
149
|
+
],
|
|
150
|
+
includedWorkspaceDependencies: [
|
|
151
|
+
...includedByPath.values()
|
|
152
|
+
]
|
|
153
|
+
};
|
|
154
|
+
}, "resolveWorkspaceDependencyGraph");
|
|
155
|
+
|
|
156
|
+
export { resolveWorkspaceDependencyGraph };
|
|
157
|
+
//# sourceMappingURL=ID575YY3.js.map
|
|
158
|
+
//# sourceMappingURL=ID575YY3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mini-workspace/workspace-dependency-graph.ts"],"names":["LOCKFILE_DEPENDENCY_GROUPS","lockfileImportersCache","normalizeRelativePath","path","split","sep","join","isLinkVersion","dependency","version","startsWith","findPnpmWorkspaceRoot","startDir","workspaceFile","findFileInParentDirectory","Error","dirname","isFileNotFoundError","error","code","undefined","isFile","stats","lstat","findPackageRoot","repoRoot","importers","current","relativePath","relative","parent","startRelativePath","readLockfileImporters","lockfilePath","handle","open","cached","stat","mtimeMs","size","lockfile","parse","readFile","close","getDependencyVersion","getImporterDependencies","importer","flatMap","group","Object","entries","name","resolveLockfileLinkTarget","importerRelativePath","linkTarget","slice","length","importerDir","resolve","resolveWorkspaceDependencyGraph","options","cwd","process","cwdReal","realpath","packageRootReal","packageRelativePath","rootImporterDependencyNames","Set","map","queue","visitedImporters","includedByPath","Map","rootNodeModulesDependencyNames","shift","has","add","dependencies","absolutePath","dependencyRelativePath","isInside","set","push","packageRoot","includedWorkspaceDependencies","values"],"mappings":"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","file":"ID575YY3.js","sourcesContent":["import { lstat, open, realpath } from 'node:fs/promises';\nimport { dirname, join, relative, resolve, sep } from 'node:path';\nimport { parse } from 'yaml';\n\nimport { findFileInParentDirectory } from '../utils';\nimport { isInside } from '../utils/fs';\nimport type {\n WorkspaceDependencyEdge,\n WorkspaceDependencyGraph,\n WorkspaceDependencyGraphOptions,\n} from './types';\n\nconst LOCKFILE_DEPENDENCY_GROUPS = [\n 'dependencies',\n 'devDependencies',\n 'optionalDependencies',\n] as const;\n\ninterface LockfileDependency {\n name: string;\n version: string;\n}\n\ninterface LockfileImporter {\n dependencies?: Record<string, { version?: string } | string>;\n devDependencies?: Record<string, { version?: string } | string>;\n optionalDependencies?: Record<string, { version?: string } | string>;\n}\n\ntype LockfileImporters = Record<string, LockfileImporter>;\n\ninterface PnpmLockfile {\n importers?: LockfileImporters;\n}\n\ninterface LockfileImportersCacheEntry {\n repoRoot: string;\n mtimeMs: number;\n size: number;\n importers: LockfileImporters;\n}\n\nlet lockfileImportersCache: LockfileImportersCacheEntry | undefined;\n\nconst normalizeRelativePath = (path: string): string => path.split(sep).join('/');\n\nconst isLinkVersion = (dependency: LockfileDependency): boolean =>\n dependency.version.startsWith('link:');\n\nconst findPnpmWorkspaceRoot = async (startDir: string): Promise<string> => {\n const workspaceFile = await findFileInParentDirectory(startDir, 'pnpm-workspace.yaml');\n\n if (!workspaceFile) {\n throw new Error(`Could not find pnpm-workspace.yaml above ${startDir}`);\n }\n\n return dirname(workspaceFile);\n};\n\nconst isFileNotFoundError = (error: unknown): boolean => {\n const code =\n typeof error === 'object' && error !== null ? (error as { code?: string }).code : undefined;\n\n return code === 'ENOENT';\n};\n\nconst isFile = async (path: string): Promise<boolean> => {\n try {\n const stats = await lstat(path);\n return stats.isFile();\n } catch (error) {\n if (!isFileNotFoundError(error)) {\n throw error;\n }\n\n return false;\n }\n};\n\n/**\n * Find the workspace package that owns the command cwd.\n *\n * Tool commands are often run from nested directories such as `contracts/solana`, while\n * pnpm-lock.yaml only indexes package roots. Walking upward lets the mini workspace bind-mount the\n * owning package instead of treating the nested cwd as its own package. The package.json check keeps\n * the search anchored to real package boundaries; the importer check makes sure that package is\n * actually represented in the lockfile graph we use for dependency discovery.\n */\nconst findPackageRoot = async (\n startDir: string,\n repoRoot: string,\n importers: LockfileImporters,\n): Promise<string> => {\n let current = startDir;\n\n for (;;) {\n const relativePath = normalizeRelativePath(relative(repoRoot, current)) || '.';\n\n if (await isFile(join(current, 'package.json'))) {\n if (importers[relativePath]) return current;\n }\n\n if (current === repoRoot) break;\n\n const parent = dirname(current);\n if (parent === current) break;\n current = parent;\n }\n\n const startRelativePath = normalizeRelativePath(relative(repoRoot, startDir)) || '.';\n throw new Error(\n `No pnpm-lock.yaml importer found for ${startRelativePath} or any ancestor package.json`,\n );\n};\n\n/**\n * Read pnpm-lock.yaml as structured YAML instead of depending on indentation.\n *\n * pnpm also exposes `@pnpm/lockfile.fs` for this, but adding that internal package pulls a sizeable\n * pnpm dependency tree into this repo. For this graph we only need the stable `importers`\n * object, so a normal YAML parser keeps the implementation robust without lockfile churn.\n */\nconst readLockfileImporters = async (repoRoot: string): Promise<LockfileImporters> => {\n const lockfilePath = join(repoRoot, 'pnpm-lock.yaml');\n const handle = await open(lockfilePath, 'r');\n const cached = lockfileImportersCache;\n\n try {\n const stats = await handle.stat();\n\n if (\n cached &&\n cached.repoRoot === repoRoot &&\n cached.mtimeMs === stats.mtimeMs &&\n cached.size === stats.size\n ) {\n return cached.importers;\n }\n\n const lockfile = parse(await handle.readFile('utf-8')) as PnpmLockfile | null;\n\n if (!lockfile?.importers) {\n throw new Error(`Could not read pnpm-lock.yaml from ${repoRoot}`);\n }\n\n lockfileImportersCache = {\n repoRoot,\n mtimeMs: stats.mtimeMs,\n size: stats.size,\n importers: lockfile.importers,\n };\n\n return lockfile.importers;\n } finally {\n await handle.close();\n }\n};\n\nconst getDependencyVersion = (dependency: { version?: string } | string): string | undefined =>\n typeof dependency === 'string' ? dependency : dependency.version;\n\nconst getImporterDependencies = (importer: LockfileImporter): LockfileDependency[] =>\n LOCKFILE_DEPENDENCY_GROUPS.flatMap((group) =>\n Object.entries(importer[group] ?? {}).flatMap(([name, dependency]) => {\n const version = getDependencyVersion(dependency);\n return version ? [{ name, version }] : [];\n }),\n );\n\nconst resolveLockfileLinkTarget = (\n repoRoot: string,\n importerRelativePath: string,\n version: string,\n): string => {\n const linkTarget = version.slice('link:'.length);\n const importerDir =\n importerRelativePath === '.' ? repoRoot : join(repoRoot, importerRelativePath);\n\n return resolve(importerDir, linkTarget);\n};\n\n/**\n * Resolve the repo-local workspace dependency graph for package-root container builds.\n *\n * The traversal is recursive in graph terms, but not expensive in filesystem terms: it follows\n * lockfile `link:` edges between importers instead of scanning packages or tool manifests. That means\n * transitive source packages such as `anchor-trait` are included when reached through `oapp`/`oft`.\n */\nexport const resolveWorkspaceDependencyGraph = async (\n options: WorkspaceDependencyGraphOptions = {},\n): Promise<WorkspaceDependencyGraph> => {\n const cwd = resolve(options.cwd ?? process.cwd());\n const cwdReal = await realpath(cwd);\n const repoRoot = options.repoRoot\n ? await realpath(options.repoRoot)\n : await findPnpmWorkspaceRoot(cwdReal);\n const importers = await readLockfileImporters(repoRoot);\n const packageRootReal = await findPackageRoot(cwdReal, repoRoot, importers);\n const packageRelativePath = normalizeRelativePath(relative(repoRoot, packageRootReal)) || '.';\n\n if (!importers[packageRelativePath]) {\n throw new Error(`No pnpm-lock.yaml importer found for ${packageRelativePath}`);\n }\n\n const rootImporterDependencyNames = new Set(\n getImporterDependencies(importers['.'] ?? {}).map((dependency) => dependency.name),\n );\n\n const queue = [packageRelativePath];\n const visitedImporters = new Set<string>();\n const includedByPath = new Map<string, WorkspaceDependencyEdge>();\n const rootNodeModulesDependencyNames = new Set<string>();\n\n while (queue.length > 0) {\n const importerRelativePath = queue.shift()!;\n if (visitedImporters.has(importerRelativePath)) continue;\n visitedImporters.add(importerRelativePath);\n\n const importer = importers[importerRelativePath];\n if (!importer) {\n throw new Error(\n `No pnpm-lock.yaml importer found for transitive workspace package ${importerRelativePath}`,\n );\n }\n\n const dependencies = getImporterDependencies(importer);\n\n for (const dependency of dependencies) {\n if (rootImporterDependencyNames.has(dependency.name)) {\n rootNodeModulesDependencyNames.add(dependency.name);\n }\n\n if (!isLinkVersion(dependency)) continue;\n\n const absolutePath = await realpath(\n resolveLockfileLinkTarget(repoRoot, importerRelativePath, dependency.version),\n );\n const dependencyRelativePath = normalizeRelativePath(relative(repoRoot, absolutePath));\n\n if (!isInside(repoRoot, absolutePath)) {\n throw new Error(\n `Workspace dependency ${dependency.name} resolves outside the repository: ${absolutePath}`,\n );\n }\n\n if (dependencyRelativePath === packageRelativePath) continue;\n\n if (!includedByPath.has(dependencyRelativePath)) {\n includedByPath.set(dependencyRelativePath, {\n name: dependency.name,\n importerRelativePath,\n relativePath: dependencyRelativePath,\n absolutePath,\n version: dependency.version,\n });\n queue.push(dependencyRelativePath);\n }\n }\n }\n\n return {\n repoRoot,\n packageRoot: packageRootReal,\n packageRelativePath,\n rootNodeModulesDependencyNames: [...rootNodeModulesDependencyNames],\n includedWorkspaceDependencies: [...includedByPath.values()],\n };\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { formatVersionCombination } from './
|
|
2
|
-
import { findToolByName, getToolDefaultVersion, getToolSupportedVersions } from './
|
|
3
|
-
import { init_esm_shims, __name } from './
|
|
1
|
+
import { formatVersionCombination } from './4Y7MN3EA.js';
|
|
2
|
+
import { findToolByName, getToolDefaultVersion, getToolSupportedVersions } from './UBSQYHMB.js';
|
|
3
|
+
import { init_esm_shims, __name } from './6M2RYAT4.js';
|
|
4
4
|
|
|
5
5
|
// src/display/version-display.ts
|
|
6
6
|
init_esm_shims();
|
|
@@ -64,5 +64,5 @@ function displayToolVersionInfo(context, toolName) {
|
|
|
64
64
|
__name(displayToolVersionInfo, "displayToolVersionInfo");
|
|
65
65
|
|
|
66
66
|
export { displayToolVersionInfo, displayVersionCombinations };
|
|
67
|
-
//# sourceMappingURL=
|
|
68
|
-
//# sourceMappingURL=
|
|
67
|
+
//# sourceMappingURL=INJJFIX2.js.map
|
|
68
|
+
//# sourceMappingURL=INJJFIX2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/display/version-display.ts"],"names":["displayVersionCombinations","context","console","log","combinations","versionCombinations","toolNames","Set","flatMap","images","Object","keys","sort","join","repeat","formatVersionCombination","index","combination","entries","displayToolVersionInfo","toolName","tool","findToolByName","Error","name","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","toUpperCase","defaultVolumes","length","forEach","volume","volumeDesc","type","containerPath","hostPath"],"mappings":"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","file":"
|
|
1
|
+
{"version":3,"sources":["../src/display/version-display.ts"],"names":["displayVersionCombinations","context","console","log","combinations","versionCombinations","toolNames","Set","flatMap","images","Object","keys","sort","join","repeat","formatVersionCombination","index","combination","entries","displayToolVersionInfo","toolName","tool","findToolByName","Error","name","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","toUpperCase","defaultVolumes","length","forEach","volume","volumeDesc","type","containerPath","hostPath"],"mappings":"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","file":"INJJFIX2.js","sourcesContent":["import type { ChainContext } from '../context';\nimport { findToolByName, getToolDefaultVersion, getToolSupportedVersions } from '../utils/finder';\nimport { formatVersionCombination } from './formatters';\n\n/**\n * Display all supported version combinations\n */\nexport function displayVersionCombinations(context: ChainContext<string>): void {\n console.log('\\n🚀 LayerZero VM Tool - Supported Version Combinations\\n');\n\n const combinations = context.versionCombinations;\n const toolNames = [...new Set(combinations.flatMap(({ images }) => Object.keys(images)))]\n .sort()\n .join(', ');\n\n console.log(`📦 Tools: ${toolNames}`);\n console.log('─'.repeat(50));\n\n console.log('🎯 Default:');\n console.log(formatVersionCombination(context, combinations[0], true));\n console.log();\n\n // Show all combinations\n console.log('📋 All supported combinations:');\n for (const [index, combination] of combinations.entries()) {\n console.log(formatVersionCombination(context, combination, !index));\n }\n console.log();\n\n console.log('💡 Usage examples:');\n console.log(' lz-tool anchor --anchor-version 0.29.0 --solana-version 1.17.31 build');\n console.log(\n ' lz-tool anchor --anchor-version 0.31.1 build # Auto-selects compatible solana version',\n );\n console.log();\n}\n\n/**\n * Display tool-specific version information\n */\nexport function displayToolVersionInfo<TImageId extends string>(\n context: ChainContext<TImageId>,\n toolName: string,\n): void {\n const tool = findToolByName(context, toolName);\n const combinations = context.versionCombinations;\n\n if (!combinations) {\n throw new Error(`No version matrix found for tool: ${tool.name}`);\n }\n\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n console.log(`\\n🔧 ${tool.name.toUpperCase()} Version Information`);\n console.log('─'.repeat(40));\n console.log(`Default version: ${defaultVersion}`);\n console.log(`Supported versions: ${supportedVersions.join(', ')}`);\n console.log();\n\n // Display default volumes\n if (tool.defaultVolumes && tool.defaultVolumes.length > 0) {\n console.log('📦 Default cache volumes:');\n tool.defaultVolumes.forEach((volume) => {\n const volumeDesc =\n volume.type === 'isolate'\n ? `${volume.name} → ${volume.containerPath}`\n : `${volume.hostPath} → ${volume.containerPath}`;\n console.log(` • ${volumeDesc}`);\n });\n console.log(' 💡 Use -v to override or add additional volumes');\n console.log();\n }\n\n console.log('🔗 Compatible combinations with other tools:');\n for (const [index, combination] of combinations.entries()) {\n if (combination.images[tool.name]) {\n console.log(formatVersionCombination(context, combination, !index));\n }\n }\n console.log();\n\n console.log('📝 Version resolution priority:');\n console.log(' 1. Command line options (--{tool}-version)');\n console.log(' 2. Default version');\n console.log();\n}\n"]}
|
package/dist/LYF4JPSK.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { findToolVersionsForCombination } from './UBSQYHMB.js';
|
|
2
|
+
import { init_esm_shims, __name } from './6M2RYAT4.js';
|
|
3
|
+
import { access } from 'fs/promises';
|
|
4
|
+
import { dirname, join } from 'path';
|
|
5
|
+
|
|
6
|
+
// src/utils.ts
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
var getCombinationId = /* @__PURE__ */ __name((context, combination) => Object.entries(findToolVersionsForCombination(context, combination)).toSorted().flat().join("-"), "getCombinationId");
|
|
9
|
+
var findFileInParentDirectory = /* @__PURE__ */ __name(async (directory, filename) => {
|
|
10
|
+
while (directory !== dirname(directory)) {
|
|
11
|
+
const path = join(directory, filename);
|
|
12
|
+
try {
|
|
13
|
+
await access(path);
|
|
14
|
+
return path;
|
|
15
|
+
} catch (_) {
|
|
16
|
+
}
|
|
17
|
+
directory = dirname(directory);
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}, "findFileInParentDirectory");
|
|
21
|
+
|
|
22
|
+
export { findFileInParentDirectory, getCombinationId };
|
|
23
|
+
//# sourceMappingURL=LYF4JPSK.js.map
|
|
24
|
+
//# sourceMappingURL=LYF4JPSK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils.ts"],"names":["getCombinationId","context","combination","Object","entries","findToolVersionsForCombination","toSorted","flat","join","findFileInParentDirectory","directory","filename","dirname","path","access","_"],"mappings":";;;;;;AAAA,cAAA,EAAA;AAOO,IAAMA,mCAAmB,MAAA,CAAA,CAC5BC,OAAAA,EACAC,WAAAA,KAEAC,MAAAA,CAAOC,QAAQC,8BAAAA,CAA+BJ,OAAAA,EAASC,WAAAA,CAAAA,EAClDI,QAAAA,EAAQ,CACRC,MAAI,CACJC,IAAAA,CAAK,GAAA,CAAA,EAPkB,kBAAA;AASzB,IAAMC,yBAAAA,mBAA4B,MAAA,CAAA,OACrCC,SAAAA,EACAC,QAAAA,KAAAA;AAEA,EAAA,OAAOD,SAAAA,KAAcE,OAAAA,CAAQF,SAAAA,CAAAA,EAAY;AACrC,IAAA,MAAMG,IAAAA,GAAOL,IAAAA,CAAKE,SAAAA,EAAWC,QAAAA,CAAAA;AAE7B,IAAA,IAAI;AACA,MAAA,MAAMG,OAAOD,IAAAA,CAAAA;AACb,MAAA,OAAOA,IAAAA;AACX,IAAA,CAAA,CAAA,OAASE,CAAAA,EAAG;AAAC,IAAA;AAEbL,IAAAA,SAAAA,GAAYE,QAAQF,SAAAA,CAAAA;AACxB,EAAA;AAEA,EAAA,OAAO,IAAA;AACX,CAAA,EAhByC,2BAAA","file":"LYF4JPSK.js","sourcesContent":["import { access } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\n\nimport type { VersionCombination } from './config';\nimport type { ChainContext } from './context';\nimport { findToolVersionsForCombination } from './utils/finder';\n\nexport const getCombinationId = <TImageId extends string>(\n context: ChainContext<TImageId>,\n combination: VersionCombination<TImageId>,\n): string =>\n Object.entries(findToolVersionsForCombination(context, combination))\n .toSorted()\n .flat()\n .join('-');\n\nexport const findFileInParentDirectory = async (\n directory: string,\n filename: string,\n): Promise<string | null> => {\n while (directory !== dirname(directory)) {\n const path = join(directory, filename);\n\n try {\n await access(path);\n return path;\n } catch (_) {}\n\n directory = dirname(directory);\n }\n\n return null;\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getImageTag } from './
|
|
2
|
-
import { getImageName } from './
|
|
3
|
-
import { init_esm_shims, __name } from './
|
|
1
|
+
import { getImageTag } from './H7PAZQ2B.js';
|
|
2
|
+
import { getImageName } from './UBSQYHMB.js';
|
|
3
|
+
import { init_esm_shims, __name } from './6M2RYAT4.js';
|
|
4
4
|
import { constantCase } from 'es-toolkit';
|
|
5
5
|
import { join } from 'path';
|
|
6
6
|
|
|
@@ -51,5 +51,5 @@ var generateGithubMatrix = /* @__PURE__ */ __name((images, directory, versionCom
|
|
|
51
51
|
}, "generateGithubMatrix");
|
|
52
52
|
|
|
53
53
|
export { generateGithubMatrix };
|
|
54
|
-
//# sourceMappingURL=
|
|
55
|
-
//# sourceMappingURL=
|
|
54
|
+
//# sourceMappingURL=MAF3KTCC.js.map
|
|
55
|
+
//# sourceMappingURL=MAF3KTCC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/github/matrix.ts"],"names":["generateGithubMatrix","images","directory","versionCombinations","createImageEntry","imageId","image","tag","getImageTag","Error","entry","id","name","build_args","Object","entries","versions","dependencies","sort","map","key","value","constantCase","join","image_name","getImageName","tags","results","imageEntries","r","mirroredImages","filter","result","mirrorRegistries","length","flatMap","mirror","activeImages","activeImageIds","Set","combo","values","push"],"mappings":";;;;;;;AAAA,cAAA,EAAA;AA8BO,IAAMA,oBAAAA,mBAAuB,MAAA,CAAA,CAChCC,MAAAA,EACAC,SAAAA,EACAC,mBAAAA,KAAAA;AAEA,EAAA,MAAMC,gBAAAA,mBAAmB,MAAA,CAAA,CAAC,CAACC,OAAAA,EAASC,KAAAA,CAAAA,KAAuB;AAIvD,IAAA,MAAMC,GAAAA,GAAMC,YAAYF,KAAAA,CAAAA;AAExB,IAAA,IAAI,CAACC,GAAAA,EAAK;AACN,MAAA,MAAM,IAAIE,KAAAA,CACN,CAAA,OAAA,EAAUJ,OAAAA,CAAAA,qEAAAA,CAA8E,CAAA;AAEhG,IAAA;AAEA,IAAA,OAAO;MACHK,KAAAA,EAAO;QACHC,EAAAA,EAAIN,OAAAA;AACJO,QAAAA,IAAAA,EAAMN,KAAAA,CAAMM,IAAAA;AACZC,QAAAA,UAAAA,EAAYC,OAAOC,OAAAA,CAAQ;AAAE,UAAA,GAAGT,KAAAA,CAAMU,QAAAA;AAAU,UAAA,GAAGV,KAAAA,CAAMW;AAAa,SAAA,CAAA,CACjEC,IAAAA,EAAI,CACJC,GAAAA,CAAI,CAAC,CAACC,GAAAA,EAAKC,KAAAA,CAAAA,KAAW,GAAGC,YAAAA,CAAaF,GAAAA,CAAAA,CAAAA,SAAAA,EAAgBC,KAAAA,CAAAA,CAAO,CAAA;AAClEnB,QAAAA,SAAAA,EAAWqB,IAAAA,CAAKrB,SAAAA,EAAW,QAAA,EAAUI,KAAAA,CAAMM,IAAI,CAAA;QAC/CY,UAAAA,EAAYC,YAAAA,CAAanB,MAAMM,IAAI,CAAA;QACnCc,IAAAA,EAAM;AAACnB,UAAAA;;AACX,OAAA;AACAD,MAAAA;AACJ,KAAA;EACJ,CAAA,EAzByB,kBAAA,CAAA;AA2BzB,EAAA,MAAMqB,UAAUb,MAAAA,CAAOC,OAAAA,CAAQd,MAAAA,CAAAA,CAAQkB,IAAIf,gBAAAA,CAAAA;AAE3C,EAAA,MAAMwB,eAAeD,OAAAA,CAAQR,GAAAA,CAAI,CAACU,CAAAA,KAAMA,EAAEnB,KAAK,CAAA;AAE/C,EAAA,MAAMoB,cAAAA,GAAiBH,QAClBI,MAAAA,CAAO,CAACC,WAAWA,MAAAA,CAAO1B,KAAAA,CAAM2B,kBAAkBC,MAAAA,CAAAA,CAClDC,QAAQ,CAAC,EAAEzB,OAAOJ,KAAAA,EAAK,KACpBA,MAAM2B,gBAAAA,CAAkBd,GAAAA,CAAI,CAACiB,MAAAA,MAAY;AACrCzB,IAAAA,EAAAA,EAAID,KAAAA,CAAMC,EAAAA;AACVC,IAAAA,IAAAA,EAAMF,KAAAA,CAAME,IAAAA;AACZY,IAAAA,UAAAA,EAAYd,KAAAA,CAAMc,UAAAA;AAClBE,IAAAA,IAAAA,EAAMhB,KAAAA,CAAMgB,IAAAA;AACZU,IAAAA;AACJ,GAAA,CAAA,CAAA,CAAA;AAGR,EAAA,MAAMC,eAAyB,EAAA;AAC/B,EAAA,IAAIlC,mBAAAA,EAAqB;AACrB,IAAA,MAAMmC,cAAAA,GAAiB,IAAIC,GAAAA,CACvBpC,mBAAAA,CAAoBgC,OAAAA,CAAQ,CAACK,KAAAA,KAAU1B,MAAAA,CAAO2B,MAAAA,CAAOD,KAAAA,CAAMvC,MAAM,CAAA,CAAA,CAAA;AAErEoC,IAAAA,YAAAA,CAAaK,IAAAA,CAAI,GAAIJ,cAAAA,CAAAA;AACzB,EAAA;AAEA,EAAA,OAAO;IAAErC,MAAAA,EAAQ2B,YAAAA;AAAcE,IAAAA,cAAAA;AAAgBO,IAAAA;AAAa,GAAA;AAChE,CAAA,EAzDoC,sBAAA","file":"
|
|
1
|
+
{"version":3,"sources":["../src/github/matrix.ts"],"names":["generateGithubMatrix","images","directory","versionCombinations","createImageEntry","imageId","image","tag","getImageTag","Error","entry","id","name","build_args","Object","entries","versions","dependencies","sort","map","key","value","constantCase","join","image_name","getImageName","tags","results","imageEntries","r","mirroredImages","filter","result","mirrorRegistries","length","flatMap","mirror","activeImages","activeImageIds","Set","combo","values","push"],"mappings":";;;;;;;AAAA,cAAA,EAAA;AA8BO,IAAMA,oBAAAA,mBAAuB,MAAA,CAAA,CAChCC,MAAAA,EACAC,SAAAA,EACAC,mBAAAA,KAAAA;AAEA,EAAA,MAAMC,gBAAAA,mBAAmB,MAAA,CAAA,CAAC,CAACC,OAAAA,EAASC,KAAAA,CAAAA,KAAuB;AAIvD,IAAA,MAAMC,GAAAA,GAAMC,YAAYF,KAAAA,CAAAA;AAExB,IAAA,IAAI,CAACC,GAAAA,EAAK;AACN,MAAA,MAAM,IAAIE,KAAAA,CACN,CAAA,OAAA,EAAUJ,OAAAA,CAAAA,qEAAAA,CAA8E,CAAA;AAEhG,IAAA;AAEA,IAAA,OAAO;MACHK,KAAAA,EAAO;QACHC,EAAAA,EAAIN,OAAAA;AACJO,QAAAA,IAAAA,EAAMN,KAAAA,CAAMM,IAAAA;AACZC,QAAAA,UAAAA,EAAYC,OAAOC,OAAAA,CAAQ;AAAE,UAAA,GAAGT,KAAAA,CAAMU,QAAAA;AAAU,UAAA,GAAGV,KAAAA,CAAMW;AAAa,SAAA,CAAA,CACjEC,IAAAA,EAAI,CACJC,GAAAA,CAAI,CAAC,CAACC,GAAAA,EAAKC,KAAAA,CAAAA,KAAW,GAAGC,YAAAA,CAAaF,GAAAA,CAAAA,CAAAA,SAAAA,EAAgBC,KAAAA,CAAAA,CAAO,CAAA;AAClEnB,QAAAA,SAAAA,EAAWqB,IAAAA,CAAKrB,SAAAA,EAAW,QAAA,EAAUI,KAAAA,CAAMM,IAAI,CAAA;QAC/CY,UAAAA,EAAYC,YAAAA,CAAanB,MAAMM,IAAI,CAAA;QACnCc,IAAAA,EAAM;AAACnB,UAAAA;;AACX,OAAA;AACAD,MAAAA;AACJ,KAAA;EACJ,CAAA,EAzByB,kBAAA,CAAA;AA2BzB,EAAA,MAAMqB,UAAUb,MAAAA,CAAOC,OAAAA,CAAQd,MAAAA,CAAAA,CAAQkB,IAAIf,gBAAAA,CAAAA;AAE3C,EAAA,MAAMwB,eAAeD,OAAAA,CAAQR,GAAAA,CAAI,CAACU,CAAAA,KAAMA,EAAEnB,KAAK,CAAA;AAE/C,EAAA,MAAMoB,cAAAA,GAAiBH,QAClBI,MAAAA,CAAO,CAACC,WAAWA,MAAAA,CAAO1B,KAAAA,CAAM2B,kBAAkBC,MAAAA,CAAAA,CAClDC,QAAQ,CAAC,EAAEzB,OAAOJ,KAAAA,EAAK,KACpBA,MAAM2B,gBAAAA,CAAkBd,GAAAA,CAAI,CAACiB,MAAAA,MAAY;AACrCzB,IAAAA,EAAAA,EAAID,KAAAA,CAAMC,EAAAA;AACVC,IAAAA,IAAAA,EAAMF,KAAAA,CAAME,IAAAA;AACZY,IAAAA,UAAAA,EAAYd,KAAAA,CAAMc,UAAAA;AAClBE,IAAAA,IAAAA,EAAMhB,KAAAA,CAAMgB,IAAAA;AACZU,IAAAA;AACJ,GAAA,CAAA,CAAA,CAAA;AAGR,EAAA,MAAMC,eAAyB,EAAA;AAC/B,EAAA,IAAIlC,mBAAAA,EAAqB;AACrB,IAAA,MAAMmC,cAAAA,GAAiB,IAAIC,GAAAA,CACvBpC,mBAAAA,CAAoBgC,OAAAA,CAAQ,CAACK,KAAAA,KAAU1B,MAAAA,CAAO2B,MAAAA,CAAOD,KAAAA,CAAMvC,MAAM,CAAA,CAAA,CAAA;AAErEoC,IAAAA,YAAAA,CAAaK,IAAAA,CAAI,GAAIJ,cAAAA,CAAAA;AACzB,EAAA;AAEA,EAAA,OAAO;IAAErC,MAAAA,EAAQ2B,YAAAA;AAAcE,IAAAA,cAAAA;AAAgBO,IAAAA;AAAa,GAAA;AAChE,CAAA,EAzDoC,sBAAA","file":"MAF3KTCC.js","sourcesContent":["import { constantCase } from 'es-toolkit';\nimport { join } from 'node:path';\n\nimport { type Image, type VersionCombination } from '../config';\nimport { getImageTag } from '../utils/docker';\nimport { getImageName } from '../utils/finder';\n\ninterface ImageEntry {\n id: string;\n name: string;\n build_args: string[];\n image_name: string;\n tags: string[];\n directory: string;\n}\n\ninterface MirroredImageEntry {\n id: string;\n name: string;\n image_name: string;\n tags: string[];\n mirror: string;\n}\n\ninterface GithubMatrixOutput {\n images: ImageEntry[];\n mirroredImages: MirroredImageEntry[];\n activeImages: string[];\n}\n\nexport const generateGithubMatrix = (\n images: Record<string, Image>,\n directory: string,\n versionCombinations?: VersionCombination<string>[],\n): GithubMatrixOutput => {\n const createImageEntry = ([imageId, image]: [string, Image]): {\n entry: ImageEntry;\n image: Image;\n } => {\n const tag = getImageTag(image);\n\n if (!tag) {\n throw new Error(\n `Image \"${imageId}\" produced no tags. Every image must have at least one non-empty tag.`,\n );\n }\n\n return {\n entry: {\n id: imageId,\n name: image.name,\n build_args: Object.entries({ ...image.versions, ...image.dependencies })\n .sort()\n .map(([key, value]) => `${constantCase(key)}_VERSION=${value}`),\n directory: join(directory, 'docker', image.name),\n image_name: getImageName(image.name),\n tags: [tag],\n },\n image,\n };\n };\n\n const results = Object.entries(images).map(createImageEntry);\n\n const imageEntries = results.map((r) => r.entry);\n\n const mirroredImages = results\n .filter((result) => result.image.mirrorRegistries?.length)\n .flatMap(({ entry, image }) =>\n image.mirrorRegistries!.map((mirror) => ({\n id: entry.id,\n name: entry.name,\n image_name: entry.image_name,\n tags: entry.tags,\n mirror,\n })),\n );\n\n const activeImages: string[] = [];\n if (versionCombinations) {\n const activeImageIds = new Set(\n versionCombinations.flatMap((combo) => Object.values(combo.images)),\n );\n activeImages.push(...activeImageIds);\n }\n\n return { images: imageEntries, mirroredImages, activeImages };\n};\n"]}
|
package/dist/SKMNEOBU.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { init_esm_shims, __name } from './6M2RYAT4.js';
|
|
2
|
+
import { rm } from 'fs/promises';
|
|
3
|
+
import { relative, isAbsolute } from 'path';
|
|
4
|
+
import { setTimeout } from 'timers/promises';
|
|
5
|
+
|
|
6
|
+
// src/utils/fs.ts
|
|
7
|
+
init_esm_shims();
|
|
8
|
+
var DEFAULT_SAFE_REMOVE_RETRYABLE_ERROR_CODES = /* @__PURE__ */ new Set([
|
|
9
|
+
"EACCES",
|
|
10
|
+
"EBUSY",
|
|
11
|
+
"EMFILE",
|
|
12
|
+
"ENFILE",
|
|
13
|
+
"ENOTEMPTY",
|
|
14
|
+
"EPERM"
|
|
15
|
+
]);
|
|
16
|
+
var DEFAULT_SAFE_REMOVE_MAX_RETRIES = 3;
|
|
17
|
+
var DEFAULT_SAFE_REMOVE_RETRY_DELAY_MS = 100;
|
|
18
|
+
var getErrorCode = /* @__PURE__ */ __name((error) => typeof error === "object" && error !== null && "code" in error ? String(error.code) : void 0, "getErrorCode");
|
|
19
|
+
var isInside = /* @__PURE__ */ __name((parent, child) => {
|
|
20
|
+
const rel = relative(parent, child);
|
|
21
|
+
return rel === "" || !rel.startsWith("..") && !isAbsolute(rel);
|
|
22
|
+
}, "isInside");
|
|
23
|
+
var safeRemove = /* @__PURE__ */ __name(async (path, { maxRetries = DEFAULT_SAFE_REMOVE_MAX_RETRIES, retryDelayMs = DEFAULT_SAFE_REMOVE_RETRY_DELAY_MS } = {}) => {
|
|
24
|
+
let retries = 0;
|
|
25
|
+
for (; ; ) {
|
|
26
|
+
try {
|
|
27
|
+
await rm(path, {
|
|
28
|
+
recursive: true,
|
|
29
|
+
force: true
|
|
30
|
+
});
|
|
31
|
+
return {
|
|
32
|
+
removed: true
|
|
33
|
+
};
|
|
34
|
+
} catch (error) {
|
|
35
|
+
if (!DEFAULT_SAFE_REMOVE_RETRYABLE_ERROR_CODES.has(getErrorCode(error) ?? "") || retries >= maxRetries) {
|
|
36
|
+
return {
|
|
37
|
+
removed: false,
|
|
38
|
+
error
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
retries++;
|
|
42
|
+
await setTimeout(retries * retryDelayMs);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}, "safeRemove");
|
|
46
|
+
|
|
47
|
+
export { isInside, safeRemove };
|
|
48
|
+
//# sourceMappingURL=SKMNEOBU.js.map
|
|
49
|
+
//# sourceMappingURL=SKMNEOBU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/fs.ts"],"names":["DEFAULT_SAFE_REMOVE_RETRYABLE_ERROR_CODES","Set","DEFAULT_SAFE_REMOVE_MAX_RETRIES","DEFAULT_SAFE_REMOVE_RETRY_DELAY_MS","getErrorCode","error","String","code","undefined","isInside","parent","child","rel","relative","startsWith","isAbsolute","safeRemove","path","maxRetries","retryDelayMs","retries","rm","recursive","force","removed","has","delay"],"mappings":";;;;;;AAAA,cAAA,EAAA;AAcA,IAAMA,yCAAAA,uBAAgDC,GAAAA,CAAI;AACtD,EAAA,QAAA;AACA,EAAA,OAAA;AACA,EAAA,QAAA;AACA,EAAA,QAAA;AACA,EAAA,WAAA;AACA,EAAA;AACH,CAAA,CAAA;AAED,IAAMC,+BAAAA,GAAkC,CAAA;AACxC,IAAMC,kCAAAA,GAAqC,GAAA;AAE3C,IAAMC,YAAAA,mBAAe,MAAA,CAAA,CAACC,KAAAA,KAClB,OAAOA,UAAU,QAAA,IAAYA,KAAAA,KAAU,IAAA,IAAQ,MAAA,IAAUA,KAAAA,GACnDC,MAAAA,CAAQD,KAAAA,CAA6BE,IAAI,IACzCC,MAAAA,EAHW,cAAA,CAAA;AAKd,IAAMC,QAAAA,mBAAW,MAAA,CAAA,CAACC,MAAAA,EAAgBC,KAAAA,KAAAA;AACrC,EAAA,MAAMC,GAAAA,GAAMC,QAAAA,CAASH,MAAAA,EAAQC,KAAAA,CAAAA;AAC7B,EAAA,OAAOC,GAAAA,KAAQ,MAAO,CAACA,GAAAA,CAAIE,WAAW,IAAA,CAAA,IAAS,CAACC,UAAAA,CAAWH,GAAAA,CAAAA;AAC/D,CAAA,EAHwB,UAAA;AAOjB,IAAMI,UAAAA,mBAAa,MAAA,CAAA,OACtBC,IAAAA,EACA,EACIC,UAAAA,GAAahB,iCACbiB,YAAAA,GAAehB,kCAAAA,EAAkC,GAC9B,EAAC,KAAC;AAEzB,EAAA,IAAIiB,OAAAA,GAAU,CAAA;AAEd,EAAA,WAAS;AACL,IAAA,IAAI;AACA,MAAA,MAAMC,GAAGJ,IAAAA,EAAM;QAAEK,SAAAA,EAAW,IAAA;QAAMC,KAAAA,EAAO;OAAK,CAAA;AAC9C,MAAA,OAAO;QAAEC,OAAAA,EAAS;AAAK,OAAA;AAC3B,IAAA,CAAA,CAAA,OAASnB,KAAAA,EAAO;AACZ,MAAA,IACI,CAACL,0CAA0CyB,GAAAA,CAAIrB,YAAAA,CAAaC,KAAAA,CAAAA,IAAU,EAAA,CAAA,IACtEe,OAAAA,IAAWF,UAAAA,EACb;AACE,QAAA,OAAO;UAAEM,OAAAA,EAAS,KAAA;AAAOnB,UAAAA;AAAM,SAAA;AACnC,MAAA;AAEAe,MAAAA,OAAAA,EAAAA;AACA,MAAA,MAAMM,UAAAA,CAAMN,UAAUD,YAAAA,CAAAA;AAC1B,IAAA;AACJ,EAAA;AACJ,CAAA,EAzB0B,YAAA","file":"SKMNEOBU.js","sourcesContent":["import { rm } from 'node:fs/promises';\nimport { isAbsolute, relative } from 'node:path';\nimport { setTimeout as delay } from 'node:timers/promises';\n\ninterface SafeRemoveOptions {\n maxRetries?: number;\n retryDelayMs?: number;\n}\n\ninterface SafeRemoveResult {\n removed: boolean;\n error?: unknown;\n}\n\nconst DEFAULT_SAFE_REMOVE_RETRYABLE_ERROR_CODES = new Set([\n 'EACCES',\n 'EBUSY',\n 'EMFILE',\n 'ENFILE',\n 'ENOTEMPTY',\n 'EPERM',\n]);\n\nconst DEFAULT_SAFE_REMOVE_MAX_RETRIES = 3;\nconst DEFAULT_SAFE_REMOVE_RETRY_DELAY_MS = 100;\n\nconst getErrorCode = (error: unknown): string | undefined =>\n typeof error === 'object' && error !== null && 'code' in error\n ? String((error as { code?: unknown }).code)\n : undefined;\n\nexport const isInside = (parent: string, child: string): boolean => {\n const rel = relative(parent, child);\n return rel === '' || (!rel.startsWith('..') && !isAbsolute(rel));\n};\n\n// fs.rm({ maxRetries }) does not retry EACCES, which is the Docker bind-mount cleanup\n// failure seen in mini-workspaces. Mirror Node's retry behavior and add EACCES.\nexport const safeRemove = async (\n path: string,\n {\n maxRetries = DEFAULT_SAFE_REMOVE_MAX_RETRIES,\n retryDelayMs = DEFAULT_SAFE_REMOVE_RETRY_DELAY_MS,\n }: SafeRemoveOptions = {},\n): Promise<SafeRemoveResult> => {\n let retries = 0;\n\n for (;;) {\n try {\n await rm(path, { recursive: true, force: true });\n return { removed: true };\n } catch (error) {\n if (\n !DEFAULT_SAFE_REMOVE_RETRYABLE_ERROR_CODES.has(getErrorCode(error) ?? '') ||\n retries >= maxRetries\n ) {\n return { removed: false, error };\n }\n\n retries++;\n await delay(retries * retryDelayMs);\n }\n }\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { init_esm_shims, __name } from './
|
|
1
|
+
import { init_esm_shims, __name } from './6M2RYAT4.js';
|
|
2
2
|
import { isString } from 'es-toolkit';
|
|
3
3
|
|
|
4
4
|
// src/utils/finder.ts
|
|
@@ -38,5 +38,5 @@ var getToolSupportedVersions = /* @__PURE__ */ __name((context, toolName) => [
|
|
|
38
38
|
].sort(), "getToolSupportedVersions");
|
|
39
39
|
|
|
40
40
|
export { findToolByName, findToolVersionsForCombination, getImageName, getToolDefaultVersion, getToolSupportedVersions };
|
|
41
|
-
//# sourceMappingURL=
|
|
42
|
-
//# sourceMappingURL=
|
|
41
|
+
//# sourceMappingURL=UBSQYHMB.js.map
|
|
42
|
+
//# sourceMappingURL=UBSQYHMB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/finder.ts"],"names":["findToolByName","tools","toolName","tool","find","name","Error","getImageName","basename","getToolDefaultVersion","context","combination","versionCombinations","version","findToolVersionsForCombination","console","warn","images","Object","fromEntries","entries","map","imageId","versions","getToolSupportedVersions","Set","filter","isString","sort"],"mappings":";;;;AAAA,cAAA,EAAA;AAMO,IAAMA,cAAAA,mBAAiB,MAAA,CAAA,CAC1B,EAAEC,KAAAA,IACFC,QAAAA,KAAAA;AAEA,EAAA,MAAMC,OAAOF,KAAAA,CAAMG,IAAAA,CAAK,CAACD,KAAAA,KAASA,KAAAA,CAAKE,SAASH,QAAAA,CAAAA;AAEhD,EAAA,IAAI,CAACC,IAAAA,EAAM;AACP,IAAA,MAAM,IAAIG,KAAAA,CAAM,CAAA,MAAA,EAASJ,QAAAA,CAAAA,WAAAA,CAAqB,CAAA;AAClD,EAAA;AAEA,EAAA,OAAOC,IAAAA;AACX,CAAA,EAX8B,gBAAA;AAavB,IAAMI,YAAAA,mBAAe,MAAA,CAAA,CAACC,QAAAA,KAA6B,CAAA,EAAGA,QAAAA,CAAAA,QAAAA,CAAAA,EAAjC,cAAA;AAKrB,IAAMC,qBAAAA,mBAAwB,MAAA,CAAA,CACjCC,OAAAA,EACAR,QAAAA,KAAAA;AAEA,EAAA,MAAMS,WAAAA,GAAcD,OAAAA,CAAQE,mBAAAA,CAAoB,CAAA,CAAA;AAEhD,EAAA,IAAI,CAACD,WAAAA,EAAa;AACd,IAAA,OAAO,IAAA;AACX,EAAA;AAEA,EAAA,MAAME,OAAAA,GAAUC,8BAAAA,CAA+BJ,OAAAA,EAASC,WAAAA,EAAaT,QAAAA,CAAAA;AAErE,EAAA,IAAI,CAACW,OAAAA,EAAS;AACVE,IAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,mCAAA,EAAsCd,QAAAA,CAAAA,WAAAA,CAAqB,CAAA;AACxE,IAAA,OAAO,IAAA;AACX,EAAA;AAEA,EAAA,OAAOW,OAAAA;AACX,CAAA,EAlBqC,uBAAA;AAoB9B,IAAMC,iDAAiC,MAAA,CAAA,CAC1C,EAAEG,QAAM,EACRN,WAAAA,KAEAO,OAAOC,WAAAA,CACHD,MAAAA,CAAOE,OAAAA,CAAQT,WAAAA,CAAYM,MAAM,CAAA,CAAEI,GAAAA,CAAI,CAAC,CAAClB,IAAAA,EAAMmB,OAAAA,CAAAA,KAAQ;AACnD,EAAA,MAAMT,OAAAA,GAAUI,MAAAA,CAAOK,OAAAA,CAAAA,CAASC,SAASpB,IAAAA,CAAAA;AAEzC,EAAA,IAAI,CAACU,OAAAA,EAAS;AACV,IAAA,MAAM,IAAIP,KAAAA,CAAM,CAAA,KAAA,EAAQH,IAAAA,CAAAA,4BAAAA,EAAmCmB,OAAAA,CAAAA,CAAS,CAAA;AACxE,EAAA;AAEA,EAAA,OAAO;AAACnB,IAAAA,IAAAA;AAAMU,IAAAA;;AAClB,CAAA,CAAA,CAAA,EAbsC,gCAAA;AAmBvC,IAAMW,wBAAAA,mBAA2B,MAAA,CAAA,CACpCd,OAAAA,EACAR,QAAAA,KAEA;AACO,EAAA,GAAA,IAAIuB,GAAAA,CACHf,OAAAA,CAAQE,mBAAAA,CACHS,GAAAA,CACG,CAACV,WAAAA,KAAgBG,8BAAAA,CAA+BJ,OAAAA,EAASC,WAAAA,EAAaT,QAAAA,CAAS,CAAA,CAElFwB,MAAAA,CAAOC,QAAAA,CAAAA;AAElBC,CAAAA,CAAAA,IAAAA,EAAI,EAZ8B,0BAAA","file":"
|
|
1
|
+
{"version":3,"sources":["../src/utils/finder.ts"],"names":["findToolByName","tools","toolName","tool","find","name","Error","getImageName","basename","getToolDefaultVersion","context","combination","versionCombinations","version","findToolVersionsForCombination","console","warn","images","Object","fromEntries","entries","map","imageId","versions","getToolSupportedVersions","Set","filter","isString","sort"],"mappings":";;;;AAAA,cAAA,EAAA;AAMO,IAAMA,cAAAA,mBAAiB,MAAA,CAAA,CAC1B,EAAEC,KAAAA,IACFC,QAAAA,KAAAA;AAEA,EAAA,MAAMC,OAAOF,KAAAA,CAAMG,IAAAA,CAAK,CAACD,KAAAA,KAASA,KAAAA,CAAKE,SAASH,QAAAA,CAAAA;AAEhD,EAAA,IAAI,CAACC,IAAAA,EAAM;AACP,IAAA,MAAM,IAAIG,KAAAA,CAAM,CAAA,MAAA,EAASJ,QAAAA,CAAAA,WAAAA,CAAqB,CAAA;AAClD,EAAA;AAEA,EAAA,OAAOC,IAAAA;AACX,CAAA,EAX8B,gBAAA;AAavB,IAAMI,YAAAA,mBAAe,MAAA,CAAA,CAACC,QAAAA,KAA6B,CAAA,EAAGA,QAAAA,CAAAA,QAAAA,CAAAA,EAAjC,cAAA;AAKrB,IAAMC,qBAAAA,mBAAwB,MAAA,CAAA,CACjCC,OAAAA,EACAR,QAAAA,KAAAA;AAEA,EAAA,MAAMS,WAAAA,GAAcD,OAAAA,CAAQE,mBAAAA,CAAoB,CAAA,CAAA;AAEhD,EAAA,IAAI,CAACD,WAAAA,EAAa;AACd,IAAA,OAAO,IAAA;AACX,EAAA;AAEA,EAAA,MAAME,OAAAA,GAAUC,8BAAAA,CAA+BJ,OAAAA,EAASC,WAAAA,EAAaT,QAAAA,CAAAA;AAErE,EAAA,IAAI,CAACW,OAAAA,EAAS;AACVE,IAAAA,OAAAA,CAAQC,IAAAA,CAAK,CAAA,mCAAA,EAAsCd,QAAAA,CAAAA,WAAAA,CAAqB,CAAA;AACxE,IAAA,OAAO,IAAA;AACX,EAAA;AAEA,EAAA,OAAOW,OAAAA;AACX,CAAA,EAlBqC,uBAAA;AAoB9B,IAAMC,iDAAiC,MAAA,CAAA,CAC1C,EAAEG,QAAM,EACRN,WAAAA,KAEAO,OAAOC,WAAAA,CACHD,MAAAA,CAAOE,OAAAA,CAAQT,WAAAA,CAAYM,MAAM,CAAA,CAAEI,GAAAA,CAAI,CAAC,CAAClB,IAAAA,EAAMmB,OAAAA,CAAAA,KAAQ;AACnD,EAAA,MAAMT,OAAAA,GAAUI,MAAAA,CAAOK,OAAAA,CAAAA,CAASC,SAASpB,IAAAA,CAAAA;AAEzC,EAAA,IAAI,CAACU,OAAAA,EAAS;AACV,IAAA,MAAM,IAAIP,KAAAA,CAAM,CAAA,KAAA,EAAQH,IAAAA,CAAAA,4BAAAA,EAAmCmB,OAAAA,CAAAA,CAAS,CAAA;AACxE,EAAA;AAEA,EAAA,OAAO;AAACnB,IAAAA,IAAAA;AAAMU,IAAAA;;AAClB,CAAA,CAAA,CAAA,EAbsC,gCAAA;AAmBvC,IAAMW,wBAAAA,mBAA2B,MAAA,CAAA,CACpCd,OAAAA,EACAR,QAAAA,KAEA;AACO,EAAA,GAAA,IAAIuB,GAAAA,CACHf,OAAAA,CAAQE,mBAAAA,CACHS,GAAAA,CACG,CAACV,WAAAA,KAAgBG,8BAAAA,CAA+BJ,OAAAA,EAASC,WAAAA,EAAaT,QAAAA,CAAS,CAAA,CAElFwB,MAAAA,CAAOC,QAAAA,CAAAA;AAElBC,CAAAA,CAAAA,IAAAA,EAAI,EAZ8B,0BAAA","file":"UBSQYHMB.js","sourcesContent":["import { isString } from 'es-toolkit';\n\nimport type { VersionCombination } from '../config';\nimport type { Tool } from '../config';\nimport type { ChainContext } from '../context';\n\nexport const findToolByName = <TImageId extends string>(\n { tools }: ChainContext<TImageId>,\n toolName: string,\n): 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 getImageName = (basename: string): string => `${basename}-tooling`;\n\n/**\n * Get default version for a specific tool from version matrix\n */\nexport const getToolDefaultVersion = <TImageId extends string>(\n context: ChainContext<TImageId>,\n toolName: string,\n): string | null => {\n const combination = context.versionCombinations[0];\n\n if (!combination) {\n return null;\n }\n\n const version = findToolVersionsForCombination(context, 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 = <TImageId extends string>(\n { images }: ChainContext<TImageId>,\n combination: VersionCombination<TImageId>,\n): Record<string, string> =>\n Object.fromEntries(\n Object.entries(combination.images).map(([tool, imageId]) => {\n const version = images[imageId].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 = <TImageId extends string>(\n context: ChainContext<TImageId>,\n toolName: string,\n): string[] =>\n [\n ...new Set(\n context.versionCombinations\n .map(\n (combination) => findToolVersionsForCombination(context, combination)[toolName],\n )\n .filter(isString),\n ),\n ].sort();\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { displayVersionCombinations, displayToolVersionInfo } from './
|
|
2
|
-
import { executeToolCommand } from './
|
|
3
|
-
import { volumeMappingSchema, DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION, isDockerPlatformOverride } from './
|
|
4
|
-
import { local } from './
|
|
5
|
-
import { getToolDefaultVersion, getToolSupportedVersions } from './
|
|
6
|
-
import { init_esm_shims, __name } from './
|
|
1
|
+
import { displayVersionCombinations, displayToolVersionInfo } from './INJJFIX2.js';
|
|
2
|
+
import { executeToolCommand } from './DTNGUD3B.js';
|
|
3
|
+
import { volumeMappingSchema, DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION, isDockerPlatformOverride } from './4LO2IH4K.js';
|
|
4
|
+
import { local } from './DHOHK2AA.js';
|
|
5
|
+
import { getToolDefaultVersion, getToolSupportedVersions } from './UBSQYHMB.js';
|
|
6
|
+
import { init_esm_shims, __name } from './6M2RYAT4.js';
|
|
7
7
|
import { Command } from 'commander';
|
|
8
8
|
import { camelCase } from 'es-toolkit';
|
|
9
9
|
import fs from 'fs';
|
|
@@ -136,5 +136,5 @@ var runCli = /* @__PURE__ */ __name(async (config, registerExtraCommands) => {
|
|
|
136
136
|
}, "runCli");
|
|
137
137
|
|
|
138
138
|
export { runCli };
|
|
139
|
-
//# sourceMappingURL=
|
|
140
|
-
//# sourceMappingURL=
|
|
139
|
+
//# sourceMappingURL=V4633Q24.js.map
|
|
140
|
+
//# sourceMappingURL=V4633Q24.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/cli.ts"],"names":["parseDockerPlatformOverride","input","isDockerPlatformOverride","Error","String","DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION","createCli","context","registerExtraCommands","tools","toolVersionOptions","Object","fromEntries","map","name","camelCase","parseGlobalOptions","command","cwd","volume","defaultVolumes","options","opts","resolvedCwd","process","cliVersions","entries","version","filter","tool","configVersions","getDefaultVersions","versions","volumes","defaultVolumesEnabled","local","program","Command","description","enablePositionalOptions","argv","includes","displayVersionCombinations","exit","option","path","isAbsolute","fs","existsSync","statSync","isDirectory","variables","valueParts","split","length","value","join","type","hostPath","containerPath","volumeMappingSchema","parse","previous","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","executeToolCommand","runCli","config","parseAsync","error","console"],"mappings":";;;;;;;;;;;;;AAAA,cAAA,EAAA;AAoCA,IAAMA,2BAAAA,2BAA+BC,KAAAA,KAAAA;AACjC,EAAA,IAAIC,wBAAAA,CAAyBD,KAAAA,CAAAA,EAAQ;AACjC,IAAA,OAAOA,KAAAA;AACX,EAAA;AAEA,EAAA,MAAM,IAAIE,MACN,CAAA,yBAAA,EAA4BC,MAAAA,CAAOH,KAAAA,CAAAA,CAAAA,WAAAA,EAAoBI,2CAAAA,CAAAA,CAAAA,CAA8C,CAAA;AAE7G,CAAA,EARoC,6BAAA,CAAA;AAUpC,IAAMC,SAAAA,mBAAY,MAAA,CAAA,CACdC,OAAAA,EACAC,qBAAAA,KAAAA;AAEA,EAAA,MAAM,EAAEC,OAAK,GAAKF,OAAAA;AAClB,EAAA,MAAMG,kBAAAA,GAAqBC,OAAOC,WAAAA,CAC9BH,KAAAA,CAAMI,IAAI,CAAC,EAAEC,MAAI,KAAO;IAAC,CAAA,EAAGC,SAAAA,CAAUD,IAAAA,CAAAA,CAAAA,OAAAA,CAAAA;AAAgBA,IAAAA;GAAK,CAAA,CAAA;AAG/D,EAAA,MAAME,kBAAAA,iCAA4BC,OAAAA,KAAAA;AAC9B,IAAA,MAAM,EAAEC,KAAKC,MAAAA,EAAQC,cAAAA,EAAgB,GAAGC,OAAAA,EAAAA,GAAYJ,QAAQK,IAAAA,EAAI;AAChE,IAAA,MAAMC,WAAAA,GAAcL,GAAAA,IAAOM,OAAAA,CAAQN,GAAAA,EAAG;AAGtC,IAAA,MAAMO,WAAAA,GAAcd,MAAAA,CAAOC,WAAAA,CACvBD,MAAAA,CAAOe,OAAAA,CAAQL,OAAAA,CAAAA,CACVR,GAAAA,CAAI,CAAC,CAACC,IAAAA,EAAMa,OAAAA,CAAAA,KAAa;AAACjB,MAAAA,kBAAAA,CAAmBI,IAAAA,CAAAA;AAAOa,MAAAA;AAAQ,KAAA,CAAA,CAC5DC,OAAO,CAAC,CAACC,IAAAA,CAAAA,KAAUA,IAAAA,CAAAA,CAAAA;AAI5B,IAAA,MAAMC,iBAAkB,MAAMvB,OAAAA,CAAQwB,kBAAAA,GAAqBR,WAAAA,KAAiB,EAAC;AAC7E,IAAA,MAAMS,QAAAA,GAAW;MAAE,GAAGF,cAAAA;MAAgB,GAAGL;AAAY,KAAA;AAErD,IAAA,OAAO;MACH,GAAGJ,OAAAA;MACHH,GAAAA,EAAKK,WAAAA;MACLU,OAAAA,EAASd,MAAAA;AACTa,MAAAA,QAAAA;MACAE,qBAAAA,EAAuBd,cAAAA;AACvBe,MAAAA,KAAAA,EAAOd,QAAQc,KAAAA,IAAqBA;AACxC,KAAA;EACJ,CAAA,EAvB2B,oBAAA,CAAA;AAyB3B,EAAA,MAAMC,OAAAA,GAAU,IAAIC,OAAAA,EAAAA;AAEpBD,EAAAA,OAAAA,CACKtB,IAAAA,CAAK,SAAA,CAAA,CACLwB,WAAAA,CACG,6RASI,CAAA,CAEPX,OAAAA,CAAQ,OAAA,CAAA,CACRY,uBAAAA,EAAuB;AAG5B,EAAA,IAAIf,OAAAA,CAAQgB,IAAAA,CAAKC,QAAAA,CAAS,iBAAA,CAAA,EAAoB;AAC1CC,IAAAA,0BAAAA,CAA2BnC,OAAAA,CAAAA;AAC3BiB,IAAAA,OAAAA,CAAQmB,KAAK,CAAA,CAAA;AACjB,EAAA;AAGAP,EAAAA,OAAAA,CACKQ,MAAAA,CAAO,kBAAA,EAAoB,2BAAA,EAA6B,CAAC3C,KAAAA,KAAAA;AACtD,IAAA,IAAI,OAAOA,UAAU,QAAA,EAAU;AAC3B,MAAA,MAAM,IAAIE,MAAM,2BAAA,CAAA;AACpB,IAAA;AAEA,IAAA,IAAI,CAAC0C,IAAAA,CAAKC,UAAAA,CAAW7C,KAAAA,CAAAA,EAAQ;AACzB,MAAA,MAAM,IAAIE,MAAM,0CAAA,CAAA;AACpB,IAAA;AAEA,IAAA,IAAI,CAAC4C,EAAAA,CAAGC,UAAAA,CAAW/C,KAAAA,CAAAA,EAAQ;AACvB,MAAA,MAAM,IAAIE,MAAM,oBAAA,CAAA;AACpB,IAAA;AAEA,IAAA,IAAI,CAAC4C,EAAAA,CAAGE,QAAAA,CAAShD,KAAAA,CAAAA,CAAOiD,aAAW,EAAI;AACnC,MAAA,MAAM,IAAI/C,MAAM,yBAAA,CAAA;AACpB,IAAA;AAEA,IAAA,OAAOF,KAAAA;AACX,EAAA,CAAA,CAAA,CACC2C,MAAAA,CACG,sCAAA,EACA,qDAAA,EAEHA,MAAAA,CACG,mBAAA,EACA,0GAAA,CAAA,CAEHA,MAAAA,CACG,oBAAA,EACA,kFAAA,EACA,CAAC3C,OAAekD,SAAAA,KAAAA;AACZ,IAAA,MAAM,CAACrC,IAAAA,EAAM,GAAGsC,UAAAA,CAAAA,GAAcnD,KAAAA,CAAMoD,MAAM,GAAA,CAAA;AAE1C,IAAA,IAAI,CAACvC,IAAAA,IAAQ,CAACsC,UAAAA,CAAWE,MAAAA,EAAQ;AAC7B,MAAA,MAAM,IAAInD,KAAAA,CACN,CAAA,qCAAA,EAAwCF,KAAAA,CAAAA,sBAAAA,CAA6B,CAAA;AAE7E,IAAA;AAEA,IAAA,OAAO;AAAIkD,MAAAA,GAAAA,SAAAA;AAAW,MAAA;AAAErC,QAAAA,IAAAA;QAAMyC,KAAAA,EAAOH,UAAAA,CAAWI,KAAK,GAAA;AAAK;;EAC9D,CAAA,EACA,EAAE,CAAA,CAELZ,MAAAA,CACG,qDACA,iJAAA,EACA,CAAC3C,OAAegC,OAAAA,KAAAA;AACZ,IAAA,MAAM,CAACwB,MAAMC,QAAAA,EAAUC,aAAAA,EAAe7C,IAAAA,CAAAA,GAAQb,KAAAA,CAAMoD,MAAM,GAAA,CAAA;AAE1D,IAAA,QAAQI,IAAAA;MACJ,KAAK,MAAA;AACD,QAAA,IAAI,CAACC,QAAAA,EAAU;AACX,UAAA,MAAM,IAAIvD,MAAM,CAAA,4CAAA,CAA8C,CAAA;AAClE,QAAA;AACA,QAAA;MACJ,KAAK,SAAA;AACD,QAAA,IAAI,CAACW,IAAAA,EAAM;AACP,UAAA,MAAM,IAAIX,MAAM,CAAA,0CAAA,CAA4C,CAAA;AAChE,QAAA;AACA,QAAA;AACJ,MAAA;AACI,QAAA,MAAM,IAAIA,KAAAA,CAAM,CAAA,qBAAA,EAAwBsD,IAAAA,CAAAA,CAAM,CAAA;AACtD;AAEA,IAAA,IAAI,CAACE,aAAAA,EAAe;AAChB,MAAA,MAAM,IAAIxD,MAAM,CAAA,0BAAA,CAA4B,CAAA;AAChD,IAAA;AAEA,IAAA,OAAO;AACA8B,MAAAA,GAAAA,OAAAA;AACH2B,MAAAA,mBAAAA,CAAoBC,KAAAA,CAAM;AAAEJ,QAAAA,IAAAA;AAAMC,QAAAA,QAAAA;AAAUC,QAAAA,aAAAA;AAAe7C,QAAAA;OAAK;;EAExE,CAAA,EACA,EAAE,CAAA,CAEL8B,MAAAA,CACG,4CACA,wDAAA,EACA,CAACW,OAAeO,QAAAA,KAAuB;AAAIA,IAAAA,GAAAA,QAAAA;AAAUP,IAAAA;AACrD,GAAA,EAAA,EAAE,CAAA,CAELX,MAAAA,CAAO,sBAAA,EAAwB,sCAAA,CAAA,CAC/BA,MAAAA,CACG,8BAAA,EACA,CAAA,2CAAA,EAA8CvC,2CAAAA,CAAAA,CAAAA,CAAAA,EAC9CL,2BAAAA,CAAAA,CAEH4C,MAAAA,CAAO,WAAW,2DAAA,CAAA;AAGvB,EAAA,KAAA,MAAWf,QAAQpB,KAAAA,EAAO;AACtB,IAAA,MAAMsD,cAAAA,GAAiBC,qBAAAA,CAAsBzD,OAAAA,EAASsB,IAAAA,CAAKf,IAAI,CAAA;AAC/D,IAAA,MAAMmD,iBAAAA,GAAoBC,wBAAAA,CAAyB3D,OAAAA,EAASsB,IAAAA,CAAKf,IAAI,CAAA;AAErEsB,IAAAA,OAAAA,CAAQQ,MAAAA,CACJ,CAAA,EAAA,EAAKf,IAAAA,CAAKf,IAAI,sBACd,CAAA,QAAA,EAAWe,IAAAA,CAAKf,IAAI,CAAA,mBAAA,EAAsBiD,cAAAA,CAAAA,aAAAA,EAA8BE,iBAAAA,CAAkBT,IAAAA,CAAK,IAAA,CAAA,CAAA,CAAA,CAAQ,CAAA;AAE/G,EAAA;AAGApB,EAAAA,OAAAA,CAAQQ,MAAAA,CAAO,mBAAmB,qDAAA,CAAA;AAGlCR,EAAAA,OAAAA,CACKnB,OAAAA,CAAQ,qBAAA,CAAA,CACRqB,WAAAA,CAAY,0DAAA,CAAA,CACZ6B,MAAAA,CAAO,CAACC,QAAAA,KAAqBC,sBAAAA,CAAuB9D,OAAAA,EAAS6D,QAAAA,CAAAA,CAAAA;AAElE,EAAA,KAAA,MAAWvC,QAAQpB,KAAAA,EAAO;AAGtB2B,IAAAA,OAAAA,CACKnB,OAAAA,CAAQY,KAAKf,IAAAA,EAAM;MAAEwD,SAAAA,EAAW;KAAM,CAAA,CACtChC,YAAY,CAAA,IAAA,EAAOT,IAAAA,CAAKf,IAAI,CAAA,sBAAA,CAAwB,CAAA,CACpDyD,mBAAmB,IAAA,CAAA,CACnBC,oBAAkB,CAClBC,UAAAA,CAAW,KAAA,CAAA,CACXC,QAAAA,CAAS,aAAa,+BAAA,CAAA,CACtBP,MAAAA,CAAO,OAAOQ,IAAAA,KAAAA;AACX,MAAA,MAAMC,kBAAAA,CACFrE,SACAsB,IAAAA,CAAKf,IAAAA,EACL6D,MACA,MAAM3D,kBAAAA,CAAmBoB,OAAAA,CAAAA,CAAAA;IAEjC,CAAA,CAAA;AACR,EAAA;AAGA5B,EAAAA,qBAAAA,GAAwB4B,SAASpB,kBAAAA,CAAAA;AAEjC,EAAA,OAAOoB,OAAAA;AACX,CAAA,EAlMkB,WAAA,CAAA;AAoMX,IAAMyC,MAAAA,mBAAS,MAAA,CAAA,OAClBC,MAAAA,EACAtE,qBAAAA,KAAAA;AAEA,EAAA,IAAI;AACA,IAAA,MAAMF,SAAAA,CAAoBwE,MAAAA,EAAQtE,qBAAAA,CAAAA,CAAuBuE,UAAAA,EAAU;AACvE,EAAA,CAAA,CAAA,OAASC,KAAAA,EAAO;AACZC,IAAAA,OAAAA,CAAQD,KAAAA,CAAM,mCAA8BA,KAAAA,CAAAA;AAC5CxD,IAAAA,OAAAA,CAAQmB,KAAK,CAAA,CAAA;AACjB,EAAA;AACJ,CAAA,EAVsB,QAAA","file":"7DDNJRV6.js","sourcesContent":["import { Command } from 'commander';\nimport { camelCase } from 'es-toolkit';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport type { DockerPlatformOverride, EnvironmentVariable, VolumeMapping } from './config';\nimport {\n DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION,\n isDockerPlatformOverride,\n volumeMappingSchema,\n} from './config';\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport * as environment from './environment';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n publish?: string[];\n script?: string;\n customEntrypoint?: string;\n defaultVolumes: boolean;\n local?: boolean;\n dockerPlatform?: DockerPlatformOverride;\n}\n\ntype RegisterExtraCommands = (\n program: Command,\n parseGlobalOptions: (command: Command) => Promise<ToolCommandExecutionOptions>,\n) => void;\n\nconst parseDockerPlatformOverride = (input: unknown): DockerPlatformOverride => {\n if (isDockerPlatformOverride(input)) {\n return input;\n }\n\n throw new Error(\n `Invalid docker platform: ${String(input)}. Expected ${DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION}.`,\n );\n};\n\nconst createCli = <TImageId extends string>(\n context: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Command => {\n const { tools } = context;\n const toolVersionOptions = Object.fromEntries(\n tools.map(({ name }) => [`${camelCase(name)}Version`, name]),\n );\n\n const parseGlobalOptions = async (command: Command): Promise<ToolCommandExecutionOptions> => {\n const { cwd, volume, defaultVolumes, ...options } = command.opts<GlobalOptions>();\n const resolvedCwd = cwd ?? process.cwd();\n\n // CLI flags take precedence over project config versions\n const cliVersions = Object.fromEntries(\n Object.entries(options)\n .map(([name, version]) => [toolVersionOptions[name], version])\n .filter(([tool]) => tool),\n );\n\n // Read defaults from project config (e.g., Anchor.toml) if the chain provides a hook\n const configVersions = (await context.getDefaultVersions?.(resolvedCwd)) ?? {};\n const versions = { ...configVersions, ...cliVersions };\n\n return {\n ...options,\n cwd: resolvedCwd,\n volumes: volume,\n versions,\n defaultVolumesEnabled: defaultVolumes,\n local: options.local || environment.local,\n };\n };\n\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations(context);\n process.exit(0);\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, variables: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n\n if (!name || !valueParts.length) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n\n return [...variables, { name, value: valueParts.join('=') }];\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, volumes: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n\n switch (type) {\n case 'host':\n if (!hostPath) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n break;\n case 'isolate':\n if (!name) {\n throw new Error(`Name is required for volume type 'isolate'`);\n }\n break;\n default:\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (!containerPath) {\n throw new Error(`Container path is required`);\n }\n\n return [\n ...volumes,\n volumeMappingSchema.parse({ type, hostPath, containerPath, name }),\n ];\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host (repeatable)\",\n (value: string, previous: string[]) => [...previous, value],\n [],\n )\n .option('--no-default-volumes', 'Disable default volumes for the tool')\n .option(\n '--docker-platform <platform>',\n `Override the Docker platform for this run (${DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION})`,\n parseDockerPlatformOverride,\n )\n .option('--local', 'Run the tool from the host installation instead of Docker');\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n program.option(\n `--${tool.name}-version <version>`,\n `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`,\n );\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(context, toolName));\n\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n await executeToolCommand(\n context,\n tool.name,\n args,\n await parseGlobalOptions(program),\n );\n });\n }\n\n // Allow external registration of extra commands\n registerExtraCommands?.(program, parseGlobalOptions);\n\n return program;\n};\n\nexport const runCli = async <TImageId extends string>(\n config: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Promise<void> => {\n try {\n await createCli<TImageId>(config, registerExtraCommands).parseAsync();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/cli.ts"],"names":["parseDockerPlatformOverride","input","isDockerPlatformOverride","Error","String","DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION","createCli","context","registerExtraCommands","tools","toolVersionOptions","Object","fromEntries","map","name","camelCase","parseGlobalOptions","command","cwd","volume","defaultVolumes","options","opts","resolvedCwd","process","cliVersions","entries","version","filter","tool","configVersions","getDefaultVersions","versions","volumes","defaultVolumesEnabled","local","program","Command","description","enablePositionalOptions","argv","includes","displayVersionCombinations","exit","option","path","isAbsolute","fs","existsSync","statSync","isDirectory","variables","valueParts","split","length","value","join","type","hostPath","containerPath","volumeMappingSchema","parse","previous","defaultVersion","getToolDefaultVersion","supportedVersions","getToolSupportedVersions","action","toolName","displayToolVersionInfo","isDefault","passThroughOptions","allowUnknownOption","helpOption","argument","args","executeToolCommand","runCli","config","parseAsync","error","console"],"mappings":"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","file":"V4633Q24.js","sourcesContent":["import { Command } from 'commander';\nimport { camelCase } from 'es-toolkit';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport process from 'node:process';\n\nimport type { DockerPlatformOverride, EnvironmentVariable, VolumeMapping } from './config';\nimport {\n DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION,\n isDockerPlatformOverride,\n volumeMappingSchema,\n} from './config';\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core';\nimport { executeToolCommand } from './core';\nimport { displayToolVersionInfo, displayVersionCombinations } from './display';\nimport * as environment from './environment';\nimport { getToolDefaultVersion, getToolSupportedVersions } from './utils/finder';\n\ninterface GlobalOptions {\n cwd?: string;\n volume: VolumeMapping[];\n env: EnvironmentVariable[];\n publish?: string[];\n script?: string;\n customEntrypoint?: string;\n defaultVolumes: boolean;\n local?: boolean;\n dockerPlatform?: DockerPlatformOverride;\n}\n\ntype RegisterExtraCommands = (\n program: Command,\n parseGlobalOptions: (command: Command) => Promise<ToolCommandExecutionOptions>,\n) => void;\n\nconst parseDockerPlatformOverride = (input: unknown): DockerPlatformOverride => {\n if (isDockerPlatformOverride(input)) {\n return input;\n }\n\n throw new Error(\n `Invalid docker platform: ${String(input)}. Expected ${DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION}.`,\n );\n};\n\nconst createCli = <TImageId extends string>(\n context: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Command => {\n const { tools } = context;\n const toolVersionOptions = Object.fromEntries(\n tools.map(({ name }) => [`${camelCase(name)}Version`, name]),\n );\n\n const parseGlobalOptions = async (command: Command): Promise<ToolCommandExecutionOptions> => {\n const { cwd, volume, defaultVolumes, ...options } = command.opts<GlobalOptions>();\n const resolvedCwd = cwd ?? process.cwd();\n\n // CLI flags take precedence over project config versions\n const cliVersions = Object.fromEntries(\n Object.entries(options)\n .map(([name, version]) => [toolVersionOptions[name], version])\n .filter(([tool]) => tool),\n );\n\n // Read defaults from project config (e.g., Anchor.toml) if the chain provides a hook\n const configVersions = (await context.getDefaultVersions?.(resolvedCwd)) ?? {};\n const versions = { ...configVersions, ...cliVersions };\n\n return {\n ...options,\n cwd: resolvedCwd,\n volumes: volume,\n versions,\n defaultVolumesEnabled: defaultVolumes,\n local: options.local || environment.local,\n };\n };\n\n const program = new Command();\n\n program\n .name('lz-tool')\n .description(\n '🚀 LayerZero VM tooling with intelligent version management\\n' +\n '\\n' +\n 'Usage pattern:\\n' +\n ' lz-tool [global-options] <tool> [tool-args...]\\n' +\n '\\n' +\n 'Examples:\\n' +\n ' lz-tool -e bash sui --help\\n' +\n ' lz-tool --sui-version 1.38.0 sui client\\n' +\n '\\n' +\n 'Note: All lz-tool options must appear BEFORE the tool name.',\n )\n .version('1.0.0')\n .enablePositionalOptions(); // Required for passThroughOptions to work\n\n // Check for --list-versions before parsing to avoid help display\n if (process.argv.includes('--list-versions')) {\n displayVersionCombinations(context);\n process.exit(0);\n }\n\n // Add global options.\n program\n .option('-c, --cwd <path>', 'Current working directory', (input: string) => {\n if (typeof input !== 'string') {\n throw new Error('cwd flag must be a string');\n }\n\n if (!path.isAbsolute(input)) {\n throw new Error('cwd must be an absolute path if provided');\n }\n\n if (!fs.existsSync(input)) {\n throw new Error('cwd does not exist');\n }\n\n if (!fs.statSync(input).isDirectory()) {\n throw new Error('cwd must be a directory');\n }\n\n return input;\n })\n .option(\n '-e, --custom-entrypoint <entrypoint>',\n 'Override the default Docker entrypoint for the tool',\n )\n .option(\n '--script <script>',\n 'Execute a custom script using bash -c in the Docker container (e.g., --script \"npm install && npm test\")',\n )\n .option(\n '--env <name=value>',\n 'Set environment variables for Docker container (e.g., --env NODE_ENV=production)',\n (input: string, variables: EnvironmentVariable[]) => {\n const [name, ...valueParts] = input.split('=');\n\n if (!name || !valueParts.length) {\n throw new Error(\n `Invalid environment variable format: ${input}. Use --env NAME=VALUE`,\n );\n }\n\n return [...variables, { name, value: valueParts.join('=') }];\n },\n [],\n )\n .option(\n '-v, --volume <type:hostPath:containerPath[:name]>',\n 'Volume mappings in the format type:hostPath:containerPath[:name] (e.g., host:/host/path:/container/path or isolate::/container/path:volumeName)',\n (input: string, volumes: VolumeMapping[]) => {\n const [type, hostPath, containerPath, name] = input.split(':');\n\n switch (type) {\n case 'host':\n if (!hostPath) {\n throw new Error(`Host path is required for volume type 'host'`);\n }\n break;\n case 'isolate':\n if (!name) {\n throw new Error(`Name is required for volume type 'isolate'`);\n }\n break;\n default:\n throw new Error(`Invalid volume type: ${type}`);\n }\n\n if (!containerPath) {\n throw new Error(`Container path is required`);\n }\n\n return [\n ...volumes,\n volumeMappingSchema.parse({ type, hostPath, containerPath, name }),\n ];\n },\n [],\n )\n .option(\n '-p, --publish <host_port:container_port>',\n \"Publish a container's port(s) to the host (repeatable)\",\n (value: string, previous: string[]) => [...previous, value],\n [],\n )\n .option('--no-default-volumes', 'Disable default volumes for the tool')\n .option(\n '--docker-platform <platform>',\n `Override the Docker platform for this run (${DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION})`,\n parseDockerPlatformOverride,\n )\n .option('--local', 'Run the tool from the host installation instead of Docker');\n\n // Add version options for each tool dynamically\n for (const tool of tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n program.option(\n `--${tool.name}-version <version>`,\n `Specify ${tool.name} version (default: ${defaultVersion}, supported: ${supportedVersions.join(', ')})`,\n );\n }\n\n // Add utility options\n program.option('--list-versions', 'Display all supported version combinations and exit');\n\n // Add version info command\n program\n .command('version-info <tool>')\n .description('Display detailed version information for a specific tool')\n .action((toolName: string) => displayToolVersionInfo(context, toolName));\n\n for (const tool of tools) {\n // Don't add any options to the subcommand level.\n // All lz-tool options must be specified before the subcommand.\n program\n .command(tool.name, { isDefault: false })\n .description(`Run ${tool.name} with version checking`)\n .passThroughOptions(true) // Pass through all options after the subcommand\n .allowUnknownOption()\n .helpOption(false) // Disable automatic help option to pass --help to the tool\n .argument('[args...]', 'Arguments to pass to the tool')\n .action(async (args: string[]) => {\n await executeToolCommand(\n context,\n tool.name,\n args,\n await parseGlobalOptions(program),\n );\n });\n }\n\n // Allow external registration of extra commands\n registerExtraCommands?.(program, parseGlobalOptions);\n\n return program;\n};\n\nexport const runCli = async <TImageId extends string>(\n config: ChainContext<TImageId>,\n registerExtraCommands?: RegisterExtraCommands,\n): Promise<void> => {\n try {\n await createCli<TImageId>(config, registerExtraCommands).parseAsync();\n } catch (error) {\n console.error('❌ VM tool execution failed', error);\n process.exit(1);\n }\n};\n"]}
|