@layerzerolabs/vm-tooling 0.2.112 → 0.2.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/2ICMBBWU.js +6 -0
- package/dist/{N53MNPWU.js.map → 2ICMBBWU.js.map} +1 -1
- package/dist/{TWCQHE4E.js → 337JSZDD.js} +4 -4
- package/dist/{TWCQHE4E.js.map → 337JSZDD.js.map} +1 -1
- package/dist/{7CGWPLOJ.js → 4LO2IH4K.js} +6 -5
- package/dist/4LO2IH4K.js.map +1 -0
- package/dist/{NAWFODGG.js → 4Y7MN3EA.js} +5 -5
- package/dist/{NAWFODGG.js.map → 4Y7MN3EA.js.map} +1 -1
- package/dist/{IIZVEHVD.js → 5GPTK3MH.js} +12 -5
- package/dist/5GPTK3MH.js.map +1 -0
- package/dist/{TXIQ74D3.js → 6M2RYAT4.js} +9 -5
- package/dist/6M2RYAT4.js.map +1 -0
- package/dist/{UUWRT3Q2.js → 7AOPRLRU.js} +4 -4
- package/dist/{UUWRT3Q2.js.map → 7AOPRLRU.js.map} +1 -1
- package/dist/7ZZ35UQB.js +6 -0
- package/dist/{3N42XVZL.js.map → 7ZZ35UQB.js.map} +1 -1
- package/dist/BTTCOAYB.js +145 -0
- package/dist/BTTCOAYB.js.map +1 -0
- package/dist/{2PIH5TOH.js → CWBC3WMF.js} +3 -3
- package/dist/{2PIH5TOH.js.map → CWBC3WMF.js.map} +1 -1
- package/dist/{IPZ5KX7M.js → DCLKPAAD.js} +3 -3
- package/dist/{IPZ5KX7M.js.map → DCLKPAAD.js.map} +1 -1
- package/dist/{RORYN2CM.js → DHOHK2AA.js} +3 -3
- package/dist/{RORYN2CM.js.map → DHOHK2AA.js.map} +1 -1
- package/dist/DTNGUD3B.js +349 -0
- package/dist/DTNGUD3B.js.map +1 -0
- package/dist/{FFE7SXCG.js → EN67HYJT.js} +3 -3
- package/dist/{FFE7SXCG.js.map → EN67HYJT.js.map} +1 -1
- package/dist/{KBUFOLY3.js → H7PAZQ2B.js} +5 -5
- package/dist/{KBUFOLY3.js.map → H7PAZQ2B.js.map} +1 -1
- package/dist/{H6FLARPD.js → H7YRHR5O.js} +3 -3
- package/dist/{H6FLARPD.js.map → H7YRHR5O.js.map} +1 -1
- package/dist/ID575YY3.js +158 -0
- package/dist/ID575YY3.js.map +1 -0
- package/dist/{AIKNZKYE.js → INJJFIX2.js} +5 -5
- package/dist/{AIKNZKYE.js.map → INJJFIX2.js.map} +1 -1
- package/dist/LYF4JPSK.js +24 -0
- package/dist/LYF4JPSK.js.map +1 -0
- package/dist/{PNCVL7HO.js → MAF3KTCC.js} +5 -5
- package/dist/{PNCVL7HO.js.map → MAF3KTCC.js.map} +1 -1
- package/dist/SKMNEOBU.js +49 -0
- package/dist/SKMNEOBU.js.map +1 -0
- package/dist/{X6QPMSID.js → UBSQYHMB.js} +3 -3
- package/dist/{X6QPMSID.js.map → UBSQYHMB.js.map} +1 -1
- package/dist/{7DDNJRV6.js → V4633Q24.js} +8 -8
- package/dist/{7DDNJRV6.js.map → V4633Q24.js.map} +1 -1
- package/dist/WIT6LHNF.js +84 -0
- package/dist/WIT6LHNF.js.map +1 -0
- package/dist/{FT4JK367.js → WTU5LLJL.js} +5 -5
- package/dist/{FT4JK367.js.map → WTU5LLJL.js.map} +1 -1
- package/dist/ZBEXHZRK.js +46 -0
- package/dist/ZBEXHZRK.js.map +1 -0
- package/dist/cli.js +21 -16
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -3
- package/dist/context.js +1 -1
- package/dist/core/index.js +17 -12
- package/dist/core/local-executor.js +2 -2
- package/dist/core/local-executor.test.js +3 -3
- package/dist/core/lock.js +2 -2
- package/dist/core/lock.test.js +3 -3
- package/dist/core/tool-executor.d.ts.map +1 -1
- package/dist/core/tool-executor.js +16 -11
- package/dist/core/tool-executor.test.js +17 -12
- package/dist/core/tool-executor.test.js.map +1 -1
- package/dist/core/version-resolver.js +4 -4
- package/dist/display/formatters.js +4 -4
- package/dist/display/index.js +6 -6
- package/dist/display/version-display.js +5 -5
- package/dist/environment.js +2 -2
- package/dist/github/index.js +7 -7
- package/dist/github/matrix.js +6 -6
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -19
- package/dist/index.js.map +1 -1
- package/dist/mini-workspace/index.d.ts +6 -0
- package/dist/mini-workspace/index.d.ts.map +1 -0
- package/dist/mini-workspace/index.js +10 -0
- package/dist/mini-workspace/index.js.map +1 -0
- package/dist/mini-workspace/mini-workspace.test.js +643 -0
- package/dist/mini-workspace/mini-workspace.test.js.map +1 -0
- package/dist/mini-workspace/node-modules.d.ts +19 -0
- package/dist/mini-workspace/node-modules.d.ts.map +1 -0
- package/dist/mini-workspace/node-modules.js +4 -0
- package/dist/mini-workspace/node-modules.js.map +1 -0
- package/dist/mini-workspace/types.d.ts +82 -0
- package/dist/mini-workspace/types.d.ts.map +1 -0
- package/dist/mini-workspace/types.js +6 -0
- package/dist/mini-workspace/types.js.map +1 -0
- package/dist/mini-workspace/workspace-dependency-graph.d.ts +10 -0
- package/dist/mini-workspace/workspace-dependency-graph.d.ts.map +1 -0
- package/dist/mini-workspace/workspace-dependency-graph.js +7 -0
- package/dist/mini-workspace/workspace-dependency-graph.js.map +1 -0
- package/dist/mini-workspace/workspace-source-copy.d.ts +15 -0
- package/dist/mini-workspace/workspace-source-copy.d.ts.map +1 -0
- package/dist/mini-workspace/workspace-source-copy.js +6 -0
- package/dist/mini-workspace/workspace-source-copy.js.map +1 -0
- package/dist/test.js +6 -6
- package/dist/utils/docker.js +5 -5
- package/dist/utils/docker.test.js +6 -6
- package/dist/utils/error.js +2 -2
- package/dist/utils/finder.js +2 -2
- package/dist/utils/fs.d.ts +12 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +4 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils.d.ts +0 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -3
- package/package.json +8 -5
- package/dist/3N42XVZL.js +0 -6
- package/dist/7CGWPLOJ.js.map +0 -1
- package/dist/IIZVEHVD.js.map +0 -1
- package/dist/N53MNPWU.js +0 -6
- package/dist/PXDULNML.js +0 -37
- package/dist/PXDULNML.js.map +0 -1
- package/dist/TXIQ74D3.js.map +0 -1
- package/dist/U3L7CZHW.js +0 -284
- package/dist/U3L7CZHW.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/mini-workspace/mini-workspace.test.ts"],"names":["TMP","mkdtempSync","join","tmpdir","GENERATED_MINI_ROOTS","trackMiniRoot","miniRoot","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","__dirname","toContain","firstGraph","secondGraph","copyWorkspaceSources","symlinkSync","importerRelativePath","absolutePath","result","copiedWorkspaceDependencies","existsSync","lstatSync","isSymbolicLink","readlinkSync","LICENSE","prunePatterns","DEFAULT_SOURCE_COPY_PATTERNS","anchorDep","utilityDep","packagePrunePatterns","createMiniWorkspace","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":"mini-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 createMiniWorkspace,\n DEFAULT_SOURCE_COPY_PATTERNS,\n type MiniWorkspacePruner,\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-mini-workspace-test-'));\nconst GENERATED_MINI_ROOTS: string[] = [];\n\nconst trackMiniRoot = (miniRoot: string): string => {\n GENERATED_MINI_ROOTS.push(miniRoot);\n return miniRoot;\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 miniRoot of GENERATED_MINI_ROOTS) {\n rmSync(miniRoot, { 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('uses the real repository lockfile to include transitive anchor-trait for console-oft', async () => {\n const repo = join(__dirname, '..', '..', '..', '..', '..');\n const dependencyGraph = await resolveWorkspaceDependencyGraph({\n cwd: join(repo, 'apps/project-types/console-oft-app/contracts/solana'),\n repoRoot: repo,\n });\n\n expect(\n dependencyGraph.includedWorkspaceDependencies.map((dependency) => dependency.name),\n ).toContain('@layerzerolabs/framework-solana-anchor-trait');\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 '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 miniRoot = trackMiniRoot(result.miniRoot);\n\n expect(result.copiedWorkspaceDependencies).toHaveLength(1);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'target', 'deploy'))).toBe(false);\n expect(\n existsSync(\n join(\n miniRoot,\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 miniRoot,\n 'packages',\n 'dep',\n 'target',\n 'wasm32v1-none',\n 'release',\n 'program.wasm',\n ),\n ),\n ).toBe(true);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'node_modules'))).toBe(true);\n expect(\n existsSync(join(miniRoot, 'packages', 'dep', 'node_modules', 'pkg', 'index.js')),\n ).toBe(false);\n expect(\n lstatSync(\n join(miniRoot, 'packages', 'dep', 'node_modules', 'linked-pkg'),\n ).isSymbolicLink(),\n ).toBe(true);\n expect(readlinkSync(join(miniRoot, 'packages', 'dep', 'node_modules', 'linked-pkg'))).toBe(\n '../../../../node_modules/.pnpm/linked-pkg@1.0.0/node_modules/linked-pkg',\n );\n expect(lstatSync(join(miniRoot, 'packages', 'dep', 'src-link.ts')).isSymbolicLink()).toBe(\n true,\n );\n expect(readlinkSync(join(miniRoot, 'packages', 'dep', 'src-link.ts'))).toBe('src/index.ts');\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'dist', 'index.js'))).toBe(true);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'artifacts'))).toBe(false);\n expect(existsSync(join(miniRoot, 'apps', 'current'))).toBe(false);\n });\n\n it('applies glob-compatible mini-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 miniRoot = trackMiniRoot(result.miniRoot);\n\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(miniRoot, 'apps', 'current'))).toBe(false);\n expect(\n existsSync(join(miniRoot, 'packages', 'dep', 'programs', 'demo', 'src', 'lib.rs')),\n ).toBe(true);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'README.md'))).toBe(false);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'LICENSE'))).toBe(false);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'sdk'))).toBe(false);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'scripts'))).toBe(false);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'tests'))).toBe(false);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'programs', 'demo', 'tests'))).toBe(\n false,\n );\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'node_modules', 'pkg'))).toBe(false);\n expect(\n lstatSync(\n join(miniRoot, 'packages', 'dep', 'node_modules', 'dep-link'),\n ).isSymbolicLink(),\n ).toBe(true);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'target'))).toBe(false);\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 miniRoot = trackMiniRoot(result.miniRoot);\n\n expect(existsSync(join(miniRoot, 'apps', 'current'))).toBe(false);\n expect(existsSync(join(miniRoot, 'packages', 'anchor-dep', 'Anchor.toml'))).toBe(true);\n expect(\n existsSync(join(miniRoot, 'packages', 'anchor-dep', 'programs', 'demo', 'Cargo.toml')),\n ).toBe(true);\n expect(\n existsSync(\n join(miniRoot, 'packages', 'anchor-dep', 'programs', 'demo', 'src', 'lib.rs'),\n ),\n ).toBe(true);\n expect(\n existsSync(join(miniRoot, 'packages', 'anchor-dep', 'programs', 'demo', 'tests')),\n ).toBe(false);\n expect(existsSync(join(miniRoot, 'packages', 'utility-dep', 'src', 'index.ts'))).toBe(true);\n });\n});\n\ndescribe(createMiniWorkspace, () => {\n it('uses the unpruned source-copy fallback when no pruner is configured', async () => {\n const repo = createRepo('mini-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 createMiniWorkspace({ cwd: current });\n const miniRoot = trackMiniRoot(result.miniRoot);\n\n expect(result.prunerName).toBeUndefined();\n expect(result.diagnostics).toEqual([\n 'No mini-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(miniRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(miniRoot, 'apps', 'current'))).toBe(false);\n });\n\n it('uses a configured pruner to filter dependency package copies', async () => {\n const repo = createRepo('mini-workspace-pruner');\n const current = join(repo, 'apps', 'current');\n const dep = join(repo, 'packages', 'dep');\n const inputs: Parameters<MiniWorkspacePruner['createPrunePlan']>[0][] = [];\n const pruner: MiniWorkspacePruner = {\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 createMiniWorkspace({\n cwd: current,\n pruner,\n });\n const miniRoot = trackMiniRoot(result.miniRoot);\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(miniRoot, 'apps', 'current'))).toBe(false);\n expect(existsSync(join(miniRoot, 'packages', 'dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(miniRoot, '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('mini-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: MiniWorkspacePruner = {\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 createMiniWorkspace({\n cwd: current,\n pruner,\n });\n const miniRoot = trackMiniRoot(result.miniRoot);\n\n expect(existsSync(join(miniRoot, 'packages', 'pruned-dep', 'src', 'index.ts'))).toBe(true);\n expect(existsSync(join(miniRoot, 'packages', 'pruned-dep', 'tests'))).toBe(false);\n expect(existsSync(join(miniRoot, 'packages', 'default-dep', 'src', 'index.ts'))).toBe(true);\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 miniRoot = join(TMP, 'mini-node-modules-symlinks');\n const dep = join(repo, 'apps', 'oapp-app', 'contracts', 'solana');\n\n createPackage(dep, '@layerzerolabs/oapp-solana-impl');\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(miniRoot, '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-impl'),\n );\n symlinkSync('../..', join(repo, 'node_modules', '@layerzerolabs', 'whole-repo-link'));\n\n const result = await copyRootNodeModulesSymlinks({\n repoRoot: repo,\n miniRoot,\n dependencyNames: ['@layerzerolabs/oapp-solana-impl', '@types/node', 'eslint'],\n });\n\n expect(result.nodeModulesPath).toBe(join(miniRoot, 'node_modules'));\n expect(result.symlinks).toEqual([\n '@layerzerolabs/oapp-solana-impl',\n '@types/node',\n 'eslint',\n ]);\n expect(readlinkSync(join(miniRoot, 'node_modules', 'eslint'))).toBe(\n '.pnpm/eslint@1.0.0/node_modules/eslint',\n );\n expect(lstatSync(join(miniRoot, 'node_modules', '.pnpm')).isDirectory()).toBe(true);\n expect(existsSync(join(miniRoot, 'node_modules', '.bin', 'real-file'))).toBe(false);\n expect(existsSync(join(miniRoot, 'node_modules', '.bin', 'tsc'))).toBe(false);\n expect(lstatSync(join(miniRoot, 'node_modules', '@types', 'node')).isSymbolicLink()).toBe(\n true,\n );\n expect(\n lstatSync(\n join(miniRoot, 'node_modules', '@layerzerolabs', 'oapp-solana-impl'),\n ).isSymbolicLink(),\n ).toBe(true);\n expect(\n readlinkSync(join(miniRoot, 'node_modules', '@layerzerolabs', 'oapp-solana-impl')),\n ).toBe('../../apps/oapp-app/contracts/solana');\n expect(\n existsSync(join(miniRoot, '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"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { PnpmVirtualStoreMount, RootNodeModulesSymlinkCopyOptions, RootNodeModulesSymlinkCopyResult } from './types';
|
|
2
|
+
export declare const COPY_CONCURRENCY = 10;
|
|
3
|
+
/**
|
|
4
|
+
* Copy selected root node_modules dependency symlinks into a mini workspace.
|
|
5
|
+
*
|
|
6
|
+
* pnpm's node_modules is primarily symlinks over node_modules/.pnpm and workspace packages.
|
|
7
|
+
* Copying those symlinks does not copy their targets. The `.pnpm` virtual store is provided by a
|
|
8
|
+
* read-only Docker mount. Package dependency resolution stays package-local; the graph decides
|
|
9
|
+
* which root node_modules entries are needed by the workspace package closure.
|
|
10
|
+
*/
|
|
11
|
+
export declare const copyRootNodeModulesSymlinks: ({ repoRoot, miniRoot, dependencyNames, }: RootNodeModulesSymlinkCopyOptions) => Promise<RootNodeModulesSymlinkCopyResult>;
|
|
12
|
+
/**
|
|
13
|
+
* Describe the pnpm virtual store mount used by package-root container builds.
|
|
14
|
+
*
|
|
15
|
+
* The implementation should mount `.pnpm` instead of copying it. This preserves pnpm's dependency
|
|
16
|
+
* topology without copying the virtual store into every mini workspace.
|
|
17
|
+
*/
|
|
18
|
+
export declare const getPnpmVirtualStoreMount: (repoRoot: string, containerWorkspaceRoot?: string) => PnpmVirtualStoreMount;
|
|
19
|
+
//# sourceMappingURL=node-modules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-modules.d.ts","sourceRoot":"","sources":["../../src/mini-workspace/node-modules.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACR,qBAAqB,EACrB,iCAAiC,EACjC,gCAAgC,EACnC,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,gBAAgB,KAAK,CAAC;AA6BnC;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,GAAU,0CAI/C,iCAAiC,KAAG,OAAO,CAAC,gCAAgC,CAiB9E,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,GACjC,UAAU,MAAM,EAChB,+BAAqC,KACtC,qBAID,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"node-modules.js"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export interface WorkspaceDependencyEdge {
|
|
2
|
+
name: string;
|
|
3
|
+
importerRelativePath: string;
|
|
4
|
+
relativePath: string;
|
|
5
|
+
absolutePath: string;
|
|
6
|
+
version: string;
|
|
7
|
+
}
|
|
8
|
+
export interface WorkspaceDependencyGraph {
|
|
9
|
+
repoRoot: string;
|
|
10
|
+
packageRoot: string;
|
|
11
|
+
packageRelativePath: string;
|
|
12
|
+
/** Root node_modules symlink names referenced by the workspace package closure. */
|
|
13
|
+
rootNodeModulesDependencyNames: string[];
|
|
14
|
+
includedWorkspaceDependencies: WorkspaceDependencyEdge[];
|
|
15
|
+
}
|
|
16
|
+
export interface WorkspaceDependencyGraphOptions {
|
|
17
|
+
/** Package root whose workspace dependency graph should be calculated. */
|
|
18
|
+
cwd?: string;
|
|
19
|
+
/** Repository root. Defaults to the nearest ancestor containing pnpm-workspace.yaml. */
|
|
20
|
+
repoRoot?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface WorkspaceSourceCopyOptions {
|
|
23
|
+
dependencyGraph: WorkspaceDependencyGraph;
|
|
24
|
+
/** Ordered package-relative include/exclude expressions for workspace source copies. */
|
|
25
|
+
prunePatterns?: readonly string[];
|
|
26
|
+
/** Package-relative path overrides for workspace source copies. */
|
|
27
|
+
packagePrunePatterns?: Readonly<Record<string, readonly string[]>>;
|
|
28
|
+
}
|
|
29
|
+
export interface WorkspaceSourceCopyResult {
|
|
30
|
+
repoRoot: string;
|
|
31
|
+
packageRoot: string;
|
|
32
|
+
miniRoot: string;
|
|
33
|
+
packageRelativePath: string;
|
|
34
|
+
copiedWorkspaceDependencies: WorkspaceDependencyEdge[];
|
|
35
|
+
}
|
|
36
|
+
export interface PnpmVirtualStoreMount {
|
|
37
|
+
hostPath: string;
|
|
38
|
+
containerPath: string;
|
|
39
|
+
readOnly: true;
|
|
40
|
+
}
|
|
41
|
+
export interface RootNodeModulesSymlinkCopyOptions {
|
|
42
|
+
repoRoot: string;
|
|
43
|
+
miniRoot: string;
|
|
44
|
+
dependencyNames: readonly string[];
|
|
45
|
+
}
|
|
46
|
+
export interface RootNodeModulesSymlinkCopyResult {
|
|
47
|
+
nodeModulesPath: string;
|
|
48
|
+
symlinks: string[];
|
|
49
|
+
}
|
|
50
|
+
export interface MiniWorkspaceOptions {
|
|
51
|
+
cwd?: string;
|
|
52
|
+
pruner?: MiniWorkspacePruner;
|
|
53
|
+
}
|
|
54
|
+
export interface MiniWorkspace {
|
|
55
|
+
packageRoot: string;
|
|
56
|
+
repoRoot: string;
|
|
57
|
+
miniRoot: string;
|
|
58
|
+
packageRelativePath: string;
|
|
59
|
+
pnpmVirtualStoreMount: PnpmVirtualStoreMount;
|
|
60
|
+
copiedWorkspacePackageCount: number;
|
|
61
|
+
copiedWorkspacePackagePaths: Record<string, string>;
|
|
62
|
+
prunerName?: string;
|
|
63
|
+
diagnostics: string[];
|
|
64
|
+
}
|
|
65
|
+
export interface MiniWorkspacePruner {
|
|
66
|
+
name: string;
|
|
67
|
+
createPrunePlan: (input: MiniWorkspacePrunerInput) => Promise<MiniWorkspacePrunePlan>;
|
|
68
|
+
}
|
|
69
|
+
export interface MiniWorkspacePrunerInput {
|
|
70
|
+
repoRoot: string;
|
|
71
|
+
packageRoot: string;
|
|
72
|
+
packageRelativePath: string;
|
|
73
|
+
cwd: string;
|
|
74
|
+
dependencyGraph: WorkspaceDependencyGraph;
|
|
75
|
+
}
|
|
76
|
+
export interface MiniWorkspacePrunePlan {
|
|
77
|
+
patterns: readonly string[];
|
|
78
|
+
/** Overrides keyed by workspace package relative path. */
|
|
79
|
+
packagePatterns?: Readonly<Record<string, readonly string[]>>;
|
|
80
|
+
diagnostics?: readonly string[];
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mini-workspace/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/mini-workspace/types.ts"],"names":[],"mappings":";;;AAuFA,cAAA,EAAA","file":"types.js","sourcesContent":["export interface WorkspaceDependencyEdge {\n name: string;\n importerRelativePath: string;\n relativePath: string;\n absolutePath: string;\n version: string;\n}\n\nexport interface WorkspaceDependencyGraph {\n repoRoot: string;\n packageRoot: string;\n packageRelativePath: string;\n /** Root node_modules symlink names referenced by the workspace package closure. */\n rootNodeModulesDependencyNames: string[];\n includedWorkspaceDependencies: WorkspaceDependencyEdge[];\n}\n\nexport interface WorkspaceDependencyGraphOptions {\n /** Package root whose workspace dependency graph should be calculated. */\n cwd?: string;\n /** Repository root. Defaults to the nearest ancestor containing pnpm-workspace.yaml. */\n repoRoot?: string;\n}\n\nexport interface WorkspaceSourceCopyOptions {\n dependencyGraph: WorkspaceDependencyGraph;\n /** Ordered package-relative include/exclude expressions for workspace source copies. */\n prunePatterns?: readonly string[];\n /** Package-relative path overrides for workspace source copies. */\n packagePrunePatterns?: Readonly<Record<string, readonly string[]>>;\n}\n\nexport interface WorkspaceSourceCopyResult {\n repoRoot: string;\n packageRoot: string;\n miniRoot: string;\n packageRelativePath: string;\n copiedWorkspaceDependencies: WorkspaceDependencyEdge[];\n}\n\nexport interface PnpmVirtualStoreMount {\n hostPath: string;\n containerPath: string;\n readOnly: true;\n}\n\nexport interface RootNodeModulesSymlinkCopyOptions {\n repoRoot: string;\n miniRoot: string;\n dependencyNames: readonly string[];\n}\n\nexport interface RootNodeModulesSymlinkCopyResult {\n nodeModulesPath: string;\n symlinks: string[];\n}\n\nexport interface MiniWorkspaceOptions {\n cwd?: string;\n pruner?: MiniWorkspacePruner;\n}\n\nexport interface MiniWorkspace {\n packageRoot: string;\n repoRoot: string;\n miniRoot: string;\n packageRelativePath: string;\n pnpmVirtualStoreMount: PnpmVirtualStoreMount;\n copiedWorkspacePackageCount: number;\n copiedWorkspacePackagePaths: Record<string, string>;\n prunerName?: string;\n diagnostics: string[];\n}\n\nexport interface MiniWorkspacePruner {\n name: string;\n createPrunePlan: (input: MiniWorkspacePrunerInput) => Promise<MiniWorkspacePrunePlan>;\n}\n\nexport interface MiniWorkspacePrunerInput {\n repoRoot: string;\n packageRoot: string;\n packageRelativePath: string;\n cwd: string;\n dependencyGraph: WorkspaceDependencyGraph;\n}\n\nexport interface MiniWorkspacePrunePlan {\n patterns: readonly string[];\n /** Overrides keyed by workspace package relative path. */\n packagePatterns?: Readonly<Record<string, readonly string[]>>;\n diagnostics?: readonly string[];\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { WorkspaceDependencyGraph, WorkspaceDependencyGraphOptions } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the repo-local workspace dependency graph for package-root container builds.
|
|
4
|
+
*
|
|
5
|
+
* The traversal is recursive in graph terms, but not expensive in filesystem terms: it follows
|
|
6
|
+
* lockfile `link:` edges between importers instead of scanning packages or tool manifests. That means
|
|
7
|
+
* transitive source packages such as `anchor-trait` are included when reached through `oapp`/`oft`.
|
|
8
|
+
*/
|
|
9
|
+
export declare const resolveWorkspaceDependencyGraph: (options?: WorkspaceDependencyGraphOptions) => Promise<WorkspaceDependencyGraph>;
|
|
10
|
+
//# sourceMappingURL=workspace-dependency-graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-dependency-graph.d.ts","sourceRoot":"","sources":["../../src/mini-workspace/workspace-dependency-graph.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAER,wBAAwB,EACxB,+BAA+B,EAClC,MAAM,SAAS,CAAC;AA2KjB;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,GACxC,UAAS,+BAAoC,KAC9C,OAAO,CAAC,wBAAwB,CA6ElC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { resolveWorkspaceDependencyGraph } from '../ID575YY3.js';
|
|
2
|
+
import '../SKMNEOBU.js';
|
|
3
|
+
import '../LYF4JPSK.js';
|
|
4
|
+
import '../UBSQYHMB.js';
|
|
5
|
+
import '../6M2RYAT4.js';
|
|
6
|
+
//# sourceMappingURL=workspace-dependency-graph.js.map
|
|
7
|
+
//# sourceMappingURL=workspace-dependency-graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"workspace-dependency-graph.js"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { WorkspaceSourceCopyOptions, WorkspaceSourceCopyResult } from './types';
|
|
2
|
+
export declare const DEFAULT_SOURCE_COPY_PATTERNS: readonly ["**/*"];
|
|
3
|
+
export declare const DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS: readonly ["!**/.git/**", "!**/.next/**", "!**/.pnpm/**", "!**/.turbo/**", "!**/artifacts*/**", "!**/cache/**", "!**/debug_info/**", "!**/hh-cache/**", "!**/out/**", "!**/target/**", "!**/typechain-types/**"];
|
|
4
|
+
/**
|
|
5
|
+
* Copy only dependency source-like files for the resolved workspace dependency graph into a
|
|
6
|
+
* repo-shaped mini workspace.
|
|
7
|
+
*
|
|
8
|
+
* The current package itself is not copied. It is mounted from the host at the same repo-relative
|
|
9
|
+
* 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.
|
|
13
|
+
*/
|
|
14
|
+
export declare const copyWorkspaceSources: (options: WorkspaceSourceCopyOptions) => Promise<WorkspaceSourceCopyResult>;
|
|
15
|
+
//# sourceMappingURL=workspace-source-copy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-source-copy.d.ts","sourceRoot":"","sources":["../../src/mini-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,iNAYvC,CAAC;AA0FX;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,GAC7B,SAAS,0BAA0B,KACpC,OAAO,CAAC,yBAAyB,CAuDnC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { DEFAULT_SOURCE_COPY_EXCLUDE_PATTERNS, DEFAULT_SOURCE_COPY_PATTERNS, copyWorkspaceSources } from '../BTTCOAYB.js';
|
|
2
|
+
import '../SKMNEOBU.js';
|
|
3
|
+
import '../ZBEXHZRK.js';
|
|
4
|
+
import '../6M2RYAT4.js';
|
|
5
|
+
//# sourceMappingURL=workspace-source-copy.js.map
|
|
6
|
+
//# sourceMappingURL=workspace-source-copy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"workspace-source-copy.js"}
|
package/dist/test.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { testTools } from './
|
|
2
|
-
import './
|
|
3
|
-
import './
|
|
4
|
-
import './
|
|
5
|
-
import './
|
|
6
|
-
import './
|
|
1
|
+
export { testTools } from './7AOPRLRU.js';
|
|
2
|
+
import './H7PAZQ2B.js';
|
|
3
|
+
import './4LO2IH4K.js';
|
|
4
|
+
import './DHOHK2AA.js';
|
|
5
|
+
import './UBSQYHMB.js';
|
|
6
|
+
import './6M2RYAT4.js';
|
|
7
7
|
//# sourceMappingURL=test.js.map
|
|
8
8
|
//# sourceMappingURL=test.js.map
|
package/dist/utils/docker.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { findImageForTool, getImageTag, getImageUri, qualifyVolumeName, resolveDockerPlatform, resolveDockerPlatformExecution, resolveEffectiveDockerPlatformValue } from '../
|
|
2
|
-
import '../
|
|
3
|
-
import '../
|
|
4
|
-
import '../
|
|
5
|
-
import '../
|
|
1
|
+
export { findImageForTool, getImageTag, getImageUri, qualifyVolumeName, resolveDockerPlatform, resolveDockerPlatformExecution, resolveEffectiveDockerPlatformValue } from '../H7PAZQ2B.js';
|
|
2
|
+
import '../4LO2IH4K.js';
|
|
3
|
+
import '../DHOHK2AA.js';
|
|
4
|
+
import '../UBSQYHMB.js';
|
|
5
|
+
import '../6M2RYAT4.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 '../
|
|
2
|
-
import { resolveDockerPlatform, resolveEffectiveDockerPlatformValue, resolveDockerPlatformExecution, qualifyVolumeName } from '../
|
|
3
|
-
import { isDockerPlatformOverride } from '../
|
|
4
|
-
import '../
|
|
5
|
-
import '../
|
|
6
|
-
import { init_esm_shims, __name } from '../
|
|
1
|
+
import { describe, afterEach, it, globalExpect, beforeEach } from '../5GPTK3MH.js';
|
|
2
|
+
import { resolveDockerPlatform, resolveEffectiveDockerPlatformValue, resolveDockerPlatformExecution, qualifyVolumeName } from '../H7PAZQ2B.js';
|
|
3
|
+
import { isDockerPlatformOverride } from '../4LO2IH4K.js';
|
|
4
|
+
import '../DHOHK2AA.js';
|
|
5
|
+
import '../UBSQYHMB.js';
|
|
6
|
+
import { init_esm_shims, __name } from '../6M2RYAT4.js';
|
|
7
7
|
|
|
8
8
|
// src/utils/docker.test.ts
|
|
9
9
|
init_esm_shims();
|
package/dist/utils/error.js
CHANGED
package/dist/utils/finder.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { findToolByName, findToolVersionsForCombination, getImageName, getToolDefaultVersion, getToolSupportedVersions } from '../
|
|
2
|
-
import '../
|
|
1
|
+
export { findToolByName, findToolVersionsForCombination, getImageName, getToolDefaultVersion, getToolSupportedVersions } from '../UBSQYHMB.js';
|
|
2
|
+
import '../6M2RYAT4.js';
|
|
3
3
|
//# sourceMappingURL=finder.js.map
|
|
4
4
|
//# sourceMappingURL=finder.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface SafeRemoveOptions {
|
|
2
|
+
maxRetries?: number;
|
|
3
|
+
retryDelayMs?: number;
|
|
4
|
+
}
|
|
5
|
+
interface SafeRemoveResult {
|
|
6
|
+
removed: boolean;
|
|
7
|
+
error?: unknown;
|
|
8
|
+
}
|
|
9
|
+
export declare const isInside: (parent: string, child: string) => boolean;
|
|
10
|
+
export declare const safeRemove: (path: string, { maxRetries, retryDelayMs, }?: SafeRemoveOptions) => Promise<SafeRemoveResult>;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=fs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAIA,UAAU,iBAAiB;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,UAAU,gBAAgB;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAmBD,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,EAAE,OAAO,MAAM,KAAG,OAGxD,CAAC;AAIF,eAAO,MAAM,UAAU,GACnB,MAAM,MAAM,EACZ,gCAGG,iBAAsB,KAC1B,OAAO,CAAC,gBAAgB,CAmB1B,CAAC"}
|
package/dist/utils/fs.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"fs.js"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -2,5 +2,4 @@ import type { VersionCombination } from './config';
|
|
|
2
2
|
import type { ChainContext } from './context';
|
|
3
3
|
export declare const getCombinationId: <TImageId extends string>(context: ChainContext<TImageId>, combination: VersionCombination<TImageId>) => string;
|
|
4
4
|
export declare const findFileInParentDirectory: (directory: string, filename: string) => Promise<string | null>;
|
|
5
|
-
export declare const findWorkspaceRoot: (directory: string) => Promise<string>;
|
|
6
5
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAG9C,eAAO,MAAM,gBAAgB,GAAI,QAAQ,SAAS,MAAM,EACpD,SAAS,YAAY,CAAC,QAAQ,CAAC,EAC/B,aAAa,kBAAkB,CAAC,QAAQ,CAAC,KAC1C,MAIe,CAAC;AAEnB,eAAO,MAAM,yBAAyB,GAClC,WAAW,MAAM,EACjB,UAAU,MAAM,KACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAavB,CAAC"}
|
package/dist/utils.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { findFileInParentDirectory,
|
|
2
|
-
import './
|
|
3
|
-
import './
|
|
1
|
+
export { findFileInParentDirectory, getCombinationId } from './LYF4JPSK.js';
|
|
2
|
+
import './UBSQYHMB.js';
|
|
3
|
+
import './6M2RYAT4.js';
|
|
4
4
|
//# sourceMappingURL=utils.js.map
|
|
5
5
|
//# sourceMappingURL=utils.js.map
|
package/package.json
CHANGED
|
@@ -18,10 +18,13 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"commander": "13.1.0",
|
|
20
20
|
"es-toolkit": "^1.39.10",
|
|
21
|
+
"glob": "^10.3.10",
|
|
22
|
+
"p-limit": "^6.1.0",
|
|
21
23
|
"semver": "^7.5.4",
|
|
24
|
+
"yaml": "^2.2.2",
|
|
22
25
|
"zod": "4.3.5",
|
|
23
26
|
"zx": "^8.8.5",
|
|
24
|
-
"@layerzerolabs/common-node-utils": "0.2.
|
|
27
|
+
"@layerzerolabs/common-node-utils": "0.2.114"
|
|
25
28
|
},
|
|
26
29
|
"devDependencies": {
|
|
27
30
|
"@jest/globals": "^29.7.0",
|
|
@@ -33,9 +36,9 @@
|
|
|
33
36
|
"tsx": "^4.21.0",
|
|
34
37
|
"typescript": "^5.8.2",
|
|
35
38
|
"vitest": "^3.2.6",
|
|
36
|
-
"@layerzerolabs/
|
|
37
|
-
"@layerzerolabs/
|
|
38
|
-
"@layerzerolabs/
|
|
39
|
+
"@layerzerolabs/typescript-configuration": "0.2.114",
|
|
40
|
+
"@layerzerolabs/vitest-configuration": "0.2.114",
|
|
41
|
+
"@layerzerolabs/tsup-configuration": "0.2.114"
|
|
39
42
|
},
|
|
40
43
|
"publishConfig": {
|
|
41
44
|
"access": "public",
|
|
@@ -50,7 +53,7 @@
|
|
|
50
53
|
"onesig-client"
|
|
51
54
|
]
|
|
52
55
|
},
|
|
53
|
-
"version": "0.2.
|
|
56
|
+
"version": "0.2.114",
|
|
54
57
|
"scripts": {
|
|
55
58
|
"build": "tsup",
|
|
56
59
|
"lint": "eslint . --max-warnings 0 || (eslint . --fix --max-warnings 0 && false)",
|
package/dist/3N42XVZL.js
DELETED
package/dist/7CGWPLOJ.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config.ts"],"names":["registryConfigCache","getRegistryConfig","registry","imageDirectory","workspaceRoot","getFullyQualifiedRepoRootPath","configPath","join","module","default","CARGO_TARGET_CACHE_PATH","volumeMappingBaseSchema","object","containerPath","string","hostVolumeMappingSchema","extend","type","literal","hostPath","isolateVolumeMappingSchema","name","shared","optional","boolean","locked","toolchainKeyed","architectureIndependent","volumeMappingSchema","union","DOCKER_PLATFORM_VALUES","DOCKER_PLATFORM_NATIVE","DOCKER_PLATFORM_OVERRIDE_VALUES","DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION","dockerPlatformOverrideValueSet","Set","isDockerPlatformOverride","input","has","DockerRegistryMirror","getImageDirectory","getRegistry"],"mappings":";;;;;;;AAAA,cAAA,EAAA;AAcA,IAAIA,mBAAAA;AAEJ,IAAMC,oCAAoB,MAAA,CAAA,YAAA;AACtB,EAAA,IAAI,CAACD,mBAAAA,EAAqB;AACtB,IAAA,IAAgBE,YAAwBC,cAAAA,EAAgB;AACpDH,MAAAA,mBAAAA,GAAsB;AAClBE,QAAAA,QAAAA;AACAC,QAAAA;AACJ,OAAA;IACJ,CAAA,MAAO;AACH,MAAA,MAAMC,aAAAA,GAAgB,MAAMC,6BAAAA,EAAAA;AAC5B,MAAA,MAAMC,aAAaC,IAAAA,CACfH,aAAAA,EACA,SAAA,EACA,YAAA,EACA,UACA,sBAAA,CAAA;AAGJ,MAAA,MAAMI,MAAAA,GAAS,MAAM,OAAOF,UAAAA,CAAAA;AAC5BN,MAAAA,mBAAAA,GAAsBQ,MAAAA,CAAOC,OAAAA;AACjC,IAAA;AACJ,EAAA;AACA,EAAA,OAAOT,mBAAAA;AACX,CAAA,EAtB0B,mBAAA,CAAA;AA2BnB,IAAMU,uBAAAA,GAA0B;AAEvC,IAAMC,0BAA4BC,CAAAA,CAAAA,MAAAA,CAAO;AACrCC,EAAAA,aAAAA,EAAiBC,CAAAA,CAAAA,MAAAA;AACrB,CAAA,CAAA;AAEA,IAAMC,uBAAAA,GAA0BJ,wBAAwBK,MAAAA,CAAO;AAC3DC,EAAAA,IAAAA,EAAQC,UAAQ,MAAA,CAAA;AAChBC,EAAAA,QAAAA,EAAYL,CAAAA,CAAAA,MAAAA;AAChB,CAAA,CAAA;AAEA,IAAMM,0BAAAA,GAA6BT,wBAAwBK,MAAAA,CAAO;AAC9DC,EAAAA,IAAAA,EAAQC,UAAQ,SAAA,CAAA;AAChBG,EAAAA,IAAAA,EAAQP,CAAAA,CAAAA,MAAAA,EAAM;EACdQ,MAAAA,EAAUC,CAAAA,CAAAA,QAAAA,CAAWC,WAAO,CAAA;EAC5BC,MAAAA,EAAUF,CAAAA,CAAAA,QAAAA,CAAWC,WAAO,CAAA;;;EAG5BE,cAAAA,EAAkBH,CAAAA,CAAAA,QAAAA,CAAWC,WAAO,CAAA;;;EAGpCG,uBAAAA,EAA2BJ,CAAAA,CAAAA,QAAAA,CAAWC,WAAO;AACjD,CAAA,CAAA;AAEO,IAAMI,sBAAwBC,CAAAA,CAAAA,KAAAA,CAAM;AAACd,EAAAA,uBAAAA;AAAyBK,EAAAA;AAA2B,CAAA;AAYzF,IAAMU,sBAAAA,GAAyB;AAAC,EAAA,aAAA;AAAe,EAAA;;AAC/C,IAAMC,sBAAAA,GAAyB;AAC/B,IAAMC,+BAAAA,GAAkC;AAC3CD,EAAAA,sBAAAA;AACGD,EAAAA,GAAAA;;AAEA,IAAMG,2CAAAA,GACTD,+BAAAA,CAAgCzB,IAAAA,CAAK,IAAA;AAEzC,IAAM2B,8BAAAA,GAAiC,IAAIC,GAAAA,CAAYH,+BAAAA,CAAAA;AAKhD,IAAMI,wBAAAA,2BAA4BC,KAAAA,KACrC,OAAOA,UAAU,QAAA,IAAYH,8BAAAA,CAA+BI,GAAAA,CAAID,KAAAA,CAAAA,EAD5B,0BAAA;AA4BjC,IAAWE,oBAAAA,6BAAAA,qBAAAA,EAAAA;;AAAAA,EAAAA,OAAAA,qBAAAA;;AAkBX,IAAMC,iBAAAA,mBAAoB,MAAA,CAAA,YAAA,CAAa,MAAMvC,iBAAAA,IAAqBE,cAAAA,EAAxC,mBAAA;AAC1B,IAAMsC,WAAAA,mBAAc,MAAA,CAAA,YAAA,CAAa,MAAMxC,iBAAAA,IAAqBC,QAAAA,EAAxC,aAAA","file":"7CGWPLOJ.js","sourcesContent":["import { join } from 'node:path';\nimport * as z from 'zod';\n\nimport { getFullyQualifiedRepoRootPath } from '@layerzerolabs/common-node-utils';\n\nimport type { ChainContext } from './context';\nimport type { ToolCommandExecutionOptions } from './core/tool-executor';\nimport * as environment from './environment';\n\ninterface RegistryConfig {\n registry: string;\n imageDirectory: string;\n}\n\nlet registryConfigCache: RegistryConfig | undefined;\n\nconst getRegistryConfig = async (): Promise<RegistryConfig> => {\n if (!registryConfigCache) {\n if (environment.registry && environment.imageDirectory) {\n registryConfigCache = {\n registry: environment.registry,\n imageDirectory: environment.imageDirectory,\n };\n } else {\n const workspaceRoot = await getFullyQualifiedRepoRootPath();\n const configPath = join(\n workspaceRoot,\n 'configs',\n 'vm-tooling',\n 'values',\n 'docker-image-repo.ts',\n );\n\n const module = await import(configPath);\n registryConfigCache = module.default;\n }\n }\n return registryConfigCache!;\n};\n\n// Container path for the shared cargo build-artifact cache. A VM mounts its toolchain `target/`\n// cache at this path; resolveCargoCacheEnv keys on it to inject CARGO_TARGET_DIR. Single source so\n// the helper's lookup and each VM config's containerPath can't drift apart.\nexport const CARGO_TARGET_CACHE_PATH = '/cargo-target';\n\nconst volumeMappingBaseSchema = z.object({\n containerPath: z.string(),\n});\n\nconst hostVolumeMappingSchema = volumeMappingBaseSchema.extend({\n type: z.literal('host'),\n hostPath: z.string(),\n});\n\nconst isolateVolumeMappingSchema = volumeMappingBaseSchema.extend({\n type: z.literal('isolate'),\n name: z.string(),\n shared: z.optional(z.boolean()),\n locked: z.optional(z.boolean()),\n // Share this cache across packages on the same toolchain instead of per-package. See\n // qualifyVolumeName. Opt-in — omit to keep it package-private.\n toolchainKeyed: z.optional(z.boolean()),\n // Opt out of arch-namespacing for volumes holding no compiled artifacts (config/state).\n // Suffixing is the safe default: under-splitting an arch-sensitive cache poisons it.\n architectureIndependent: z.optional(z.boolean()),\n});\n\nexport const volumeMappingSchema = z.union([hostVolumeMappingSchema, isolateVolumeMappingSchema]);\n\nexport type VolumeMapping = z.infer<typeof volumeMappingSchema>;\n\nexport interface EnvironmentVariable {\n name: string;\n value: string;\n}\n\n// Explicit platform pins currently supported by tool config and the CLI.\n// `native` is a CLI-only escape hatch that runs Docker without `--platform`\n// and clears DOCKER_DEFAULT_PLATFORM for that invocation.\nexport const DOCKER_PLATFORM_VALUES = ['linux/amd64', 'linux/arm64'] as const;\nexport const DOCKER_PLATFORM_NATIVE = 'native';\nexport const DOCKER_PLATFORM_OVERRIDE_VALUES = [\n DOCKER_PLATFORM_NATIVE,\n ...DOCKER_PLATFORM_VALUES,\n] as const;\nexport const DOCKER_PLATFORM_OVERRIDE_VALUES_DESCRIPTION =\n DOCKER_PLATFORM_OVERRIDE_VALUES.join(', ');\n\nconst dockerPlatformOverrideValueSet = new Set<string>(DOCKER_PLATFORM_OVERRIDE_VALUES);\n\nexport type DockerPlatformValue = (typeof DOCKER_PLATFORM_VALUES)[number];\nexport type DockerPlatformOverride = (typeof DOCKER_PLATFORM_OVERRIDE_VALUES)[number];\n\nexport const isDockerPlatformOverride = (input: unknown): input is DockerPlatformOverride =>\n typeof input === 'string' && dockerPlatformOverrideValueSet.has(input);\n\nexport interface Tool {\n name: string;\n privileged?: boolean;\n\n // Docker platform to use when running this tool's image\n dockerPlatform?: DockerPlatformValue;\n\n // Default isolate volumes for caching (user volumes can override these)\n defaultVolumes?: readonly VolumeMapping[];\n\n // Default environment variables (user env vars can override these)\n defaultEnv?: readonly EnvironmentVariable[];\n\n // Optional version parsing and validation functions\n getSecondaryVersion?: (args: { cwd: string }) => Promise<string>;\n\n getLocalVersion?: (args: { cwd: string }) => Promise<string>;\n\n // Optional hook called before every tool command execution (e.g., toolchain sync)\n preExecute?: (\n context: ChainContext<string>,\n options: ToolCommandExecutionOptions,\n ) => Promise<void>;\n}\n\nexport const enum DockerRegistryMirror {\n PUBLIC_GAR = 'public-gar',\n}\n\nexport interface Image {\n name: string;\n versions: Record<string, string>;\n dependencies?: Record<string, string>;\n patch?: number;\n mirrorRegistries?: DockerRegistryMirror[];\n}\n\nexport interface VersionCombination<TImageId> {\n images: Record<string, TImageId>;\n description?: string;\n stable?: boolean;\n}\n\nexport const getImageDirectory = async () => (await getRegistryConfig()).imageDirectory;\nexport const getRegistry = async () => (await getRegistryConfig()).registry;\n"]}
|