@layerzerolabs/vm-tooling 1.2.12 → 1.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/dist/{S72E7TE5.js → 3YEHUD34.js} +7 -7
  2. package/dist/3YEHUD34.js.map +1 -0
  3. package/dist/{VZXWHHPB.js → 5CVFIVAF.js} +4 -4
  4. package/dist/{VZXWHHPB.js.map → 5CVFIVAF.js.map} +1 -1
  5. package/dist/{3G6UO37X.js → 5U6IZE2R.js} +10 -10
  6. package/dist/{3G6UO37X.js.map → 5U6IZE2R.js.map} +1 -1
  7. package/dist/{HYD54MGL.js → BQ7NG5SN.js} +4 -4
  8. package/dist/{HYD54MGL.js.map → BQ7NG5SN.js.map} +1 -1
  9. package/dist/{IPZ5KX7M.js → BW6522R3.js} +3 -3
  10. package/dist/{IPZ5KX7M.js.map → BW6522R3.js.map} +1 -1
  11. package/dist/{JYAWK6HD.js → CRI6J6O2.js} +5 -5
  12. package/dist/{JYAWK6HD.js.map → CRI6J6O2.js.map} +1 -1
  13. package/dist/{2PIH5TOH.js → CUOSBYWX.js} +3 -3
  14. package/dist/{2PIH5TOH.js.map → CUOSBYWX.js.map} +1 -1
  15. package/dist/{O5XBAHB3.js → D2PLHUMA.js} +17 -29
  16. package/dist/D2PLHUMA.js.map +1 -0
  17. package/dist/{52SW5N2L.js → HDEZ25XC.js} +4 -4
  18. package/dist/{52SW5N2L.js.map → HDEZ25XC.js.map} +1 -1
  19. package/dist/{2BEUXSFW.js → HLBKRZPQ.js} +3 -3
  20. package/dist/{2BEUXSFW.js.map → HLBKRZPQ.js.map} +1 -1
  21. package/dist/{YHTRUOFZ.js → HYQDYOEK.js} +4 -4
  22. package/dist/{YHTRUOFZ.js.map → HYQDYOEK.js.map} +1 -1
  23. package/dist/{FFE7SXCG.js → IESTLB2J.js} +3 -3
  24. package/dist/{FFE7SXCG.js.map → IESTLB2J.js.map} +1 -1
  25. package/dist/{LOCNB6C6.js → KX44D2AO.js} +5 -5
  26. package/dist/{LOCNB6C6.js.map → KX44D2AO.js.map} +1 -1
  27. package/dist/{PBCHVZQM.js → MMZFIEYT.js} +5 -5
  28. package/dist/{PBCHVZQM.js.map → MMZFIEYT.js.map} +1 -1
  29. package/dist/{RORYN2CM.js → MRCCE7T6.js} +3 -3
  30. package/dist/{RORYN2CM.js.map → MRCCE7T6.js.map} +1 -1
  31. package/dist/NZPJXCQB.js +23 -0
  32. package/dist/NZPJXCQB.js.map +1 -0
  33. package/dist/{SQ7CSCOZ.js → OAIHLYVJ.js} +5 -5
  34. package/dist/{SQ7CSCOZ.js.map → OAIHLYVJ.js.map} +1 -1
  35. package/dist/{3LCQOITB.js → PK3K6QL5.js} +5 -5
  36. package/dist/{3LCQOITB.js.map → PK3K6QL5.js.map} +1 -1
  37. package/dist/{GBRJXN7L.js → PPARVAQY.js} +3 -3
  38. package/dist/{GBRJXN7L.js.map → PPARVAQY.js.map} +1 -1
  39. package/dist/{EHGHQQRV.js → RRGZUU2S.js} +5 -5
  40. package/dist/{EHGHQQRV.js.map → RRGZUU2S.js.map} +1 -1
  41. package/dist/RRH4TDQL.js +6 -0
  42. package/dist/{3N42XVZL.js.map → RRH4TDQL.js.map} +1 -1
  43. package/dist/{X6QPMSID.js → SOYY4ZEJ.js} +3 -3
  44. package/dist/{X6QPMSID.js.map → SOYY4ZEJ.js.map} +1 -1
  45. package/dist/{USIF66ZJ.js → VEHJE5IG.js} +8 -8
  46. package/dist/{USIF66ZJ.js.map → VEHJE5IG.js.map} +1 -1
  47. package/dist/{H2SHSLKO.js → YPEQAPKQ.js} +12 -12
  48. package/dist/{H2SHSLKO.js.map → YPEQAPKQ.js.map} +1 -1
  49. package/dist/{TXIQ74D3.js → YVZEMBYY.js} +3 -3
  50. package/dist/{TXIQ74D3.js.map → YVZEMBYY.js.map} +1 -1
  51. package/dist/YWV524QA.js +6 -0
  52. package/dist/{N53MNPWU.js.map → YWV524QA.js.map} +1 -1
  53. package/dist/{H6FLARPD.js → ZQNOS3RT.js} +3 -3
  54. package/dist/{H6FLARPD.js.map → ZQNOS3RT.js.map} +1 -1
  55. package/dist/cli.js +22 -21
  56. package/dist/config.js +3 -3
  57. package/dist/context.js +1 -1
  58. package/dist/core/index.js +18 -17
  59. package/dist/core/local-executor.js +2 -2
  60. package/dist/core/local-executor.test.js +3 -3
  61. package/dist/core/lock.js +2 -2
  62. package/dist/core/lock.test.js +3 -3
  63. package/dist/core/tool-executor.js +17 -16
  64. package/dist/core/tool-executor.test.js +18 -17
  65. package/dist/core/tool-executor.test.js.map +1 -1
  66. package/dist/core/version-resolver.js +4 -4
  67. package/dist/display/formatters.js +4 -4
  68. package/dist/display/index.js +6 -6
  69. package/dist/display/version-display.js +5 -5
  70. package/dist/environment.js +2 -2
  71. package/dist/github/index.js +7 -7
  72. package/dist/github/matrix.js +6 -6
  73. package/dist/index.js +25 -24
  74. package/dist/index.js.map +1 -1
  75. package/dist/scoped-workspace/exclude-workspace-dependency-sources-pruner.d.ts +11 -0
  76. package/dist/scoped-workspace/exclude-workspace-dependency-sources-pruner.d.ts.map +1 -0
  77. package/dist/scoped-workspace/exclude-workspace-dependency-sources-pruner.js +4 -0
  78. package/dist/scoped-workspace/exclude-workspace-dependency-sources-pruner.js.map +1 -0
  79. package/dist/scoped-workspace/index.d.ts +2 -1
  80. package/dist/scoped-workspace/index.d.ts.map +1 -1
  81. package/dist/scoped-workspace/index.js +9 -8
  82. package/dist/scoped-workspace/node-modules.js +2 -2
  83. package/dist/scoped-workspace/tests/exclude-workspace-dependency-sources-pruner.test.js +49 -0
  84. package/dist/scoped-workspace/tests/exclude-workspace-dependency-sources-pruner.test.js.map +1 -0
  85. package/dist/scoped-workspace/{scoped-workspace.test.js → tests/scoped-workspace.test.js} +54 -16
  86. package/dist/scoped-workspace/tests/scoped-workspace.test.js.map +1 -0
  87. package/dist/scoped-workspace/types.js +1 -1
  88. package/dist/scoped-workspace/workspace-dependency-graph.js +5 -5
  89. package/dist/scoped-workspace/workspace-source-copy.d.ts +5 -5
  90. package/dist/scoped-workspace/workspace-source-copy.d.ts.map +1 -1
  91. package/dist/scoped-workspace/workspace-source-copy.js +4 -4
  92. package/dist/test.js +6 -6
  93. package/dist/utils/docker.js +5 -5
  94. package/dist/utils/docker.test.js +6 -6
  95. package/dist/utils/error.js +2 -2
  96. package/dist/utils/finder.js +2 -2
  97. package/dist/utils/fs.js +2 -2
  98. package/dist/utils.js +3 -3
  99. package/package.json +8 -8
  100. package/dist/3N42XVZL.js +0 -6
  101. package/dist/N53MNPWU.js +0 -6
  102. package/dist/O5XBAHB3.js.map +0 -1
  103. package/dist/S72E7TE5.js.map +0 -1
  104. package/dist/scoped-workspace/scoped-workspace.test.js.map +0 -1
@@ -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":"D2PLHUMA.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"]}
@@ -1,5 +1,5 @@
1
- import { getImageTag, getImageUri } from './JYAWK6HD.js';
2
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { getImageTag, getImageUri } from './CRI6J6O2.js';
2
+ import { init_esm_shims, __name } from './YVZEMBYY.js';
3
3
  import { execFile } from 'child_process';
4
4
  import { promisify } from 'util';
5
5
 
@@ -62,5 +62,5 @@ var testTools = /* @__PURE__ */ __name(({ describe, expect, it, beforeAll }, ima
62
62
  }, "testTools");
63
63
 
64
64
  export { testTools };
65
- //# sourceMappingURL=52SW5N2L.js.map
66
- //# sourceMappingURL=52SW5N2L.js.map
65
+ //# sourceMappingURL=HDEZ25XC.js.map
66
+ //# sourceMappingURL=HDEZ25XC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/test.ts"],"names":["COMMAND_TIMEOUT","PULL_TIMEOUT","VERSION_TEST_TIMEOUT","runCommand","command","args","timeout","promisify","execFile","killSignal","stdout","trim","ensureDockerImageExists","imageUri","testTools","describe","expect","it","beforeAll","images","_versionCombinations","versionCommands","name","image","Object","entries","getImageTag","join","toBe","literalImage","values","getImageUri","tool","expectedVersion","versions","Array","Error","version","toContain"],"mappings":"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","file":"52SW5N2L.js","sourcesContent":["import { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type * as vitest from 'vitest';\n\nimport type { VersionCombination } from './config';\nimport { type Image } from './config';\nimport { getImageTag, getImageUri } from './utils/docker';\n\nconst COMMAND_TIMEOUT = 5 * 60_000;\nconst PULL_TIMEOUT = 10 * 60_000;\nconst VERSION_TEST_TIMEOUT = 15 * 60_000;\n\nconst runCommand = async (\n command: string,\n args: string[],\n timeout = COMMAND_TIMEOUT,\n): Promise<string> =>\n (\n await promisify(execFile)(command, args, {\n timeout,\n killSignal: 'SIGKILL', // Force kill if timeout\n })\n ).stdout.trim();\n\n/** Run a no-op command in the image to trigger a pull if it's not available locally. */\nconst ensureDockerImageExists = async (imageUri: string): Promise<void> => {\n await runCommand('docker', ['run', '--rm', '--entrypoint', 'true', imageUri], PULL_TIMEOUT);\n};\n\nexport const testTools = (\n { describe, expect, it, beforeAll }: typeof vitest,\n images: Record<string, Image>,\n _versionCombinations: VersionCombination<string>[],\n versionCommands: Record<string, string[]>,\n): void => {\n describe('Docker image IDs', () => {\n for (const [name, image] of Object.entries(images)) {\n it(`has an image ID of ${name}`, () => {\n expect([image.name, getImageTag(image)].join(':')).toBe(name);\n });\n }\n });\n\n describe('Tool versions', () => {\n for (const literalImage of Object.values(images)) {\n const image: Image = literalImage;\n\n describe(getImageTag(image), () => {\n let imageUri: string;\n\n beforeAll(async () => {\n imageUri = await getImageUri(image);\n await ensureDockerImageExists(imageUri);\n }, PULL_TIMEOUT);\n\n for (const [tool, expectedVersion] of Object.entries(image.versions)) {\n it(\n `should have ${tool} of version ${expectedVersion}`,\n async () => {\n if (!(versionCommands[tool] instanceof Array)) {\n throw new Error('Missing version command');\n }\n\n const version = await runCommand('docker', [\n 'run',\n '--rm',\n '--privileged',\n imageUri,\n ...versionCommands[tool],\n ]);\n\n expect(version).toContain(expectedVersion);\n },\n VERSION_TEST_TIMEOUT,\n );\n }\n });\n }\n });\n};\n"]}
1
+ {"version":3,"sources":["../src/test.ts"],"names":["COMMAND_TIMEOUT","PULL_TIMEOUT","VERSION_TEST_TIMEOUT","runCommand","command","args","timeout","promisify","execFile","killSignal","stdout","trim","ensureDockerImageExists","imageUri","testTools","describe","expect","it","beforeAll","images","_versionCombinations","versionCommands","name","image","Object","entries","getImageTag","join","toBe","literalImage","values","getImageUri","tool","expectedVersion","versions","Array","Error","version","toContain"],"mappings":"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","file":"HDEZ25XC.js","sourcesContent":["import { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type * as vitest from 'vitest';\n\nimport type { VersionCombination } from './config';\nimport { type Image } from './config';\nimport { getImageTag, getImageUri } from './utils/docker';\n\nconst COMMAND_TIMEOUT = 5 * 60_000;\nconst PULL_TIMEOUT = 10 * 60_000;\nconst VERSION_TEST_TIMEOUT = 15 * 60_000;\n\nconst runCommand = async (\n command: string,\n args: string[],\n timeout = COMMAND_TIMEOUT,\n): Promise<string> =>\n (\n await promisify(execFile)(command, args, {\n timeout,\n killSignal: 'SIGKILL', // Force kill if timeout\n })\n ).stdout.trim();\n\n/** Run a no-op command in the image to trigger a pull if it's not available locally. */\nconst ensureDockerImageExists = async (imageUri: string): Promise<void> => {\n await runCommand('docker', ['run', '--rm', '--entrypoint', 'true', imageUri], PULL_TIMEOUT);\n};\n\nexport const testTools = (\n { describe, expect, it, beforeAll }: typeof vitest,\n images: Record<string, Image>,\n _versionCombinations: VersionCombination<string>[],\n versionCommands: Record<string, string[]>,\n): void => {\n describe('Docker image IDs', () => {\n for (const [name, image] of Object.entries(images)) {\n it(`has an image ID of ${name}`, () => {\n expect([image.name, getImageTag(image)].join(':')).toBe(name);\n });\n }\n });\n\n describe('Tool versions', () => {\n for (const literalImage of Object.values(images)) {\n const image: Image = literalImage;\n\n describe(getImageTag(image), () => {\n let imageUri: string;\n\n beforeAll(async () => {\n imageUri = await getImageUri(image);\n await ensureDockerImageExists(imageUri);\n }, PULL_TIMEOUT);\n\n for (const [tool, expectedVersion] of Object.entries(image.versions)) {\n it(\n `should have ${tool} of version ${expectedVersion}`,\n async () => {\n if (!(versionCommands[tool] instanceof Array)) {\n throw new Error('Missing version command');\n }\n\n const version = await runCommand('docker', [\n 'run',\n '--rm',\n '--privileged',\n imageUri,\n ...versionCommands[tool],\n ]);\n\n expect(version).toContain(expectedVersion);\n },\n VERSION_TEST_TIMEOUT,\n );\n }\n });\n }\n });\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { init_esm_shims, __name } from './YVZEMBYY.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';
@@ -42,5 +42,5 @@ var getPnpmVirtualStoreMount = /* @__PURE__ */ __name((repoRoot, containerWorksp
42
42
  }), "getPnpmVirtualStoreMount");
43
43
 
44
44
  export { COPY_CONCURRENCY, copyRootNodeModulesSymlinks, getPnpmVirtualStoreMount };
45
- //# sourceMappingURL=2BEUXSFW.js.map
46
- //# sourceMappingURL=2BEUXSFW.js.map
45
+ //# sourceMappingURL=HLBKRZPQ.js.map
46
+ //# sourceMappingURL=HLBKRZPQ.js.map
@@ -1 +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":";;;;;;AAAA,cAAA,EAAA;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":"2BEUXSFW.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
+ {"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":";;;;;;AAAA,cAAA,EAAA;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":"HLBKRZPQ.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,5 +1,5 @@
1
- import { findToolVersionsForCombination } from './X6QPMSID.js';
2
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { findToolVersionsForCombination } from './SOYY4ZEJ.js';
2
+ import { init_esm_shims, __name } from './YVZEMBYY.js';
3
3
  import { access } from 'fs/promises';
4
4
  import { dirname, join } from 'path';
5
5
 
@@ -20,5 +20,5 @@ var findFileInParentDirectory = /* @__PURE__ */ __name(async (directory, filenam
20
20
  }, "findFileInParentDirectory");
21
21
 
22
22
  export { findFileInParentDirectory, getCombinationId };
23
- //# sourceMappingURL=YHTRUOFZ.js.map
24
- //# sourceMappingURL=YHTRUOFZ.js.map
23
+ //# sourceMappingURL=HYQDYOEK.js.map
24
+ //# sourceMappingURL=HYQDYOEK.js.map
@@ -1 +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":"YHTRUOFZ.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
+ {"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":"HYQDYOEK.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,9 +1,9 @@
1
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { init_esm_shims, __name } from './YVZEMBYY.js';
2
2
 
3
3
  // src/utils/error.ts
4
4
  init_esm_shims();
5
5
  var stringifyError = /* @__PURE__ */ __name((error) => error instanceof Error ? error.message : String(error), "stringifyError");
6
6
 
7
7
  export { stringifyError };
8
- //# sourceMappingURL=FFE7SXCG.js.map
9
- //# sourceMappingURL=FFE7SXCG.js.map
8
+ //# sourceMappingURL=IESTLB2J.js.map
9
+ //# sourceMappingURL=IESTLB2J.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/error.ts"],"names":["stringifyError","error","Error","message","String"],"mappings":";;;AAAA,cAAA,EAAA;AAAO,IAAMA,cAAAA,2BAAkBC,KAAAA,KAC3BA,KAAAA,YAAiBC,QAAQD,KAAAA,CAAME,OAAAA,GAAUC,MAAAA,CAAOH,KAAAA,CAAAA,EADtB,gBAAA","file":"FFE7SXCG.js","sourcesContent":["export const stringifyError = (error: unknown): string =>\n error instanceof Error ? error.message : String(error);\n"]}
1
+ {"version":3,"sources":["../src/utils/error.ts"],"names":["stringifyError","error","Error","message","String"],"mappings":";;;AAAA,cAAA,EAAA;AAAO,IAAMA,cAAAA,2BAAkBC,KAAAA,KAC3BA,KAAAA,YAAiBC,QAAQD,KAAAA,CAAME,OAAAA,GAAUC,MAAAA,CAAOH,KAAAA,CAAAA,EADtB,gBAAA","file":"IESTLB2J.js","sourcesContent":["export const stringifyError = (error: unknown): string =>\n error instanceof Error ? error.message : String(error);\n"]}
@@ -1,6 +1,6 @@
1
- import { getCombinationId } from './YHTRUOFZ.js';
2
- import { findToolVersionsForCombination } from './X6QPMSID.js';
3
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { getCombinationId } from './HYQDYOEK.js';
2
+ import { findToolVersionsForCombination } from './SOYY4ZEJ.js';
3
+ import { init_esm_shims, __name } from './YVZEMBYY.js';
4
4
 
5
5
  // src/display/formatters.ts
6
6
  init_esm_shims();
@@ -16,5 +16,5 @@ function formatVersionCombination(context, combination, isDefault) {
16
16
  __name(formatVersionCombination, "formatVersionCombination");
17
17
 
18
18
  export { formatVersionCombination };
19
- //# sourceMappingURL=LOCNB6C6.js.map
20
- //# sourceMappingURL=LOCNB6C6.js.map
19
+ //# sourceMappingURL=KX44D2AO.js.map
20
+ //# sourceMappingURL=KX44D2AO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/display/formatters.ts"],"names":["formatVersionCombination","context","combination","isDefault","tools","Object","entries","findToolVersionsForCombination","filter","_","version","undefined","map","tool","join","badges","stable","description","Boolean","getCombinationId"],"mappings":";;;;;AAEA,cAAA,EAAA;AAMO,SAASA,wBAAAA,CACZC,OAAAA,EACAC,WAAAA,EACAC,SAAAA,EAAmB;AAEnB,EAAA,MAAMC,KAAAA,GAAQC,MAAAA,CAAOC,OAAAA,CAAQC,8BAAAA,CAA+BN,OAAAA,EAASC,WAAAA,CAAAA,CAAAA,CAChEM,MAAAA,CAAO,CAAC,CAACC,CAAAA,EAAGC,OAAAA,CAAAA,KAAaA,OAAAA,KAAYC,MAAAA,CAAAA,CACrCC,GAAAA,CAAI,CAAC,CAACC,IAAAA,EAAMH,OAAAA,CAAAA,KAAa,CAAA,EAAGG,IAAAA,CAAAA,CAAAA,EAAQH,OAAAA,CAAAA,CAAS,CAAA,CAC7CI,KAAK,IAAA,CAAA;AAEV,EAAA,MAAMC,MAAAA,GAAS;AACXZ,IAAAA,SAAAA,GAAY,mBAAA,GAAe,IAAA;AAC3BD,IAAAA,WAAAA,CAAYc,SAAS,eAAA,GAAa,IAAA;IAClCd,WAAAA,CAAYe;IAEXT,MAAAA,CAAOU,OAAAA,CAAAA,CACPJ,IAAAA,CAAK,GAAA,CAAA;AAEV,EAAA,OAAO,CAAA,EAAA,EAAKK,iBAAiBlB,OAAAA,EAASC,WAAAA,CAAAA,CAAAA,EAAAA,EAAiBE,KAAAA,IAASW,MAAAA,CAAAA,CAAAA;AACpE;AAnBgBf,MAAAA,CAAAA,wBAAAA,EAAAA,0BAAAA,CAAAA","file":"LOCNB6C6.js","sourcesContent":["import type { VersionCombination } from '../config';\nimport type { ChainContext } from '../context';\nimport { getCombinationId } from '../utils';\nimport { findToolVersionsForCombination } from '../utils/finder';\n\n/**\n * Format version combinations for display\n */\nexport function formatVersionCombination<TImageId extends string>(\n context: ChainContext<TImageId>,\n combination: VersionCombination<TImageId>,\n isDefault?: boolean,\n): string {\n const tools = Object.entries(findToolVersionsForCombination(context, combination))\n .filter(([_, version]) => version !== undefined)\n .map(([tool, version]) => `${tool}:${version}`)\n .join(', ');\n\n const badges = [\n isDefault ? '🎯 Default' : null,\n combination.stable ? '✅ Stable' : null,\n combination.description,\n ]\n .filter(Boolean)\n .join(' ');\n\n return ` ${getCombinationId(context, combination)}: ${tools} ${badges}`;\n}\n"]}
1
+ {"version":3,"sources":["../src/display/formatters.ts"],"names":["formatVersionCombination","context","combination","isDefault","tools","Object","entries","findToolVersionsForCombination","filter","_","version","undefined","map","tool","join","badges","stable","description","Boolean","getCombinationId"],"mappings":";;;;;AAEA,cAAA,EAAA;AAMO,SAASA,wBAAAA,CACZC,OAAAA,EACAC,WAAAA,EACAC,SAAAA,EAAmB;AAEnB,EAAA,MAAMC,KAAAA,GAAQC,MAAAA,CAAOC,OAAAA,CAAQC,8BAAAA,CAA+BN,OAAAA,EAASC,WAAAA,CAAAA,CAAAA,CAChEM,MAAAA,CAAO,CAAC,CAACC,CAAAA,EAAGC,OAAAA,CAAAA,KAAaA,OAAAA,KAAYC,MAAAA,CAAAA,CACrCC,GAAAA,CAAI,CAAC,CAACC,IAAAA,EAAMH,OAAAA,CAAAA,KAAa,CAAA,EAAGG,IAAAA,CAAAA,CAAAA,EAAQH,OAAAA,CAAAA,CAAS,CAAA,CAC7CI,KAAK,IAAA,CAAA;AAEV,EAAA,MAAMC,MAAAA,GAAS;AACXZ,IAAAA,SAAAA,GAAY,mBAAA,GAAe,IAAA;AAC3BD,IAAAA,WAAAA,CAAYc,SAAS,eAAA,GAAa,IAAA;IAClCd,WAAAA,CAAYe;IAEXT,MAAAA,CAAOU,OAAAA,CAAAA,CACPJ,IAAAA,CAAK,GAAA,CAAA;AAEV,EAAA,OAAO,CAAA,EAAA,EAAKK,iBAAiBlB,OAAAA,EAASC,WAAAA,CAAAA,CAAAA,EAAAA,EAAiBE,KAAAA,IAASW,MAAAA,CAAAA,CAAAA;AACpE;AAnBgBf,MAAAA,CAAAA,wBAAAA,EAAAA,0BAAAA,CAAAA","file":"KX44D2AO.js","sourcesContent":["import type { VersionCombination } from '../config';\nimport type { ChainContext } from '../context';\nimport { getCombinationId } from '../utils';\nimport { findToolVersionsForCombination } from '../utils/finder';\n\n/**\n * Format version combinations for display\n */\nexport function formatVersionCombination<TImageId extends string>(\n context: ChainContext<TImageId>,\n combination: VersionCombination<TImageId>,\n isDefault?: boolean,\n): string {\n const tools = Object.entries(findToolVersionsForCombination(context, combination))\n .filter(([_, version]) => version !== undefined)\n .map(([tool, version]) => `${tool}:${version}`)\n .join(', ');\n\n const badges = [\n isDefault ? '🎯 Default' : null,\n combination.stable ? '✅ Stable' : null,\n combination.description,\n ]\n .filter(Boolean)\n .join(' ');\n\n return ` ${getCombinationId(context, combination)}: ${tools} ${badges}`;\n}\n"]}
@@ -1,6 +1,6 @@
1
- import { getImageTag } from './JYAWK6HD.js';
2
- import { getImageName } from './X6QPMSID.js';
3
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { getImageTag } from './CRI6J6O2.js';
2
+ import { getImageName } from './SOYY4ZEJ.js';
3
+ import { init_esm_shims, __name } from './YVZEMBYY.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=PBCHVZQM.js.map
55
- //# sourceMappingURL=PBCHVZQM.js.map
54
+ //# sourceMappingURL=MMZFIEYT.js.map
55
+ //# sourceMappingURL=MMZFIEYT.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":"PBCHVZQM.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"]}
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":"MMZFIEYT.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"]}
@@ -1,4 +1,4 @@
1
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { init_esm_shims, __name } from './YVZEMBYY.js';
2
2
  import { env } from 'process';
3
3
 
4
4
  // src/environment.ts
@@ -9,5 +9,5 @@ var registry = env.VM_TOOLING_REGISTRY;
9
9
  var imageDirectory = env.VM_TOOLING_IMAGE_DIRECTORY;
10
10
 
11
11
  export { imageDirectory, local, registry };
12
- //# sourceMappingURL=RORYN2CM.js.map
13
- //# sourceMappingURL=RORYN2CM.js.map
12
+ //# sourceMappingURL=MRCCE7T6.js.map
13
+ //# sourceMappingURL=MRCCE7T6.js.map
@@ -1 +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":";;;;AAAA,cAAA,EAAA;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":"RORYN2CM.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
+ {"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":";;;;AAAA,cAAA,EAAA;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":"MRCCE7T6.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"]}
@@ -0,0 +1,23 @@
1
+ import { init_esm_shims, __name } from './YVZEMBYY.js';
2
+
3
+ // src/scoped-workspace/exclude-workspace-dependency-sources-pruner.ts
4
+ init_esm_shims();
5
+ var createExcludeWorkspaceDependencySourcesPruner = /* @__PURE__ */ __name((name) => ({
6
+ name,
7
+ createPrunePlan: /* @__PURE__ */ __name(async ({ dependencyGraph }) => {
8
+ const excludedPackageCount = dependencyGraph.includedWorkspaceDependencies.length;
9
+ return {
10
+ patterns: [
11
+ "!**/**"
12
+ ],
13
+ packagePatterns: {},
14
+ diagnostics: [
15
+ `${name} scoped-workspace pruner excluded source files from ${excludedPackageCount} workspace dependency package(s).`
16
+ ]
17
+ };
18
+ }, "createPrunePlan")
19
+ }), "createExcludeWorkspaceDependencySourcesPruner");
20
+
21
+ export { createExcludeWorkspaceDependencySourcesPruner };
22
+ //# sourceMappingURL=NZPJXCQB.js.map
23
+ //# sourceMappingURL=NZPJXCQB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/scoped-workspace/exclude-workspace-dependency-sources-pruner.ts"],"names":["createExcludeWorkspaceDependencySourcesPruner","name","createPrunePlan","dependencyGraph","excludedPackageCount","includedWorkspaceDependencies","length","patterns","packagePatterns","diagnostics"],"mappings":";;;AAEA,cAAA,EAAA;AAQO,IAAMA,6CAAAA,2BACTC,IAAAA,MACyB;AACzBA,EAAAA,IAAAA;EACAC,eAAAA,kBAAiB,MAAA,CAAA,OAAO,EAAEC,eAAAA,EAAe,KAAE;AACvC,IAAA,MAAMC,oBAAAA,GAAuBD,gBAAgBE,6BAAAA,CAA8BC,MAAAA;AAE3E,IAAA,OAAO;MACHC,QAAAA,EAAU;AAAC,QAAA;;AACXC,MAAAA,eAAAA,EAAiB,EAAC;MAClBC,WAAAA,EAAa;QACT,CAAA,EAAGR,IAAAA,uDAA2DG,oBAAAA,CAAAA,iCAAAA;;AAEtE,KAAA;EACJ,CAAA,EAViB,iBAAA;AAWrB,CAAA,CAAA,EAf6D,+CAAA","file":"NZPJXCQB.js","sourcesContent":["import type { ScopedWorkspacePruner } from './types';\n\n/**\n * Create a pruner for containerized VM tool invocations that do not need source files from other\n * workspace packages.\n *\n * Only workspace dependency source copies are excluded. The current package remains bind-mounted,\n * and the repo-shaped directory structure, root node_modules symlinks, and pnpm virtual-store mount\n * are preserved for tool execution.\n */\nexport const createExcludeWorkspaceDependencySourcesPruner = (\n name: string,\n): ScopedWorkspacePruner => ({\n name,\n createPrunePlan: async ({ dependencyGraph }) => {\n const excludedPackageCount = dependencyGraph.includedWorkspaceDependencies.length;\n\n return {\n patterns: ['!**/**'],\n packagePatterns: {},\n diagnostics: [\n `${name} scoped-workspace pruner excluded source files from ${excludedPackageCount} workspace dependency package(s).`,\n ],\n };\n },\n});\n"]}
@@ -1,6 +1,6 @@
1
- import { formatVersionCombination } from './LOCNB6C6.js';
2
- import { findToolByName, getToolDefaultVersion, getToolSupportedVersions } from './X6QPMSID.js';
3
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { formatVersionCombination } from './KX44D2AO.js';
2
+ import { findToolByName, getToolDefaultVersion, getToolSupportedVersions } from './SOYY4ZEJ.js';
3
+ import { init_esm_shims, __name } from './YVZEMBYY.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=SQ7CSCOZ.js.map
68
- //# sourceMappingURL=SQ7CSCOZ.js.map
67
+ //# sourceMappingURL=OAIHLYVJ.js.map
68
+ //# sourceMappingURL=OAIHLYVJ.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":"SQ7CSCOZ.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
+ {"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":"OAIHLYVJ.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,6 +1,6 @@
1
- import { getCombinationId } from './YHTRUOFZ.js';
2
- import { getToolDefaultVersion, getToolSupportedVersions, findToolVersionsForCombination } from './X6QPMSID.js';
3
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { getCombinationId } from './HYQDYOEK.js';
2
+ import { getToolDefaultVersion, getToolSupportedVersions, findToolVersionsForCombination } from './SOYY4ZEJ.js';
3
+ import { init_esm_shims, __name } from './YVZEMBYY.js';
4
4
  import * as console from 'console';
5
5
 
6
6
  // src/core/version-resolver.ts
@@ -33,5 +33,5 @@ var resolveTypeVersions = /* @__PURE__ */ __name((context, userVersions) => {
33
33
  }, "resolveTypeVersions");
34
34
 
35
35
  export { resolveTypeVersions };
36
- //# sourceMappingURL=3LCQOITB.js.map
37
- //# sourceMappingURL=3LCQOITB.js.map
36
+ //# sourceMappingURL=PK3K6QL5.js.map
37
+ //# sourceMappingURL=PK3K6QL5.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/core/version-resolver.ts"],"names":["resolveTypeVersions","context","userVersions","versions","tool","tools","defaultVersion","getToolDefaultVersion","name","version","supportedVersions","getToolSupportedVersions","includes","console","warn","join","combination","versionCombinations","find","Object","entries","findToolVersionsForCombination","every","Error","info","getCombinationId","description"],"mappings":";;;;;;AAAA,cAAA,EAAA;AAaO,IAAMA,mBAAAA,mBAAsB,MAAA,CAAA,CAC/BC,OAAAA,EACAC,YAAAA,KAAAA;AAGA,EAAA,MAAMC,WAAmC,EAAC;AAE1C,EAAA,KAAA,MAAWC,IAAAA,IAAQH,QAAQI,KAAAA,EAAO;AAC9B,IAAA,MAAMC,cAAAA,GAAiBC,qBAAAA,CAAsBN,OAAAA,EAASG,IAAAA,CAAKI,IAAI,CAAA;AAC/D,IAAA,MAAMC,OAAAA,GAAUP,YAAAA,CAAaE,IAAAA,CAAKI,IAAI,CAAA,IAAKF,cAAAA;AAE3C,IAAA,IAAI,CAACG,OAAAA,EAAS;AACV,MAAA;AACJ,IAAA;AAEAN,IAAAA,QAAAA,CAASC,IAAAA,CAAKI,IAAI,CAAA,GAAIC,OAAAA;AAEtB,IAAA,IAAIA,YAAYH,cAAAA,EAAgB;AAC5B,MAAA;AACJ,IAAA;AAGA,IAAA,MAAMI,iBAAAA,GAAoBC,wBAAAA,CAAyBV,OAAAA,EAASG,IAAAA,CAAKI,IAAI,CAAA;AAErE,IAAA,IAAI,CAACE,iBAAAA,CAAkBE,QAAAA,CAASH,OAAAA,CAAAA,EAAU;AACtCI,MAAQC,aAAK,CAAA,sBAAA,EAAeL,OAAAA,CAAAA,KAAAA,EAAeL,IAAAA,CAAKI,IAAI,CAAA,8BAAA,CAAgC,CAAA;AACpFK,MAAQC,aAAK,CAAA,uBAAA,EAA0BJ,iBAAAA,CAAkBK,IAAAA,CAAK,IAAA,CAAA,CAAA,CAAO,CAAA;AACrEF,MAAQC,aAAK,CAAA,6DAAA,CAA+D,CAAA;AAChF,IAAA;AACJ,EAAA;AAGA,EAAA,MAAME,WAAAA,GAAcf,QAAQgB,mBAAAA,CAAoBC,IAAAA,CAAK,CAACF,YAAAA,KAClDG,MAAAA,CAAOC,OAAAA,CAAQC,8BAAAA,CAA+BpB,OAAAA,EAASe,YAAAA,CAAAA,CAAAA,CAAcM,KAAAA,CACjE,CAAC,CAAClB,IAAAA,EAAMK,OAAAA,MAAaN,QAAAA,CAASC,IAAAA,CAAAA,KAAUK,OAAAA,CAAAA,CAAAA;AAIhD,EAAA,IAAI,CAACO,WAAAA,EAAa;AACd,IAAA,MAAM,IAAIO,MAAM,mDAAA,CAAA;AACpB,EAAA;AAEAV,EAAQW,OAAAA,CAAAA,IAAAA,CACJ,CAAA,OAAA,EAAKC,gBAAAA,CAAiBxB,OAAAA,EAASe,WAAAA,CAAAA,CAAAA,CAAAA,EAAgBA,WAAAA,CAAYU,WAAAA,GAAc,CAAA,CAAA,EAAIV,WAAAA,CAAYU,WAAW,CAAA,CAAA,CAAA,GAAM,EAAA,CAAA,CAAI,CAAA;AAGlH,EAAA,OAAOvB,QAAAA;AACX,CAAA,EA/CmC,qBAAA","file":"3LCQOITB.js","sourcesContent":["import * as console from 'node:console';\n\nimport type { ChainContext } from '../context';\nimport { getCombinationId } from '../utils';\nimport {\n findToolVersionsForCombination,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder';\n\n/**\n * Resolve versions for all tools in a type with compatibility checking\n */\nexport const resolveTypeVersions = <TImageId extends string>(\n context: ChainContext<TImageId>,\n userVersions: Record<string, string>,\n): Record<string, string> => {\n // Collect versions from all sources for each tool\n const versions: Record<string, string> = {};\n\n for (const tool of context.tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const version = userVersions[tool.name] || defaultVersion;\n\n if (!version) {\n continue;\n }\n\n versions[tool.name] = version;\n\n if (version === defaultVersion) {\n continue;\n }\n\n // Validate the user-specified version if not default.\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n if (!supportedVersions.includes(version)) {\n console.warn(`⚠️ Version ${version} for ${tool.name} is not in the supported list.`);\n console.warn(` Supported versions: ${supportedVersions.join(', ')}`);\n console.warn(` Continuing with Docker availability as final validation...`);\n }\n }\n\n // Check if current combination matches any compatible combination\n const combination = context.versionCombinations.find((combination) =>\n Object.entries(findToolVersionsForCombination(context, combination)).every(\n ([tool, version]) => versions[tool] === version,\n ),\n );\n\n if (!combination) {\n throw new Error('Compatible combination of tool versions not found');\n }\n\n console.info(\n `✅ ${getCombinationId(context, combination)} ${combination.description ? `(${combination.description})` : ''}`,\n );\n\n return versions;\n};\n"]}
1
+ {"version":3,"sources":["../src/core/version-resolver.ts"],"names":["resolveTypeVersions","context","userVersions","versions","tool","tools","defaultVersion","getToolDefaultVersion","name","version","supportedVersions","getToolSupportedVersions","includes","console","warn","join","combination","versionCombinations","find","Object","entries","findToolVersionsForCombination","every","Error","info","getCombinationId","description"],"mappings":";;;;;;AAAA,cAAA,EAAA;AAaO,IAAMA,mBAAAA,mBAAsB,MAAA,CAAA,CAC/BC,OAAAA,EACAC,YAAAA,KAAAA;AAGA,EAAA,MAAMC,WAAmC,EAAC;AAE1C,EAAA,KAAA,MAAWC,IAAAA,IAAQH,QAAQI,KAAAA,EAAO;AAC9B,IAAA,MAAMC,cAAAA,GAAiBC,qBAAAA,CAAsBN,OAAAA,EAASG,IAAAA,CAAKI,IAAI,CAAA;AAC/D,IAAA,MAAMC,OAAAA,GAAUP,YAAAA,CAAaE,IAAAA,CAAKI,IAAI,CAAA,IAAKF,cAAAA;AAE3C,IAAA,IAAI,CAACG,OAAAA,EAAS;AACV,MAAA;AACJ,IAAA;AAEAN,IAAAA,QAAAA,CAASC,IAAAA,CAAKI,IAAI,CAAA,GAAIC,OAAAA;AAEtB,IAAA,IAAIA,YAAYH,cAAAA,EAAgB;AAC5B,MAAA;AACJ,IAAA;AAGA,IAAA,MAAMI,iBAAAA,GAAoBC,wBAAAA,CAAyBV,OAAAA,EAASG,IAAAA,CAAKI,IAAI,CAAA;AAErE,IAAA,IAAI,CAACE,iBAAAA,CAAkBE,QAAAA,CAASH,OAAAA,CAAAA,EAAU;AACtCI,MAAQC,aAAK,CAAA,sBAAA,EAAeL,OAAAA,CAAAA,KAAAA,EAAeL,IAAAA,CAAKI,IAAI,CAAA,8BAAA,CAAgC,CAAA;AACpFK,MAAQC,aAAK,CAAA,uBAAA,EAA0BJ,iBAAAA,CAAkBK,IAAAA,CAAK,IAAA,CAAA,CAAA,CAAO,CAAA;AACrEF,MAAQC,aAAK,CAAA,6DAAA,CAA+D,CAAA;AAChF,IAAA;AACJ,EAAA;AAGA,EAAA,MAAME,WAAAA,GAAcf,QAAQgB,mBAAAA,CAAoBC,IAAAA,CAAK,CAACF,YAAAA,KAClDG,MAAAA,CAAOC,OAAAA,CAAQC,8BAAAA,CAA+BpB,OAAAA,EAASe,YAAAA,CAAAA,CAAAA,CAAcM,KAAAA,CACjE,CAAC,CAAClB,IAAAA,EAAMK,OAAAA,MAAaN,QAAAA,CAASC,IAAAA,CAAAA,KAAUK,OAAAA,CAAAA,CAAAA;AAIhD,EAAA,IAAI,CAACO,WAAAA,EAAa;AACd,IAAA,MAAM,IAAIO,MAAM,mDAAA,CAAA;AACpB,EAAA;AAEAV,EAAQW,OAAAA,CAAAA,IAAAA,CACJ,CAAA,OAAA,EAAKC,gBAAAA,CAAiBxB,OAAAA,EAASe,WAAAA,CAAAA,CAAAA,CAAAA,EAAgBA,WAAAA,CAAYU,WAAAA,GAAc,CAAA,CAAA,EAAIV,WAAAA,CAAYU,WAAW,CAAA,CAAA,CAAA,GAAM,EAAA,CAAA,CAAI,CAAA;AAGlH,EAAA,OAAOvB,QAAAA;AACX,CAAA,EA/CmC,qBAAA","file":"PK3K6QL5.js","sourcesContent":["import * as console from 'node:console';\n\nimport type { ChainContext } from '../context';\nimport { getCombinationId } from '../utils';\nimport {\n findToolVersionsForCombination,\n getToolDefaultVersion,\n getToolSupportedVersions,\n} from '../utils/finder';\n\n/**\n * Resolve versions for all tools in a type with compatibility checking\n */\nexport const resolveTypeVersions = <TImageId extends string>(\n context: ChainContext<TImageId>,\n userVersions: Record<string, string>,\n): Record<string, string> => {\n // Collect versions from all sources for each tool\n const versions: Record<string, string> = {};\n\n for (const tool of context.tools) {\n const defaultVersion = getToolDefaultVersion(context, tool.name);\n const version = userVersions[tool.name] || defaultVersion;\n\n if (!version) {\n continue;\n }\n\n versions[tool.name] = version;\n\n if (version === defaultVersion) {\n continue;\n }\n\n // Validate the user-specified version if not default.\n const supportedVersions = getToolSupportedVersions(context, tool.name);\n\n if (!supportedVersions.includes(version)) {\n console.warn(`⚠️ Version ${version} for ${tool.name} is not in the supported list.`);\n console.warn(` Supported versions: ${supportedVersions.join(', ')}`);\n console.warn(` Continuing with Docker availability as final validation...`);\n }\n }\n\n // Check if current combination matches any compatible combination\n const combination = context.versionCombinations.find((combination) =>\n Object.entries(findToolVersionsForCombination(context, combination)).every(\n ([tool, version]) => versions[tool] === version,\n ),\n );\n\n if (!combination) {\n throw new Error('Compatible combination of tool versions not found');\n }\n\n console.info(\n `✅ ${getCombinationId(context, combination)} ${combination.description ? `(${combination.description})` : ''}`,\n );\n\n return versions;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { init_esm_shims, __name } from './YVZEMBYY.js';
2
2
  import { rm } from 'fs/promises';
3
3
  import { relative, isAbsolute } from 'path';
4
4
  import { setTimeout } from 'timers/promises';
@@ -45,5 +45,5 @@ var safeRemove = /* @__PURE__ */ __name(async (path, { maxRetries = DEFAULT_SAFE
45
45
  }, "safeRemove");
46
46
 
47
47
  export { isInside, safeRemove };
48
- //# sourceMappingURL=GBRJXN7L.js.map
49
- //# sourceMappingURL=GBRJXN7L.js.map
48
+ //# sourceMappingURL=PPARVAQY.js.map
49
+ //# sourceMappingURL=PPARVAQY.js.map
@@ -1 +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":"GBRJXN7L.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 scoped-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
+ {"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":"PPARVAQY.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 scoped-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,6 +1,6 @@
1
- import { isInside } from './GBRJXN7L.js';
2
- import { findFileInParentDirectory } from './YHTRUOFZ.js';
3
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { isInside } from './PPARVAQY.js';
2
+ import { findFileInParentDirectory } from './HYQDYOEK.js';
3
+ import { init_esm_shims, __name } from './YVZEMBYY.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';
@@ -154,5 +154,5 @@ var resolveWorkspaceDependencyGraph = /* @__PURE__ */ __name(async (options = {}
154
154
  }, "resolveWorkspaceDependencyGraph");
155
155
 
156
156
  export { resolveWorkspaceDependencyGraph };
157
- //# sourceMappingURL=EHGHQQRV.js.map
158
- //# sourceMappingURL=EHGHQQRV.js.map
157
+ //# sourceMappingURL=RRGZUU2S.js.map
158
+ //# sourceMappingURL=RRGZUU2S.js.map
@@ -1 +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":"EHGHQQRV.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
+ {"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":"RRGZUU2S.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"]}
@@ -0,0 +1,6 @@
1
+ import { init_esm_shims } from './YVZEMBYY.js';
2
+
3
+ // src/display/index.ts
4
+ init_esm_shims();
5
+ //# sourceMappingURL=RRH4TDQL.js.map
6
+ //# sourceMappingURL=RRH4TDQL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/display/index.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"3N42XVZL.js","sourcesContent":["// Export formatters\nexport { formatVersionCombination } from './formatters';\n\n// Export version display functions\nexport { displayToolVersionInfo, displayVersionCombinations } from './version-display';\n"]}
1
+ {"version":3,"sources":["../src/display/index.ts"],"names":[],"mappings":";;;AAAA,cAAA,EAAA","file":"RRH4TDQL.js","sourcesContent":["// Export formatters\nexport { formatVersionCombination } from './formatters';\n\n// Export version display functions\nexport { displayToolVersionInfo, displayVersionCombinations } from './version-display';\n"]}
@@ -1,4 +1,4 @@
1
- import { init_esm_shims, __name } from './TXIQ74D3.js';
1
+ import { init_esm_shims, __name } from './YVZEMBYY.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=X6QPMSID.js.map
42
- //# sourceMappingURL=X6QPMSID.js.map
41
+ //# sourceMappingURL=SOYY4ZEJ.js.map
42
+ //# sourceMappingURL=SOYY4ZEJ.js.map