@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/tests/scoped-workspace.test.ts"],"names":["TMP","mkdtempSync","join","tmpdir","GENERATED_SCOPED_ROOTS","trackScopedRoot","scopedRoot","push","createPackage","dir","name","files","mkdirSync","recursive","writeFileSync","JSON","stringify","version","file","content","Object","entries","filePath","createRepo","repo","writeLockfile","body","trimEnd","afterAll","rmSync","force","describe","resolveWorkspaceDependencyGraph","it","current","depA","depB","tooling","dependencyGraph","cwd","repoRoot","includedRelativePaths","includedWorkspaceDependencies","map","dependency","relativePath","expect","toHaveLength","toEqual","arrayContaining","rootNodeModulesDependencyNames","contracts","dep","packageRoot","toBe","realpathSync","packageRelativePath","firstGraph","secondGraph","copyWorkspaceSources","symlinkSync","importerRelativePath","absolutePath","result","copiedWorkspaceDependencies","existsSync","lstatSync","isSymbolicLink","readlinkSync","LICENSE","prunePatterns","DEFAULT_SOURCE_COPY_PATTERNS","DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS","parent","nested","nestedLink","anchorDep","utilityDep","packagePrunePatterns","releaseDir","createScopedWorkspace","prunerName","toBeUndefined","diagnostics","copiedWorkspacePackageCount","copiedWorkspacePackagePaths","inputs","pruner","createPrunePlan","input","patterns","packagePatterns","firstInput","toMatchObject","prunedDep","defaultDep","copyRootNodeModulesSymlinks","dependencyNames","nodeModulesPath","symlinks","isDirectory","getPnpmVirtualStoreMount","hostPath","containerPath","readOnly"],"mappings":"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","file":"scoped-workspace.test.js","sourcesContent":["import {\n existsSync,\n lstatSync,\n mkdirSync,\n mkdtempSync,\n readlinkSync,\n realpathSync,\n rmSync,\n symlinkSync,\n writeFileSync,\n} from 'node:fs';\nimport { tmpdir } from 'node:os';\nimport { join } from 'node:path';\nimport { afterAll, describe, expect, it } from 'vitest';\n\nimport {\n createScopedWorkspace,\n DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS,\n DEFAULT_SOURCE_COPY_PATTERNS,\n type ScopedWorkspacePruner,\n} from '../index';\nimport { copyRootNodeModulesSymlinks, getPnpmVirtualStoreMount } from '../node-modules';\nimport { resolveWorkspaceDependencyGraph } from '../workspace-dependency-graph';\nimport { copyWorkspaceSources } from '../workspace-source-copy';\n\nconst TMP = mkdtempSync(join(tmpdir(), 'lz-scoped-workspace-test-'));\nconst GENERATED_SCOPED_ROOTS: string[] = [];\n\nconst trackScopedRoot = (scopedRoot: string): string => {\n GENERATED_SCOPED_ROOTS.push(scopedRoot);\n return scopedRoot;\n};\n\nconst createPackage = (dir: string, name: string, files: Record<string, string> = {}) => {\n mkdirSync(dir, { recursive: true });\n writeFileSync(join(dir, 'package.json'), JSON.stringify({ name, version: '0.0.0' }));\n\n for (const [file, content] of Object.entries(files)) {\n const filePath = join(dir, file);\n mkdirSync(join(filePath, '..'), { recursive: true });\n writeFileSync(filePath, content);\n }\n};\n\nconst createRepo = (name: string): string => {\n const repo = join(TMP, name);\n mkdirSync(repo, { recursive: true });\n writeFileSync(join(repo, 'pnpm-workspace.yaml'), 'packages:\\n - \"**\"\\n');\n return repo;\n};\n\nconst writeLockfile = (repo: string, body: string) => {\n writeFileSync(\n join(repo, 'pnpm-lock.yaml'),\n [\n \"lockfileVersion: '9.0'\",\n '',\n 'settings:',\n ' autoInstallPeers: true',\n '',\n 'importers:',\n body.trimEnd(),\n '',\n 'packages:',\n '',\n ].join('\\n'),\n );\n};\n\nafterAll(() => {\n rmSync(TMP, { recursive: true, force: true });\n for (const scopedRoot of GENERATED_SCOPED_ROOTS) {\n rmSync(scopedRoot, { recursive: true, force: true });\n }\n});\n\ndescribe(resolveWorkspaceDependencyGraph, () => {\n it('follows transitive workspace link deps', async () => {\n const repo = createRepo('dependency-graph');\n const current = join(repo, 'apps', 'current');\n const depA = join(repo, 'packages', 'dep-a');\n const depB = join(repo, 'packages', 'dep-b');\n const tooling = join(repo, 'tools', 'vm-utils', 'solana', 'build-utils');\n\n createPackage(current, '@layerzerolabs/current');\n createPackage(depA, '@layerzerolabs/dep-a');\n createPackage(depB, '@layerzerolabs/dep-b');\n createPackage(tooling, '@layerzerolabs/build-utils-solana');\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep-a':\n specifier: workspace:*\n version: link:../../packages/dep-a\n '@layerzerolabs/build-utils-solana':\n specifier: workspace:*\n version: link:../../tools/vm-utils/solana/build-utils\n\n .:\n devDependencies:\n eslint:\n specifier: ^9.0.0\n version: 9.0.0\n '@layerzerolabs/dep-a':\n specifier: workspace:*\n version: link:packages/dep-a\n '@layerzerolabs/build-utils-solana':\n specifier: workspace:*\n version: link:tools/vm-utils/solana/build-utils\n\n packages/dep-a:\n dependencies:\n eslint:\n specifier: ^9.0.0\n version: 9.0.0\n '@layerzerolabs/dep-b':\n specifier: workspace:*\n version: link:../dep-b\n\n packages/dep-b:\n dependencies:\n '@layerzerolabs/dep-a':\n specifier: workspace:*\n version: link:../dep-a\n\n tools/vm-utils/solana/build-utils:\n devDependencies: {}\n`,\n );\n\n const dependencyGraph = await resolveWorkspaceDependencyGraph({\n cwd: current,\n repoRoot: repo,\n });\n\n const includedRelativePaths = dependencyGraph.includedWorkspaceDependencies.map(\n (dependency) => dependency.relativePath,\n );\n expect(includedRelativePaths).toHaveLength(3);\n expect(includedRelativePaths).toEqual(\n expect.arrayContaining([\n 'packages/dep-a',\n 'packages/dep-b',\n 'tools/vm-utils/solana/build-utils',\n ]),\n );\n expect(dependencyGraph.rootNodeModulesDependencyNames).toHaveLength(3);\n expect(dependencyGraph.rootNodeModulesDependencyNames).toEqual(\n expect.arrayContaining([\n '@layerzerolabs/build-utils-solana',\n '@layerzerolabs/dep-a',\n 'eslint',\n ]),\n );\n });\n\n it('resolves nested command directories to their ancestor package importer', async () => {\n const repo = createRepo('nested-current');\n const current = join(repo, 'packages', 'onesig', 'onesig-starknet');\n const contracts = join(current, 'contracts');\n const dep = join(repo, 'packages', 'protocol-starknet-v2');\n\n createPackage(current, '@layerzerolabs/onesig-starknet', {\n 'contracts/Scarb.toml': '[package]\\nname = \"onesig\"\\n',\n });\n createPackage(dep, '@layerzerolabs/protocol-starknet-v2');\n mkdirSync(contracts, { recursive: true });\n writeLockfile(\n repo,\n `\n packages/onesig/onesig-starknet:\n devDependencies:\n '@layerzerolabs/protocol-starknet-v2':\n specifier: workspace:*\n version: link:../../protocol-starknet-v2\n\n .:\n devDependencies:\n '@layerzerolabs/protocol-starknet-v2':\n specifier: workspace:*\n version: link:packages/protocol-starknet-v2\n\n packages/protocol-starknet-v2:\n devDependencies: {}\n`,\n );\n\n const dependencyGraph = await resolveWorkspaceDependencyGraph({\n cwd: contracts,\n repoRoot: repo,\n });\n\n expect(dependencyGraph.packageRoot).toBe(realpathSync(current));\n expect(dependencyGraph.packageRelativePath).toBe('packages/onesig/onesig-starknet');\n expect(\n dependencyGraph.includedWorkspaceDependencies.map(\n (dependency) => dependency.relativePath,\n ),\n ).toEqual(['packages/protocol-starknet-v2']);\n expect(dependencyGraph.rootNodeModulesDependencyNames).toEqual([\n '@layerzerolabs/protocol-starknet-v2',\n ]);\n });\n\n it('invalidates cached lockfile importers when the lockfile changes', async () => {\n const repo = createRepo('dependency-graph-cache-invalidation');\n const current = join(repo, 'apps', 'current');\n const depA = join(repo, 'packages', 'dep-a');\n const depB = join(repo, 'packages', 'dep-b');\n\n createPackage(current, '@layerzerolabs/current');\n createPackage(depA, '@layerzerolabs/dep-a');\n createPackage(depB, '@layerzerolabs/dep-b');\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep-a':\n specifier: workspace:*\n version: link:../../packages/dep-a\n\n packages/dep-a:\n devDependencies: {}\n`,\n );\n\n const firstGraph = await resolveWorkspaceDependencyGraph({\n cwd: current,\n repoRoot: repo,\n });\n\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep-b':\n specifier: workspace:*\n version: link:../../packages/dep-b\n\n packages/dep-b:\n devDependencies: {}\n\n # Keep the rewritten lockfile size different so mtime+size invalidation is exercised.\n`,\n );\n\n const secondGraph = await resolveWorkspaceDependencyGraph({\n cwd: current,\n repoRoot: repo,\n });\n\n expect(\n firstGraph.includedWorkspaceDependencies.map((dependency) => dependency.relativePath),\n ).toEqual(['packages/dep-a']);\n expect(\n secondGraph.includedWorkspaceDependencies.map((dependency) => dependency.relativePath),\n ).toEqual(['packages/dep-b']);\n });\n});\n\ndescribe(copyWorkspaceSources, () => {\n it('copies dependency sources and dist outputs while excluding the current package and heavyweight generated output directories', async () => {\n const repo = createRepo('workspace-source-copy');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n 'target/deploy/current.so': 'compiled',\n });\n createPackage(dep, '@layerzerolabs/dep', {\n 'src/index.ts': 'export const dep = true',\n 'dependencies/generated-crate/src/lib.rs': 'pub fn generated() {}',\n 'target/deploy/program.so': 'compiled',\n 'node_modules/pkg/index.js': 'module.exports = {}',\n 'dist/index.js': 'module.exports = {}',\n 'artifacts/contracts/Contract.json': '{}',\n });\n symlinkSync(\n '../../../../node_modules/.pnpm/linked-pkg@1.0.0/node_modules/linked-pkg',\n join(dep, 'node_modules', 'linked-pkg'),\n );\n symlinkSync('src/index.ts', join(dep, 'src-link.ts'));\n\n const dependencyGraph = {\n repoRoot: repo,\n packageRoot: current,\n packageRelativePath: 'apps/current',\n rootNodeModulesDependencyNames: [],\n includedWorkspaceDependencies: [\n {\n name: '@layerzerolabs/dep',\n importerRelativePath: 'apps/current',\n relativePath: 'packages/dep',\n absolutePath: dep,\n version: 'link:../../packages/dep',\n },\n ],\n };\n\n const result = await copyWorkspaceSources({ dependencyGraph });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(result.copiedWorkspaceDependencies).toHaveLength(1);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'dependencies'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'target'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'node_modules'))).toBe(true);\n expect(\n existsSync(join(scopedRoot, 'packages', 'dep', 'node_modules', 'pkg', 'index.js')),\n ).toBe(false);\n expect(\n lstatSync(\n join(scopedRoot, 'packages', 'dep', 'node_modules', 'linked-pkg'),\n ).isSymbolicLink(),\n ).toBe(true);\n expect(\n readlinkSync(join(scopedRoot, 'packages', 'dep', 'node_modules', 'linked-pkg')),\n ).toBe('../../../../node_modules/.pnpm/linked-pkg@1.0.0/node_modules/linked-pkg');\n expect(lstatSync(join(scopedRoot, 'packages', 'dep', 'src-link.ts')).isSymbolicLink()).toBe(\n true,\n );\n expect(readlinkSync(join(scopedRoot, 'packages', 'dep', 'src-link.ts'))).toBe(\n 'src/index.ts',\n );\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'dist', 'index.js'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'artifacts'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n });\n\n it('applies glob-compatible scoped-workspace prune patterns to dependency source copies', async () => {\n const repo = createRepo('workspace-source-pattern-copy');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n createPackage(current, '@layerzerolabs/current');\n createPackage(dep, '@layerzerolabs/dep', {\n 'src/index.ts': 'export const dep = true',\n 'README.md': '# dep',\n LICENSE: 'MIT',\n 'sdk/client.ts': 'export const sdk = true',\n 'scripts/dev.ts': 'export const dev = true',\n 'tests/fixture.ts': 'export const secret = true',\n 'node_modules/pkg/index.js': 'module.exports = {}',\n 'programs/demo/src/lib.rs': 'pub fn process() {}',\n 'programs/demo/tests/integration.rs': '#[test] fn it_works() {}',\n 'target/deploy/program.so': 'compiled',\n });\n symlinkSync('../src/index.ts', join(dep, 'node_modules', 'dep-link'));\n\n const dependencyGraph = {\n repoRoot: repo,\n packageRoot: current,\n packageRelativePath: 'apps/current',\n rootNodeModulesDependencyNames: [],\n includedWorkspaceDependencies: [\n {\n name: '@layerzerolabs/dep',\n importerRelativePath: 'apps/current',\n relativePath: 'packages/dep',\n absolutePath: dep,\n version: 'link:../../packages/dep',\n },\n ],\n };\n\n const result = await copyWorkspaceSources({\n dependencyGraph,\n prunePatterns: [\n ...DEFAULT_SOURCE_COPY_PATTERNS,\n '!**/*.md',\n '!**/LICENSE',\n '!sdk/**',\n '!scripts/**',\n '!tests/**',\n '!programs/**/tests/**',\n ...DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS,\n ],\n });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n expect(\n existsSync(join(scopedRoot, 'packages', 'dep', 'programs', 'demo', 'src', 'lib.rs')),\n ).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'README.md'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'LICENSE'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'sdk'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'scripts'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'tests'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'programs', 'demo', 'tests'))).toBe(\n false,\n );\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'node_modules', 'pkg'))).toBe(false);\n expect(\n lstatSync(\n join(scopedRoot, 'packages', 'dep', 'node_modules', 'dep-link'),\n ).isSymbolicLink(),\n ).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'target'))).toBe(false);\n });\n\n it('tolerates identical package-local symlinks copied twice (nested workspace package layout)', async () => {\n const repo = createRepo('workspace-source-duplicate-symlink');\n const current = join(repo, 'apps', 'current');\n const parent = join(repo, 'apps', 'parent');\n const nested = join(parent, 'nested-pkg');\n createPackage(current, '@layerzerolabs/current');\n createPackage(parent, '@layerzerolabs/parent', {\n 'src/index.ts': 'export const parent = true',\n });\n createPackage(nested, '@layerzerolabs/nested', {\n 'src/index.ts': 'export const nested = true',\n });\n mkdirSync(join(nested, 'node_modules', '@layerzerolabs'), { recursive: true });\n symlinkSync(\n '../../../../../../tools/vm-tooling/vm-tooling-stellar',\n join(nested, 'node_modules', '@layerzerolabs', 'vm-tooling-stellar'),\n );\n // Parent tree includes the nested package directory on disk.\n mkdirSync(join(parent, 'node_modules', '@layerzerolabs'), { recursive: true });\n symlinkSync(\n '../../../../tools/vm-tooling/vm-tooling-stellar',\n join(parent, 'node_modules', '@layerzerolabs', 'vm-tooling-stellar'),\n );\n\n const dependencyGraph = {\n repoRoot: repo,\n packageRoot: current,\n packageRelativePath: 'apps/current',\n rootNodeModulesDependencyNames: [],\n includedWorkspaceDependencies: [\n {\n name: '@layerzerolabs/parent',\n importerRelativePath: 'apps/current',\n relativePath: 'apps/parent',\n absolutePath: parent,\n version: 'link:../parent',\n },\n {\n name: '@layerzerolabs/nested',\n importerRelativePath: 'apps/parent',\n relativePath: 'apps/parent/nested-pkg',\n absolutePath: nested,\n version: 'link:./nested-pkg',\n },\n ],\n };\n\n const result = await copyWorkspaceSources({ dependencyGraph });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n const nestedLink = join(\n scopedRoot,\n 'apps',\n 'parent',\n 'nested-pkg',\n 'node_modules',\n '@layerzerolabs',\n 'vm-tooling-stellar',\n );\n expect(lstatSync(nestedLink).isSymbolicLink()).toBe(true);\n expect(readlinkSync(nestedLink)).toBe(\n '../../../../../../tools/vm-tooling/vm-tooling-stellar',\n );\n });\n\n it('falls back to default patterns when global prune patterns are empty', async () => {\n const repo = createRepo('workspace-source-package-pattern-copy');\n const current = join(repo, 'apps', 'current');\n const anchorDep = join(repo, 'packages', 'anchor-dep');\n const utilityDep = join(repo, 'packages', 'utility-dep');\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n 'tests/secret.ts': 'export const secret = true',\n });\n createPackage(anchorDep, '@layerzerolabs/anchor-dep', {\n 'Anchor.toml': '[programs.localnet]\\nanchor_dep = \"11111111111111111111111111111111\"',\n 'programs/demo/Cargo.toml': '[package]\\nname = \"demo\"',\n 'programs/demo/src/lib.rs': 'pub fn process() {}',\n 'programs/demo/tests/integration.rs': '#[test] fn it_works() {}',\n });\n createPackage(utilityDep, '@layerzerolabs/utility-dep', {\n 'src/index.ts': 'export const utility = true',\n });\n\n const dependencyGraph = {\n repoRoot: repo,\n packageRoot: current,\n packageRelativePath: 'apps/current',\n rootNodeModulesDependencyNames: [],\n includedWorkspaceDependencies: [\n {\n name: '@layerzerolabs/anchor-dep',\n importerRelativePath: 'apps/current',\n relativePath: 'packages/anchor-dep',\n absolutePath: anchorDep,\n version: 'link:../../packages/anchor-dep',\n },\n {\n name: '@layerzerolabs/utility-dep',\n importerRelativePath: 'apps/current',\n relativePath: 'packages/utility-dep',\n absolutePath: utilityDep,\n version: 'link:../../packages/utility-dep',\n },\n ],\n };\n\n const result = await copyWorkspaceSources({\n dependencyGraph,\n prunePatterns: [],\n packagePrunePatterns: {\n 'apps/current': ['src/**'],\n 'packages/anchor-dep': [\n 'Anchor.toml',\n 'programs/*/Cargo.toml',\n 'programs/*/src/**',\n ],\n },\n });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'anchor-dep', 'Anchor.toml'))).toBe(true);\n expect(\n existsSync(\n join(scopedRoot, 'packages', 'anchor-dep', 'programs', 'demo', 'Cargo.toml'),\n ),\n ).toBe(true);\n expect(\n existsSync(\n join(scopedRoot, 'packages', 'anchor-dep', 'programs', 'demo', 'src', 'lib.rs'),\n ),\n ).toBe(true);\n expect(\n existsSync(join(scopedRoot, 'packages', 'anchor-dep', 'programs', 'demo', 'tests')),\n ).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'utility-dep', 'src', 'index.ts'))).toBe(\n true,\n );\n });\n\n it('copies pruner-selected build outputs under otherwise-excluded directories', async () => {\n const repo = createRepo('workspace-source-build-output-copy');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n createPackage(current, '@layerzerolabs/current');\n createPackage(dep, '@layerzerolabs/dep', {\n 'src/index.ts': 'export const dep = true',\n 'target/wasm32v1-none/release/dep.wasm': 'wasm',\n 'target/wasm32v1-none/release/dep.d': 'deps',\n });\n\n const dependencyGraph = {\n repoRoot: repo,\n packageRoot: current,\n packageRelativePath: 'apps/current',\n rootNodeModulesDependencyNames: [],\n includedWorkspaceDependencies: [\n {\n name: '@layerzerolabs/dep',\n importerRelativePath: 'apps/current',\n relativePath: 'packages/dep',\n absolutePath: dep,\n version: 'link:../../packages/dep',\n },\n ],\n };\n\n const result = await copyWorkspaceSources({\n dependencyGraph,\n packagePrunePatterns: {\n 'packages/dep': [\n 'target/wasm32v1-none/release/*.d',\n 'target/wasm32v1-none/release/*.wasm',\n ],\n },\n });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n const releaseDir = join(\n scopedRoot,\n 'packages',\n 'dep',\n 'target',\n 'wasm32v1-none',\n 'release',\n );\n expect(existsSync(join(releaseDir, 'dep.wasm'))).toBe(true);\n expect(existsSync(join(releaseDir, 'dep.d'))).toBe(true);\n // Only selected files are copied; src was not selected.\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'src'))).toBe(false);\n });\n});\n\ndescribe(createScopedWorkspace, () => {\n it('uses the unpruned source-copy fallback when no pruner is configured', async () => {\n const repo = createRepo('scoped-workspace-fallback');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n mkdirSync(join(repo, 'node_modules', '.pnpm'), { recursive: true });\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n });\n createPackage(dep, '@layerzerolabs/dep', {\n 'src/index.ts': 'export const dep = true',\n });\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep':\n specifier: workspace:*\n version: link:../../packages/dep\n\n packages/dep:\n devDependencies: {}\n`,\n );\n\n const result = await createScopedWorkspace({ cwd: current });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(result.prunerName).toBeUndefined();\n expect(result.diagnostics).toEqual([\n 'No scoped-workspace pruner configured; using unpruned package-level source copy fallback.',\n ]);\n expect(result.copiedWorkspacePackageCount).toBe(1);\n expect(result.copiedWorkspacePackagePaths).toEqual({\n 'packages/dep': realpathSync(dep),\n });\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n });\n\n it('uses a configured pruner to filter dependency package copies', async () => {\n const repo = createRepo('scoped-workspace-pruner');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n const inputs: Parameters<ScopedWorkspacePruner['createPrunePlan']>[0][] = [];\n const pruner: ScopedWorkspacePruner = {\n name: 'test-pruner',\n createPrunePlan: async (input) => {\n inputs.push(input);\n return {\n patterns: [],\n packagePatterns: {\n 'apps/current': ['src/**'],\n 'packages/dep': [...DEFAULT_SOURCE_COPY_PATTERNS, '!tests/**'],\n },\n diagnostics: ['planned current package inputs'],\n };\n },\n };\n\n mkdirSync(join(repo, 'node_modules', '.pnpm'), { recursive: true });\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n 'tests/secret.ts': 'export const secret = true',\n });\n createPackage(dep, '@layerzerolabs/dep', {\n 'src/index.ts': 'export const dep = true',\n 'tests/fixture.ts': 'export const secret = true',\n });\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep':\n specifier: workspace:*\n version: link:../../packages/dep\n\n packages/dep:\n devDependencies: {}\n`,\n );\n\n const result = await createScopedWorkspace({\n cwd: current,\n pruner,\n });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(inputs).toHaveLength(1);\n const firstInput = inputs[0]!;\n\n expect(firstInput).toMatchObject({\n repoRoot: realpathSync(repo),\n packageRoot: realpathSync(current),\n packageRelativePath: 'apps/current',\n cwd: current,\n });\n expect(\n firstInput.dependencyGraph.includedWorkspaceDependencies.map(\n ({ relativePath }) => relativePath,\n ),\n ).toEqual(['packages/dep']);\n expect(result.prunerName).toBe('test-pruner');\n expect(result.diagnostics).toEqual(['planned current package inputs']);\n expect(result.copiedWorkspacePackageCount).toBe(1);\n expect(result.copiedWorkspacePackagePaths).toEqual({\n 'packages/dep': realpathSync(dep),\n });\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'tests'))).toBe(false);\n });\n\n it('uses default dependency copies for pruned packages without package-specific patterns', async () => {\n const repo = createRepo('scoped-workspace-empty-global-patterns');\n const current = join(repo, 'apps', 'current');\n const prunedDep = join(repo, 'packages', 'pruned-dep');\n const defaultDep = join(repo, 'packages', 'default-dep');\n const pruner: ScopedWorkspacePruner = {\n name: 'test-pruner',\n createPrunePlan: async () => ({\n patterns: [],\n packagePatterns: {\n 'packages/pruned-dep': ['src/**'],\n },\n }),\n };\n\n mkdirSync(join(repo, 'node_modules', '.pnpm'), { recursive: true });\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n });\n createPackage(prunedDep, '@layerzerolabs/pruned-dep', {\n 'src/index.ts': 'export const pruned = true',\n 'tests/fixture.ts': 'export const fixture = true',\n });\n createPackage(defaultDep, '@layerzerolabs/default-dep', {\n 'src/index.ts': 'export const defaultDep = true',\n });\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/pruned-dep':\n specifier: workspace:*\n version: link:../../packages/pruned-dep\n '@layerzerolabs/default-dep':\n specifier: workspace:*\n version: link:../../packages/default-dep\n\n packages/default-dep:\n devDependencies: {}\n\n packages/pruned-dep:\n devDependencies: {}\n`,\n );\n\n const result = await createScopedWorkspace({\n cwd: current,\n pruner,\n });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(existsSync(join(scopedRoot, 'packages', 'pruned-dep', 'src', 'index.ts'))).toBe(\n true,\n );\n expect(existsSync(join(scopedRoot, 'packages', 'pruned-dep', 'tests'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'default-dep', 'src', 'index.ts'))).toBe(\n true,\n );\n });\n});\n\ndescribe(copyRootNodeModulesSymlinks, () => {\n it('copies only selected root dependency symlinks without copying dependency contents', async () => {\n const repo = createRepo('node-modules-symlinks');\n const scopedRoot = join(TMP, 'scoped-node-modules-symlinks');\n const dep = join(repo, 'apps', 'oapp-app', 'contracts', 'solana');\n\n createPackage(dep, '@layerzerolabs/oapp-solana-contracts');\n mkdirSync(join(repo, 'node_modules', '.pnpm'), { recursive: true });\n mkdirSync(join(repo, 'node_modules', '.bin'), { recursive: true });\n mkdirSync(join(repo, 'node_modules', '@types'), { recursive: true });\n mkdirSync(join(repo, 'node_modules', '@layerzerolabs'), { recursive: true });\n writeFileSync(join(repo, 'node_modules', '.bin', 'real-file'), 'do not copy');\n mkdirSync(join(scopedRoot, 'apps', 'oapp-app', 'contracts', 'solana'), { recursive: true });\n symlinkSync('.pnpm/eslint@1.0.0/node_modules/eslint', join(repo, 'node_modules', 'eslint'));\n symlinkSync(\n '../.pnpm/typescript@1.0.0/node_modules/typescript/bin/tsc',\n join(repo, 'node_modules', '.bin', 'tsc'),\n );\n symlinkSync(\n '../.pnpm/@types+node@1.0.0/node_modules/@types/node',\n join(repo, 'node_modules', '@types', 'node'),\n );\n symlinkSync(\n '../../apps/oapp-app/contracts/solana',\n join(repo, 'node_modules', '@layerzerolabs', 'oapp-solana-contracts'),\n );\n symlinkSync('../..', join(repo, 'node_modules', '@layerzerolabs', 'whole-repo-link'));\n\n const result = await copyRootNodeModulesSymlinks({\n repoRoot: repo,\n scopedRoot,\n dependencyNames: ['@layerzerolabs/oapp-solana-contracts', '@types/node', 'eslint'],\n });\n\n expect(result.nodeModulesPath).toBe(join(scopedRoot, 'node_modules'));\n expect(result.symlinks).toEqual([\n '@layerzerolabs/oapp-solana-contracts',\n '@types/node',\n 'eslint',\n ]);\n expect(readlinkSync(join(scopedRoot, 'node_modules', 'eslint'))).toBe(\n '.pnpm/eslint@1.0.0/node_modules/eslint',\n );\n expect(lstatSync(join(scopedRoot, 'node_modules', '.pnpm')).isDirectory()).toBe(true);\n expect(existsSync(join(scopedRoot, 'node_modules', '.bin', 'real-file'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'node_modules', '.bin', 'tsc'))).toBe(false);\n expect(lstatSync(join(scopedRoot, 'node_modules', '@types', 'node')).isSymbolicLink()).toBe(\n true,\n );\n expect(\n lstatSync(\n join(scopedRoot, 'node_modules', '@layerzerolabs', 'oapp-solana-contracts'),\n ).isSymbolicLink(),\n ).toBe(true);\n expect(\n readlinkSync(\n join(scopedRoot, 'node_modules', '@layerzerolabs', 'oapp-solana-contracts'),\n ),\n ).toBe('../../apps/oapp-app/contracts/solana');\n expect(\n existsSync(join(scopedRoot, 'node_modules', '@layerzerolabs', 'whole-repo-link')),\n ).toBe(false);\n });\n});\n\ndescribe(getPnpmVirtualStoreMount, () => {\n it('describes a read-only .pnpm mount without requiring root node_modules copy', () => {\n expect(getPnpmVirtualStoreMount('/repo')).toEqual({\n hostPath: '/repo/node_modules/.pnpm',\n containerPath: '/workspace/node_modules/.pnpm',\n readOnly: true,\n });\n });\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { init_esm_shims } from '../TXIQ74D3.js';
1
+ import { init_esm_shims } from '../YVZEMBYY.js';
2
2
 
3
3
  // src/scoped-workspace/types.ts
4
4
  init_esm_shims();
@@ -1,7 +1,7 @@
1
- export { resolveWorkspaceDependencyGraph } from '../EHGHQQRV.js';
2
- import '../GBRJXN7L.js';
3
- import '../YHTRUOFZ.js';
4
- import '../X6QPMSID.js';
5
- import '../TXIQ74D3.js';
1
+ export { resolveWorkspaceDependencyGraph } from '../RRGZUU2S.js';
2
+ import '../PPARVAQY.js';
3
+ import '../HYQDYOEK.js';
4
+ import '../SOYY4ZEJ.js';
5
+ import '../YVZEMBYY.js';
6
6
  //# sourceMappingURL=workspace-dependency-graph.js.map
7
7
  //# sourceMappingURL=workspace-dependency-graph.js.map
@@ -2,14 +2,14 @@ import type { WorkspaceSourceCopyOptions, WorkspaceSourceCopyResult } from './ty
2
2
  export declare const DEFAULT_SOURCE_COPY_PATTERNS: readonly ["**/*"];
3
3
  export declare const DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS: readonly ["!**/.git/**", "!**/.next/**", "!**/.pnpm/**", "!**/.turbo/**", "!**/artifacts*/**", "!**/build/**", "!**/cache/**", "!**/dependencies/**", "!**/debug_info/**", "!**/hh-cache/**", "!**/out/**", "!**/target/**", "!**/typechain-types/**"];
4
4
  /**
5
- * Copy only dependency source-like files for the resolved workspace dependency graph into a
6
- * repo-shaped scoped workspace.
5
+ * Copy selected workspace dependency files into a repo-shaped scoped workspace.
7
6
  *
8
7
  * The current package itself is not copied. It is mounted from the host at the same repo-relative
9
8
  * path by the Docker executor so package-local build outputs such as `target`, `build`, and
10
- * `src/generated` land in the real package. Generated artifacts and caches are deliberately
11
- * excluded from dependency copies. Package-local node_modules directories are copied as symlinks
12
- * only, relying on the root `.pnpm` virtual store mount for external package contents.
9
+ * `src/generated` land in the real package. Dependency files come from pruner patterns when
10
+ * configured; otherwise we copy source-like files and skip generated artifacts/caches.
11
+ * Package-local node_modules directories are copied as symlinks only, relying on the root `.pnpm`
12
+ * virtual store mount for external package contents.
13
13
  */
14
14
  export declare const copyWorkspaceSources: (options: WorkspaceSourceCopyOptions) => Promise<WorkspaceSourceCopyResult>;
15
15
  //# sourceMappingURL=workspace-source-copy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace-source-copy.d.ts","sourceRoot":"","sources":["../../src/scoped-workspace/workspace-source-copy.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAErF,eAAO,MAAM,4BAA4B,mBAAoB,CAAC;AAS9D,eAAO,MAAM,oCAAoC,wPAcvC,CAAC;AAwGX;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAC7B,SAAS,0BAA0B,KACpC,OAAO,CAAC,yBAAyB,CAuDnC,CAAC"}
1
+ {"version":3,"file":"workspace-source-copy.d.ts","sourceRoot":"","sources":["../../src/scoped-workspace/workspace-source-copy.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAErF,eAAO,MAAM,4BAA4B,mBAAoB,CAAC;AAE9D,eAAO,MAAM,oCAAoC,wPAcvC,CAAC;AAgHX;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAC7B,SAAS,0BAA0B,KACpC,OAAO,CAAC,yBAAyB,CAwDnC,CAAC"}
@@ -1,6 +1,6 @@
1
- export { DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS, DEFAULT_SOURCE_COPY_PATTERNS, copyWorkspaceSources } from '../O5XBAHB3.js';
2
- import '../GBRJXN7L.js';
3
- import '../2BEUXSFW.js';
4
- import '../TXIQ74D3.js';
1
+ export { DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS, DEFAULT_SOURCE_COPY_PATTERNS, copyWorkspaceSources } from '../D2PLHUMA.js';
2
+ import '../PPARVAQY.js';
3
+ import '../HLBKRZPQ.js';
4
+ import '../YVZEMBYY.js';
5
5
  //# sourceMappingURL=workspace-source-copy.js.map
6
6
  //# sourceMappingURL=workspace-source-copy.js.map
package/dist/test.js CHANGED
@@ -1,8 +1,8 @@
1
- export { testTools } from './52SW5N2L.js';
2
- import './JYAWK6HD.js';
3
- import './HYD54MGL.js';
4
- import './RORYN2CM.js';
5
- import './X6QPMSID.js';
6
- import './TXIQ74D3.js';
1
+ export { testTools } from './HDEZ25XC.js';
2
+ import './CRI6J6O2.js';
3
+ import './BQ7NG5SN.js';
4
+ import './MRCCE7T6.js';
5
+ import './SOYY4ZEJ.js';
6
+ import './YVZEMBYY.js';
7
7
  //# sourceMappingURL=test.js.map
8
8
  //# sourceMappingURL=test.js.map
@@ -1,7 +1,7 @@
1
- export { findImageForTool, getImageTag, getImageUri, qualifyVolumeName, resolveDockerPlatform, resolveDockerPlatformExecution, resolveEffectiveDockerPlatformValue } from '../JYAWK6HD.js';
2
- import '../HYD54MGL.js';
3
- import '../RORYN2CM.js';
4
- import '../X6QPMSID.js';
5
- import '../TXIQ74D3.js';
1
+ export { findImageForTool, getImageTag, getImageUri, qualifyVolumeName, resolveDockerPlatform, resolveDockerPlatformExecution, resolveEffectiveDockerPlatformValue } from '../CRI6J6O2.js';
2
+ import '../BQ7NG5SN.js';
3
+ import '../MRCCE7T6.js';
4
+ import '../SOYY4ZEJ.js';
5
+ import '../YVZEMBYY.js';
6
6
  //# sourceMappingURL=docker.js.map
7
7
  //# sourceMappingURL=docker.js.map
@@ -1,9 +1,9 @@
1
- import { describe, afterEach, it, globalExpect, beforeEach } from '../3G6UO37X.js';
2
- import { resolveDockerPlatform, resolveEffectiveDockerPlatformValue, resolveDockerPlatformExecution, qualifyVolumeName } from '../JYAWK6HD.js';
3
- import { isDockerPlatformOverride } from '../HYD54MGL.js';
4
- import '../RORYN2CM.js';
5
- import '../X6QPMSID.js';
6
- import { init_esm_shims, __name } from '../TXIQ74D3.js';
1
+ import { describe, afterEach, it, globalExpect, beforeEach } from '../5U6IZE2R.js';
2
+ import { resolveDockerPlatform, resolveEffectiveDockerPlatformValue, resolveDockerPlatformExecution, qualifyVolumeName } from '../CRI6J6O2.js';
3
+ import { isDockerPlatformOverride } from '../BQ7NG5SN.js';
4
+ import '../MRCCE7T6.js';
5
+ import '../SOYY4ZEJ.js';
6
+ import { init_esm_shims, __name } from '../YVZEMBYY.js';
7
7
 
8
8
  // src/utils/docker.test.ts
9
9
  init_esm_shims();
@@ -1,4 +1,4 @@
1
- export { stringifyError } from '../FFE7SXCG.js';
2
- import '../TXIQ74D3.js';
1
+ export { stringifyError } from '../IESTLB2J.js';
2
+ import '../YVZEMBYY.js';
3
3
  //# sourceMappingURL=error.js.map
4
4
  //# sourceMappingURL=error.js.map
@@ -1,4 +1,4 @@
1
- export { findToolByName, findToolVersionsForCombination, getImageName, getToolDefaultVersion, getToolSupportedVersions } from '../X6QPMSID.js';
2
- import '../TXIQ74D3.js';
1
+ export { findToolByName, findToolVersionsForCombination, getImageName, getToolDefaultVersion, getToolSupportedVersions } from '../SOYY4ZEJ.js';
2
+ import '../YVZEMBYY.js';
3
3
  //# sourceMappingURL=finder.js.map
4
4
  //# sourceMappingURL=finder.js.map
package/dist/utils/fs.js CHANGED
@@ -1,4 +1,4 @@
1
- export { isInside, safeRemove } from '../GBRJXN7L.js';
2
- import '../TXIQ74D3.js';
1
+ export { isInside, safeRemove } from '../PPARVAQY.js';
2
+ import '../YVZEMBYY.js';
3
3
  //# sourceMappingURL=fs.js.map
4
4
  //# sourceMappingURL=fs.js.map
package/dist/utils.js CHANGED
@@ -1,5 +1,5 @@
1
- export { findFileInParentDirectory, getCombinationId } from './YHTRUOFZ.js';
2
- import './X6QPMSID.js';
3
- import './TXIQ74D3.js';
1
+ export { findFileInParentDirectory, getCombinationId } from './HYQDYOEK.js';
2
+ import './SOYY4ZEJ.js';
3
+ import './YVZEMBYY.js';
4
4
  //# sourceMappingURL=utils.js.map
5
5
  //# sourceMappingURL=utils.js.map
package/package.json CHANGED
@@ -24,7 +24,7 @@
24
24
  "yaml": "^2.2.2",
25
25
  "zod": "4.3.5",
26
26
  "zx": "^8.8.5",
27
- "@layerzerolabs/common-node-utils": "1.2.12"
27
+ "@layerzerolabs/common-node-utils": "1.2.14"
28
28
  },
29
29
  "devDependencies": {
30
30
  "@jest/globals": "^29.7.0",
@@ -34,11 +34,11 @@
34
34
  "ts-jest": "^29.3.1",
35
35
  "tsup": "^8.4.0",
36
36
  "tsx": "^4.21.0",
37
- "typescript": "^5.8.2",
37
+ "typescript": "^6.0.3",
38
38
  "vitest": "^3.2.6",
39
- "@layerzerolabs/typescript-configuration": "1.2.12",
40
- "@layerzerolabs/tsup-configuration": "1.2.12",
41
- "@layerzerolabs/vitest-configuration": "1.2.12"
39
+ "@layerzerolabs/tsup-configuration": "1.2.14",
40
+ "@layerzerolabs/typescript-configuration": "1.2.14",
41
+ "@layerzerolabs/vitest-configuration": "1.2.14"
42
42
  },
43
43
  "publishConfig": {
44
44
  "access": "public",
@@ -49,14 +49,14 @@
49
49
  "audit-external",
50
50
  "console-oft-unaudited-internal",
51
51
  "console-pen-test",
52
+ "console-solana-v1-internal",
52
53
  "gasolina-audit",
53
54
  "layerzero-ver",
54
55
  "monorepo-external",
55
- "onesig-client",
56
- "usdai-internal"
56
+ "onesig-client"
57
57
  ]
58
58
  },
59
- "version": "1.2.12",
59
+ "version": "1.2.14",
60
60
  "scripts": {
61
61
  "build": "tsup",
62
62
  "lint": "eslint . --max-warnings 0 || (eslint . --fix --max-warnings 0 && false)",
package/dist/3N42XVZL.js DELETED
@@ -1,6 +0,0 @@
1
- import { init_esm_shims } from './TXIQ74D3.js';
2
-
3
- // src/display/index.ts
4
- init_esm_shims();
5
- //# sourceMappingURL=3N42XVZL.js.map
6
- //# sourceMappingURL=3N42XVZL.js.map
package/dist/N53MNPWU.js DELETED
@@ -1,6 +0,0 @@
1
- import { init_esm_shims } from './TXIQ74D3.js';
2
-
3
- // src/core/index.ts
4
- init_esm_shims();
5
- //# sourceMappingURL=N53MNPWU.js.map
6
- //# sourceMappingURL=N53MNPWU.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/scoped-workspace/workspace-source-copy.ts"],"names":["DEFAULT_SOURCE_COPY_PATTERNS","DEFAULT_SOURCE_COPY_ALLOWLIST_PATTERNS","DEFAULT_SOURCE_COPY_EXCLUDE_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","defaultEntries","glob","allowlistedEntries","entries","Set","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":"O5XBAHB3.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\n// TODO(#5328): This allowlist is temporary. VM-specific pruners should own build-output\n// selection, and #5328 will remove this fallback once those pruners are in place.\nconst DEFAULT_SOURCE_COPY_ALLOWLIST_PATTERNS = [\n 'target/wasm32v1-none/release/*.d',\n 'target/wasm32v1-none/release/*.wasm',\n];\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 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 defaultEntries = await glob(include, { ...globOptions, ignore });\n const allowlistedEntries = await glob([...DEFAULT_SOURCE_COPY_ALLOWLIST_PATTERNS], globOptions);\n const entries = [...new Set([...defaultEntries, ...allowlistedEntries])];\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\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_PATTERNS;\n }\n if (prunePatterns?.length) return prunePatterns;\n\n return DEFAULT_SOURCE_COPY_PATTERNS;\n};\n\n/**\n * Copy only dependency source-like files for the resolved workspace dependency graph into a\n * 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. Generated artifacts and caches are deliberately\n * excluded from dependency copies. Package-local node_modules directories are copied as symlinks\n * only, relying on the root `.pnpm` 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(absolutePath, join(scopedRoot, relativePath), [\n ...getPackageSourceCopyPatterns({\n relativePath,\n prunePatterns,\n packagePrunePatterns,\n }),\n ...DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS,\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 +0,0 @@
1
- {"version":3,"sources":["../src/scoped-workspace/index.ts"],"names":["FALLBACK_DIAGNOSTIC","createPrunerInput","dependencyGraph","cwd","repoRoot","packageRoot","packageRelativePath","collectDiagnostics","sources","flatMap","source","diagnostics","resolvePruner","pruner","input","prunePlan","createPrunePlan","prunerName","name","createScopedWorkspace","options","resolve","process","resolveWorkspaceDependencyGraph","prunerResolution","sourceCopy","copyWorkspaceSources","prunePatterns","patterns","packagePrunePatterns","packagePatterns","copyRootNodeModulesSymlinks","scopedRoot","dependencyNames","rootNodeModulesDependencyNames","error","safeRemove","copiedPackagePathEntries","copiedWorkspaceDependencies","map","dependency","relativePath","absolutePath","sort","a","b","localeCompare","pnpmVirtualStoreMount","getPnpmVirtualStoreMount","copiedWorkspacePackageCount","length","copiedWorkspacePackagePaths","Object","fromEntries"],"mappings":"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","file":"S72E7TE5.js","sourcesContent":["import { resolve } from 'node:path';\n\nimport { safeRemove } from '../utils/fs';\nimport { copyRootNodeModulesSymlinks, getPnpmVirtualStoreMount } from './node-modules';\nimport type {\n ScopedWorkspace,\n ScopedWorkspaceOptions,\n ScopedWorkspacePrunePlan,\n ScopedWorkspacePruner,\n ScopedWorkspacePrunerInput,\n WorkspaceDependencyGraph,\n} from './types';\nimport { resolveWorkspaceDependencyGraph } from './workspace-dependency-graph';\nimport { copyWorkspaceSources } from './workspace-source-copy';\n\nexport type {\n PnpmVirtualStoreMount,\n ScopedWorkspace,\n ScopedWorkspaceOptions,\n ScopedWorkspacePrunePlan,\n ScopedWorkspacePruner,\n ScopedWorkspacePrunerInput,\n WorkspaceDependencyEdge,\n WorkspaceDependencyGraph,\n} from './types';\nexport { DEFAULT_SOURCE_COPY_PATTERNS } from './workspace-source-copy';\n\nconst FALLBACK_DIAGNOSTIC =\n 'No scoped-workspace pruner configured; using unpruned package-level source copy fallback.';\n\ninterface PrunerResolution {\n prunerName?: string;\n prunePlan?: ScopedWorkspacePrunePlan;\n diagnostics: string[];\n}\n\nconst createPrunerInput = ({\n dependencyGraph,\n cwd,\n}: {\n dependencyGraph: WorkspaceDependencyGraph;\n cwd: string;\n}): ScopedWorkspacePrunerInput => ({\n repoRoot: dependencyGraph.repoRoot,\n packageRoot: dependencyGraph.packageRoot,\n packageRelativePath: dependencyGraph.packageRelativePath,\n cwd,\n dependencyGraph,\n});\n\nconst collectDiagnostics = (\n ...sources: readonly (ScopedWorkspacePrunePlan | void | undefined)[]\n): string[] => sources.flatMap((source) => (source?.diagnostics ? [...source.diagnostics] : []));\n\nconst resolvePruner = async ({\n pruner,\n dependencyGraph,\n cwd,\n}: {\n pruner?: ScopedWorkspacePruner;\n dependencyGraph: WorkspaceDependencyGraph;\n cwd: string;\n}): Promise<PrunerResolution> => {\n if (!pruner) {\n return { diagnostics: [FALLBACK_DIAGNOSTIC] };\n }\n\n const input = createPrunerInput({ dependencyGraph, cwd });\n const prunePlan = await pruner.createPrunePlan(input);\n\n return {\n prunerName: pruner.name,\n prunePlan,\n diagnostics: collectDiagnostics(prunePlan),\n };\n};\n\n/** Create the shared scoped-workspace filesystem used by containerized package builds. */\nexport const createScopedWorkspace = async (\n options: ScopedWorkspaceOptions = {},\n): Promise<ScopedWorkspace> => {\n const cwd = resolve(options.cwd ?? process.cwd());\n const dependencyGraph = await resolveWorkspaceDependencyGraph({\n cwd,\n });\n const prunerResolution = await resolvePruner({\n pruner: options.pruner,\n dependencyGraph,\n cwd,\n });\n const sourceCopy = await copyWorkspaceSources({\n dependencyGraph,\n prunePatterns: prunerResolution.prunePlan?.patterns,\n packagePrunePatterns: prunerResolution.prunePlan?.packagePatterns,\n });\n\n try {\n await copyRootNodeModulesSymlinks({\n repoRoot: dependencyGraph.repoRoot,\n scopedRoot: sourceCopy.scopedRoot,\n dependencyNames: dependencyGraph.rootNodeModulesDependencyNames,\n });\n } catch (error) {\n await safeRemove(sourceCopy.scopedRoot);\n throw error;\n }\n\n const copiedPackagePathEntries = sourceCopy.copiedWorkspaceDependencies\n .map((dependency) => [dependency.relativePath, dependency.absolutePath] as const)\n .sort(([a], [b]) => a.localeCompare(b));\n\n return {\n packageRoot: dependencyGraph.packageRoot,\n repoRoot: dependencyGraph.repoRoot,\n scopedRoot: sourceCopy.scopedRoot,\n packageRelativePath: dependencyGraph.packageRelativePath,\n pnpmVirtualStoreMount: getPnpmVirtualStoreMount(dependencyGraph.repoRoot),\n copiedWorkspacePackageCount: copiedPackagePathEntries.length,\n copiedWorkspacePackagePaths: Object.fromEntries(copiedPackagePathEntries),\n prunerName: prunerResolution.prunerName,\n diagnostics: prunerResolution.diagnostics,\n };\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/scoped-workspace/scoped-workspace.test.ts"],"names":["TMP","mkdtempSync","join","tmpdir","GENERATED_SCOPED_ROOTS","trackScopedRoot","scopedRoot","push","createPackage","dir","name","files","mkdirSync","recursive","writeFileSync","JSON","stringify","version","file","content","Object","entries","filePath","createRepo","repo","writeLockfile","body","trimEnd","afterAll","rmSync","force","describe","resolveWorkspaceDependencyGraph","it","current","depA","depB","tooling","dependencyGraph","cwd","repoRoot","includedRelativePaths","includedWorkspaceDependencies","map","dependency","relativePath","expect","toHaveLength","toEqual","arrayContaining","rootNodeModulesDependencyNames","contracts","dep","packageRoot","toBe","realpathSync","packageRelativePath","firstGraph","secondGraph","copyWorkspaceSources","symlinkSync","importerRelativePath","absolutePath","result","copiedWorkspaceDependencies","existsSync","lstatSync","isSymbolicLink","readlinkSync","LICENSE","prunePatterns","DEFAULT_SOURCE_COPY_PATTERNS","parent","nested","nestedLink","anchorDep","utilityDep","packagePrunePatterns","createScopedWorkspace","prunerName","toBeUndefined","diagnostics","copiedWorkspacePackageCount","copiedWorkspacePackagePaths","inputs","pruner","createPrunePlan","input","patterns","packagePatterns","firstInput","toMatchObject","prunedDep","defaultDep","copyRootNodeModulesSymlinks","dependencyNames","nodeModulesPath","symlinks","isDirectory","getPnpmVirtualStoreMount","hostPath","containerPath","readOnly"],"mappings":"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","file":"scoped-workspace.test.js","sourcesContent":["import {\n existsSync,\n lstatSync,\n mkdirSync,\n mkdtempSync,\n readlinkSync,\n realpathSync,\n rmSync,\n symlinkSync,\n writeFileSync,\n} from 'node:fs';\nimport { tmpdir } from 'node:os';\nimport { join } from 'node:path';\nimport { afterAll, describe, expect, it } from 'vitest';\n\nimport {\n createScopedWorkspace,\n DEFAULT_SOURCE_COPY_PATTERNS,\n type ScopedWorkspacePruner,\n} from './index';\nimport { copyRootNodeModulesSymlinks, getPnpmVirtualStoreMount } from './node-modules';\nimport { resolveWorkspaceDependencyGraph } from './workspace-dependency-graph';\nimport { copyWorkspaceSources } from './workspace-source-copy';\n\nconst TMP = mkdtempSync(join(tmpdir(), 'lz-scoped-workspace-test-'));\nconst GENERATED_SCOPED_ROOTS: string[] = [];\n\nconst trackScopedRoot = (scopedRoot: string): string => {\n GENERATED_SCOPED_ROOTS.push(scopedRoot);\n return scopedRoot;\n};\n\nconst createPackage = (dir: string, name: string, files: Record<string, string> = {}) => {\n mkdirSync(dir, { recursive: true });\n writeFileSync(join(dir, 'package.json'), JSON.stringify({ name, version: '0.0.0' }));\n\n for (const [file, content] of Object.entries(files)) {\n const filePath = join(dir, file);\n mkdirSync(join(filePath, '..'), { recursive: true });\n writeFileSync(filePath, content);\n }\n};\n\nconst createRepo = (name: string): string => {\n const repo = join(TMP, name);\n mkdirSync(repo, { recursive: true });\n writeFileSync(join(repo, 'pnpm-workspace.yaml'), 'packages:\\n - \"**\"\\n');\n return repo;\n};\n\nconst writeLockfile = (repo: string, body: string) => {\n writeFileSync(\n join(repo, 'pnpm-lock.yaml'),\n [\n \"lockfileVersion: '9.0'\",\n '',\n 'settings:',\n ' autoInstallPeers: true',\n '',\n 'importers:',\n body.trimEnd(),\n '',\n 'packages:',\n '',\n ].join('\\n'),\n );\n};\n\nafterAll(() => {\n rmSync(TMP, { recursive: true, force: true });\n for (const scopedRoot of GENERATED_SCOPED_ROOTS) {\n rmSync(scopedRoot, { recursive: true, force: true });\n }\n});\n\ndescribe(resolveWorkspaceDependencyGraph, () => {\n it('follows transitive workspace link deps', async () => {\n const repo = createRepo('dependency-graph');\n const current = join(repo, 'apps', 'current');\n const depA = join(repo, 'packages', 'dep-a');\n const depB = join(repo, 'packages', 'dep-b');\n const tooling = join(repo, 'tools', 'vm-utils', 'solana', 'build-utils');\n\n createPackage(current, '@layerzerolabs/current');\n createPackage(depA, '@layerzerolabs/dep-a');\n createPackage(depB, '@layerzerolabs/dep-b');\n createPackage(tooling, '@layerzerolabs/build-utils-solana');\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep-a':\n specifier: workspace:*\n version: link:../../packages/dep-a\n '@layerzerolabs/build-utils-solana':\n specifier: workspace:*\n version: link:../../tools/vm-utils/solana/build-utils\n\n .:\n devDependencies:\n eslint:\n specifier: ^9.0.0\n version: 9.0.0\n '@layerzerolabs/dep-a':\n specifier: workspace:*\n version: link:packages/dep-a\n '@layerzerolabs/build-utils-solana':\n specifier: workspace:*\n version: link:tools/vm-utils/solana/build-utils\n\n packages/dep-a:\n dependencies:\n eslint:\n specifier: ^9.0.0\n version: 9.0.0\n '@layerzerolabs/dep-b':\n specifier: workspace:*\n version: link:../dep-b\n\n packages/dep-b:\n dependencies:\n '@layerzerolabs/dep-a':\n specifier: workspace:*\n version: link:../dep-a\n\n tools/vm-utils/solana/build-utils:\n devDependencies: {}\n`,\n );\n\n const dependencyGraph = await resolveWorkspaceDependencyGraph({\n cwd: current,\n repoRoot: repo,\n });\n\n const includedRelativePaths = dependencyGraph.includedWorkspaceDependencies.map(\n (dependency) => dependency.relativePath,\n );\n expect(includedRelativePaths).toHaveLength(3);\n expect(includedRelativePaths).toEqual(\n expect.arrayContaining([\n 'packages/dep-a',\n 'packages/dep-b',\n 'tools/vm-utils/solana/build-utils',\n ]),\n );\n expect(dependencyGraph.rootNodeModulesDependencyNames).toHaveLength(3);\n expect(dependencyGraph.rootNodeModulesDependencyNames).toEqual(\n expect.arrayContaining([\n '@layerzerolabs/build-utils-solana',\n '@layerzerolabs/dep-a',\n 'eslint',\n ]),\n );\n });\n\n it('resolves nested command directories to their ancestor package importer', async () => {\n const repo = createRepo('nested-current');\n const current = join(repo, 'packages', 'onesig', 'onesig-starknet');\n const contracts = join(current, 'contracts');\n const dep = join(repo, 'packages', 'protocol-starknet-v2');\n\n createPackage(current, '@layerzerolabs/onesig-starknet', {\n 'contracts/Scarb.toml': '[package]\\nname = \"onesig\"\\n',\n });\n createPackage(dep, '@layerzerolabs/protocol-starknet-v2');\n mkdirSync(contracts, { recursive: true });\n writeLockfile(\n repo,\n `\n packages/onesig/onesig-starknet:\n devDependencies:\n '@layerzerolabs/protocol-starknet-v2':\n specifier: workspace:*\n version: link:../../protocol-starknet-v2\n\n .:\n devDependencies:\n '@layerzerolabs/protocol-starknet-v2':\n specifier: workspace:*\n version: link:packages/protocol-starknet-v2\n\n packages/protocol-starknet-v2:\n devDependencies: {}\n`,\n );\n\n const dependencyGraph = await resolveWorkspaceDependencyGraph({\n cwd: contracts,\n repoRoot: repo,\n });\n\n expect(dependencyGraph.packageRoot).toBe(realpathSync(current));\n expect(dependencyGraph.packageRelativePath).toBe('packages/onesig/onesig-starknet');\n expect(\n dependencyGraph.includedWorkspaceDependencies.map(\n (dependency) => dependency.relativePath,\n ),\n ).toEqual(['packages/protocol-starknet-v2']);\n expect(dependencyGraph.rootNodeModulesDependencyNames).toEqual([\n '@layerzerolabs/protocol-starknet-v2',\n ]);\n });\n\n it('invalidates cached lockfile importers when the lockfile changes', async () => {\n const repo = createRepo('dependency-graph-cache-invalidation');\n const current = join(repo, 'apps', 'current');\n const depA = join(repo, 'packages', 'dep-a');\n const depB = join(repo, 'packages', 'dep-b');\n\n createPackage(current, '@layerzerolabs/current');\n createPackage(depA, '@layerzerolabs/dep-a');\n createPackage(depB, '@layerzerolabs/dep-b');\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep-a':\n specifier: workspace:*\n version: link:../../packages/dep-a\n\n packages/dep-a:\n devDependencies: {}\n`,\n );\n\n const firstGraph = await resolveWorkspaceDependencyGraph({\n cwd: current,\n repoRoot: repo,\n });\n\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep-b':\n specifier: workspace:*\n version: link:../../packages/dep-b\n\n packages/dep-b:\n devDependencies: {}\n\n # Keep the rewritten lockfile size different so mtime+size invalidation is exercised.\n`,\n );\n\n const secondGraph = await resolveWorkspaceDependencyGraph({\n cwd: current,\n repoRoot: repo,\n });\n\n expect(\n firstGraph.includedWorkspaceDependencies.map((dependency) => dependency.relativePath),\n ).toEqual(['packages/dep-a']);\n expect(\n secondGraph.includedWorkspaceDependencies.map((dependency) => dependency.relativePath),\n ).toEqual(['packages/dep-b']);\n });\n});\n\ndescribe(copyWorkspaceSources, () => {\n it('copies dependency sources and dist outputs while excluding the current package and heavyweight generated output directories', async () => {\n const repo = createRepo('workspace-source-copy');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n 'target/deploy/current.so': 'compiled',\n });\n createPackage(dep, '@layerzerolabs/dep', {\n 'src/index.ts': 'export const dep = true',\n 'dependencies/generated-crate/src/lib.rs': 'pub fn generated() {}',\n 'target/deploy/program.so': 'compiled',\n 'target/wasm32v1-none/release/program.d': 'program.wasm: src/lib.rs',\n 'target/wasm32v1-none/release/program.wasm': 'compiled wasm',\n 'node_modules/pkg/index.js': 'module.exports = {}',\n 'dist/index.js': 'module.exports = {}',\n 'artifacts/contracts/Contract.json': '{}',\n });\n symlinkSync(\n '../../../../node_modules/.pnpm/linked-pkg@1.0.0/node_modules/linked-pkg',\n join(dep, 'node_modules', 'linked-pkg'),\n );\n symlinkSync('src/index.ts', join(dep, 'src-link.ts'));\n\n const dependencyGraph = {\n repoRoot: repo,\n packageRoot: current,\n packageRelativePath: 'apps/current',\n rootNodeModulesDependencyNames: [],\n includedWorkspaceDependencies: [\n {\n name: '@layerzerolabs/dep',\n importerRelativePath: 'apps/current',\n relativePath: 'packages/dep',\n absolutePath: dep,\n version: 'link:../../packages/dep',\n },\n ],\n };\n\n const result = await copyWorkspaceSources({ dependencyGraph });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(result.copiedWorkspaceDependencies).toHaveLength(1);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'dependencies'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'target', 'deploy'))).toBe(false);\n expect(\n existsSync(\n join(\n scopedRoot,\n 'packages',\n 'dep',\n 'target',\n 'wasm32v1-none',\n 'release',\n 'program.d',\n ),\n ),\n ).toBe(true);\n expect(\n existsSync(\n join(\n scopedRoot,\n 'packages',\n 'dep',\n 'target',\n 'wasm32v1-none',\n 'release',\n 'program.wasm',\n ),\n ),\n ).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'node_modules'))).toBe(true);\n expect(\n existsSync(join(scopedRoot, 'packages', 'dep', 'node_modules', 'pkg', 'index.js')),\n ).toBe(false);\n expect(\n lstatSync(\n join(scopedRoot, 'packages', 'dep', 'node_modules', 'linked-pkg'),\n ).isSymbolicLink(),\n ).toBe(true);\n expect(\n readlinkSync(join(scopedRoot, 'packages', 'dep', 'node_modules', 'linked-pkg')),\n ).toBe('../../../../node_modules/.pnpm/linked-pkg@1.0.0/node_modules/linked-pkg');\n expect(lstatSync(join(scopedRoot, 'packages', 'dep', 'src-link.ts')).isSymbolicLink()).toBe(\n true,\n );\n expect(readlinkSync(join(scopedRoot, 'packages', 'dep', 'src-link.ts'))).toBe(\n 'src/index.ts',\n );\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'dist', 'index.js'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'artifacts'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n });\n\n it('applies glob-compatible scoped-workspace prune patterns to dependency source copies', async () => {\n const repo = createRepo('workspace-source-pattern-copy');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n createPackage(current, '@layerzerolabs/current');\n createPackage(dep, '@layerzerolabs/dep', {\n 'src/index.ts': 'export const dep = true',\n 'README.md': '# dep',\n LICENSE: 'MIT',\n 'sdk/client.ts': 'export const sdk = true',\n 'scripts/dev.ts': 'export const dev = true',\n 'tests/fixture.ts': 'export const secret = true',\n 'node_modules/pkg/index.js': 'module.exports = {}',\n 'programs/demo/src/lib.rs': 'pub fn process() {}',\n 'programs/demo/tests/integration.rs': '#[test] fn it_works() {}',\n 'target/deploy/program.so': 'compiled',\n });\n symlinkSync('../src/index.ts', join(dep, 'node_modules', 'dep-link'));\n\n const dependencyGraph = {\n repoRoot: repo,\n packageRoot: current,\n packageRelativePath: 'apps/current',\n rootNodeModulesDependencyNames: [],\n includedWorkspaceDependencies: [\n {\n name: '@layerzerolabs/dep',\n importerRelativePath: 'apps/current',\n relativePath: 'packages/dep',\n absolutePath: dep,\n version: 'link:../../packages/dep',\n },\n ],\n };\n\n const result = await copyWorkspaceSources({\n dependencyGraph,\n prunePatterns: [\n ...DEFAULT_SOURCE_COPY_PATTERNS,\n '!**/*.md',\n '!**/LICENSE',\n '!sdk/**',\n '!scripts/**',\n '!tests/**',\n '!programs/**/tests/**',\n ],\n });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n expect(\n existsSync(join(scopedRoot, 'packages', 'dep', 'programs', 'demo', 'src', 'lib.rs')),\n ).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'README.md'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'LICENSE'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'sdk'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'scripts'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'tests'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'programs', 'demo', 'tests'))).toBe(\n false,\n );\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'node_modules', 'pkg'))).toBe(false);\n expect(\n lstatSync(\n join(scopedRoot, 'packages', 'dep', 'node_modules', 'dep-link'),\n ).isSymbolicLink(),\n ).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'target'))).toBe(false);\n });\n\n it('tolerates identical package-local symlinks copied twice (nested workspace package layout)', async () => {\n const repo = createRepo('workspace-source-duplicate-symlink');\n const current = join(repo, 'apps', 'current');\n const parent = join(repo, 'apps', 'parent');\n const nested = join(parent, 'nested-pkg');\n createPackage(current, '@layerzerolabs/current');\n createPackage(parent, '@layerzerolabs/parent', {\n 'src/index.ts': 'export const parent = true',\n });\n createPackage(nested, '@layerzerolabs/nested', {\n 'src/index.ts': 'export const nested = true',\n });\n mkdirSync(join(nested, 'node_modules', '@layerzerolabs'), { recursive: true });\n symlinkSync(\n '../../../../../../tools/vm-tooling/vm-tooling-stellar',\n join(nested, 'node_modules', '@layerzerolabs', 'vm-tooling-stellar'),\n );\n // Parent tree includes the nested package directory on disk.\n mkdirSync(join(parent, 'node_modules', '@layerzerolabs'), { recursive: true });\n symlinkSync(\n '../../../../tools/vm-tooling/vm-tooling-stellar',\n join(parent, 'node_modules', '@layerzerolabs', 'vm-tooling-stellar'),\n );\n\n const dependencyGraph = {\n repoRoot: repo,\n packageRoot: current,\n packageRelativePath: 'apps/current',\n rootNodeModulesDependencyNames: [],\n includedWorkspaceDependencies: [\n {\n name: '@layerzerolabs/parent',\n importerRelativePath: 'apps/current',\n relativePath: 'apps/parent',\n absolutePath: parent,\n version: 'link:../parent',\n },\n {\n name: '@layerzerolabs/nested',\n importerRelativePath: 'apps/parent',\n relativePath: 'apps/parent/nested-pkg',\n absolutePath: nested,\n version: 'link:./nested-pkg',\n },\n ],\n };\n\n const result = await copyWorkspaceSources({ dependencyGraph });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n const nestedLink = join(\n scopedRoot,\n 'apps',\n 'parent',\n 'nested-pkg',\n 'node_modules',\n '@layerzerolabs',\n 'vm-tooling-stellar',\n );\n expect(lstatSync(nestedLink).isSymbolicLink()).toBe(true);\n expect(readlinkSync(nestedLink)).toBe(\n '../../../../../../tools/vm-tooling/vm-tooling-stellar',\n );\n });\n\n it('falls back to default patterns when global prune patterns are empty', async () => {\n const repo = createRepo('workspace-source-package-pattern-copy');\n const current = join(repo, 'apps', 'current');\n const anchorDep = join(repo, 'packages', 'anchor-dep');\n const utilityDep = join(repo, 'packages', 'utility-dep');\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n 'tests/secret.ts': 'export const secret = true',\n });\n createPackage(anchorDep, '@layerzerolabs/anchor-dep', {\n 'Anchor.toml': '[programs.localnet]\\nanchor_dep = \"11111111111111111111111111111111\"',\n 'programs/demo/Cargo.toml': '[package]\\nname = \"demo\"',\n 'programs/demo/src/lib.rs': 'pub fn process() {}',\n 'programs/demo/tests/integration.rs': '#[test] fn it_works() {}',\n });\n createPackage(utilityDep, '@layerzerolabs/utility-dep', {\n 'src/index.ts': 'export const utility = true',\n });\n\n const dependencyGraph = {\n repoRoot: repo,\n packageRoot: current,\n packageRelativePath: 'apps/current',\n rootNodeModulesDependencyNames: [],\n includedWorkspaceDependencies: [\n {\n name: '@layerzerolabs/anchor-dep',\n importerRelativePath: 'apps/current',\n relativePath: 'packages/anchor-dep',\n absolutePath: anchorDep,\n version: 'link:../../packages/anchor-dep',\n },\n {\n name: '@layerzerolabs/utility-dep',\n importerRelativePath: 'apps/current',\n relativePath: 'packages/utility-dep',\n absolutePath: utilityDep,\n version: 'link:../../packages/utility-dep',\n },\n ],\n };\n\n const result = await copyWorkspaceSources({\n dependencyGraph,\n prunePatterns: [],\n packagePrunePatterns: {\n 'apps/current': ['src/**'],\n 'packages/anchor-dep': [\n 'Anchor.toml',\n 'programs/*/Cargo.toml',\n 'programs/*/src/**',\n ],\n },\n });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'anchor-dep', 'Anchor.toml'))).toBe(true);\n expect(\n existsSync(\n join(scopedRoot, 'packages', 'anchor-dep', 'programs', 'demo', 'Cargo.toml'),\n ),\n ).toBe(true);\n expect(\n existsSync(\n join(scopedRoot, 'packages', 'anchor-dep', 'programs', 'demo', 'src', 'lib.rs'),\n ),\n ).toBe(true);\n expect(\n existsSync(join(scopedRoot, 'packages', 'anchor-dep', 'programs', 'demo', 'tests')),\n ).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'utility-dep', 'src', 'index.ts'))).toBe(\n true,\n );\n });\n});\n\ndescribe(createScopedWorkspace, () => {\n it('uses the unpruned source-copy fallback when no pruner is configured', async () => {\n const repo = createRepo('scoped-workspace-fallback');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n mkdirSync(join(repo, 'node_modules', '.pnpm'), { recursive: true });\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n });\n createPackage(dep, '@layerzerolabs/dep', {\n 'src/index.ts': 'export const dep = true',\n });\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep':\n specifier: workspace:*\n version: link:../../packages/dep\n\n packages/dep:\n devDependencies: {}\n`,\n );\n\n const result = await createScopedWorkspace({ cwd: current });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(result.prunerName).toBeUndefined();\n expect(result.diagnostics).toEqual([\n 'No scoped-workspace pruner configured; using unpruned package-level source copy fallback.',\n ]);\n expect(result.copiedWorkspacePackageCount).toBe(1);\n expect(result.copiedWorkspacePackagePaths).toEqual({\n 'packages/dep': realpathSync(dep),\n });\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n });\n\n it('uses a configured pruner to filter dependency package copies', async () => {\n const repo = createRepo('scoped-workspace-pruner');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n const inputs: Parameters<ScopedWorkspacePruner['createPrunePlan']>[0][] = [];\n const pruner: ScopedWorkspacePruner = {\n name: 'test-pruner',\n createPrunePlan: async (input) => {\n inputs.push(input);\n return {\n patterns: [],\n packagePatterns: {\n 'apps/current': ['src/**'],\n 'packages/dep': [...DEFAULT_SOURCE_COPY_PATTERNS, '!tests/**'],\n },\n diagnostics: ['planned current package inputs'],\n };\n },\n };\n\n mkdirSync(join(repo, 'node_modules', '.pnpm'), { recursive: true });\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n 'tests/secret.ts': 'export const secret = true',\n });\n createPackage(dep, '@layerzerolabs/dep', {\n 'src/index.ts': 'export const dep = true',\n 'tests/fixture.ts': 'export const secret = true',\n });\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/dep':\n specifier: workspace:*\n version: link:../../packages/dep\n\n packages/dep:\n devDependencies: {}\n`,\n );\n\n const result = await createScopedWorkspace({\n cwd: current,\n pruner,\n });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(inputs).toHaveLength(1);\n const firstInput = inputs[0]!;\n\n expect(firstInput).toMatchObject({\n repoRoot: realpathSync(repo),\n packageRoot: realpathSync(current),\n packageRelativePath: 'apps/current',\n cwd: current,\n });\n expect(\n firstInput.dependencyGraph.includedWorkspaceDependencies.map(\n ({ relativePath }) => relativePath,\n ),\n ).toEqual(['packages/dep']);\n expect(result.prunerName).toBe('test-pruner');\n expect(result.diagnostics).toEqual(['planned current package inputs']);\n expect(result.copiedWorkspacePackageCount).toBe(1);\n expect(result.copiedWorkspacePackagePaths).toEqual({\n 'packages/dep': realpathSync(dep),\n });\n expect(existsSync(join(scopedRoot, 'apps', 'current'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(scopedRoot, 'packages', 'dep', 'tests'))).toBe(false);\n });\n\n it('uses default dependency copies for pruned packages without package-specific patterns', async () => {\n const repo = createRepo('scoped-workspace-empty-global-patterns');\n const current = join(repo, 'apps', 'current');\n const prunedDep = join(repo, 'packages', 'pruned-dep');\n const defaultDep = join(repo, 'packages', 'default-dep');\n const pruner: ScopedWorkspacePruner = {\n name: 'test-pruner',\n createPrunePlan: async () => ({\n patterns: [],\n packagePatterns: {\n 'packages/pruned-dep': ['src/**'],\n },\n }),\n };\n\n mkdirSync(join(repo, 'node_modules', '.pnpm'), { recursive: true });\n createPackage(current, '@layerzerolabs/current', {\n 'src/index.ts': 'export const current = true',\n });\n createPackage(prunedDep, '@layerzerolabs/pruned-dep', {\n 'src/index.ts': 'export const pruned = true',\n 'tests/fixture.ts': 'export const fixture = true',\n });\n createPackage(defaultDep, '@layerzerolabs/default-dep', {\n 'src/index.ts': 'export const defaultDep = true',\n });\n writeLockfile(\n repo,\n `\n apps/current:\n dependencies:\n '@layerzerolabs/pruned-dep':\n specifier: workspace:*\n version: link:../../packages/pruned-dep\n '@layerzerolabs/default-dep':\n specifier: workspace:*\n version: link:../../packages/default-dep\n\n packages/default-dep:\n devDependencies: {}\n\n packages/pruned-dep:\n devDependencies: {}\n`,\n );\n\n const result = await createScopedWorkspace({\n cwd: current,\n pruner,\n });\n const scopedRoot = trackScopedRoot(result.scopedRoot);\n\n expect(existsSync(join(scopedRoot, 'packages', 'pruned-dep', 'src', 'index.ts'))).toBe(\n true,\n );\n expect(existsSync(join(scopedRoot, 'packages', 'pruned-dep', 'tests'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'packages', 'default-dep', 'src', 'index.ts'))).toBe(\n true,\n );\n });\n});\n\ndescribe(copyRootNodeModulesSymlinks, () => {\n it('copies only selected root dependency symlinks without copying dependency contents', async () => {\n const repo = createRepo('node-modules-symlinks');\n const scopedRoot = join(TMP, 'scoped-node-modules-symlinks');\n const dep = join(repo, 'apps', 'oapp-app', 'contracts', 'solana');\n\n createPackage(dep, '@layerzerolabs/oapp-solana-contracts');\n mkdirSync(join(repo, 'node_modules', '.pnpm'), { recursive: true });\n mkdirSync(join(repo, 'node_modules', '.bin'), { recursive: true });\n mkdirSync(join(repo, 'node_modules', '@types'), { recursive: true });\n mkdirSync(join(repo, 'node_modules', '@layerzerolabs'), { recursive: true });\n writeFileSync(join(repo, 'node_modules', '.bin', 'real-file'), 'do not copy');\n mkdirSync(join(scopedRoot, 'apps', 'oapp-app', 'contracts', 'solana'), { recursive: true });\n symlinkSync('.pnpm/eslint@1.0.0/node_modules/eslint', join(repo, 'node_modules', 'eslint'));\n symlinkSync(\n '../.pnpm/typescript@1.0.0/node_modules/typescript/bin/tsc',\n join(repo, 'node_modules', '.bin', 'tsc'),\n );\n symlinkSync(\n '../.pnpm/@types+node@1.0.0/node_modules/@types/node',\n join(repo, 'node_modules', '@types', 'node'),\n );\n symlinkSync(\n '../../apps/oapp-app/contracts/solana',\n join(repo, 'node_modules', '@layerzerolabs', 'oapp-solana-contracts'),\n );\n symlinkSync('../..', join(repo, 'node_modules', '@layerzerolabs', 'whole-repo-link'));\n\n const result = await copyRootNodeModulesSymlinks({\n repoRoot: repo,\n scopedRoot,\n dependencyNames: ['@layerzerolabs/oapp-solana-contracts', '@types/node', 'eslint'],\n });\n\n expect(result.nodeModulesPath).toBe(join(scopedRoot, 'node_modules'));\n expect(result.symlinks).toEqual([\n '@layerzerolabs/oapp-solana-contracts',\n '@types/node',\n 'eslint',\n ]);\n expect(readlinkSync(join(scopedRoot, 'node_modules', 'eslint'))).toBe(\n '.pnpm/eslint@1.0.0/node_modules/eslint',\n );\n expect(lstatSync(join(scopedRoot, 'node_modules', '.pnpm')).isDirectory()).toBe(true);\n expect(existsSync(join(scopedRoot, 'node_modules', '.bin', 'real-file'))).toBe(false);\n expect(existsSync(join(scopedRoot, 'node_modules', '.bin', 'tsc'))).toBe(false);\n expect(lstatSync(join(scopedRoot, 'node_modules', '@types', 'node')).isSymbolicLink()).toBe(\n true,\n );\n expect(\n lstatSync(\n join(scopedRoot, 'node_modules', '@layerzerolabs', 'oapp-solana-contracts'),\n ).isSymbolicLink(),\n ).toBe(true);\n expect(\n readlinkSync(\n join(scopedRoot, 'node_modules', '@layerzerolabs', 'oapp-solana-contracts'),\n ),\n ).toBe('../../apps/oapp-app/contracts/solana');\n expect(\n existsSync(join(scopedRoot, 'node_modules', '@layerzerolabs', 'whole-repo-link')),\n ).toBe(false);\n });\n});\n\ndescribe(getPnpmVirtualStoreMount, () => {\n it('describes a read-only .pnpm mount without requiring root node_modules copy', () => {\n expect(getPnpmVirtualStoreMount('/repo')).toEqual({\n hostPath: '/repo/node_modules/.pnpm',\n containerPath: '/workspace/node_modules/.pnpm',\n readOnly: true,\n });\n });\n});\n"]}