@layerzerolabs/vm-tooling 1.2.30 → 1.2.31
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/{HIFVOL6G.js → 4PZQU6GV.js} +7 -9
- package/dist/4PZQU6GV.js.map +1 -0
- package/dist/{P52CW6DK.js → D3SKWSHN.js} +3 -5
- package/dist/D3SKWSHN.js.map +1 -0
- package/dist/{5SLPZRAL.js → D5ZLPMIL.js} +5 -7
- package/dist/D5ZLPMIL.js.map +1 -0
- package/dist/EKUFNO5X.js +3 -0
- package/dist/EKUFNO5X.js.map +1 -0
- package/dist/{XOVO3JKY.js → ELRX6BWW.js} +3 -5
- package/dist/ELRX6BWW.js.map +1 -0
- package/dist/{GNAXYUMP.js → FZ4WTZV4.js} +5 -6
- package/dist/FZ4WTZV4.js.map +1 -0
- package/dist/{CYP6J4VH.js → GSL2M6U4.js} +4 -6
- package/dist/GSL2M6U4.js.map +1 -0
- package/dist/{5PX53N66.js → GU2VLUXE.js} +3 -5
- package/dist/GU2VLUXE.js.map +1 -0
- package/dist/{VB2BOPPZ.js → IHHBJ2SZ.js} +3 -5
- package/dist/IHHBJ2SZ.js.map +1 -0
- package/dist/{H55JBB6F.js → IUE6WGKT.js} +12 -14
- package/dist/IUE6WGKT.js.map +1 -0
- package/dist/{HMZV72VO.js → J7BNVFS2.js} +5 -7
- package/dist/J7BNVFS2.js.map +1 -0
- package/dist/{SWKTHNWT.js → KBDBSTDG.js} +4 -6
- package/dist/KBDBSTDG.js.map +1 -0
- package/dist/{BVTEQOCW.js → L53SDSQA.js} +4 -6
- package/dist/L53SDSQA.js.map +1 -0
- package/dist/{GBCVVX6B.js → NCFTCSCO.js} +8 -10
- package/dist/NCFTCSCO.js.map +1 -0
- package/dist/{IGFQKKDO.js → UCR2ZBRF.js} +5 -6
- package/dist/UCR2ZBRF.js.map +1 -0
- package/dist/{TJ5HTUVM.js → UZOGNQDH.js} +3 -4
- package/dist/UZOGNQDH.js.map +1 -0
- package/dist/{XKW5QM54.js → V43YBQSF.js} +4 -6
- package/dist/V43YBQSF.js.map +1 -0
- package/dist/{6M3XVMYE.js → VAVK6AV3.js} +5 -7
- package/dist/VAVK6AV3.js.map +1 -0
- package/dist/{N3I7SNFG.js → VMHQSHJN.js} +3 -5
- package/dist/VMHQSHJN.js.map +1 -0
- package/dist/VUOMXK5T.js +6 -0
- package/dist/VUOMXK5T.js.map +1 -0
- package/dist/{XMRVBPGX.js → WP67XJRG.js} +3 -5
- package/dist/WP67XJRG.js.map +1 -0
- package/dist/{ADZG6QSC.js → YT4XAH7H.js} +3 -4
- package/dist/YT4XAH7H.js.map +1 -0
- package/dist/{H4RUI4N2.js → YZCMSN63.js} +5 -7
- package/dist/YZCMSN63.js.map +1 -0
- package/dist/ZEW74YLA.js +3 -0
- package/dist/ZEW74YLA.js.map +1 -0
- package/dist/{RRKFUBOS.js → ZTUNQIFK.js} +5 -7
- package/dist/ZTUNQIFK.js.map +1 -0
- package/dist/cli.js +22 -22
- package/dist/config.js +3 -3
- package/dist/context.js +0 -3
- package/dist/context.js.map +1 -1
- package/dist/core/index.js +18 -18
- package/dist/core/local-executor.js +2 -2
- package/dist/core/lock.js +2 -2
- package/dist/core/tool-executor.js +17 -17
- 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.js +25 -28
- package/dist/index.js.map +1 -1
- package/dist/scoped-workspace/exclude-workspace-dependency-sources-pruner.js +2 -2
- package/dist/scoped-workspace/index.js +9 -9
- package/dist/scoped-workspace/node-modules.js +2 -2
- package/dist/scoped-workspace/types.js +0 -3
- package/dist/scoped-workspace/types.js.map +1 -1
- package/dist/scoped-workspace/workspace-dependency-graph.js +5 -5
- package/dist/scoped-workspace/workspace-source-copy.js +4 -4
- package/dist/test.js +6 -6
- package/dist/utils/docker.js +5 -5
- package/dist/utils/error.js +2 -2
- package/dist/utils/finder.js +2 -2
- package/dist/utils/fs.js +2 -2
- package/dist/utils.js +3 -3
- package/package.json +6 -7
- package/dist/2GK3MDLX.js +0 -1341
- package/dist/2GK3MDLX.js.map +0 -1
- package/dist/5PX53N66.js.map +0 -1
- package/dist/5SLPZRAL.js.map +0 -1
- package/dist/6M3XVMYE.js.map +0 -1
- package/dist/ADZG6QSC.js.map +0 -1
- package/dist/BJVTHJLE.js +0 -6
- package/dist/BJVTHJLE.js.map +0 -1
- package/dist/BVTEQOCW.js.map +0 -1
- package/dist/CYP6J4VH.js.map +0 -1
- package/dist/GBCVVX6B.js.map +0 -1
- package/dist/GNAXYUMP.js.map +0 -1
- package/dist/H4RUI4N2.js.map +0 -1
- package/dist/H55JBB6F.js.map +0 -1
- package/dist/HIFVOL6G.js.map +0 -1
- package/dist/HMZV72VO.js.map +0 -1
- package/dist/IGFQKKDO.js.map +0 -1
- package/dist/JWJXCZMP.js +0 -40
- package/dist/JWJXCZMP.js.map +0 -1
- package/dist/LBCSKMFZ.js +0 -18392
- package/dist/LBCSKMFZ.js.map +0 -1
- package/dist/N3I7SNFG.js.map +0 -1
- package/dist/P52CW6DK.js.map +0 -1
- package/dist/RRKFUBOS.js.map +0 -1
- package/dist/SWKTHNWT.js.map +0 -1
- package/dist/TJ5HTUVM.js.map +0 -1
- package/dist/VB2BOPPZ.js.map +0 -1
- package/dist/XKW5QM54.js.map +0 -1
- package/dist/XMRVBPGX.js.map +0 -1
- package/dist/XOVO3JKY.js.map +0 -1
- package/dist/ZWMRQU7D.js +0 -6
- package/dist/ZWMRQU7D.js.map +0 -1
- package/dist/core/local-executor.test.js +0 -110
- package/dist/core/local-executor.test.js.map +0 -1
- package/dist/core/lock.test.js +0 -29
- package/dist/core/lock.test.js.map +0 -1
- package/dist/core/tool-executor.test.js +0 -186
- package/dist/core/tool-executor.test.js.map +0 -1
- package/dist/scoped-workspace/tests/exclude-workspace-dependency-sources-pruner.test.js +0 -49
- package/dist/scoped-workspace/tests/exclude-workspace-dependency-sources-pruner.test.js.map +0 -1
- package/dist/scoped-workspace/tests/scoped-workspace.test.js +0 -725
- package/dist/scoped-workspace/tests/scoped-workspace.test.js.map +0 -1
- package/dist/utils/docker.test.js +0 -272
- package/dist/utils/docker.test.js.map +0 -1
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { resolveWorkspaceDependencyGraph } from './
|
|
2
|
-
import { copyWorkspaceSources } from './
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { resolveWorkspaceDependencyGraph } from './J7BNVFS2.js';
|
|
2
|
+
import { copyWorkspaceSources } from './D5ZLPMIL.js';
|
|
3
|
+
import { copyRootNodeModulesSymlinks, getPnpmVirtualStoreMount } from './GU2VLUXE.js';
|
|
4
|
+
import { safeRemove } from './WP67XJRG.js';
|
|
5
|
+
import { __name } from './VUOMXK5T.js';
|
|
6
6
|
import { resolve } from 'path';
|
|
7
7
|
|
|
8
|
-
// src/scoped-workspace/index.ts
|
|
9
|
-
init_esm_shims();
|
|
10
8
|
var FALLBACK_DIAGNOSTIC = "No scoped-workspace pruner configured; using unpruned package-level source copy fallback.";
|
|
11
9
|
var createPrunerInput = /* @__PURE__ */ __name(({ dependencyGraph, cwd }) => ({
|
|
12
10
|
repoRoot: dependencyGraph.repoRoot,
|
|
@@ -80,5 +78,5 @@ var createScopedWorkspace = /* @__PURE__ */ __name(async (options = {}) => {
|
|
|
80
78
|
}, "createScopedWorkspace");
|
|
81
79
|
|
|
82
80
|
export { createScopedWorkspace };
|
|
83
|
-
//# sourceMappingURL=
|
|
84
|
-
//# sourceMappingURL=
|
|
81
|
+
//# sourceMappingURL=4PZQU6GV.js.map
|
|
82
|
+
//# sourceMappingURL=4PZQU6GV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/scoped-workspace/index.ts"],"names":["FALLBACK_DIAGNOSTIC","createPrunerInput","dependencyGraph","cwd","repoRoot","packageRoot","packageRelativePath","collectDiagnostics","sources","flatMap","source","diagnostics","resolvePruner","pruner","input","prunePlan","createPrunePlan","prunerName","name","createScopedWorkspace","options","resolve","process","resolveWorkspaceDependencyGraph","prunerResolution","sourceCopy","copyWorkspaceSources","prunePatterns","patterns","packagePrunePatterns","packagePatterns","copyRootNodeModulesSymlinks","scopedRoot","dependencyNames","rootNodeModulesDependencyNames","error","safeRemove","copiedPackagePathEntries","copiedWorkspaceDependencies","map","dependency","relativePath","absolutePath","sort","a","b","localeCompare","pnpmVirtualStoreMount","getPnpmVirtualStoreMount","copiedWorkspacePackageCount","length","copiedWorkspacePackagePaths","Object","fromEntries"],"mappings":"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","file":"4PZQU6GV.js","sourcesContent":["import { resolve } from 'node:path';\n\nimport { safeRemove } from '../utils/fs';\nimport { copyRootNodeModulesSymlinks, getPnpmVirtualStoreMount } from './node-modules';\nimport type {\n ScopedWorkspace,\n ScopedWorkspaceOptions,\n ScopedWorkspacePrunePlan,\n ScopedWorkspacePruner,\n ScopedWorkspacePrunerInput,\n WorkspaceDependencyGraph,\n} from './types';\nimport { resolveWorkspaceDependencyGraph } from './workspace-dependency-graph';\nimport { copyWorkspaceSources } from './workspace-source-copy';\n\nexport { createExcludeWorkspaceDependencySourcesPruner } from './exclude-workspace-dependency-sources-pruner';\nexport type {\n PnpmVirtualStoreMount,\n ScopedWorkspace,\n ScopedWorkspaceOptions,\n ScopedWorkspacePrunePlan,\n ScopedWorkspacePruner,\n ScopedWorkspacePrunerInput,\n WorkspaceDependencyEdge,\n WorkspaceDependencyGraph,\n} from './types';\nexport {\n DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS,\n DEFAULT_SOURCE_COPY_PATTERNS,\n} from './workspace-source-copy';\n\nconst FALLBACK_DIAGNOSTIC =\n 'No scoped-workspace pruner configured; using unpruned package-level source copy fallback.';\n\ninterface PrunerResolution {\n prunerName?: string;\n prunePlan?: ScopedWorkspacePrunePlan;\n diagnostics: string[];\n}\n\nconst createPrunerInput = ({\n dependencyGraph,\n cwd,\n}: {\n dependencyGraph: WorkspaceDependencyGraph;\n cwd: string;\n}): ScopedWorkspacePrunerInput => ({\n repoRoot: dependencyGraph.repoRoot,\n packageRoot: dependencyGraph.packageRoot,\n packageRelativePath: dependencyGraph.packageRelativePath,\n cwd,\n dependencyGraph,\n});\n\nconst collectDiagnostics = (\n ...sources: readonly (ScopedWorkspacePrunePlan | void | undefined)[]\n): string[] => sources.flatMap((source) => (source?.diagnostics ? [...source.diagnostics] : []));\n\nconst resolvePruner = async ({\n pruner,\n dependencyGraph,\n cwd,\n}: {\n pruner?: ScopedWorkspacePruner;\n dependencyGraph: WorkspaceDependencyGraph;\n cwd: string;\n}): Promise<PrunerResolution> => {\n if (!pruner) {\n return { diagnostics: [FALLBACK_DIAGNOSTIC] };\n }\n\n const input = createPrunerInput({ dependencyGraph, cwd });\n const prunePlan = await pruner.createPrunePlan(input);\n\n return {\n prunerName: pruner.name,\n prunePlan,\n diagnostics: collectDiagnostics(prunePlan),\n };\n};\n\n/** Create the shared scoped-workspace filesystem used by containerized package builds. */\nexport const createScopedWorkspace = async (\n options: ScopedWorkspaceOptions = {},\n): Promise<ScopedWorkspace> => {\n const cwd = resolve(options.cwd ?? process.cwd());\n const dependencyGraph = await resolveWorkspaceDependencyGraph({\n cwd,\n });\n const prunerResolution = await resolvePruner({\n pruner: options.pruner,\n dependencyGraph,\n cwd,\n });\n const sourceCopy = await copyWorkspaceSources({\n dependencyGraph,\n prunePatterns: prunerResolution.prunePlan?.patterns,\n packagePrunePatterns: prunerResolution.prunePlan?.packagePatterns,\n });\n\n try {\n await copyRootNodeModulesSymlinks({\n repoRoot: dependencyGraph.repoRoot,\n scopedRoot: sourceCopy.scopedRoot,\n dependencyNames: dependencyGraph.rootNodeModulesDependencyNames,\n });\n } catch (error) {\n await safeRemove(sourceCopy.scopedRoot);\n throw error;\n }\n\n const copiedPackagePathEntries = sourceCopy.copiedWorkspaceDependencies\n .map((dependency) => [dependency.relativePath, dependency.absolutePath] as const)\n .sort(([a], [b]) => a.localeCompare(b));\n\n return {\n packageRoot: dependencyGraph.packageRoot,\n repoRoot: dependencyGraph.repoRoot,\n scopedRoot: sourceCopy.scopedRoot,\n packageRelativePath: dependencyGraph.packageRelativePath,\n pnpmVirtualStoreMount: getPnpmVirtualStoreMount(dependencyGraph.repoRoot),\n copiedWorkspacePackageCount: copiedPackagePathEntries.length,\n copiedWorkspacePackagePaths: Object.fromEntries(copiedPackagePathEntries),\n prunerName: prunerResolution.prunerName,\n diagnostics: prunerResolution.diagnostics,\n };\n};\n"]}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __name } from './VUOMXK5T.js';
|
|
2
2
|
import { env } from 'process';
|
|
3
3
|
|
|
4
|
-
// src/environment.ts
|
|
5
|
-
init_esm_shims();
|
|
6
4
|
var parseBoolean = /* @__PURE__ */ __name((value) => !!value && !!JSON.parse(value), "parseBoolean");
|
|
7
5
|
var local = parseBoolean(env.VM_TOOLING_LOCAL);
|
|
8
6
|
var registry = env.VM_TOOLING_REGISTRY;
|
|
9
7
|
var imageDirectory = env.VM_TOOLING_IMAGE_DIRECTORY;
|
|
10
8
|
|
|
11
9
|
export { imageDirectory, local, registry };
|
|
12
|
-
//# sourceMappingURL=
|
|
13
|
-
//# sourceMappingURL=
|
|
10
|
+
//# sourceMappingURL=D3SKWSHN.js.map
|
|
11
|
+
//# sourceMappingURL=D3SKWSHN.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/environment.ts"],"names":["parseBoolean","value","JSON","parse","local","env","VM_TOOLING_LOCAL","registry","VM_TOOLING_REGISTRY","imageDirectory","VM_TOOLING_IMAGE_DIRECTORY"],"mappings":";;;AAEA,IAAMA,YAAAA,mBAAe,MAAA,CAAA,CAACC,KAAAA,KAAuC,CAAC,CAACA,KAAAA,IAAS,CAAC,CAACC,IAAAA,CAAKC,KAAAA,CAAMF,KAAAA,CAAAA,EAAhE,cAAA,CAAA;AAEd,IAAMG,KAAAA,GAAiBJ,YAAAA,CAAaK,GAAAA,CAAIC,gBAAgB;AACxD,IAAMC,WAA+BF,GAAAA,CAAIG;AACzC,IAAMC,iBAAqCJ,GAAAA,CAAIK","file":"D3SKWSHN.js","sourcesContent":["import { env } from 'node:process';\n\nconst parseBoolean = (value: string | undefined): boolean => !!value && !!JSON.parse(value);\n\nexport const local: boolean = parseBoolean(env.VM_TOOLING_LOCAL);\nexport const registry: string | undefined = env.VM_TOOLING_REGISTRY;\nexport const imageDirectory: string | undefined = env.VM_TOOLING_IMAGE_DIRECTORY;\n"]}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { COPY_CONCURRENCY } from './GU2VLUXE.js';
|
|
2
|
+
import { safeRemove, isInside } from './WP67XJRG.js';
|
|
3
|
+
import { __name } from './VUOMXK5T.js';
|
|
4
4
|
import { glob } from 'glob';
|
|
5
5
|
import { mkdtemp, mkdir, lstat, symlink, readlink, copyFile } from 'fs/promises';
|
|
6
6
|
import { tmpdir } from 'os';
|
|
7
7
|
import { join, dirname } from 'path';
|
|
8
8
|
import pLimit from 'p-limit';
|
|
9
9
|
|
|
10
|
-
// src/scoped-workspace/workspace-source-copy.ts
|
|
11
|
-
init_esm_shims();
|
|
12
10
|
var DEFAULT_SOURCE_COPY_PATTERNS = [
|
|
13
11
|
"**/*"
|
|
14
12
|
];
|
|
@@ -139,5 +137,5 @@ var copyWorkspaceSources = /* @__PURE__ */ __name(async (options) => {
|
|
|
139
137
|
}, "copyWorkspaceSources");
|
|
140
138
|
|
|
141
139
|
export { DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS, DEFAULT_SOURCE_COPY_PATTERNS, copyWorkspaceSources };
|
|
142
|
-
//# sourceMappingURL=
|
|
143
|
-
//# sourceMappingURL=
|
|
140
|
+
//# sourceMappingURL=D5ZLPMIL.js.map
|
|
141
|
+
//# sourceMappingURL=D5ZLPMIL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/scoped-workspace/workspace-source-copy.ts"],"names":["DEFAULT_SOURCE_COPY_PATTERNS","DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS","DEFAULT_SOURCE_COPY_FALLBACK_PATTERNS","getPathSegments","relativePath","split","isInsideNodeModules","includes","partitionGlobPatterns","patterns","include","ignore","pattern","startsWith","push","slice","copySourceDirectory","sourceDir","destDir","copyPatterns","mkdir","recursive","globOptions","cwd","dot","follow","nodir","posix","entries","glob","limit","pLimit","COPY_CONCURRENCY","Promise","all","sort","map","sourcePath","join","destPath","stats","lstat","isDirectory","isSymbolicLink","dirname","symlink","readlink","error","code","undefined","existing","catch","intended","isFile","copyFile","getPackageSourceCopyPatterns","prunePatterns","packagePrunePatterns","packagePatterns","length","copyWorkspaceSources","options","scopedRoot","mkdtemp","tmpdir","copyPackageSource","absolutePath","isInside","dependencyGraph","repoRoot","Error","packageRelativePath","includedWorkspaceDependencies","dependency","safeRemove","packageRoot","copiedWorkspaceDependencies"],"mappings":"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","file":"D5ZLPMIL.js","sourcesContent":["import { glob } from 'glob';\nimport { copyFile, lstat, mkdir, mkdtemp, readlink, symlink } from 'node:fs/promises';\nimport { tmpdir } from 'node:os';\nimport { dirname, join } from 'node:path';\nimport pLimit from 'p-limit';\n\nimport { isInside, safeRemove } from '../utils/fs';\nimport { COPY_CONCURRENCY } from './node-modules';\nimport type { WorkspaceSourceCopyOptions, WorkspaceSourceCopyResult } from './types';\n\nexport const DEFAULT_SOURCE_COPY_PATTERNS = ['**/*'] as const;\n\nexport const DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS = [\n '!**/.git/**',\n '!**/.next/**',\n '!**/.pnpm/**',\n '!**/.turbo/**',\n '!**/artifacts*/**',\n '!**/build/**',\n '!**/cache/**',\n '!**/dependencies/**',\n '!**/debug_info/**',\n '!**/hh-cache/**',\n '!**/out/**',\n '!**/target/**',\n '!**/typechain-types/**',\n] as const;\n\nconst DEFAULT_SOURCE_COPY_FALLBACK_PATTERNS = [\n ...DEFAULT_SOURCE_COPY_PATTERNS,\n ...DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS,\n] as const;\n\nconst getPathSegments = (relativePath: string): string[] =>\n relativePath ? relativePath.split('/') : [];\n\nconst isInsideNodeModules = (relativePath: string): boolean =>\n getPathSegments(relativePath).includes('node_modules');\n\nconst partitionGlobPatterns = (\n patterns: readonly string[],\n): { include: string[]; ignore: string[] } => {\n const include: string[] = [];\n const ignore: string[] = [];\n\n for (const pattern of patterns) {\n if (pattern.startsWith('!')) {\n ignore.push(pattern.slice(1));\n } else {\n include.push(pattern);\n }\n }\n\n return { include, ignore };\n};\n\nconst copySourceDirectory = async (\n sourceDir: string,\n destDir: string,\n copyPatterns: readonly string[],\n): Promise<void> => {\n await mkdir(destDir, { recursive: true });\n\n const { include, ignore } = partitionGlobPatterns(copyPatterns);\n const globOptions = {\n cwd: sourceDir,\n dot: true,\n follow: false,\n nodir: false,\n posix: true,\n };\n const entries = await glob(include, { ...globOptions, ignore });\n const limit = pLimit(COPY_CONCURRENCY);\n\n await Promise.all(\n entries.sort().map((relativePath) =>\n limit(async () => {\n const sourcePath = join(sourceDir, relativePath);\n const destPath = join(destDir, relativePath);\n const stats = await lstat(sourcePath);\n\n if (stats.isDirectory()) return;\n\n if (stats.isSymbolicLink()) {\n await mkdir(dirname(destPath), { recursive: true });\n try {\n await symlink(await readlink(sourcePath), destPath);\n } catch (error) {\n // A workspace package nested under another package root can be copied\n // twice (once via the parent tree, once as its own importer). Treat an\n // identical existing symlink as success.\n const code =\n typeof error === 'object' && error !== null\n ? (error as { code?: string }).code\n : undefined;\n if (code !== 'EEXIST') throw error;\n const existing = await readlink(destPath).catch(() => undefined);\n const intended = await readlink(sourcePath);\n if (existing !== intended) throw error;\n }\n return;\n }\n\n if (isInsideNodeModules(relativePath)) return;\n\n if (!stats.isFile()) return;\n\n await mkdir(dirname(destPath), { recursive: true });\n await copyFile(sourcePath, destPath);\n }),\n ),\n );\n};\n\n/**\n * Resolve copy patterns for one dependency package. Package-specific pruner globs are used as-is,\n * so a pruner can copy build outputs from dirs we usually skip, such as `target`. Packages without\n * specific globs use broader pruner globs or the default source-copy set.\n */\nconst getPackageSourceCopyPatterns = ({\n relativePath,\n prunePatterns,\n packagePrunePatterns,\n}: {\n relativePath: string;\n prunePatterns?: readonly string[];\n packagePrunePatterns?: Readonly<Record<string, readonly string[]>>;\n}): readonly string[] => {\n const packagePatterns = packagePrunePatterns?.[relativePath];\n\n if (packagePatterns) {\n return packagePatterns.length ? packagePatterns : DEFAULT_SOURCE_COPY_FALLBACK_PATTERNS;\n }\n if (prunePatterns?.length) return prunePatterns;\n\n return DEFAULT_SOURCE_COPY_FALLBACK_PATTERNS;\n};\n\n/**\n * Copy selected workspace dependency files into a repo-shaped scoped workspace.\n *\n * The current package itself is not copied. It is mounted from the host at the same repo-relative\n * path by the Docker executor so package-local build outputs such as `target`, `build`, and\n * `src/generated` land in the real package. Dependency files come from pruner patterns when\n * configured; otherwise we copy source-like files and skip generated artifacts/caches.\n * Package-local node_modules directories are copied as symlinks only, relying on the root `.pnpm`\n * virtual store mount for external package contents.\n */\nexport const copyWorkspaceSources = async (\n options: WorkspaceSourceCopyOptions,\n): Promise<WorkspaceSourceCopyResult> => {\n const scopedRoot = await mkdtemp(join(tmpdir(), 'lz-scoped-workspace-'));\n const { prunePatterns, packagePrunePatterns } = options;\n\n const copyPackageSource = async ({\n absolutePath,\n relativePath,\n }: {\n absolutePath: string;\n relativePath: string;\n }): Promise<void> => {\n if (!isInside(options.dependencyGraph.repoRoot, absolutePath)) {\n throw new Error(\n `Refusing to copy workspace package outside repository root: ${absolutePath}`,\n );\n }\n\n await copySourceDirectory(\n absolutePath,\n join(scopedRoot, relativePath),\n getPackageSourceCopyPatterns({\n relativePath,\n prunePatterns,\n packagePrunePatterns,\n }),\n );\n };\n\n try {\n await mkdir(dirname(join(scopedRoot, options.dependencyGraph.packageRelativePath)), {\n recursive: true,\n });\n\n const limit = pLimit(COPY_CONCURRENCY);\n await Promise.all(\n options.dependencyGraph.includedWorkspaceDependencies.map((dependency) =>\n limit(async () => {\n await copyPackageSource({\n absolutePath: dependency.absolutePath,\n relativePath: dependency.relativePath,\n });\n }),\n ),\n );\n } catch (error) {\n await safeRemove(scopedRoot);\n throw error;\n }\n\n return {\n repoRoot: options.dependencyGraph.repoRoot,\n packageRoot: options.dependencyGraph.packageRoot,\n scopedRoot,\n packageRelativePath: options.dependencyGraph.packageRelativePath,\n copiedWorkspaceDependencies: options.dependencyGraph.includedWorkspaceDependencies,\n };\n};\n"]}
|
package/dist/EKUFNO5X.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"EKUFNO5X.js"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __name } from './VUOMXK5T.js';
|
|
2
2
|
import { delay } from 'es-toolkit';
|
|
3
3
|
import * as console from 'console';
|
|
4
4
|
import { rmSync } from 'fs';
|
|
@@ -7,8 +7,6 @@ import { homedir } from 'os';
|
|
|
7
7
|
import { join } from 'path';
|
|
8
8
|
import { env } from 'process';
|
|
9
9
|
|
|
10
|
-
// src/core/lock.ts
|
|
11
|
-
init_esm_shims();
|
|
12
10
|
var directory = join(homedir(), ".cache/vm-tooling/locks");
|
|
13
11
|
var defaultOptions = {
|
|
14
12
|
interval: 1e3,
|
|
@@ -81,5 +79,5 @@ var lockMany = /* @__PURE__ */ __name(async (keys, run) => (
|
|
|
81
79
|
), "lockMany");
|
|
82
80
|
|
|
83
81
|
export { buildLockFilePath, lock, lockMany };
|
|
84
|
-
//# sourceMappingURL=
|
|
85
|
-
//# sourceMappingURL=
|
|
82
|
+
//# sourceMappingURL=ELRX6BWW.js.map
|
|
83
|
+
//# sourceMappingURL=ELRX6BWW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/lock.ts"],"names":["directory","join","homedir","defaultOptions","interval","timeout","signals","buildLockFilePath","key","lock","run","options","path","packageName","env","npm_package_name","info","unlock","rmSync","force","lockError","mkdir","recursive","handle","open","constants","O_CREAT","O_EXCL","close","error","time","stat","birthtime","_error","Date","now","getTime","Error","message","delay","signal","process","addListener","console","log","removeListener","lockMany","keys","sort","reduce"],"mappings":"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","file":"ELRX6BWW.js","sourcesContent":["import { delay } from 'es-toolkit';\nimport * as console from 'node:console';\nimport { rmSync } from 'node:fs';\nimport { stat } from 'node:fs/promises';\nimport { constants, mkdir, open } from 'node:fs/promises';\nimport { homedir } from 'node:os';\nimport { join } from 'node:path';\nimport { env } from 'node:process';\n\ninterface LockOptions {\n interval?: number;\n timeout?: number;\n}\n\nconst directory = join(homedir(), '.cache/vm-tooling/locks');\nconst defaultOptions = { interval: 1000, timeout: 30 * 60_000 };\nconst signals = ['SIGINT', 'SIGTERM', 'SIGHUP'] as const;\n\nexport const buildLockFilePath = (key: string): string => join(directory, key);\n\nexport const lock = async <T>(key: string, run: () => Promise<T>, options: LockOptions = {}) => {\n const { interval, timeout } = { ...defaultOptions, ...options };\n\n const path = buildLockFilePath(key);\n const packageName = env.npm_package_name;\n const info = [...(packageName ? ['for', packageName] : []), 'at', path].join(' ');\n\n const unlock = () => rmSync(path, { force: true });\n\n while (true) {\n let lockError;\n\n try {\n await mkdir(directory, { recursive: true });\n const handle = await open(path, constants.O_CREAT | constants.O_EXCL);\n await handle.close();\n break;\n } catch (error: unknown) {\n lockError = error as Error;\n }\n\n let time: Date | undefined;\n\n try {\n time = (await stat(path)).birthtime;\n } catch (_error) {\n // \"Crush\" errors as the lock is unlocked between the `open` and `stat`.\n }\n\n if (time && Date.now() - time.getTime() > timeout) {\n // If the timeout is reached, we assume that the previous run is\n // in a bad state and recover automatically by removing the lock file\n // even when it is actually running still.\n unlock();\n throw new Error(`Timeout waiting for lock file ${info}: ${lockError.message}`);\n }\n\n await delay(interval);\n }\n\n for (const signal of signals) {\n process.addListener(signal, unlock);\n }\n\n console.log(`🔒 Acquired lock ${info}`);\n\n try {\n return await run();\n } finally {\n for (const signal of signals) {\n process.removeListener(signal, unlock);\n }\n\n unlock();\n\n console.log(`🔓 Released lock ${info}`);\n }\n};\n\nexport const lockMany = async <T>(keys: string[], run: () => Promise<T>): Promise<T> =>\n // Sort keys to avoid deadlocks.\n keys.sort().reduce((run, key) => () => lock(key, run), run)();\n"]}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { formatVersionCombination } from './
|
|
2
|
-
import { findToolByName, getToolDefaultVersion, getToolSupportedVersions } from './
|
|
3
|
-
import {
|
|
1
|
+
import { formatVersionCombination } from './UCR2ZBRF.js';
|
|
2
|
+
import { findToolByName, getToolDefaultVersion, getToolSupportedVersions } from './VMHQSHJN.js';
|
|
3
|
+
import { __name } from './VUOMXK5T.js';
|
|
4
4
|
|
|
5
5
|
// src/display/version-display.ts
|
|
6
|
-
init_esm_shims();
|
|
7
6
|
function displayVersionCombinations(context) {
|
|
8
7
|
console.log("\n\u{1F680} LayerZero VM Tool - Supported Version Combinations\n");
|
|
9
8
|
const combinations = context.versionCombinations;
|
|
@@ -64,5 +63,5 @@ function displayToolVersionInfo(context, toolName) {
|
|
|
64
63
|
__name(displayToolVersionInfo, "displayToolVersionInfo");
|
|
65
64
|
|
|
66
65
|
export { displayToolVersionInfo, displayVersionCombinations };
|
|
67
|
-
//# sourceMappingURL=
|
|
68
|
-
//# sourceMappingURL=
|
|
66
|
+
//# sourceMappingURL=FZ4WTZV4.js.map
|
|
67
|
+
//# sourceMappingURL=FZ4WTZV4.js.map
|
|
@@ -0,0 +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":"FZ4WTZV4.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"]}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { findToolVersionsForCombination } from './
|
|
2
|
-
import {
|
|
1
|
+
import { findToolVersionsForCombination } from './VMHQSHJN.js';
|
|
2
|
+
import { __name } from './VUOMXK5T.js';
|
|
3
3
|
import { access } from 'fs/promises';
|
|
4
4
|
import { dirname, join } from 'path';
|
|
5
5
|
|
|
6
|
-
// src/utils.ts
|
|
7
|
-
init_esm_shims();
|
|
8
6
|
var getCombinationId = /* @__PURE__ */ __name((context, combination) => Object.entries(findToolVersionsForCombination(context, combination)).toSorted().flat().join("-"), "getCombinationId");
|
|
9
7
|
var findFileInParentDirectory = /* @__PURE__ */ __name(async (directory, filename) => {
|
|
10
8
|
while (directory !== dirname(directory)) {
|
|
@@ -20,5 +18,5 @@ var findFileInParentDirectory = /* @__PURE__ */ __name(async (directory, filenam
|
|
|
20
18
|
}, "findFileInParentDirectory");
|
|
21
19
|
|
|
22
20
|
export { findFileInParentDirectory, getCombinationId };
|
|
23
|
-
//# sourceMappingURL=
|
|
24
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=GSL2M6U4.js.map
|
|
22
|
+
//# sourceMappingURL=GSL2M6U4.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":";;;;;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":"GSL2M6U4.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,10 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __name } from './VUOMXK5T.js';
|
|
2
2
|
import { mkdir, lstat, symlink, readlink } from 'fs/promises';
|
|
3
3
|
import { join, dirname } from 'path';
|
|
4
4
|
import pLimit from 'p-limit';
|
|
5
5
|
|
|
6
|
-
// src/scoped-workspace/node-modules.ts
|
|
7
|
-
init_esm_shims();
|
|
8
6
|
var COPY_CONCURRENCY = 10;
|
|
9
7
|
var copyNodeModulesSymlinks = /* @__PURE__ */ __name(async (sourceDir, targetDir, dependencyNames) => {
|
|
10
8
|
const limit = pLimit(COPY_CONCURRENCY);
|
|
@@ -42,5 +40,5 @@ var getPnpmVirtualStoreMount = /* @__PURE__ */ __name((repoRoot, containerWorksp
|
|
|
42
40
|
}), "getPnpmVirtualStoreMount");
|
|
43
41
|
|
|
44
42
|
export { COPY_CONCURRENCY, copyRootNodeModulesSymlinks, getPnpmVirtualStoreMount };
|
|
45
|
-
//# sourceMappingURL=
|
|
46
|
-
//# sourceMappingURL=
|
|
43
|
+
//# sourceMappingURL=GU2VLUXE.js.map
|
|
44
|
+
//# sourceMappingURL=GU2VLUXE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/scoped-workspace/node-modules.ts"],"names":["COPY_CONCURRENCY","copyNodeModulesSymlinks","sourceDir","targetDir","dependencyNames","limit","pLimit","symlinks","Promise","all","map","packageName","sourcePath","join","targetPath","stats","lstat","isSymbolicLink","undefined","mkdir","dirname","recursive","symlink","readlink","flatMap","copyRootNodeModulesSymlinks","repoRoot","scopedRoot","sourceNodeModules","targetNodeModules","nodeModulesPath","sort","getPnpmVirtualStoreMount","containerWorkspaceRoot","hostPath","containerPath","readOnly"],"mappings":";;;;;AAUO,IAAMA,gBAAAA,GAAmB;AAEhC,IAAMC,uBAAAA,mBAA0B,MAAA,CAAA,OAC5BC,SAAAA,EACAC,SAAAA,EACAC,eAAAA,KAAAA;AAEA,EAAA,MAAMC,KAAAA,GAAQC,OAAON,gBAAAA,CAAAA;AAErB,EAAA,MAAMO,QAAAA,GAAW,MAAMC,OAAAA,CAAQC,GAAAA,CAC3BL,gBAAgBM,GAAAA,CAAI,CAACC,WAAAA,KACjBN,KAAAA,CAAM,YAAA;AACF,IAAA,MAAMO,UAAAA,GAAaC,IAAAA,CAAKX,SAAAA,EAAWS,WAAAA,CAAAA;AACnC,IAAA,MAAMG,UAAAA,GAAaD,IAAAA,CAAKV,SAAAA,EAAWQ,WAAAA,CAAAA;AACnC,IAAA,MAAMI,KAAAA,GAAQ,MAAMC,KAAAA,CAAMJ,UAAAA,CAAAA;AAE1B,IAAA,IAAI,CAACG,KAAAA,CAAME,cAAAA,EAAc,EAAI,OAAOC,MAAAA;AAEpC,IAAA,MAAMC,KAAAA,CAAMC,OAAAA,CAAQN,UAAAA,CAAAA,EAAa;MAAEO,SAAAA,EAAW;KAAK,CAAA;AACnD,IAAA,MAAMC,OAAAA,CAAQ,MAAMC,QAAAA,CAASX,UAAAA,GAAaE,UAAAA,CAAAA;AAE1C,IAAA,OAAOH,WAAAA;AACX,EAAA,CAAA,CAAA,CAAA,CAAA;AAIR,EAAA,OAAOJ,QAAAA,CAASiB,OAAAA,CAAQ,CAACF,QAAAA,KAAaA,QAAAA,GAAU;AAACA,IAAAA;AAAW,GAAA,GAAA,EAAE,CAAA;AAClE,CAAA,EAzBgC,yBAAA,CAAA;AAmCzB,IAAMG,8CAA8B,MAAA,CAAA,OAAO,EAC9CC,QAAAA,EACAC,UAAAA,EACAvB,iBAAe,KACiB;AAChC,EAAA,MAAMwB,iBAAAA,GAAoBf,IAAAA,CAAKa,QAAAA,EAAU,cAAA,CAAA;AACzC,EAAA,MAAMG,iBAAAA,GAAoBhB,IAAAA,CAAKc,UAAAA,EAAY,cAAA,CAAA;AAI3C,EAAA,MAAMR,KAAAA,CAAMN,IAAAA,CAAKgB,iBAAAA,EAAmB,OAAA,CAAA,EAAU;IAAER,SAAAA,EAAW;GAAK,CAAA;AAChE,EAAA,MAAMd,QAAAA,GAAW,MAAMN,uBAAAA,CACnB2B,iBAAAA,EACAC,mBACAzB,eAAAA,CAAAA;AAGJ,EAAA,OAAO;IACH0B,eAAAA,EAAiBD,iBAAAA;AACjBtB,IAAAA,QAAAA,EAAUA,SAASwB,IAAAA;AACvB,GAAA;AACJ,CAAA,EArB2C,6BAAA;AA6BpC,IAAMC,wBAAAA,mBAA2B,MAAA,CAAA,CACpCN,QAAAA,EACAO,sBAAAA,GAAyB,YAAA,MACA;EACzBC,QAAAA,EAAUrB,IAAAA,CAAKa,QAAAA,EAAU,cAAA,EAAgB,OAAA,CAAA;AACzCS,EAAAA,aAAAA,EAAe,GAAGF,sBAAAA,CAAAA,mBAAAA,CAAAA;EAClBG,QAAAA,EAAU;AACd,CAAA,CAAA,EAPwC,0BAAA","file":"GU2VLUXE.js","sourcesContent":["import { lstat, mkdir, readlink, symlink } from 'node:fs/promises';\nimport { dirname, join } from 'node:path';\nimport pLimit from 'p-limit';\n\nimport type {\n PnpmVirtualStoreMount,\n RootNodeModulesSymlinkCopyOptions,\n RootNodeModulesSymlinkCopyResult,\n} from './types';\n\nexport const COPY_CONCURRENCY = 10;\n\nconst copyNodeModulesSymlinks = async (\n sourceDir: string,\n targetDir: string,\n dependencyNames: readonly string[],\n): Promise<string[]> => {\n const limit = pLimit(COPY_CONCURRENCY);\n\n const symlinks = await Promise.all(\n dependencyNames.map((packageName) =>\n limit(async (): Promise<string | undefined> => {\n const sourcePath = join(sourceDir, packageName);\n const targetPath = join(targetDir, packageName);\n const stats = await lstat(sourcePath);\n\n if (!stats.isSymbolicLink()) return undefined;\n\n await mkdir(dirname(targetPath), { recursive: true });\n await symlink(await readlink(sourcePath), targetPath);\n\n return packageName;\n }),\n ),\n );\n\n return symlinks.flatMap((symlink) => (symlink ? [symlink] : []));\n};\n\n/**\n * Copy selected root node_modules dependency symlinks into a scoped workspace.\n *\n * pnpm's node_modules is primarily symlinks over node_modules/.pnpm and workspace packages.\n * Copying those symlinks does not copy their targets. The `.pnpm` virtual store is provided by a\n * read-only Docker mount. Package dependency resolution stays package-local; the graph decides\n * which root node_modules entries are needed by the workspace package closure.\n */\nexport const copyRootNodeModulesSymlinks = async ({\n repoRoot,\n scopedRoot,\n dependencyNames,\n}: RootNodeModulesSymlinkCopyOptions): Promise<RootNodeModulesSymlinkCopyResult> => {\n const sourceNodeModules = join(repoRoot, 'node_modules');\n const targetNodeModules = join(scopedRoot, 'node_modules');\n\n // Pre-create the .pnpm mountpoint (recursive mkdir also creates node_modules)\n // so Docker can bind-mount the virtual store over it.\n await mkdir(join(targetNodeModules, '.pnpm'), { recursive: true });\n const symlinks = await copyNodeModulesSymlinks(\n sourceNodeModules,\n targetNodeModules,\n dependencyNames,\n );\n\n return {\n nodeModulesPath: targetNodeModules,\n symlinks: symlinks.sort(),\n };\n};\n\n/**\n * Describe the pnpm virtual store mount used by package-root container builds.\n *\n * The implementation should mount `.pnpm` instead of copying it. This preserves pnpm's dependency\n * topology without copying the virtual store into every scoped workspace.\n */\nexport const getPnpmVirtualStoreMount = (\n repoRoot: string,\n containerWorkspaceRoot = '/workspace',\n): PnpmVirtualStoreMount => ({\n hostPath: join(repoRoot, 'node_modules', '.pnpm'),\n containerPath: `${containerWorkspaceRoot}/node_modules/.pnpm`,\n readOnly: true,\n});\n"]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { __name } from './VUOMXK5T.js';
|
|
2
2
|
import process from 'process';
|
|
3
3
|
import { $ } from 'zx';
|
|
4
4
|
|
|
5
|
-
// src/core/local-executor.ts
|
|
6
|
-
init_esm_shims();
|
|
7
5
|
var executeLocally = /* @__PURE__ */ __name(async (tool, resolvedVersion, { cwd, args, env, script }) => {
|
|
8
6
|
if (!tool.getLocalVersion) {
|
|
9
7
|
throw new Error(`Local execution is not supported for ${tool.name}`);
|
|
@@ -49,5 +47,5 @@ ${stdout}` : ""}`);
|
|
|
49
47
|
}, "executeLocally");
|
|
50
48
|
|
|
51
49
|
export { executeLocally };
|
|
52
|
-
//# sourceMappingURL=
|
|
53
|
-
//# sourceMappingURL=
|
|
50
|
+
//# sourceMappingURL=IHHBJ2SZ.js.map
|
|
51
|
+
//# sourceMappingURL=IHHBJ2SZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/local-executor.ts"],"names":["executeLocally","tool","resolvedVersion","cwd","args","env","script","getLocalVersion","Error","name","localVersion","console","info","commandLine","trim","label","join","time","output","$","process","Object","fromEntries","defaultEnv","map","value","nothrow","timeEnd","exitCode","stdout"],"mappings":";;;;AAYO,IAAMA,cAAAA,iCACTC,IAAAA,EACAC,eAAAA,EACA,EAAEC,GAAAA,EAAKC,IAAAA,EAAMC,GAAAA,EAAKC,MAAAA,EAAM,KAAyB;AAEjD,EAAA,IAAI,CAACL,KAAKM,eAAAA,EAAiB;AACvB,IAAA,MAAM,IAAIC,KAAAA,CAAM,CAAA,qCAAA,EAAwCP,IAAAA,CAAKQ,IAAI,CAAA,CAAE,CAAA;AACvE,EAAA;AAEA,EAAA,MAAMC,YAAAA,GAAe,MAAMT,IAAAA,CAAKM,eAAAA,CAAgB;AAAEJ,IAAAA;GAAI,CAAA;AAEtD,EAAA,IAAID,oBAAoBQ,YAAAA,EAAc;AAClC,IAAA,MAAM,IAAIF,MACN,CAAA,MAAA,EAASP,IAAAA,CAAKQ,IAAI,CAAA,UAAA,EAAaC,YAAAA,CAAAA,uCAAAA,EAAsDR,eAAAA,CAAAA,CAAAA,CAAkB,CAAA;AAE/G,EAAA;AAEAS,EAAAA,OAAAA,CAAQC,KAAK,CAAA,6BAAA,EAAoBX,IAAAA,CAAKQ,IAAI,CAAA,CAAA,EAAIC,YAAAA,CAAAA,CAAc,CAAA;AAE5D,EAAA,MAAMG,WAAAA,GAAcP,MAAAA,EAAQQ,IAAAA,EAAAA,GAAS;AAAC,IAAA,MAAA;AAAQ,IAAA,IAAA;AAAMR,IAAAA;AAAU,GAAA,GAAA;IAACL,IAAAA,CAAKQ,IAAAA;AAASL,IAAAA,GAAAA;;AAE7E,EAAA,MAAMW,KAAAA,GAAQ,CAAA,OAAA,EAAKF,WAAAA,CAAYG,IAAAA,CAAK,GAAA,CAAA,CAAA,CAAA;AACpCL,EAAAA,OAAAA,CAAQM,KAAKF,KAAAA,CAAAA;AACb,EAAA,MAAMG,MAAAA,GAAS,MAAMC,CAAAA,CAAE;AACnBhB,IAAAA,GAAAA;IACAE,GAAAA,EAAK;AACD,MAAA,GAAGe,OAAAA,CAAQf,GAAAA;MACX,GAAGgB,MAAAA,CAAOC,WAAAA,CAAAA,CAAarB,IAAAA,CAAKsB,UAAAA,IAAc,EAAA,EAAIC,GAAAA,CAAI,CAAC,EAAEf,IAAAA,EAAMgB,KAAAA,EAAK,KAAO;AAAChB,QAAAA,IAAAA;AAAMgB,QAAAA;OAAM,CAAA,CAAA;MACpF,GAAGJ,MAAAA,CAAOC,YAAYjB,GAAAA,CAAImB,GAAAA,CAAI,CAAC,EAAEf,IAAAA,EAAMgB,OAAK,KAAO;AAAChB,QAAAA,IAAAA;AAAMgB,QAAAA;OAAM,CAAA;AACpE;GACJ,CAAA,CAAA,EAAKZ,WAAAA,CAAAA,CAAAA,CAAca,OAAAA,EAAO;AAC1Bf,EAAAA,OAAAA,CAAQgB,QAAQZ,KAAAA,CAAAA;AAEhB,EAAA,IAAIG,MAAAA,CAAOU,aAAa,CAAA,EAAG;AACvB,IAAA,MAAMC,MAAAA,GAASX,MAAAA,CAAOW,MAAAA,CAAOf,IAAAA,EAAI;AAEjC,IAAA,MAAM,IAAIN,MACN,CAAA,oBAAA,EAAuBP,IAAAA,CAAKQ,IAAI,CAAA,aAAA,EAAgBS,MAAAA,CAAOU,QAAQ,CAAA,CAAA,EAAIC,MAAAA,GAAS;EAAKA,MAAAA,CAAAA,CAAAA,GAAW,EAAA,CAAA,CAAI,CAAA;AAExG,EAAA;AAEA,EAAA,OAAOX,MAAAA;AACX,CAAA,EA1C8B,gBAAA","file":"IHHBJ2SZ.js","sourcesContent":["import process from 'node:process';\nimport { $, type ProcessOutput } from 'zx';\n\nimport type { EnvironmentVariable, Tool } from '../config';\n\ninterface LocalExecutionOptions {\n cwd: string;\n args: string[];\n env: readonly EnvironmentVariable[];\n script?: string;\n}\n\nexport const executeLocally = async (\n tool: Tool,\n resolvedVersion: string,\n { cwd, args, env, script }: LocalExecutionOptions,\n): Promise<ProcessOutput> => {\n if (!tool.getLocalVersion) {\n throw new Error(`Local execution is not supported for ${tool.name}`);\n }\n\n const localVersion = await tool.getLocalVersion({ cwd });\n\n if (resolvedVersion !== localVersion) {\n throw new Error(\n `Local ${tool.name} version (${localVersion}) does not match the required version (${resolvedVersion})`,\n );\n }\n\n console.info(`🖥️ Using local ${tool.name} ${localVersion}`);\n\n const commandLine = script?.trim() ? ['bash', '-c', script] : [tool.name, ...args];\n\n const label = `⏳ ${commandLine.join(' ')}`;\n console.time(label);\n const output = await $({\n cwd,\n env: {\n ...process.env,\n ...Object.fromEntries((tool.defaultEnv ?? []).map(({ name, value }) => [name, value])),\n ...Object.fromEntries(env.map(({ name, value }) => [name, value])),\n },\n })`${commandLine}`.nothrow();\n console.timeEnd(label);\n\n if (output.exitCode !== 0) {\n const stdout = output.stdout.trim();\n\n throw new Error(\n `Failed to run local ${tool.name} (exit code: ${output.exitCode})${stdout ? `\\n${stdout}` : ''}`,\n );\n }\n\n return output;\n};\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { stringifyError } from './
|
|
2
|
-
import { createScopedWorkspace } from './
|
|
3
|
-
import { safeRemove } from './
|
|
4
|
-
import { executeLocally } from './
|
|
5
|
-
import { lockMany } from './
|
|
6
|
-
import { resolveTypeVersions } from './
|
|
7
|
-
import { resolveDockerPlatformExecution, findImageForTool, getImageUri, getImageTag, qualifyVolumeName } from './
|
|
8
|
-
import { CARGO_TARGET_CACHE_PATH } from './
|
|
9
|
-
import { findToolByName } from './
|
|
10
|
-
import {
|
|
1
|
+
import { stringifyError } from './YT4XAH7H.js';
|
|
2
|
+
import { createScopedWorkspace } from './4PZQU6GV.js';
|
|
3
|
+
import { safeRemove } from './WP67XJRG.js';
|
|
4
|
+
import { executeLocally } from './IHHBJ2SZ.js';
|
|
5
|
+
import { lockMany } from './ELRX6BWW.js';
|
|
6
|
+
import { resolveTypeVersions } from './VAVK6AV3.js';
|
|
7
|
+
import { resolveDockerPlatformExecution, findImageForTool, getImageUri, getImageTag, qualifyVolumeName } from './YZCMSN63.js';
|
|
8
|
+
import { CARGO_TARGET_CACHE_PATH } from './KBDBSTDG.js';
|
|
9
|
+
import { findToolByName } from './VMHQSHJN.js';
|
|
10
|
+
import { __name } from './VUOMXK5T.js';
|
|
11
11
|
import { uniqBy } from 'es-toolkit';
|
|
12
12
|
import { realpath } from 'fs/promises';
|
|
13
13
|
import os from 'os';
|
|
@@ -16,8 +16,6 @@ import process from 'process';
|
|
|
16
16
|
import * as semver from 'semver';
|
|
17
17
|
import { $ } from 'zx';
|
|
18
18
|
|
|
19
|
-
// src/core/tool-executor.ts
|
|
20
|
-
init_esm_shims();
|
|
21
19
|
var getHostUserIds = /* @__PURE__ */ __name(() => {
|
|
22
20
|
const userInfo = os.userInfo();
|
|
23
21
|
if (userInfo.uid === -1 || userInfo.gid === -1) {
|
|
@@ -345,5 +343,5 @@ ${stdout}` : ""}`);
|
|
|
345
343
|
__name(executeToolCommand, "executeToolCommand");
|
|
346
344
|
|
|
347
345
|
export { executeToolCommand, mergeToolEnv, resolveCargoCacheEnv };
|
|
348
|
-
//# sourceMappingURL=
|
|
349
|
-
//# sourceMappingURL=
|
|
346
|
+
//# sourceMappingURL=IUE6WGKT.js.map
|
|
347
|
+
//# sourceMappingURL=IUE6WGKT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/tool-executor.ts"],"names":["getHostUserIds","userInfo","os","uid","gid","undefined","$","verbose","stdio","process","stderr","mergeVolumes","defaultVolumes","userVolumes","uniqBy","volume","containerPath","mergeToolEnv","layers","flat","name","CACHE_SAFE_CARGO_RE","CARGO_BUILD_RE","resolveCargoCacheEnv","script","volumes","test","cacheVolume","find","type","CARGO_TARGET_CACHE_PATH","value","resolveVolumePath","workspaceRoot","hostPath","path","resolve","replace","homedir","toDockerVolumeArgs","mode","readOnly","formatDockerArgForDisplay","arg","formatDockerVolumeArgs","volumeArgs","map","args","join","resolveWorkspaceContainerCwd","cwd","cwdReal","realpath","relativePath","relative","split","sep","posix","ensureDockerImage","imageUri","dockerPlatform","platform","expectedArchitecture","arch","docker$","processEnv","env","probeDockerPlatformContainerCreation","expectedPlatform","container","nothrow","quiet","exitCode","Error","containerId","stdout","trim","localImage","cachedArch","console","info","output","isAuthError","includes","executeToolCommand","context","toolName","customEntrypoint","entrypoint","customEnvVars","publish","versions","defaultVolumesEnabled","local","dockerPlatformOverride","tool","findToolByName","resolveDockerPlatformExecution","toolDockerPlatform","preExecute","resolvedVersion","resolveTypeVersions","getSecondaryVersion","secondaryVersion","satisfies","warn","error","stringifyError","executeLocally","scopedWorkspace","createScopedWorkspace","pruner","scopedWorkspacePruner","repoRoot","workspaceVolumes","scopedRoot","packageRoot","packageRelativePath","pnpmVirtualStoreMount","resolvedVolumes","copiedWorkspacePackageCount","prunerName","diagnostic","diagnostics","length","overrides","filter","userVolume","some","defaultVolume","image","findImageForTool","getImageUri","containerCwd","cacheKey","getImageTag","qualifiedVolumes","qualifyVolumeName","volumeNameOptions","volumeArg","defaultEnv","hasDockerSocketMount","dockerSocketEnv","cargoCacheEnv","envArgs","flatMap","hostUserIds","userIdEnvArgs","finalArgs","dockerArgs","privileged","p","lockMany","locked","label","time","result","timeEnd","removeResult","safeRemove","removed"],"mappings":"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","file":"IUE6WGKT.js","sourcesContent":["import { uniqBy } from 'es-toolkit';\nimport { realpath } from 'node:fs/promises';\nimport os from 'node:os';\nimport path from 'node:path';\nimport process from 'node:process';\nimport * as semver from 'semver';\nimport { $, type ProcessOutput } from 'zx';\n\nimport type { DockerPlatformOverride, EnvironmentVariable, VolumeMapping } from '../config';\nimport { CARGO_TARGET_CACHE_PATH } from '../config';\nimport type { ChainContext } from '../context';\nimport { createScopedWorkspace } from '../scoped-workspace';\nimport {\n type DockerPlatform,\n type DockerPlatformExecution,\n findImageForTool,\n getImageTag,\n getImageUri,\n qualifyVolumeName,\n resolveDockerPlatformExecution,\n} from '../utils/docker';\nimport { stringifyError } from '../utils/error';\nimport { findToolByName } from '../utils/finder';\nimport { safeRemove } from '../utils/fs';\nimport { executeLocally } from './local-executor';\nimport { lockMany } from './lock';\nimport { resolveTypeVersions } from './version-resolver';\n\n/**\n * Get the current user's UID and GID for Docker container user matching.\n * This prevents permission issues when containers write to bind-mounted directories.\n * On Windows or when running as root, returns undefined as UID/GID matching is not needed.\n */\nconst getHostUserIds = (): { uid: number; gid: number } | undefined => {\n // os.userInfo() returns uid/gid on POSIX systems, -1 on Windows\n const userInfo = os.userInfo();\n if (userInfo.uid === -1 || userInfo.gid === -1) {\n return undefined;\n }\n\n return { uid: userInfo.uid, gid: userInfo.gid };\n};\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[] => uniqBy([...userVolumes, ...defaultVolumes], (volume) => volume.containerPath);\n\n/**\n * Merge env layers, highest precedence first. On a name collision the earlier layer wins — so the\n * cache redirect (passed last) can never clobber a user --env or a tool default for the same var.\n */\nexport const mergeToolEnv = (\n ...layers: readonly (readonly EnvironmentVariable[])[]\n): EnvironmentVariable[] => uniqBy(layers.flat(), ({ name }) => name);\n\n// test/nextest/check/clippy, the `t`/`c` aliases, and `cargo test-*`, with an optional +toolchain.\nconst CACHE_SAFE_CARGO_RE =\n /\\bcargo\\s+(?:\\+\\S+\\s+)?(?:test|nextest|check|clippy|t|c)(?:\\s|$)|\\bcargo\\s+(?:\\+\\S+\\s+)?test-\\S+/;\n// Anything that emits host artifacts: cargo build/b, rustc, sbf/bpf (incl. the dashed `cargo-*-sbf`\n// binaries the space-anchored branch would miss), and anchor build / idl build / test (anchor test\n// compiles the program + IDL before running). `(?![\\w-])` ends on a non-word boundary so a\n// separator-glued build (`cargo build;`) still trips it.\nconst CARGO_BUILD_RE =\n /\\banchor\\s+(?:idl\\s+build|build|test)\\b|\\bcargo-(?:build|test)-(?:sbf|bpf)\\b|\\bcargo\\s+(?:\\+\\S+\\s+)?(?:build(?:-sbf|-bpf)?|b|rustc|test-(?:sbf|bpf))(?![\\w-])/;\n\n/**\n * Redirect a cache-safe cargo `--script` to the shared `/cargo-target` mount via CARGO_TARGET_DIR.\n * Skips scripts containing a build (CARGO_BUILD_RE): a build's .so/IDL must reach the host-mounted\n * target/, not the cache. No-ops for tools that don't mount the cache.\n */\nexport const resolveCargoCacheEnv = (\n script: string | undefined,\n volumes: readonly VolumeMapping[],\n): EnvironmentVariable[] => {\n if (!script || !CACHE_SAFE_CARGO_RE.test(script) || CARGO_BUILD_RE.test(script)) {\n return [];\n }\n\n const cacheVolume = volumes.find(\n (volume) => volume.type === 'isolate' && volume.containerPath === CARGO_TARGET_CACHE_PATH,\n );\n if (!cacheVolume) {\n return [];\n }\n\n return [{ name: 'CARGO_TARGET_DIR', value: cacheVolume.containerPath }];\n};\n\n/**\n * Resolve a host path in a volume to an absolute path.\n * - Paths starting with ~ are resolved to home directory\n * - Relative paths (starting with . or no prefix) are resolved to workspace root\n * - Absolute paths are left unchanged\n */\nconst resolveVolumePath = (volume: VolumeMapping, workspaceRoot: string): VolumeMapping =>\n volume.type === 'host'\n ? {\n ...volume,\n hostPath: path.resolve(workspaceRoot, volume.hostPath.replace(/^~/, os.homedir())),\n }\n : volume;\n\nconst toDockerVolumeArgs = (volume: VolumeMapping): string[] => {\n const mode = volume.readOnly ? ':ro' : '';\n\n if (volume.type === 'host') {\n return ['-v', `${volume.hostPath}:${volume.containerPath}${mode}`];\n }\n\n return ['-v', `${volume.name}:${volume.containerPath}${mode}`];\n};\n\nconst formatDockerArgForDisplay = (arg: string): string =>\n /\\s|\"/.test(arg) ? `\"${arg.replace(/([\"\\\\])/g, '\\\\$1')}\"` : arg;\n\nconst formatDockerVolumeArgs = (volumeArgs: readonly (readonly string[])[]): string[] =>\n volumeArgs.map((args) => args.map(formatDockerArgForDisplay).join(' '));\n\nconst resolveWorkspaceContainerCwd = async ({\n cwd,\n workspaceRoot,\n}: {\n cwd: string;\n workspaceRoot: string;\n}): Promise<string> => {\n const cwdReal = await realpath(cwd);\n const relativePath = path.relative(workspaceRoot, cwdReal).split(path.sep).join(path.posix.sep);\n\n return relativePath ? path.posix.join('/workspace', relativePath) : '/workspace';\n};\n\nconst ensureDockerImage = async (\n imageUri: string,\n dockerPlatform: DockerPlatformExecution,\n): Promise<void> => {\n const platform = dockerPlatform.platform;\n const expectedArchitecture = platform?.arch;\n const docker$ = dockerPlatform.processEnv ? $({ env: dockerPlatform.processEnv }) : $;\n\n // Probe Docker's runnable platform by creating a container with the requested\n // platform. Docker uses this same platform resolution path for `docker run`.\n //\n // Do not inspect `.ImageManifestDescriptor.platform` here: Docker only added\n // that field in API v1.48 and may still omit it when the daemon does not use a\n // multi-platform image store. `docker image inspect` is also tag/cache-level\n // metadata, not the run-path decision. A successful `container create` is the\n // portable verification signal available without executing the tool command.\n const probeDockerPlatformContainerCreation = async (\n expectedPlatform: DockerPlatform,\n ): Promise<void> => {\n const container =\n await docker$`docker container create --platform ${expectedPlatform.value} ${imageUri} true`\n .nothrow()\n .quiet();\n\n if (container.exitCode) {\n throw new Error(\n [\n 'Failed to create Docker platform probe container:',\n ` - Image: ${imageUri}`,\n ` - Platform: ${expectedPlatform.value}`,\n ].join('\\n'),\n );\n }\n\n const containerId = container.stdout.trim();\n if (!containerId) {\n throw new Error(\n [\n 'Docker platform probe did not return a container id:',\n ` - Image: ${imageUri}`,\n ` - Platform: ${expectedPlatform.value}`,\n ].join('\\n'),\n );\n }\n\n await docker$`docker container rm ${containerId}`.nothrow().quiet();\n };\n\n // NOTE: `docker image ls <ref>` prints repository/tag in separate columns, so\n // `stdout.includes(<full-ref>)` is not reliable. Use `inspect` instead: exitCode=0\n // means the image exists locally.\n // Keep output minimal to avoid dumping full inspect JSON into CI logs.\n //\n // NOTE: Using `.quiet()` to avoid stderr being captured in the CI logs. If the image\n // is not in the cache, the process prints \"Error response from daemon: No such image: ...\"\n // which can confuse the uninitiated. It's just a cache miss, not an error.\n const localImage = await docker$`docker image inspect --format {{.Architecture}} ${imageUri}`\n .nothrow()\n .quiet();\n if (!localImage.exitCode) {\n const cachedArch = localImage.stdout.trim();\n if (!platform) {\n // No platform was requested, so any locally cached image is acceptable.\n console.info(\n `✅ Using cached Docker image: ${imageUri}${cachedArch ? ` (${cachedArch})` : ''}`,\n );\n return;\n }\n\n if (cachedArch === expectedArchitecture) {\n // A pinned platform still needs the container probe because tag-level\n // Architecture can disagree with Docker's actual --platform resolution.\n await probeDockerPlatformContainerCreation(platform);\n console.info(`✅ Using cached Docker image: ${imageUri} (${platform.value})`);\n return;\n }\n\n console.info(\n `🔄 Cached Docker image does not include the requested platform (${platform.value}); re-pulling.`,\n );\n }\n\n console.info(\n platform\n ? `📥 Pulling Docker image from: ${imageUri} (platform: ${platform.value})`\n : `📥 Pulling Docker image from: ${imageUri}`,\n );\n const output = await docker$`docker pull ${dockerPlatform.args} ${imageUri}`.nothrow();\n\n if (output.exitCode) {\n const stderr = output.stderr ?? '';\n const isAuthError =\n stderr.includes('authorization token has expired') ||\n stderr.includes('denied') ||\n stderr.includes('pull access denied');\n\n throw new Error(\n [\n 'Docker image not available:',\n ` - Image: ${imageUri} (pull failed)`,\n isAuthError\n ? ' - ECR auth expired. Run: pnpm localnet login'\n : ' - Check if the image tag exists in image registry.',\n ].join('\\n'),\n );\n }\n\n // After pulling, verify the same platform resolution path used by `docker run`.\n if (platform) {\n await probeDockerPlatformContainerCreation(platform);\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 args?: string[];\n script?: string;\n publish?: string[];\n versions?: Record<string, string>;\n defaultVolumesEnabled?: boolean;\n local?: boolean;\n dockerPlatform?: DockerPlatformOverride;\n}\n\n/**\n * Enhanced tool command execution using the new version compatibility matrix system\n */\nexport async function executeToolCommand<TImageId extends string>(\n context: ChainContext<TImageId>,\n toolName: string,\n args: string[],\n {\n cwd,\n volumes: userVolumes,\n customEntrypoint: entrypoint,\n env: customEnvVars,\n script,\n publish,\n versions = {},\n defaultVolumesEnabled = true,\n local,\n dockerPlatform: dockerPlatformOverride,\n }: ToolCommandExecutionOptions,\n): Promise<ProcessOutput> {\n const tool = findToolByName(context, toolName);\n const dockerPlatform = resolveDockerPlatformExecution({\n dockerPlatform: dockerPlatformOverride,\n toolDockerPlatform: tool.dockerPlatform,\n });\n\n // Run pre-execution hook if defined (e.g., toolchain sync)\n // TODO Support a local tool execution.\n if (tool.preExecute) {\n await tool.preExecute(context, {\n cwd,\n args,\n volumes: userVolumes,\n env: customEnvVars,\n script,\n publish,\n versions,\n defaultVolumesEnabled,\n dockerPlatform: dockerPlatformOverride,\n });\n }\n\n // Get the resolved version for the current tool.\n const resolvedVersion = resolveTypeVersions(context, versions)[tool.name];\n\n if (!resolvedVersion) {\n throw new Error(`No version resolved for tool ${tool.name}`);\n }\n\n console.info(`🔧 ${tool.name} version: ${resolvedVersion}`);\n\n // Check secondary version validation if available\n if (tool.getSecondaryVersion) {\n try {\n const secondaryVersion = await tool.getSecondaryVersion({ cwd });\n\n if (!semver.satisfies(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 if (local) {\n return executeLocally(tool, resolvedVersion, {\n cwd,\n args,\n env: customEnvVars,\n script,\n });\n }\n\n const scopedWorkspace = await createScopedWorkspace({\n cwd,\n pruner: tool.scopedWorkspacePruner,\n });\n try {\n const workspaceRoot = scopedWorkspace.repoRoot;\n\n const workspaceVolumes: VolumeMapping[] = [\n {\n type: 'host',\n hostPath: scopedWorkspace.scopedRoot,\n containerPath: '/workspace',\n },\n {\n type: 'host',\n hostPath: scopedWorkspace.packageRoot,\n containerPath: `/workspace/${scopedWorkspace.packageRelativePath}`,\n },\n {\n type: 'host',\n hostPath: scopedWorkspace.pnpmVirtualStoreMount.hostPath,\n containerPath: scopedWorkspace.pnpmVirtualStoreMount.containerPath,\n readOnly: scopedWorkspace.pnpmVirtualStoreMount.readOnly,\n },\n ];\n\n const defaultVolumes = defaultVolumesEnabled ? (tool.defaultVolumes ?? []) : [];\n // Names are qualified below, once imageUri (the toolchain key) resolves.\n const resolvedVolumes = mergeVolumes(defaultVolumes, userVolumes).map((volume) =>\n resolveVolumePath(volume, workspaceRoot),\n );\n\n console.info(`📦 Using scoped workspace: ${scopedWorkspace.scopedRoot}`);\n console.info(\n `📦 Copied ${scopedWorkspace.copiedWorkspacePackageCount} workspace package source(s)`,\n );\n if (scopedWorkspace.prunerName) {\n console.info(`📦 Scoped workspace pruner: ${scopedWorkspace.prunerName}`);\n }\n for (const diagnostic of scopedWorkspace.diagnostics) {\n console.info(`📦 ${diagnostic}`);\n }\n\n if (defaultVolumes.length > 0) {\n console.info(`📦 Using ${defaultVolumes.length} default volume(s) for ${tool.name}`);\n\n if (userVolumes.length > 0) {\n const overrides = userVolumes.filter((userVolume) =>\n defaultVolumes.some(\n (defaultVolume) => defaultVolume.containerPath === userVolume.containerPath,\n ),\n );\n\n if (overrides.length > 0) {\n console.info(`🔧 User volumes override ${overrides.length} default volume(s)`);\n }\n }\n }\n\n // Use Docker image with merged volumes\n const image = findImageForTool(context, tool.name, resolvedVersion);\n const imageUri = await getImageUri(image);\n const containerCwd = await resolveWorkspaceContainerCwd({ cwd, workspaceRoot });\n\n // The image tag keys toolchain-shared caches — it's the registry identity of the pulled image,\n // so artifacts compiled inside it can't bleed across toolchains. See qualifyVolumeName.\n const cacheKey = getImageTag(image);\n const qualifiedVolumes = resolvedVolumes.map((volume) =>\n qualifyVolumeName(volume, { ...dockerPlatform.volumeNameOptions, cacheKey }),\n );\n const volumeArgs = [\n ...workspaceVolumes.map(toDockerVolumeArgs),\n ...qualifiedVolumes.map(toDockerVolumeArgs),\n ];\n\n console.info('📦 Docker volumes:');\n for (const volumeArg of formatDockerVolumeArgs(volumeArgs)) {\n console.info(` ${volumeArg}`);\n }\n\n await ensureDockerImage(imageUri, dockerPlatform);\n\n if (entrypoint?.trim()) {\n console.info(`🔧 Using custom entrypoint: ${entrypoint}`);\n }\n\n // Merge default env vars with custom env vars (custom takes precedence)\n const defaultEnv = tool.defaultEnv ?? [];\n\n // Check if Docker socket is mounted (for tools that spawn Docker containers)\n // If so, inject HOST_CWD and HOST_WORKSPACE_ROOT so the inner container knows the host paths\n const hasDockerSocketMount = resolvedVolumes.some(\n (volume) => volume.type === 'host' && volume.containerPath === '/var/run/docker.sock',\n );\n const dockerSocketEnv: EnvironmentVariable[] = hasDockerSocketMount\n ? [\n { name: 'HOST_CWD', value: cwd },\n { name: 'HOST_WORKSPACE_ROOT', value: workspaceRoot },\n ]\n : [];\n\n // Lowest precedence (passed last) so a user --env or tool default for CARGO_TARGET_DIR wins.\n const cargoCacheEnv = resolveCargoCacheEnv(script, resolvedVolumes);\n\n const envArgs = mergeToolEnv(\n customEnvVars,\n dockerSocketEnv,\n defaultEnv,\n cargoCacheEnv,\n ).flatMap(({ name, value }) => ['-e', `${name}=${value}`]);\n\n if (cargoCacheEnv.length > 0) {\n console.info(`🗃️ Sharing cargo target cache at ${CARGO_TARGET_CACHE_PATH}`);\n }\n\n // Add host user UID/GID for permission matching on Linux/macOS\n // This prevents artifacts created in containers from having root ownership\n // Used by stellar, sui, and iota images which have an entrypoint that handles UID/GID\n const hostUserIds = getHostUserIds();\n const userIdEnvArgs = hostUserIds\n ? ['-e', `LOCAL_UID=${hostUserIds.uid}`, '-e', `LOCAL_GID=${hostUserIds.gid}`]\n : [];\n\n console.info(`👤 Running container as UID:GID ${hostUserIds?.uid}:${hostUserIds?.gid}`);\n\n if (defaultEnv.length > 0) {\n console.info(\n `🌍 Using ${defaultEnv.length} default environment variable(s) for ${tool.name}`,\n );\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 ...dockerPlatform.args,\n ...(tool.privileged ? ['--privileged'] : []),\n '--rm',\n '--add-host=host.docker.internal:host-gateway',\n ...envArgs,\n ...userIdEnvArgs,\n ...volumeArgs.flat(),\n '-w',\n containerCwd,\n ...(publish ?? []).flatMap((p) => ['-p', p.trim()]),\n ...(entrypoint ? ['--entrypoint', entrypoint] : []),\n imageUri,\n ...finalArgs,\n ];\n\n const output = await lockMany(\n qualifiedVolumes.flatMap((volume) =>\n volume.type === 'isolate' && volume.locked ? [volume.name] : [],\n ),\n async () => {\n const label = `⏳ ${finalArgs.join(' ')}`;\n console.time(label);\n const docker$ = dockerPlatform.processEnv\n ? $({ env: dockerPlatform.processEnv })\n : $;\n const result = await docker$`docker ${dockerArgs}`.nothrow();\n console.timeEnd(label);\n\n return result;\n },\n );\n\n if (output.exitCode) {\n const stdout = output.stdout.trim();\n throw new Error(\n `Failed to run Docker container (exit code: ${output.exitCode})${stdout ? `\\n${stdout}` : ''}`,\n );\n }\n\n return output;\n } finally {\n // Docker can release bind mounts slightly after the command exits; cleanup failures should\n // not fail a completed tool run.\n const removeResult = await safeRemove(scopedWorkspace.scopedRoot);\n if (!removeResult.removed) {\n console.warn(\n `⚠️ Failed to clean up scoped workspace ${scopedWorkspace.scopedRoot}: ${stringifyError(removeResult.error)}`,\n );\n }\n }\n}\n"]}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { isInside } from './
|
|
2
|
-
import { findFileInParentDirectory } from './
|
|
3
|
-
import {
|
|
1
|
+
import { isInside } from './WP67XJRG.js';
|
|
2
|
+
import { findFileInParentDirectory } from './GSL2M6U4.js';
|
|
3
|
+
import { __name } from './VUOMXK5T.js';
|
|
4
4
|
import { realpath, open, lstat } from 'fs/promises';
|
|
5
5
|
import { resolve, relative, dirname, join, sep } from 'path';
|
|
6
6
|
import { parse } from 'yaml';
|
|
7
7
|
|
|
8
|
-
// src/scoped-workspace/workspace-dependency-graph.ts
|
|
9
|
-
init_esm_shims();
|
|
10
8
|
var LOCKFILE_DEPENDENCY_GROUPS = [
|
|
11
9
|
"dependencies",
|
|
12
10
|
"devDependencies",
|
|
@@ -154,5 +152,5 @@ var resolveWorkspaceDependencyGraph = /* @__PURE__ */ __name(async (options = {}
|
|
|
154
152
|
}, "resolveWorkspaceDependencyGraph");
|
|
155
153
|
|
|
156
154
|
export { resolveWorkspaceDependencyGraph };
|
|
157
|
-
//# sourceMappingURL=
|
|
158
|
-
//# sourceMappingURL=
|
|
155
|
+
//# sourceMappingURL=J7BNVFS2.js.map
|
|
156
|
+
//# sourceMappingURL=J7BNVFS2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/scoped-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":"J7BNVFS2.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 scoped 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,11 +1,9 @@
|
|
|
1
|
-
import { registry, imageDirectory } from './
|
|
2
|
-
import {
|
|
1
|
+
import { registry, imageDirectory } from './D3SKWSHN.js';
|
|
2
|
+
import { __name } from './VUOMXK5T.js';
|
|
3
3
|
import { join } from 'path';
|
|
4
4
|
import * as z from 'zod';
|
|
5
5
|
import { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';
|
|
6
6
|
|
|
7
|
-
// src/config.ts
|
|
8
|
-
init_esm_shims();
|
|
9
7
|
var registryConfigCache;
|
|
10
8
|
var getRegistryConfig = /* @__PURE__ */ __name(async () => {
|
|
11
9
|
if (!registryConfigCache) {
|
|
@@ -68,5 +66,5 @@ var getImageDirectory = /* @__PURE__ */ __name(async () => (await getRegistryCon
|
|
|
68
66
|
var getRegistry = /* @__PURE__ */ __name(async () => (await getRegistryConfig()).registry, "getRegistry");
|
|
69
67
|
|
|
70
68
|
export { CARGO_TARGET_CACHE_PATH, DOCKER_PLATFORM_NATIVE, DOCKER_PLATFORM_OVERRIDE_VALUES, DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION, DOCKER_PLATFORM_VALUES, DockerRegistryMirror, getImageDirectory, getRegistry, isDockerPlatformOverride, volumeMappingSchema };
|
|
71
|
-
//# sourceMappingURL=
|
|
72
|
-
//# sourceMappingURL=
|
|
69
|
+
//# sourceMappingURL=KBDBSTDG.js.map
|
|
70
|
+
//# sourceMappingURL=KBDBSTDG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config.ts"],"names":["registryConfigCache","getRegistryConfig","registry","imageDirectory","workspaceRoot","getFullyQualifiedRepoRootPath","configPath","join","module","default","CARGO_TARGET_CACHE_PATH","volumeMappingBaseSchema","object","containerPath","string","readOnly","optional","boolean","hostVolumeMappingSchema","extend","type","literal","hostPath","isolateVolumeMappingSchema","name","shared","locked","toolchainKeyed","architectureIndependent","volumeMappingSchema","union","DOCKER_PLATFORM_VALUES","DOCKER_PLATFORM_NATIVE","DOCKER_PLATFORM_OVERRIDE_VALUES","DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION","dockerPlatformOverrideValueSet","Set","isDockerPlatformOverride","input","has","DockerRegistryMirror","getImageDirectory","getRegistry"],"mappings":";;;;;;AAeA,IAAIA,mBAAAA;AAEJ,IAAMC,oCAAoB,MAAA,CAAA,YAAA;AACtB,EAAA,IAAI,CAACD,mBAAAA,EAAqB;AACtB,IAAA,IAAgBE,YAAwBC,cAAAA,EAAgB;AACpDH,MAAAA,mBAAAA,GAAsB;AAClBE,QAAAA,QAAAA;AACAC,QAAAA;AACJ,OAAA;IACJ,CAAA,MAAO;AACH,MAAA,MAAMC,aAAAA,GAAgB,MAAMC,6BAAAA,EAAAA;AAC5B,MAAA,MAAMC,aAAaC,IAAAA,CACfH,aAAAA,EACA,SAAA,EACA,YAAA,EACA,UACA,sBAAA,CAAA;AAGJ,MAAA,MAAMI,MAAAA,GAAS,MAAM,OAAOF,UAAAA,CAAAA;AAC5BN,MAAAA,mBAAAA,GAAsBQ,MAAAA,CAAOC,OAAAA;AACjC,IAAA;AACJ,EAAA;AACA,EAAA,OAAOT,mBAAAA;AACX,CAAA,EAtB0B,mBAAA,CAAA;AA2BnB,IAAMU,uBAAAA,GAA0B;AAEvC,IAAMC,0BAA4BC,CAAAA,CAAAA,MAAAA,CAAO;AACrCC,EAAAA,aAAAA,EAAiBC,CAAAA,CAAAA,MAAAA,EAAM;EACvBC,QAAAA,EAAYC,CAAAA,CAAAA,QAAAA,CAAWC,WAAO;AAClC,CAAA,CAAA;AAEA,IAAMC,uBAAAA,GAA0BP,wBAAwBQ,MAAAA,CAAO;AAC3DC,EAAAA,IAAAA,EAAQC,UAAQ,MAAA,CAAA;AAChBC,EAAAA,QAAAA,EAAYR,CAAAA,CAAAA,MAAAA;AAChB,CAAA,CAAA;AAEA,IAAMS,0BAAAA,GAA6BZ,wBAAwBQ,MAAAA,CAAO;AAC9DC,EAAAA,IAAAA,EAAQC,UAAQ,SAAA,CAAA;AAChBG,EAAAA,IAAAA,EAAQV,CAAAA,CAAAA,MAAAA,EAAM;EACdW,MAAAA,EAAUT,CAAAA,CAAAA,QAAAA,CAAWC,WAAO,CAAA;EAC5BS,MAAAA,EAAUV,CAAAA,CAAAA,QAAAA,CAAWC,WAAO,CAAA;;;EAG5BU,cAAAA,EAAkBX,CAAAA,CAAAA,QAAAA,CAAWC,WAAO,CAAA;;;EAGpCW,uBAAAA,EAA2BZ,CAAAA,CAAAA,QAAAA,CAAWC,WAAO;AACjD,CAAA,CAAA;AAEO,IAAMY,sBAAwBC,CAAAA,CAAAA,KAAAA,CAAM;AAACZ,EAAAA,uBAAAA;AAAyBK,EAAAA;AAA2B,CAAA;AAYzF,IAAMQ,sBAAAA,GAAyB;AAAC,EAAA,aAAA;AAAe,EAAA;;AAC/C,IAAMC,sBAAAA,GAAyB;AAC/B,IAAMC,+BAAAA,GAAkC;AAC3CD,EAAAA,sBAAAA;AACGD,EAAAA,GAAAA;;AAEA,IAAMG,2CAAAA,GACTD,+BAAAA,CAAgC1B,IAAAA,CAAK,IAAA;AAEzC,IAAM4B,8BAAAA,GAAiC,IAAIC,GAAAA,CAAYH,+BAAAA,CAAAA;AAKhD,IAAMI,wBAAAA,2BAA4BC,KAAAA,KACrC,OAAOA,UAAU,QAAA,IAAYH,8BAAAA,CAA+BI,GAAAA,CAAID,KAAAA,CAAAA,EAD5B,0BAAA;AA+BjC,IAAWE,oBAAAA,6BAAAA,qBAAAA,EAAAA;;AAAAA,EAAAA,OAAAA,qBAAAA;;AAkBX,IAAMC,iBAAAA,mBAAoB,MAAA,CAAA,YAAA,CAAa,MAAMxC,iBAAAA,IAAqBE,cAAAA,EAAxC,mBAAA;AAC1B,IAAMuC,WAAAA,mBAAc,MAAA,CAAA,YAAA,CAAa,MAAMzC,iBAAAA,IAAqBC,QAAAA,EAAxC,aAAA","file":"KBDBSTDG.js","sourcesContent":["import { join } from 'node:path';\nimport * as z from 'zod';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core/tool-executor';\nimport * as environment from './environment';\nimport type { ScopedWorkspacePruner } from './scoped-workspace';\n\ninterface RegistryConfig {\n registry: string;\n imageDirectory: string;\n}\n\nlet registryConfigCache: RegistryConfig | undefined;\n\nconst getRegistryConfig = async (): Promise<RegistryConfig> => {\n if (!registryConfigCache) {\n if (environment.registry && environment.imageDirectory) {\n registryConfigCache = {\n registry: environment.registry,\n imageDirectory: environment.imageDirectory,\n };\n } else {\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const configPath = join(\n workspaceRoot,\n 'configs',\n 'vm-tooling',\n 'values',\n 'docker-image-repo.ts',\n );\n\n const module = await import(configPath);\n registryConfigCache = module.default;\n }\n }\n return registryConfigCache!;\n};\n\n// Container path for the shared cargo build-artifact cache. A VM mounts its toolchain `target/`\n// cache at this path; resolveCargoCacheEnv keys on it to inject CARGO_TARGET_DIR. Single source so\n// the helper's lookup and each VM config's containerPath can't drift apart.\nexport const CARGO_TARGET_CACHE_PATH = '/cargo-target';\n\nconst volumeMappingBaseSchema = z.object({\n containerPath: z.string(),\n readOnly: z.optional(z.boolean()),\n});\n\nconst hostVolumeMappingSchema = volumeMappingBaseSchema.extend({\n type: z.literal('host'),\n hostPath: z.string(),\n});\n\nconst isolateVolumeMappingSchema = volumeMappingBaseSchema.extend({\n type: z.literal('isolate'),\n name: z.string(),\n shared: z.optional(z.boolean()),\n locked: z.optional(z.boolean()),\n // Share this cache across packages on the same toolchain instead of per-package. See\n // qualifyVolumeName. Opt-in — omit to keep it package-private.\n toolchainKeyed: z.optional(z.boolean()),\n // Opt out of arch-namespacing for volumes holding no compiled artifacts (config/state).\n // Suffixing is the safe default: under-splitting an arch-sensitive cache poisons it.\n architectureIndependent: z.optional(z.boolean()),\n});\n\nexport const volumeMappingSchema = z.union([hostVolumeMappingSchema, isolateVolumeMappingSchema]);\n\nexport type VolumeMapping = z.infer<typeof volumeMappingSchema>;\n\nexport interface EnvironmentVariable {\n name: string;\n value: string;\n}\n\n// Explicit platform pins currently supported by tool config and the CLI.\n// `native` is a CLI-only escape hatch that runs Docker without `--platform`\n// and clears DOCKER_DEFAULT_PLATFORM for that invocation.\nexport const DOCKER_PLATFORM_VALUES = ['linux/amd64', 'linux/arm64'] as const;\nexport const DOCKER_PLATFORM_NATIVE = 'native';\nexport const DOCKER_PLATFORM_OVERRIDE_VALUES = [\n DOCKER_PLATFORM_NATIVE,\n ...DOCKER_PLATFORM_VALUES,\n] as const;\nexport const DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION =\n DOCKER_PLATFORM_OVERRIDE_VALUES.join(', ');\n\nconst dockerPlatformOverrideValueSet = new Set<string>(DOCKER_PLATFORM_OVERRIDE_VALUES);\n\nexport type DockerPlatformValue = (typeof DOCKER_PLATFORM_VALUES)[number];\nexport type DockerPlatformOverride = (typeof DOCKER_PLATFORM_OVERRIDE_VALUES)[number];\n\nexport const isDockerPlatformOverride = (input: unknown): input is DockerPlatformOverride =>\n typeof input === 'string' && dockerPlatformOverrideValueSet.has(input);\n\nexport interface Tool {\n name: string;\n privileged?: boolean;\n\n // Docker platform to use when running this tool's image\n dockerPlatform?: DockerPlatformValue;\n\n // Default isolate volumes for caching (user volumes can override these)\n defaultVolumes?: readonly VolumeMapping[];\n\n // Default environment variables (user env vars can override these)\n defaultEnv?: readonly EnvironmentVariable[];\n\n // Optional VM-specific scoped-workspace pruning/validation hook.\n scopedWorkspacePruner?: ScopedWorkspacePruner;\n\n // Optional version parsing and validation functions\n getSecondaryVersion?: (args: { cwd: string }) => Promise<string>;\n\n getLocalVersion?: (args: { cwd: string }) => Promise<string>;\n\n // Optional hook called before every tool command execution (e.g., toolchain sync)\n preExecute?: (\n context: ChainContext<string>,\n options: ToolCommandExecutionOptions,\n ) => Promise<void>;\n}\n\nexport const enum DockerRegistryMirror {\n PUBLIC_GAR = 'public-gar',\n}\n\nexport interface Image {\n name: string;\n versions: Record<string, string>;\n dependencies?: Record<string, string>;\n patch?: number;\n mirrorRegistries?: DockerRegistryMirror[];\n}\n\nexport interface VersionCombination<TImageId> {\n images: Record<string, TImageId>;\n description?: string;\n stable?: boolean;\n}\n\nexport const getImageDirectory = async () => (await getRegistryConfig()).imageDirectory;\nexport const getRegistry = async () => (await getRegistryConfig()).registry;\n"]}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { getImageTag, getImageUri } from './
|
|
2
|
-
import {
|
|
1
|
+
import { getImageTag, getImageUri } from './YZCMSN63.js';
|
|
2
|
+
import { __name } from './VUOMXK5T.js';
|
|
3
3
|
import { execFile } from 'child_process';
|
|
4
4
|
import { promisify } from 'util';
|
|
5
5
|
|
|
6
|
-
// src/test.ts
|
|
7
|
-
init_esm_shims();
|
|
8
6
|
var COMMAND_TIMEOUT = 5 * 6e4;
|
|
9
7
|
var PULL_TIMEOUT = 10 * 6e4;
|
|
10
8
|
var VERSION_TEST_TIMEOUT = 15 * 6e4;
|
|
@@ -62,5 +60,5 @@ var testTools = /* @__PURE__ */ __name(({ describe, expect, it, beforeAll }, ima
|
|
|
62
60
|
}, "testTools");
|
|
63
61
|
|
|
64
62
|
export { testTools };
|
|
65
|
-
//# sourceMappingURL=
|
|
66
|
-
//# sourceMappingURL=
|
|
63
|
+
//# sourceMappingURL=L53SDSQA.js.map
|
|
64
|
+
//# sourceMappingURL=L53SDSQA.js.map
|