@layerzerolabs/build-utils-rust 0.2.124 → 0.2.125

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.
@@ -12,32 +12,32 @@
12
12
  ESM Build start
13
13
  ESM dist/index.js 264.00 B
14
14
  ESM dist/resolve/index.js 297.00 B
15
+ ESM dist/resolve/discover.js 250.00 B
15
16
  ESM dist/cli.js 1.29 KB
16
17
  ESM dist/logger.js 171.00 B
17
- ESM dist/resolve/discover.js 250.00 B
18
18
  ESM dist/resolve/io.js 224.00 B
19
- ESM dist/ZH2AZQUX.js 4.71 KB
20
- ESM dist/NVUOVNKE.js 1.71 KB
21
- ESM dist/UB65DPGZ.js 3.20 KB
22
- ESM dist/PSAML6YW.js 1.78 KB
19
+ ESM dist/N4NI6N3K.js 3.20 KB
20
+ ESM dist/resolve/rewrite.js 333.00 B
21
+ ESM dist/ZQ7KHDAO.js 1.71 KB
22
+ ESM dist/ZS7IDLZZ.js 1.78 KB
23
23
  ESM dist/UDDAJZY4.js 796.00 B
24
+ ESM dist/N2QRCDCB.js 4.71 KB
24
25
  ESM dist/VUOMXK5T.js 222.00 B
25
- ESM dist/XEADETHB.js 1.29 KB
26
- ESM dist/resolve/rewrite.js 333.00 B
26
+ ESM dist/2T2WFWNM.js 1.38 KB
27
27
  ESM dist/resolve/exclude.js 187.00 B
28
28
  ESM dist/index.js.map 69.00 B
29
+ ESM dist/resolve/discover.js.map 72.00 B
30
+ ESM dist/cli.js.map 2.44 KB
29
31
  ESM dist/resolve/index.js.map 69.00 B
30
32
  ESM dist/logger.js.map 70.00 B
31
- ESM dist/cli.js.map 2.44 KB
32
- ESM dist/resolve/discover.js.map 72.00 B
33
33
  ESM dist/resolve/io.js.map 66.00 B
34
- ESM dist/ZH2AZQUX.js.map 14.05 KB
35
- ESM dist/NVUOVNKE.js.map 5.33 KB
36
- ESM dist/UB65DPGZ.js.map 8.64 KB
37
- ESM dist/PSAML6YW.js.map 4.67 KB
34
+ ESM dist/N4NI6N3K.js.map 8.64 KB
35
+ ESM dist/resolve/rewrite.js.map 71.00 B
36
+ ESM dist/ZQ7KHDAO.js.map 5.33 KB
38
37
  ESM dist/UDDAJZY4.js.map 1.55 KB
38
+ ESM dist/ZS7IDLZZ.js.map 4.67 KB
39
+ ESM dist/N2QRCDCB.js.map 14.05 KB
39
40
  ESM dist/VUOMXK5T.js.map 72.00 B
40
- ESM dist/resolve/rewrite.js.map 71.00 B
41
- ESM dist/XEADETHB.js.map 2.82 KB
41
+ ESM dist/2T2WFWNM.js.map 2.93 KB
42
42
  ESM dist/resolve/exclude.js.map 71.00 B
43
- ESM ⚡️ Build success in 165ms
43
+ ESM ⚡️ Build success in 137ms
@@ -2,7 +2,7 @@
2
2
  > @layerzerolabs/build-utils-rust@0.0.0 lint /home/runner/work/monorepo-internal/monorepo-internal/tools/vm-utils/rust/build-utils
3
3
  > eslint . --max-warnings 0 || (eslint . --fix --max-warnings 0 && false)
4
4
 
5
- (node:123043) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1784049828918 is not specified and it doesn't parse as CommonJS.
5
+ (node:117880) [MODULE_TYPELESS_PACKAGE_JSON] Warning: Module type of file:///home/runner/work/monorepo-internal/monorepo-internal/eslint.config.js?mtime=1784079981040 is not specified and it doesn't parse as CommonJS.
6
6
  Reparsing as ES module because module syntax was detected. This incurs a performance overhead.
7
7
  To eliminate this warning, add "type": "module" to /home/runner/work/monorepo-internal/monorepo-internal/package.json.
8
8
  (Use `node --trace-warnings ...` to show where the warning was created)
@@ -13,20 +13,20 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
13
13
  stdout | tests/resolve/index.test.ts > resolveDependencies — workspace mode ([workspace] members) > places dependencies/ at workspace root when root Cargo.toml has [workspace]
14
14
  [INFO] Resolved 1 Cargo dependencies into dependencies
15
15
 
16
- ✓ tests/resolve/discover.test.ts (16 tests) 26ms
16
+ ✓ tests/resolve/discover.test.ts (16 tests) 17ms
17
17
  stdout | tests/resolve/index.test.ts > resolveDependencies — transitive dep rewriting > rewrites paths inside copied crates to point to flat siblings
18
18
  [INFO] Resolved 2 Cargo dependencies into dependencies
19
19
 
20
20
  stdout | tests/resolve/index.test.ts > resolveDependencies — transitive dep rewriting > strips root-only Cargo tables from copied dependency manifests
21
21
  [INFO] Resolved 1 Cargo dependencies into dependencies
22
22
 
23
- ✓ tests/resolve/rewrite.test.ts (22 tests) 38ms
24
23
  stdout | tests/resolve/index.test.ts > resolveDependencies — Stellar workspace dependency vendoring > copies the whole workspace tree, including deeply nested members
25
24
  [INFO] Resolved 1 Cargo dependencies into dependencies
26
25
 
27
26
  stdout | tests/resolve/index.test.ts > resolveDependencies — Stellar workspace dependency vendoring > preserves the [workspace] root manifest so member inheritance still resolves
28
27
  [INFO] Resolved 1 Cargo dependencies into dependencies
29
28
 
29
+ ✓ tests/resolve/rewrite.test.ts (22 tests) 32ms
30
30
  stdout | tests/resolve/index.test.ts > resolveDependencies — Stellar workspace dependency vendoring > leaves the consumer manifest untouched (it already points at dependencies/)
31
31
  [INFO] Resolved 1 Cargo dependencies into dependencies
32
32
 
@@ -60,11 +60,11 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
60
60
  stdout | tests/resolve/index.test.ts > resolveDependencies — error handling > empty node_modules does not change dependencies state > dependencies already exists
61
61
  [INFO] No @layerzerolabs namespaced Cargo dependencies found in node_modules
62
62
 
63
- ✓ tests/resolve/index.test.ts (18 tests) 157ms
63
+ ✓ tests/resolve/index.test.ts (18 tests) 77ms
64
64
 
65
65
   Test Files  3 passed (3)
66
66
   Tests  56 passed (56)
67
67
  Type Errors  no errors
68
-  Start at  17:29:23
69
-  Duration  684ms (transform 236ms, setup 0ms, collect 615ms, tests 221ms, environment 1ms, prepare 350ms)
68
+  Start at  01:50:29
69
+  Duration  466ms (transform 202ms, setup 0ms, collect 465ms, tests 126ms, environment 0ms, prepare 207ms)
70
70
 
@@ -31,6 +31,8 @@ var EXCLUDE_FILE = /* @__PURE__ */ new Set([
31
31
  // npm
32
32
  "package.json",
33
33
  "pnpm-lock.yaml",
34
+ // Host-side TS config only; not needed for Rust crate vendoring.
35
+ "tsconfig.json",
34
36
  // turbo
35
37
  "turbo-snapshot.lock.json",
36
38
  "turbo.json",
@@ -51,5 +53,5 @@ var removeExcludedFiles = /* @__PURE__ */ __name((entries) => entries.filter((en
51
53
  var hasExcludedSegment = /* @__PURE__ */ __name((relPath) => relPath.split(/[\\/]+/).some((segment) => EXCLUDE_DIR.has(segment)), "hasExcludedSegment");
52
54
 
53
55
  export { COPY_EXTENSIONS, hasExcludedSegment, removeExcludedFiles };
54
- //# sourceMappingURL=XEADETHB.js.map
55
- //# sourceMappingURL=XEADETHB.js.map
56
+ //# sourceMappingURL=2T2WFWNM.js.map
57
+ //# sourceMappingURL=2T2WFWNM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/resolve/exclude.ts"],"names":["COPY_EXTENSIONS","Set","EXCLUDE_DIR","EXCLUDE_FILE","COPY_EXCLUDES","removeExcludedFiles","entries","filter","entry","has","hasExcludedSegment","relPath","split","some","segment"],"mappings":";;;AACO,IAAMA,eAAAA,uBAAsBC,GAAAA,CAAI;AAAC,EAAA,KAAA;AAAO,EAAA,OAAA;AAAS,EAAA;AAAQ,CAAA;AAGhE,IAAMC,WAAAA,uBAAkBD,GAAAA,CAAI;;AAExB,EAAA,cAAA;AACA,EAAA,cAAA;AACA,EAAA,QAAA;AACA,EAAA,QAAA;;AAEA,EAAA,UAAA;AACA,EAAA,SAAA;AACA,EAAA,MAAA;AACA,EAAA,QAAA;;AAEA,EAAA,MAAA;AACA,EAAA,SAAA;;AAEA,EAAA,OAAA;AACA,EAAA,mBAAA;AACA,EAAA,mBAAA;;AAEA,EAAA;AACH,CAAA,CAAA;AAGD,IAAME,YAAAA,uBAAmBF,GAAAA,CAAI;;AAEzB,EAAA,cAAA;AACA,EAAA,gBAAA;;AAEA,EAAA,eAAA;;AAEA,EAAA,0BAAA;AACA,EAAA,YAAA;;AAEA,EAAA,YAAA;AACA,EAAA,aAAA;AACA,EAAA,WAAA;AACA,EAAA,qBAAA;AACA,EAAA,cAAA;;AAEA,EAAA;AACH,CAAA,CAAA;AAED,IAAMG,aAAAA,uBAAoBH,GAAAA,CAAI;AAAIC,EAAAA,GAAAA,WAAAA;AAAgBC,EAAAA,GAAAA;AAAa,CAAA,CAAA;AAGxD,IAAME,mBAAAA,mBAAsB,MAAA,CAAA,CAACC,OAAAA,KAChCA,OAAAA,CAAQC,MAAAA,CAAO,CAACC,KAAAA,KAAU,CAACJ,aAAAA,CAAcK,GAAAA,CAAID,KAAAA,CAAAA,CAAAA,EADd,qBAAA;AAO5B,IAAME,kBAAAA,mBAAqB,MAAA,CAAA,CAACC,OAAAA,KAC/BA,OAAAA,CAAQC,MAAM,QAAA,CAAA,CAAUC,IAAAA,CAAK,CAACC,OAAAA,KAAYZ,WAAAA,CAAYO,GAAAA,CAAIK,OAAAA,CAAAA,CAAAA,EAD5B,oBAAA","file":"2T2WFWNM.js","sourcesContent":["/** Files vendored into dependencies/ — everything else is skipped by type. */\nexport const COPY_EXTENSIONS = new Set(['.rs', '.toml', '.json']);\n\n/** Directories never descended into when copying or scanning. */\nconst EXCLUDE_DIR = new Set([\n // npm directories\n 'dependencies',\n 'node_modules',\n 'target',\n '.turbo',\n // cargo directories\n 'examples',\n 'benches',\n 'fuzz',\n '.cargo',\n // vcs / ci\n '.git',\n '.github',\n // shared directories\n 'tests',\n 'integration-tests',\n 'integration_tests',\n // stellar test snapshots\n 'test_snapshots',\n]);\n\n/** Files matching COPY_EXTENSIONS that must still be skipped — lockfiles, toolchain config, etc. */\nconst EXCLUDE_FILE = new Set([\n // npm\n 'package.json',\n 'pnpm-lock.yaml',\n // Host-side TS config only; not needed for Rust crate vendoring.\n 'tsconfig.json',\n // turbo\n 'turbo-snapshot.lock.json',\n 'turbo.json',\n // cargo/rust\n 'Cargo.lock',\n 'clippy.toml',\n 'deny.toml',\n 'rust-toolchain.toml',\n 'rustfmt.toml',\n // solana\n 'Anchor.toml',\n]);\n\nconst COPY_EXCLUDES = new Set([...EXCLUDE_DIR, ...EXCLUDE_FILE]);\n\n/** Filter excluded names from a directory listing. */\nexport const removeExcludedFiles = (entries: string[]): string[] =>\n entries.filter((entry) => !COPY_EXCLUDES.has(entry));\n\n/**\n * True if a resolved crate path contains an excluded segment.\n * Do not use on raw `path` dep values — those legitimately pass through node_modules.\n */\nexport const hasExcludedSegment = (relPath: string): boolean =>\n relPath.split(/[\\\\/]+/).some((segment) => EXCLUDE_DIR.has(segment));\n"]}
@@ -1,7 +1,7 @@
1
- import { isWorkspaceRoot } from './NVUOVNKE.js';
2
- import { tryRealpath } from './PSAML6YW.js';
1
+ import { isWorkspaceRoot } from './ZQ7KHDAO.js';
2
+ import { tryRealpath } from './ZS7IDLZZ.js';
3
3
  import { logger } from './UDDAJZY4.js';
4
- import { hasExcludedSegment } from './XEADETHB.js';
4
+ import { hasExcludedSegment } from './2T2WFWNM.js';
5
5
  import { __name } from './VUOMXK5T.js';
6
6
  import { readFile, writeFile } from 'fs/promises';
7
7
  import { relative, dirname, join } from 'path';
@@ -111,5 +111,5 @@ var rewriteCargoTomls = /* @__PURE__ */ __name(async (srcRoot, destRoot, tree, c
111
111
  }, "rewriteCargoTomls");
112
112
 
113
113
  export { pruneExcludedLiteralMembers, rewriteCargoToml, rewriteCargoTomls, rewritePathDeps, stripRootOnlyTables };
114
- //# sourceMappingURL=ZH2AZQUX.js.map
115
- //# sourceMappingURL=ZH2AZQUX.js.map
114
+ //# sourceMappingURL=N2QRCDCB.js.map
115
+ //# sourceMappingURL=N2QRCDCB.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/resolve/rewrite.ts"],"names":["isTable","value","Array","isArray","DEP_TABLE_KEYS","pathDepSpecs","manifest","includeWorkspaceDeps","containers","target","Object","values","filter","depTables","flatMap","container","map","key","workspace","dependencies","table","spec","path","pruneExcludedLiteralMembers","changed","members","kept","m","includes","hasExcludedSegment","length","rewritePathDeps","originalDir","manifestDir","ctx","resolveViaRealpath","pathMap","resolveViaNameFallback","rewritten","relative","logger","trace","stripRootOnlyTables","rewriteCargoToml","cargoTomlPath","stripRootTables","parse","readFile","pathsChanged","dirname","tablesChanged","writeFile","stringify","debug","pathValue","resolvedPath","tryRealpath","join","get","undefined","segments","split","Boolean","best","pkgName","realPath","discovered","pkgIndex","indexOf","vendoredBase","suffixSegments","slice","rewriteCargoTomls","srcRoot","destRoot","tree","manifestDirs","preserve","isWorkspaceRoot"],"mappings":"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","file":"ZH2AZQUX.js","sourcesContent":["/**\n * Rewrite a vendored Cargo.toml's path deps into the flat dependencies/ layout,\n * operating on the parsed TOML (via smol-toml) rather than text.\n */\n\nimport { readFile, writeFile } from 'fs/promises';\nimport { dirname, join, relative } from 'path';\nimport { parse, stringify } from 'smol-toml';\n\nimport { logger } from '../logger';\nimport { isWorkspaceRoot } from './discover';\nimport { hasExcludedSegment } from './exclude';\nimport { type CollectedTree, tryRealpath } from './io';\n\n/** Bundled resolution state passed through the rewrite pipeline. */\nexport interface RewriteContext {\n pathMap: Map<string, string>;\n discovered: Map<string, string>;\n}\n\ntype Table = Record<string, unknown>;\n\n/** A dependency spec that carries a `path` — an inline table like `{ path = \"…\" }`. */\ntype PathDepSpec = Table & { path: string };\n\nconst isTable = (value: unknown): value is Table =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst DEP_TABLE_KEYS = ['dependencies', 'dev-dependencies', 'build-dependencies'] as const;\n\n/**\n * Dependency specs that declare a `path`, across every dependency table (plus\n * `[workspace.dependencies]` when `includeWorkspaceDeps`). Specs are live references\n * into `manifest`, so mutating `.path` updates it.\n */\nconst pathDepSpecs = (manifest: Table, includeWorkspaceDeps: boolean): PathDepSpec[] => {\n // The root manifest and each [target.'cfg(...)'] table both hold DEP_TABLE_KEYS tables.\n const containers = [\n manifest,\n ...(isTable(manifest.target) ? Object.values(manifest.target).filter(isTable) : []),\n ];\n\n const depTables = [\n ...containers.flatMap((container) => DEP_TABLE_KEYS.map((key) => container[key])),\n ...(includeWorkspaceDeps && isTable(manifest.workspace)\n ? [manifest.workspace.dependencies]\n : []),\n ];\n\n return depTables\n .filter(isTable)\n .flatMap((table) => Object.values(table))\n .filter((spec): spec is PathDepSpec => isTable(spec) && typeof spec.path === 'string');\n};\n\n/**\n * Drop literal `members` / `default-members` entries whose path contains an excluded\n * directory segment (e.g. `tests/mock_vault`) — those dirs are never vendored, so the\n * member would dangle and fail Cargo's workspace load. Globs (`tests/*`) are kept; Cargo\n * re-expands them to a harmless empty match. Returns true if any member was removed.\n */\nexport const pruneExcludedLiteralMembers = (manifest: Table): boolean => {\n const workspace = manifest.workspace;\n if (!isTable(workspace)) return false;\n\n let changed = false;\n for (const key of ['members', 'default-members'] as const) {\n const members = workspace[key];\n if (!Array.isArray(members)) continue;\n\n // Keep everything except literal (non-glob) members inside an excluded dir.\n const kept = members.filter(\n (m) => typeof m !== 'string' || m.includes('*') || !hasExcludedSegment(m),\n );\n\n if (kept.length !== members.length) {\n workspace[key] = kept;\n changed = true;\n }\n }\n return changed;\n};\n\n/** Rebase every path dep in `manifest` into the flat dependencies/ layout. Returns true if any changed. */\nexport const rewritePathDeps = async (\n manifest: Table,\n originalDir: string,\n manifestDir: string,\n ctx: RewriteContext,\n includeWorkspaceDeps: boolean,\n): Promise<boolean> => {\n let changed = false;\n for (const spec of pathDepSpecs(manifest, includeWorkspaceDeps)) {\n const target =\n (await resolveViaRealpath(originalDir, spec.path, ctx.pathMap)) ??\n resolveViaNameFallback(spec.path, ctx);\n if (!target) continue;\n\n const rewritten = relative(manifestDir, target);\n if (rewritten === spec.path) continue;\n\n logger.trace(`rewrite path dep ${spec.path} -> ${rewritten}`);\n spec.path = rewritten;\n changed = true;\n }\n\n return changed;\n};\n\n/**\n * Delete the `[workspace]` / `[patch.*]` / `[profile.*]` tables — invalid or ignored in a\n * vendored dependency (only honored at the real workspace root). Returns true if any was removed.\n */\nexport const stripRootOnlyTables = (manifest: Table): boolean => {\n let changed = false;\n for (const table of ['workspace', 'patch', 'profile'] as const) {\n if (manifest[table] != null) {\n delete manifest[table];\n changed = true;\n }\n }\n return changed;\n};\n\n/**\n * Rewrite one vendored Cargo.toml in place: rebase its path deps, then strip the root-only\n * tables — or, for a preserved workspace root (`stripRootTables = false`), prune excluded\n * members instead. Re-serialized only if something changed.\n *\n * @param originalDir source crate dir the manifest was copied from\n * @param cargoTomlPath the vendored Cargo.toml to rewrite\n */\nexport const rewriteCargoToml = async (\n originalDir: string,\n cargoTomlPath: string,\n ctx: RewriteContext,\n stripRootTables = true,\n): Promise<void> => {\n const manifest = parse(await readFile(cargoTomlPath, 'utf-8'));\n\n const pathsChanged = await rewritePathDeps(\n manifest,\n originalDir,\n dirname(cargoTomlPath),\n ctx,\n !stripRootTables,\n );\n\n const tablesChanged = stripRootTables\n ? stripRootOnlyTables(manifest)\n : pruneExcludedLiteralMembers(manifest);\n\n if (pathsChanged || tablesChanged) {\n await writeFile(cargoTomlPath, stringify(manifest));\n logger.debug(`rewrote ${cargoTomlPath}`);\n }\n};\n\n/** Primary resolution: realpath the path through pnpm symlinks, then look it up in pathMap. */\nconst resolveViaRealpath = async (\n originalDir: string,\n pathValue: string,\n pathMap: Map<string, string>,\n): Promise<string | undefined> => {\n const resolvedPath = await tryRealpath(join(originalDir, pathValue));\n return resolvedPath ? pathMap.get(resolvedPath) : undefined;\n};\n\n/**\n * Fallback: locate a discovered npm package stem in the path and preserve every\n * suffix segment after it (e.g. protocol-stellar-v2/message-libs/simple-message-lib).\n *\n * When several discovered package names appear as path segments, pick the\n * **rightmost** (deepest) match — insertion order must not win over specificity.\n */\nconst resolveViaNameFallback = (pathValue: string, ctx: RewriteContext): string | undefined => {\n const segments = pathValue.split('/').filter(Boolean);\n if (segments.length === 0) return undefined;\n\n let best:\n | {\n pkgIndex: number;\n vendoredBase: string;\n suffixSegments: string[];\n }\n | undefined;\n\n for (const [pkgName, realPath] of ctx.discovered) {\n const pkgIndex = segments.indexOf(pkgName);\n if (pkgIndex === -1) continue;\n\n const vendoredBase = ctx.pathMap.get(realPath);\n if (!vendoredBase) continue;\n\n // Prefer the deepest stem. Equal index cannot happen for distinct names.\n if (best != null && pkgIndex <= best.pkgIndex) continue;\n\n best = {\n pkgIndex,\n vendoredBase,\n suffixSegments: segments.slice(pkgIndex + 1),\n };\n }\n\n if (!best) return undefined;\n return best.suffixSegments.length === 0\n ? best.vendoredBase\n : join(best.vendoredBase, ...best.suffixSegments);\n};\n\n/**\n * Rewrite every Cargo.toml in a copied dependency tree. The root manifest keeps its\n * root-only tables when it's a workspace (members inherit from them); all others strip them.\n */\nexport const rewriteCargoTomls = async (\n srcRoot: string,\n destRoot: string,\n tree: CollectedTree,\n ctx: RewriteContext,\n): Promise<void> => {\n for (const manifestDir of tree.manifestDirs) {\n const preserve = manifestDir === '.' && (await isWorkspaceRoot(destRoot));\n\n await rewriteCargoToml(\n join(srcRoot, manifestDir),\n join(destRoot, manifestDir, 'Cargo.toml'),\n ctx,\n !preserve,\n );\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/resolve/rewrite.ts"],"names":["isTable","value","Array","isArray","DEP_TABLE_KEYS","pathDepSpecs","manifest","includeWorkspaceDeps","containers","target","Object","values","filter","depTables","flatMap","container","map","key","workspace","dependencies","table","spec","path","pruneExcludedLiteralMembers","changed","members","kept","m","includes","hasExcludedSegment","length","rewritePathDeps","originalDir","manifestDir","ctx","resolveViaRealpath","pathMap","resolveViaNameFallback","rewritten","relative","logger","trace","stripRootOnlyTables","rewriteCargoToml","cargoTomlPath","stripRootTables","parse","readFile","pathsChanged","dirname","tablesChanged","writeFile","stringify","debug","pathValue","resolvedPath","tryRealpath","join","get","undefined","segments","split","Boolean","best","pkgName","realPath","discovered","pkgIndex","indexOf","vendoredBase","suffixSegments","slice","rewriteCargoTomls","srcRoot","destRoot","tree","manifestDirs","preserve","isWorkspaceRoot"],"mappings":"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","file":"N2QRCDCB.js","sourcesContent":["/**\n * Rewrite a vendored Cargo.toml's path deps into the flat dependencies/ layout,\n * operating on the parsed TOML (via smol-toml) rather than text.\n */\n\nimport { readFile, writeFile } from 'fs/promises';\nimport { dirname, join, relative } from 'path';\nimport { parse, stringify } from 'smol-toml';\n\nimport { logger } from '../logger';\nimport { isWorkspaceRoot } from './discover';\nimport { hasExcludedSegment } from './exclude';\nimport { type CollectedTree, tryRealpath } from './io';\n\n/** Bundled resolution state passed through the rewrite pipeline. */\nexport interface RewriteContext {\n pathMap: Map<string, string>;\n discovered: Map<string, string>;\n}\n\ntype Table = Record<string, unknown>;\n\n/** A dependency spec that carries a `path` — an inline table like `{ path = \"…\" }`. */\ntype PathDepSpec = Table & { path: string };\n\nconst isTable = (value: unknown): value is Table =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst DEP_TABLE_KEYS = ['dependencies', 'dev-dependencies', 'build-dependencies'] as const;\n\n/**\n * Dependency specs that declare a `path`, across every dependency table (plus\n * `[workspace.dependencies]` when `includeWorkspaceDeps`). Specs are live references\n * into `manifest`, so mutating `.path` updates it.\n */\nconst pathDepSpecs = (manifest: Table, includeWorkspaceDeps: boolean): PathDepSpec[] => {\n // The root manifest and each [target.'cfg(...)'] table both hold DEP_TABLE_KEYS tables.\n const containers = [\n manifest,\n ...(isTable(manifest.target) ? Object.values(manifest.target).filter(isTable) : []),\n ];\n\n const depTables = [\n ...containers.flatMap((container) => DEP_TABLE_KEYS.map((key) => container[key])),\n ...(includeWorkspaceDeps && isTable(manifest.workspace)\n ? [manifest.workspace.dependencies]\n : []),\n ];\n\n return depTables\n .filter(isTable)\n .flatMap((table) => Object.values(table))\n .filter((spec): spec is PathDepSpec => isTable(spec) && typeof spec.path === 'string');\n};\n\n/**\n * Drop literal `members` / `default-members` entries whose path contains an excluded\n * directory segment (e.g. `tests/mock_vault`) — those dirs are never vendored, so the\n * member would dangle and fail Cargo's workspace load. Globs (`tests/*`) are kept; Cargo\n * re-expands them to a harmless empty match. Returns true if any member was removed.\n */\nexport const pruneExcludedLiteralMembers = (manifest: Table): boolean => {\n const workspace = manifest.workspace;\n if (!isTable(workspace)) return false;\n\n let changed = false;\n for (const key of ['members', 'default-members'] as const) {\n const members = workspace[key];\n if (!Array.isArray(members)) continue;\n\n // Keep everything except literal (non-glob) members inside an excluded dir.\n const kept = members.filter(\n (m) => typeof m !== 'string' || m.includes('*') || !hasExcludedSegment(m),\n );\n\n if (kept.length !== members.length) {\n workspace[key] = kept;\n changed = true;\n }\n }\n return changed;\n};\n\n/** Rebase every path dep in `manifest` into the flat dependencies/ layout. Returns true if any changed. */\nexport const rewritePathDeps = async (\n manifest: Table,\n originalDir: string,\n manifestDir: string,\n ctx: RewriteContext,\n includeWorkspaceDeps: boolean,\n): Promise<boolean> => {\n let changed = false;\n for (const spec of pathDepSpecs(manifest, includeWorkspaceDeps)) {\n const target =\n (await resolveViaRealpath(originalDir, spec.path, ctx.pathMap)) ??\n resolveViaNameFallback(spec.path, ctx);\n if (!target) continue;\n\n const rewritten = relative(manifestDir, target);\n if (rewritten === spec.path) continue;\n\n logger.trace(`rewrite path dep ${spec.path} -> ${rewritten}`);\n spec.path = rewritten;\n changed = true;\n }\n\n return changed;\n};\n\n/**\n * Delete the `[workspace]` / `[patch.*]` / `[profile.*]` tables — invalid or ignored in a\n * vendored dependency (only honored at the real workspace root). Returns true if any was removed.\n */\nexport const stripRootOnlyTables = (manifest: Table): boolean => {\n let changed = false;\n for (const table of ['workspace', 'patch', 'profile'] as const) {\n if (manifest[table] != null) {\n delete manifest[table];\n changed = true;\n }\n }\n return changed;\n};\n\n/**\n * Rewrite one vendored Cargo.toml in place: rebase its path deps, then strip the root-only\n * tables — or, for a preserved workspace root (`stripRootTables = false`), prune excluded\n * members instead. Re-serialized only if something changed.\n *\n * @param originalDir source crate dir the manifest was copied from\n * @param cargoTomlPath the vendored Cargo.toml to rewrite\n */\nexport const rewriteCargoToml = async (\n originalDir: string,\n cargoTomlPath: string,\n ctx: RewriteContext,\n stripRootTables = true,\n): Promise<void> => {\n const manifest = parse(await readFile(cargoTomlPath, 'utf-8'));\n\n const pathsChanged = await rewritePathDeps(\n manifest,\n originalDir,\n dirname(cargoTomlPath),\n ctx,\n !stripRootTables,\n );\n\n const tablesChanged = stripRootTables\n ? stripRootOnlyTables(manifest)\n : pruneExcludedLiteralMembers(manifest);\n\n if (pathsChanged || tablesChanged) {\n await writeFile(cargoTomlPath, stringify(manifest));\n logger.debug(`rewrote ${cargoTomlPath}`);\n }\n};\n\n/** Primary resolution: realpath the path through pnpm symlinks, then look it up in pathMap. */\nconst resolveViaRealpath = async (\n originalDir: string,\n pathValue: string,\n pathMap: Map<string, string>,\n): Promise<string | undefined> => {\n const resolvedPath = await tryRealpath(join(originalDir, pathValue));\n return resolvedPath ? pathMap.get(resolvedPath) : undefined;\n};\n\n/**\n * Fallback: locate a discovered npm package stem in the path and preserve every\n * suffix segment after it (e.g. protocol-stellar-v2/message-libs/simple-message-lib).\n *\n * When several discovered package names appear as path segments, pick the\n * **rightmost** (deepest) match — insertion order must not win over specificity.\n */\nconst resolveViaNameFallback = (pathValue: string, ctx: RewriteContext): string | undefined => {\n const segments = pathValue.split('/').filter(Boolean);\n if (segments.length === 0) return undefined;\n\n let best:\n | {\n pkgIndex: number;\n vendoredBase: string;\n suffixSegments: string[];\n }\n | undefined;\n\n for (const [pkgName, realPath] of ctx.discovered) {\n const pkgIndex = segments.indexOf(pkgName);\n if (pkgIndex === -1) continue;\n\n const vendoredBase = ctx.pathMap.get(realPath);\n if (!vendoredBase) continue;\n\n // Prefer the deepest stem. Equal index cannot happen for distinct names.\n if (best != null && pkgIndex <= best.pkgIndex) continue;\n\n best = {\n pkgIndex,\n vendoredBase,\n suffixSegments: segments.slice(pkgIndex + 1),\n };\n }\n\n if (!best) return undefined;\n return best.suffixSegments.length === 0\n ? best.vendoredBase\n : join(best.vendoredBase, ...best.suffixSegments);\n};\n\n/**\n * Rewrite every Cargo.toml in a copied dependency tree. The root manifest keeps its\n * root-only tables when it's a workspace (members inherit from them); all others strip them.\n */\nexport const rewriteCargoTomls = async (\n srcRoot: string,\n destRoot: string,\n tree: CollectedTree,\n ctx: RewriteContext,\n): Promise<void> => {\n for (const manifestDir of tree.manifestDirs) {\n const preserve = manifestDir === '.' && (await isWorkspaceRoot(destRoot));\n\n await rewriteCargoToml(\n join(srcRoot, manifestDir),\n join(destRoot, manifestDir, 'Cargo.toml'),\n ctx,\n !preserve,\n );\n }\n};\n"]}
@@ -1,6 +1,6 @@
1
- import { rewriteCargoTomls } from './ZH2AZQUX.js';
2
- import { discoverPackages, isCrate } from './NVUOVNKE.js';
3
- import { collectFiles } from './PSAML6YW.js';
1
+ import { rewriteCargoTomls } from './N2QRCDCB.js';
2
+ import { discoverPackages, isCrate } from './ZQ7KHDAO.js';
3
+ import { collectFiles } from './ZS7IDLZZ.js';
4
4
  import { logger } from './UDDAJZY4.js';
5
5
  import { __name } from './VUOMXK5T.js';
6
6
  import { rm, mkdir, copyFile } from 'fs/promises';
@@ -79,5 +79,5 @@ var resolveDependencies = /* @__PURE__ */ __name(async ({ cwd, cargoDir } = {})
79
79
  }, "resolveDependencies");
80
80
 
81
81
  export { buildDependenciesPathMap, resolveDependencies };
82
- //# sourceMappingURL=UB65DPGZ.js.map
83
- //# sourceMappingURL=UB65DPGZ.js.map
82
+ //# sourceMappingURL=N4NI6N3K.js.map
83
+ //# sourceMappingURL=N4NI6N3K.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/resolve/index.ts"],"names":["buildDependenciesPathMap","targets","pathMap","Map","npmPkgDir","depsPkgDir","tree","dir","manifestDirs","set","join","logger","trace","debug","size","copyCollected","srcRoot","destRoot","mkdir","recursive","Promise","all","dirs","map","files","file","copyFile","resolveCargoRoot","packageRoot","cargoDir","resolved","resolve","isCrate","Error","resolveDependencies","cwd","process","depsRoot","discovered","discoverPackages","Set","info","rm","force","Array","from","pkgName","collectFiles","length","ctx","rewriteCargoTomls","relative"],"mappings":"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","file":"UB65DPGZ.js","sourcesContent":["/**\n * Vendor @layerzerolabs Cargo dependencies from node_modules into a flat\n * dependencies/ directory with rewritten path deps, so a Rust package builds\n * without the rest of the monorepo.\n */\n\nimport { copyFile, mkdir, rm } from 'fs/promises';\nimport { join, relative, resolve } from 'path';\n\nimport { logger } from '../logger';\nimport { discoverPackages, isCrate, type VendorTarget } from './discover';\nimport type { CollectedTree } from './io';\nimport { collectFiles } from './io';\nimport type { RewriteContext } from './rewrite';\nimport { rewriteCargoTomls } from './rewrite';\n\n// ─── Path Map ───\n\n/** Maps each crate's npm package source path to its vendored dependencies/ location. */\nexport const buildDependenciesPathMap = (targets: VendorTarget[]): Map<string, string> => {\n const pathMap = new Map<string, string>();\n\n for (const { npmPkgDir, depsPkgDir, tree } of targets) {\n for (const dir of tree.manifestDirs) {\n pathMap.set(join(npmPkgDir, dir), join(depsPkgDir, dir));\n logger.trace(`map ${join(npmPkgDir, dir)} -> ${join(depsPkgDir, dir)}`);\n }\n }\n logger.debug(`built dependency path map: ${pathMap.size} entries`);\n return pathMap;\n};\n\n// ─── File Operations ───\n\n/** Copy a collected tree into destRoot. */\nconst copyCollected = async (\n srcRoot: string,\n destRoot: string,\n tree: CollectedTree,\n): Promise<void> => {\n await mkdir(destRoot, { recursive: true });\n await Promise.all(tree.dirs.map((dir) => mkdir(join(destRoot, dir), { recursive: true })));\n await Promise.all(\n tree.files.map((file) => copyFile(join(srcRoot, file), join(destRoot, file))),\n );\n};\n\n/** Resolves the Cargo root: `cargoDir` if provided, else `packageRoot`. Throws if no Cargo.toml. */\nconst resolveCargoRoot = async (packageRoot: string, cargoDir?: string): Promise<string> => {\n if (cargoDir) {\n const resolved = resolve(packageRoot, cargoDir);\n if (!(await isCrate(resolved))) {\n throw new Error(`--cargo-dir ${cargoDir} does not contain a Cargo.toml`);\n }\n return resolved;\n }\n\n if (!(await isCrate(packageRoot))) {\n throw new Error(`${packageRoot} does not contain a Cargo.toml`);\n }\n\n return packageRoot;\n};\n\n// ─── Public API ───\n\n/**\n * Entry point: vendor every @layerzerolabs Cargo crate reachable through node_modules\n * into dependencies/, with path deps rewritten to resolve locally.\n *\n * @param cwd pnpm package root (where node_modules/ lives). Default: process.cwd()\n * @param cargoDir Cargo crate directory to vendor into. Default: packageRoot\n */\nexport const resolveDependencies = async ({\n cwd,\n cargoDir,\n}: { cwd?: string; cargoDir?: string } = {}): Promise<void> => {\n const packageRoot = resolve(cwd ?? process.cwd());\n\n const depsRoot = join(await resolveCargoRoot(packageRoot, cargoDir), 'dependencies');\n\n const discovered = new Map<string, string>();\n await discoverPackages(packageRoot, discovered, new Set());\n\n if (discovered.size === 0) {\n logger.info('No @layerzerolabs namespaced Cargo dependencies found in node_modules');\n return;\n }\n\n // Rebuild dependencies/ from scratch each run.\n await rm(depsRoot, { recursive: true, force: true });\n await mkdir(depsRoot, { recursive: true });\n\n // Collect each package's tree once — copy, path map, and rewrite all reuse it.\n const targets: VendorTarget[] = await Promise.all(\n Array.from(discovered, async ([pkgName, npmPkgDir]) => {\n const tree = await collectFiles(npmPkgDir);\n logger.debug(\n `${pkgName}: collected ${tree.files.length} files, ${tree.dirs.length} dirs`,\n );\n return { pkgName, npmPkgDir, depsPkgDir: join(depsRoot, pkgName), tree };\n }),\n );\n\n const ctx: RewriteContext = {\n pathMap: buildDependenciesPathMap(targets),\n discovered,\n };\n logger.debug(`path map: ${ctx.pathMap.size} entries`);\n\n await Promise.all(\n targets.map(async ({ pkgName, npmPkgDir, depsPkgDir, tree }) => {\n await copyCollected(npmPkgDir, depsPkgDir, tree);\n await rewriteCargoTomls(npmPkgDir, depsPkgDir, tree, ctx);\n logger.debug(` ${pkgName} -> ${npmPkgDir}`);\n }),\n );\n\n logger.info(\n `Resolved ${discovered.size} Cargo dependencies into ${relative(packageRoot, depsRoot) || './dependencies/'}`,\n );\n};\n"]}
1
+ {"version":3,"sources":["../src/resolve/index.ts"],"names":["buildDependenciesPathMap","targets","pathMap","Map","npmPkgDir","depsPkgDir","tree","dir","manifestDirs","set","join","logger","trace","debug","size","copyCollected","srcRoot","destRoot","mkdir","recursive","Promise","all","dirs","map","files","file","copyFile","resolveCargoRoot","packageRoot","cargoDir","resolved","resolve","isCrate","Error","resolveDependencies","cwd","process","depsRoot","discovered","discoverPackages","Set","info","rm","force","Array","from","pkgName","collectFiles","length","ctx","rewriteCargoTomls","relative"],"mappings":"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","file":"N4NI6N3K.js","sourcesContent":["/**\n * Vendor @layerzerolabs Cargo dependencies from node_modules into a flat\n * dependencies/ directory with rewritten path deps, so a Rust package builds\n * without the rest of the monorepo.\n */\n\nimport { copyFile, mkdir, rm } from 'fs/promises';\nimport { join, relative, resolve } from 'path';\n\nimport { logger } from '../logger';\nimport { discoverPackages, isCrate, type VendorTarget } from './discover';\nimport type { CollectedTree } from './io';\nimport { collectFiles } from './io';\nimport type { RewriteContext } from './rewrite';\nimport { rewriteCargoTomls } from './rewrite';\n\n// ─── Path Map ───\n\n/** Maps each crate's npm package source path to its vendored dependencies/ location. */\nexport const buildDependenciesPathMap = (targets: VendorTarget[]): Map<string, string> => {\n const pathMap = new Map<string, string>();\n\n for (const { npmPkgDir, depsPkgDir, tree } of targets) {\n for (const dir of tree.manifestDirs) {\n pathMap.set(join(npmPkgDir, dir), join(depsPkgDir, dir));\n logger.trace(`map ${join(npmPkgDir, dir)} -> ${join(depsPkgDir, dir)}`);\n }\n }\n logger.debug(`built dependency path map: ${pathMap.size} entries`);\n return pathMap;\n};\n\n// ─── File Operations ───\n\n/** Copy a collected tree into destRoot. */\nconst copyCollected = async (\n srcRoot: string,\n destRoot: string,\n tree: CollectedTree,\n): Promise<void> => {\n await mkdir(destRoot, { recursive: true });\n await Promise.all(tree.dirs.map((dir) => mkdir(join(destRoot, dir), { recursive: true })));\n await Promise.all(\n tree.files.map((file) => copyFile(join(srcRoot, file), join(destRoot, file))),\n );\n};\n\n/** Resolves the Cargo root: `cargoDir` if provided, else `packageRoot`. Throws if no Cargo.toml. */\nconst resolveCargoRoot = async (packageRoot: string, cargoDir?: string): Promise<string> => {\n if (cargoDir) {\n const resolved = resolve(packageRoot, cargoDir);\n if (!(await isCrate(resolved))) {\n throw new Error(`--cargo-dir ${cargoDir} does not contain a Cargo.toml`);\n }\n return resolved;\n }\n\n if (!(await isCrate(packageRoot))) {\n throw new Error(`${packageRoot} does not contain a Cargo.toml`);\n }\n\n return packageRoot;\n};\n\n// ─── Public API ───\n\n/**\n * Entry point: vendor every @layerzerolabs Cargo crate reachable through node_modules\n * into dependencies/, with path deps rewritten to resolve locally.\n *\n * @param cwd pnpm package root (where node_modules/ lives). Default: process.cwd()\n * @param cargoDir Cargo crate directory to vendor into. Default: packageRoot\n */\nexport const resolveDependencies = async ({\n cwd,\n cargoDir,\n}: { cwd?: string; cargoDir?: string } = {}): Promise<void> => {\n const packageRoot = resolve(cwd ?? process.cwd());\n\n const depsRoot = join(await resolveCargoRoot(packageRoot, cargoDir), 'dependencies');\n\n const discovered = new Map<string, string>();\n await discoverPackages(packageRoot, discovered, new Set());\n\n if (discovered.size === 0) {\n logger.info('No @layerzerolabs namespaced Cargo dependencies found in node_modules');\n return;\n }\n\n // Rebuild dependencies/ from scratch each run.\n await rm(depsRoot, { recursive: true, force: true });\n await mkdir(depsRoot, { recursive: true });\n\n // Collect each package's tree once — copy, path map, and rewrite all reuse it.\n const targets: VendorTarget[] = await Promise.all(\n Array.from(discovered, async ([pkgName, npmPkgDir]) => {\n const tree = await collectFiles(npmPkgDir);\n logger.debug(\n `${pkgName}: collected ${tree.files.length} files, ${tree.dirs.length} dirs`,\n );\n return { pkgName, npmPkgDir, depsPkgDir: join(depsRoot, pkgName), tree };\n }),\n );\n\n const ctx: RewriteContext = {\n pathMap: buildDependenciesPathMap(targets),\n discovered,\n };\n logger.debug(`path map: ${ctx.pathMap.size} entries`);\n\n await Promise.all(\n targets.map(async ({ pkgName, npmPkgDir, depsPkgDir, tree }) => {\n await copyCollected(npmPkgDir, depsPkgDir, tree);\n await rewriteCargoTomls(npmPkgDir, depsPkgDir, tree, ctx);\n logger.debug(` ${pkgName} -> ${npmPkgDir}`);\n }),\n );\n\n logger.info(\n `Resolved ${discovered.size} Cargo dependencies into ${relative(packageRoot, depsRoot) || './dependencies/'}`,\n );\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { tryRealpath, tryReaddir } from './PSAML6YW.js';
1
+ import { tryRealpath, tryReaddir } from './ZS7IDLZZ.js';
2
2
  import { logger } from './UDDAJZY4.js';
3
3
  import { __name } from './VUOMXK5T.js';
4
4
  import { stat, access, readFile } from 'fs/promises';
@@ -48,5 +48,5 @@ var discoverPackages = /* @__PURE__ */ __name(async (dir, discovered, visited) =
48
48
  }, "discoverPackages");
49
49
 
50
50
  export { discoverPackages, isCrate, isWorkspaceRoot };
51
- //# sourceMappingURL=NVUOVNKE.js.map
52
- //# sourceMappingURL=NVUOVNKE.js.map
51
+ //# sourceMappingURL=ZQ7KHDAO.js.map
52
+ //# sourceMappingURL=ZQ7KHDAO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/resolve/discover.ts"],"names":["LZ_SCOPE","isCrate","dir","stats","stat","isDirectory","access","join","isWorkspaceRoot","crateRoot","manifestPath","raw","readFile","parse","workspace","err","logger","warn","discoverPackages","discovered","visited","realDir","tryRealpath","has","add","nodeModulesDir","pkgName","tryReaddir","realPath","isValidCratePath","set"],"mappings":";;;;;;;AAaA,IAAMA,QAAAA,GAAW,gBAAA;AAmBV,IAAMC,OAAAA,iCAAiBC,GAAAA,KAAAA;AAC1B,EAAA,IAAI;AACA,IAAA,MAAMC,KAAAA,GAAQ,MAAMC,IAAAA,CAAKF,GAAAA,CAAAA;AACzB,IAAA,IAAI,CAACC,KAAAA,CAAME,WAAAA,EAAW,EAAI,OAAO,KAAA;AACjC,IAAA,MAAMC,MAAAA,CAAOC,IAAAA,CAAKL,GAAAA,EAAK,YAAA,CAAA,CAAA;AACvB,IAAA,OAAO,IAAA;EACX,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,KAAA;AACX,EAAA;AACJ,CAAA,EATuB,SAAA;AAYhB,IAAMM,eAAAA,iCAAyBC,SAAAA,KAAAA;AAClC,EAAA,MAAMC,YAAAA,GAAeH,IAAAA,CAAKE,SAAAA,EAAW,YAAA,CAAA;AACrC,EAAA,IAAIE,GAAAA;AACJ,EAAA,IAAI;AACAA,IAAAA,GAAAA,GAAM,MAAMC,QAAAA,CAASF,YAAAA,EAAc,OAAA,CAAA;EACvC,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,KAAA;AACX,EAAA;AACA,EAAA,IAAI;AACA,IAAA,OAAOG,KAAAA,CAAMF,GAAAA,CAAAA,CAAKG,SAAAA,IAAa,IAAA;AACnC,EAAA,CAAA,CAAA,OAASC,GAAAA,EAAK;AAGVC,IAAAA,MAAAA,CAAOC,IAAAA,CAAK,CAAA,gBAAA,EAAmBP,YAAAA,CAAAA,2BAAAA,CAAAA,EAA2CK,GAAAA,CAAAA;AAC1E,IAAA,OAAO,KAAA;AACX,EAAA;AACJ,CAAA,EAhB+B,iBAAA;AAwBxB,IAAMG,gBAAAA,mBAAmB,MAAA,CAAA,OAC5BhB,GAAAA,EACAiB,UAAAA,EACAC,OAAAA,KAAAA;AAEA,EAAA,MAAMC,OAAAA,GAAU,MAAMC,WAAAA,CAAYpB,GAAAA,CAAAA;AAClC,EAAA,IAAI,CAACmB,OAAAA,IAAWD,OAAAA,CAAQG,GAAAA,CAAIF,OAAAA,CAAAA,EAAU;AACtCD,EAAAA,OAAAA,CAAQI,IAAIH,OAAAA,CAAAA;AAEZ,EAAA,MAAMI,cAAAA,GAAiBlB,IAAAA,CAAKL,GAAAA,EAAK,cAAA,EAAgBF,QAAAA,CAAAA;AAEjD,EAAA,KAAA,MAAW0B,OAAAA,IAAW,MAAMC,UAAAA,CAAWF,cAAAA,CAAAA,EAAiB;AAEpD,IAAA,MAAMG,WAAW,MAAMN,WAAAA,CAAYf,IAAAA,CAAKkB,cAAAA,EAAgBC,OAAAA,CAAAA,CAAAA;AACxD,IAAA,MAAMG,gBAAAA,GAAmBD,QAAAA,IAAa,MAAM3B,OAAAA,CAAQ2B,QAAAA,CAAAA;AACpD,IAAA,IAAI,CAACC,gBAAAA,EAAkB;AAEvB,IAAA,IAAI,CAACV,UAAAA,CAAWI,GAAAA,CAAIG,OAAAA,CAAAA,EAAU;AAC1BP,MAAAA,UAAAA,CAAWW,GAAAA,CAAIJ,SAASE,QAAAA,CAAAA;AAC5B,IAAA;AAGA,IAAA,MAAMV,gBAAAA,CAAiBU,QAAAA,EAAUT,UAAAA,EAAYC,OAAAA,CAAAA;AACjD,EAAA;AACJ,CAAA,EAxBgC,kBAAA","file":"NVUOVNKE.js","sourcesContent":["/** Discovery — walk node_modules/@layerzerolabs/ to find all @layerzerolabs Cargo crates. */\n\nimport { access, readFile, stat } from 'fs/promises';\nimport { join } from 'path';\nimport { parse } from 'smol-toml';\n\nimport { logger } from '../logger';\nimport type { CollectedTree } from './io';\nimport { tryReaddir, tryRealpath } from './io';\n\n// ─── Constants ───\n\n/** Only packages under this npm scope are treated as Cargo dependencies. */\nconst LZ_SCOPE = '@layerzerolabs';\n\n// ─── Types ───\n\n/** A discovered package paired with its collected source tree, ready to vendor. */\nexport interface VendorTarget {\n /** npm package name (without scope) — the dependencies/ subdir. */\n pkgName: string;\n /** canonical source path (realpath through pnpm symlinks). */\n npmPkgDir: string;\n /** vendored location: dependencies/<pkgName>. */\n depsPkgDir: string;\n /** included file/dir tree (excluded subtrees already pruned). */\n tree: CollectedTree;\n}\n\n// ─── Crate Helpers ───\n\n/** Checks if the directory contains a Cargo.toml. */\nexport const isCrate = async (dir: string): Promise<boolean> => {\n try {\n const stats = await stat(dir);\n if (!stats.isDirectory()) return false;\n await access(join(dir, 'Cargo.toml'));\n return true;\n } catch {\n return false;\n }\n};\n\n/** True if the directory's Cargo.toml declares a `[workspace]` table. */\nexport const isWorkspaceRoot = async (crateRoot: string): Promise<boolean> => {\n const manifestPath = join(crateRoot, 'Cargo.toml');\n let raw: string;\n try {\n raw = await readFile(manifestPath, 'utf-8');\n } catch {\n return false; // no readable Cargo.toml here — not a workspace root\n }\n try {\n return parse(raw).workspace != null;\n } catch (err) {\n // Warn rather than silently treat a malformed manifest as a non-workspace\n // (which would strip its [workspace] table); the parser is stricter than Cargo.\n logger.warn(`failed to parse ${manifestPath}; treating as non-workspace`, err);\n return false;\n }\n};\n\n// ─── Main Functions ───\n\n/**\n * Recursively discover all @layerzerolabs Cargo packages reachable from `dir`'s node_modules.\n * Resolves pnpm symlinks to canonical paths; `visited` prevents re-walking shared deps.\n */\nexport const discoverPackages = async (\n dir: string,\n discovered: Map<string, string>,\n visited: Set<string>,\n): Promise<void> => {\n const realDir = await tryRealpath(dir);\n if (!realDir || visited.has(realDir)) return;\n visited.add(realDir);\n\n const nodeModulesDir = join(dir, 'node_modules', LZ_SCOPE);\n\n for (const pkgName of await tryReaddir(nodeModulesDir)) {\n // Resolve pnpm symlink to canonical path (deduplicates across dep chains)\n const realPath = await tryRealpath(join(nodeModulesDir, pkgName));\n const isValidCratePath = realPath && (await isCrate(realPath));\n if (!isValidCratePath) continue;\n\n if (!discovered.has(pkgName)) {\n discovered.set(pkgName, realPath);\n }\n\n // Walk this package's own node_modules for transitive Cargo deps\n await discoverPackages(realPath, discovered, visited);\n }\n};\n"]}
1
+ {"version":3,"sources":["../src/resolve/discover.ts"],"names":["LZ_SCOPE","isCrate","dir","stats","stat","isDirectory","access","join","isWorkspaceRoot","crateRoot","manifestPath","raw","readFile","parse","workspace","err","logger","warn","discoverPackages","discovered","visited","realDir","tryRealpath","has","add","nodeModulesDir","pkgName","tryReaddir","realPath","isValidCratePath","set"],"mappings":";;;;;;;AAaA,IAAMA,QAAAA,GAAW,gBAAA;AAmBV,IAAMC,OAAAA,iCAAiBC,GAAAA,KAAAA;AAC1B,EAAA,IAAI;AACA,IAAA,MAAMC,KAAAA,GAAQ,MAAMC,IAAAA,CAAKF,GAAAA,CAAAA;AACzB,IAAA,IAAI,CAACC,KAAAA,CAAME,WAAAA,EAAW,EAAI,OAAO,KAAA;AACjC,IAAA,MAAMC,MAAAA,CAAOC,IAAAA,CAAKL,GAAAA,EAAK,YAAA,CAAA,CAAA;AACvB,IAAA,OAAO,IAAA;EACX,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,KAAA;AACX,EAAA;AACJ,CAAA,EATuB,SAAA;AAYhB,IAAMM,eAAAA,iCAAyBC,SAAAA,KAAAA;AAClC,EAAA,MAAMC,YAAAA,GAAeH,IAAAA,CAAKE,SAAAA,EAAW,YAAA,CAAA;AACrC,EAAA,IAAIE,GAAAA;AACJ,EAAA,IAAI;AACAA,IAAAA,GAAAA,GAAM,MAAMC,QAAAA,CAASF,YAAAA,EAAc,OAAA,CAAA;EACvC,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,KAAA;AACX,EAAA;AACA,EAAA,IAAI;AACA,IAAA,OAAOG,KAAAA,CAAMF,GAAAA,CAAAA,CAAKG,SAAAA,IAAa,IAAA;AACnC,EAAA,CAAA,CAAA,OAASC,GAAAA,EAAK;AAGVC,IAAAA,MAAAA,CAAOC,IAAAA,CAAK,CAAA,gBAAA,EAAmBP,YAAAA,CAAAA,2BAAAA,CAAAA,EAA2CK,GAAAA,CAAAA;AAC1E,IAAA,OAAO,KAAA;AACX,EAAA;AACJ,CAAA,EAhB+B,iBAAA;AAwBxB,IAAMG,gBAAAA,mBAAmB,MAAA,CAAA,OAC5BhB,GAAAA,EACAiB,UAAAA,EACAC,OAAAA,KAAAA;AAEA,EAAA,MAAMC,OAAAA,GAAU,MAAMC,WAAAA,CAAYpB,GAAAA,CAAAA;AAClC,EAAA,IAAI,CAACmB,OAAAA,IAAWD,OAAAA,CAAQG,GAAAA,CAAIF,OAAAA,CAAAA,EAAU;AACtCD,EAAAA,OAAAA,CAAQI,IAAIH,OAAAA,CAAAA;AAEZ,EAAA,MAAMI,cAAAA,GAAiBlB,IAAAA,CAAKL,GAAAA,EAAK,cAAA,EAAgBF,QAAAA,CAAAA;AAEjD,EAAA,KAAA,MAAW0B,OAAAA,IAAW,MAAMC,UAAAA,CAAWF,cAAAA,CAAAA,EAAiB;AAEpD,IAAA,MAAMG,WAAW,MAAMN,WAAAA,CAAYf,IAAAA,CAAKkB,cAAAA,EAAgBC,OAAAA,CAAAA,CAAAA;AACxD,IAAA,MAAMG,gBAAAA,GAAmBD,QAAAA,IAAa,MAAM3B,OAAAA,CAAQ2B,QAAAA,CAAAA;AACpD,IAAA,IAAI,CAACC,gBAAAA,EAAkB;AAEvB,IAAA,IAAI,CAACV,UAAAA,CAAWI,GAAAA,CAAIG,OAAAA,CAAAA,EAAU;AAC1BP,MAAAA,UAAAA,CAAWW,GAAAA,CAAIJ,SAASE,QAAAA,CAAAA;AAC5B,IAAA;AAGA,IAAA,MAAMV,gBAAAA,CAAiBU,QAAAA,EAAUT,UAAAA,EAAYC,OAAAA,CAAAA;AACjD,EAAA;AACJ,CAAA,EAxBgC,kBAAA","file":"ZQ7KHDAO.js","sourcesContent":["/** Discovery — walk node_modules/@layerzerolabs/ to find all @layerzerolabs Cargo crates. */\n\nimport { access, readFile, stat } from 'fs/promises';\nimport { join } from 'path';\nimport { parse } from 'smol-toml';\n\nimport { logger } from '../logger';\nimport type { CollectedTree } from './io';\nimport { tryReaddir, tryRealpath } from './io';\n\n// ─── Constants ───\n\n/** Only packages under this npm scope are treated as Cargo dependencies. */\nconst LZ_SCOPE = '@layerzerolabs';\n\n// ─── Types ───\n\n/** A discovered package paired with its collected source tree, ready to vendor. */\nexport interface VendorTarget {\n /** npm package name (without scope) — the dependencies/ subdir. */\n pkgName: string;\n /** canonical source path (realpath through pnpm symlinks). */\n npmPkgDir: string;\n /** vendored location: dependencies/<pkgName>. */\n depsPkgDir: string;\n /** included file/dir tree (excluded subtrees already pruned). */\n tree: CollectedTree;\n}\n\n// ─── Crate Helpers ───\n\n/** Checks if the directory contains a Cargo.toml. */\nexport const isCrate = async (dir: string): Promise<boolean> => {\n try {\n const stats = await stat(dir);\n if (!stats.isDirectory()) return false;\n await access(join(dir, 'Cargo.toml'));\n return true;\n } catch {\n return false;\n }\n};\n\n/** True if the directory's Cargo.toml declares a `[workspace]` table. */\nexport const isWorkspaceRoot = async (crateRoot: string): Promise<boolean> => {\n const manifestPath = join(crateRoot, 'Cargo.toml');\n let raw: string;\n try {\n raw = await readFile(manifestPath, 'utf-8');\n } catch {\n return false; // no readable Cargo.toml here — not a workspace root\n }\n try {\n return parse(raw).workspace != null;\n } catch (err) {\n // Warn rather than silently treat a malformed manifest as a non-workspace\n // (which would strip its [workspace] table); the parser is stricter than Cargo.\n logger.warn(`failed to parse ${manifestPath}; treating as non-workspace`, err);\n return false;\n }\n};\n\n// ─── Main Functions ───\n\n/**\n * Recursively discover all @layerzerolabs Cargo packages reachable from `dir`'s node_modules.\n * Resolves pnpm symlinks to canonical paths; `visited` prevents re-walking shared deps.\n */\nexport const discoverPackages = async (\n dir: string,\n discovered: Map<string, string>,\n visited: Set<string>,\n): Promise<void> => {\n const realDir = await tryRealpath(dir);\n if (!realDir || visited.has(realDir)) return;\n visited.add(realDir);\n\n const nodeModulesDir = join(dir, 'node_modules', LZ_SCOPE);\n\n for (const pkgName of await tryReaddir(nodeModulesDir)) {\n // Resolve pnpm symlink to canonical path (deduplicates across dep chains)\n const realPath = await tryRealpath(join(nodeModulesDir, pkgName));\n const isValidCratePath = realPath && (await isCrate(realPath));\n if (!isValidCratePath) continue;\n\n if (!discovered.has(pkgName)) {\n discovered.set(pkgName, realPath);\n }\n\n // Walk this package's own node_modules for transitive Cargo deps\n await discoverPackages(realPath, discovered, visited);\n }\n};\n"]}
@@ -1,5 +1,5 @@
1
1
  import { logger } from './UDDAJZY4.js';
2
- import { removeExcludedFiles, COPY_EXTENSIONS } from './XEADETHB.js';
2
+ import { removeExcludedFiles, COPY_EXTENSIONS } from './2T2WFWNM.js';
3
3
  import { __name } from './VUOMXK5T.js';
4
4
  import { realpath, stat, readdir } from 'fs/promises';
5
5
  import { join, extname, basename, dirname } from 'path';
@@ -55,5 +55,5 @@ var collectFiles = /* @__PURE__ */ __name(async (root, relativePath = "") => {
55
55
  }, "collectFiles");
56
56
 
57
57
  export { collectFiles, tryIsDirectory, tryReaddir, tryRealpath };
58
- //# sourceMappingURL=PSAML6YW.js.map
59
- //# sourceMappingURL=PSAML6YW.js.map
58
+ //# sourceMappingURL=ZS7IDLZZ.js.map
59
+ //# sourceMappingURL=ZS7IDLZZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/resolve/io.ts"],"names":["tryRealpath","path","realpath","undefined","tryIsDirectory","stat","isDirectory","tryReaddir","dir","readdir","collectFiles","root","relativePath","dirs","files","manifestDirs","rawFileNames","join","fileNames","removeExcludedFiles","map","e","file","subDir","length","push","logger","trace","COPY_EXTENSIONS","has","extname","basename","dirname"],"mappings":";;;;;;AAMO,IAAMA,WAAAA,iCAAqBC,IAAAA,KAAAA;AAC9B,EAAA,IAAI;AACA,IAAA,OAAO,MAAMC,SAASD,IAAAA,CAAAA;EAC1B,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAOE,MAAAA;AACX,EAAA;AACJ,CAAA,EAN2B,aAAA;AAQpB,IAAMC,cAAAA,iCAAwBH,IAAAA,KAAAA;AACjC,EAAA,IAAI;AACA,IAAA,OAAA,CAAQ,MAAMI,IAAAA,CAAKJ,IAAAA,CAAAA,EAAOK,WAAAA,EAAW;EACzC,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,KAAA;AACX,EAAA;AACJ,CAAA,EAN8B,gBAAA;AAQvB,IAAMC,UAAAA,iCAAoBC,GAAAA,KAAAA;AAC7B,EAAA,IAAI;AACA,IAAA,OAAO,MAAMC,QAAQD,GAAAA,CAAAA;EACzB,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,EAAA;AACX,EAAA;AACJ,CAAA,EAN0B,YAAA;AAqBnB,IAAME,YAAAA,mBAAe,MAAA,CAAA,OAAOC,IAAAA,EAAcC,YAAAA,GAAe,EAAA,KAAE;AAC9D,EAAA,MAAMC,OAAiB,EAAA;AACvB,EAAA,MAAMC,QAAkB,EAAA;AACxB,EAAA,MAAMC,eAAyB,EAAA;AAE/B,EAAA,MAAMC,eAAe,MAAMT,UAAAA,CAAWU,IAAAA,CAAKN,IAAAA,EAAMC,YAAAA,CAAAA,CAAAA;AACjD,EAAA,MAAMM,SAAAA,GAAYC,mBAAAA,CAAoBH,YAAAA,CAAAA,CAAcI,GAAAA,CAAI,CAACC,CAAAA,KAAMJ,IAAAA,CAAKL,YAAAA,EAAcS,CAAAA,CAAAA,CAAAA;AAElF,EAAA,KAAA,MAAWC,QAAQJ,SAAAA,EAAW;AAC1B,IAAA,IAAI,MAAMd,cAAAA,CAAea,IAAAA,CAAKN,IAAAA,EAAMW,IAAAA,CAAAA,CAAAA,EAAQ;AACxC,MAAA,MAAMC,MAAAA,GAAS,MAAMb,YAAAA,CAAaC,IAAAA,EAAMW,IAAAA,CAAAA;AACxC,MAAA,IAAIC,MAAAA,CAAOT,KAAAA,CAAMU,MAAAA,GAAS,CAAA,EAAG;AACzBX,QAAAA,IAAAA,CAAKY,IAAAA,CAAKH,IAAAA,EAAAA,GAASC,MAAAA,CAAOV,IAAI,CAAA;AAC9BC,QAAAA,KAAAA,CAAMW,IAAAA,CAAI,GAAIF,MAAAA,CAAOT,KAAK,CAAA;AAC1BC,QAAAA,YAAAA,CAAaU,IAAAA,CAAI,GAAIF,MAAAA,CAAOR,YAAY,CAAA;MAC5C,CAAA,MAAO;AACHW,QAAAA,MAAAA,CAAOC,KAAAA,CAAM,CAAA,eAAA,EAAkBL,IAAAA,CAAAA,CAAM,CAAA;AACzC,MAAA;AACJ,IAAA,CAAA,MAAA,IAAWM,eAAAA,CAAgBC,GAAAA,CAAIC,OAAAA,CAAQR,IAAAA,CAAAA,CAAAA,EAAQ;AAC3CR,MAAAA,KAAAA,CAAMW,KAAKH,IAAAA,CAAAA;AACX,MAAA,IAAIS,QAAAA,CAAST,IAAAA,CAAAA,KAAU,YAAA,eAA2BG,IAAAA,CAAKO,OAAAA,CAAQV,IAAAA,CAAAA,CAAAA;AAC/DI,MAAAA,MAAAA,CAAOC,KAAAA,CAAM,CAAA,QAAA,EAAWL,IAAAA,CAAAA,CAAM,CAAA;AAClC,IAAA;AACJ,EAAA;AACA,EAAA,OAAO;AAAET,IAAAA,IAAAA;AAAMC,IAAAA,KAAAA;AAAOC,IAAAA;AAAa,GAAA;AACvC,CAAA,EAzB4B,cAAA","file":"PSAML6YW.js","sourcesContent":["import { readdir, realpath, stat } from 'fs/promises';\nimport { basename, dirname, extname, join } from 'path';\n\nimport { logger } from '../logger';\nimport { COPY_EXTENSIONS, removeExcludedFiles } from './exclude';\n\nexport const tryRealpath = async (path: string): Promise<string | undefined> => {\n try {\n return await realpath(path);\n } catch {\n return undefined;\n }\n};\n\nexport const tryIsDirectory = async (path: string): Promise<boolean> => {\n try {\n return (await stat(path)).isDirectory();\n } catch {\n return false;\n }\n};\n\nexport const tryReaddir = async (dir: string): Promise<string[]> => {\n try {\n return await readdir(dir);\n } catch {\n return [];\n }\n};\n\nexport interface CollectedTree {\n /** directories containing copyable content, relative to root (no empties) */\n dirs: string[];\n /** copyable files (COPY_EXTENSIONS), relative to root (excluded subtrees pruned) */\n files: string[];\n /** dirs that directly contain a Cargo.toml (crate roots), relative to root; '.' is the root */\n manifestDirs: string[];\n}\n\n/**\n * Walk `root` once, applying exclusion per level and keeping only COPY_EXTENSIONS files.\n * Also records `manifestDirs` (dirs holding a Cargo.toml) so consumers don't re-scan.\n */\nexport const collectFiles = async (root: string, relativePath = ''): Promise<CollectedTree> => {\n const dirs: string[] = [];\n const files: string[] = [];\n const manifestDirs: string[] = [];\n\n const rawFileNames = await tryReaddir(join(root, relativePath));\n const fileNames = removeExcludedFiles(rawFileNames).map((e) => join(relativePath, e));\n\n for (const file of fileNames) {\n if (await tryIsDirectory(join(root, file))) {\n const subDir = await collectFiles(root, file);\n if (subDir.files.length > 0) {\n dirs.push(file, ...subDir.dirs);\n files.push(...subDir.files);\n manifestDirs.push(...subDir.manifestDirs);\n } else {\n logger.trace(`skip empty dir ${file}`);\n }\n } else if (COPY_EXTENSIONS.has(extname(file))) {\n files.push(file);\n if (basename(file) === 'Cargo.toml') manifestDirs.push(dirname(file));\n logger.trace(`collect ${file}`);\n }\n }\n return { dirs, files, manifestDirs };\n};\n"]}
1
+ {"version":3,"sources":["../src/resolve/io.ts"],"names":["tryRealpath","path","realpath","undefined","tryIsDirectory","stat","isDirectory","tryReaddir","dir","readdir","collectFiles","root","relativePath","dirs","files","manifestDirs","rawFileNames","join","fileNames","removeExcludedFiles","map","e","file","subDir","length","push","logger","trace","COPY_EXTENSIONS","has","extname","basename","dirname"],"mappings":";;;;;;AAMO,IAAMA,WAAAA,iCAAqBC,IAAAA,KAAAA;AAC9B,EAAA,IAAI;AACA,IAAA,OAAO,MAAMC,SAASD,IAAAA,CAAAA;EAC1B,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAOE,MAAAA;AACX,EAAA;AACJ,CAAA,EAN2B,aAAA;AAQpB,IAAMC,cAAAA,iCAAwBH,IAAAA,KAAAA;AACjC,EAAA,IAAI;AACA,IAAA,OAAA,CAAQ,MAAMI,IAAAA,CAAKJ,IAAAA,CAAAA,EAAOK,WAAAA,EAAW;EACzC,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,KAAA;AACX,EAAA;AACJ,CAAA,EAN8B,gBAAA;AAQvB,IAAMC,UAAAA,iCAAoBC,GAAAA,KAAAA;AAC7B,EAAA,IAAI;AACA,IAAA,OAAO,MAAMC,QAAQD,GAAAA,CAAAA;EACzB,CAAA,CAAA,MAAQ;AACJ,IAAA,OAAO,EAAA;AACX,EAAA;AACJ,CAAA,EAN0B,YAAA;AAqBnB,IAAME,YAAAA,mBAAe,MAAA,CAAA,OAAOC,IAAAA,EAAcC,YAAAA,GAAe,EAAA,KAAE;AAC9D,EAAA,MAAMC,OAAiB,EAAA;AACvB,EAAA,MAAMC,QAAkB,EAAA;AACxB,EAAA,MAAMC,eAAyB,EAAA;AAE/B,EAAA,MAAMC,eAAe,MAAMT,UAAAA,CAAWU,IAAAA,CAAKN,IAAAA,EAAMC,YAAAA,CAAAA,CAAAA;AACjD,EAAA,MAAMM,SAAAA,GAAYC,mBAAAA,CAAoBH,YAAAA,CAAAA,CAAcI,GAAAA,CAAI,CAACC,CAAAA,KAAMJ,IAAAA,CAAKL,YAAAA,EAAcS,CAAAA,CAAAA,CAAAA;AAElF,EAAA,KAAA,MAAWC,QAAQJ,SAAAA,EAAW;AAC1B,IAAA,IAAI,MAAMd,cAAAA,CAAea,IAAAA,CAAKN,IAAAA,EAAMW,IAAAA,CAAAA,CAAAA,EAAQ;AACxC,MAAA,MAAMC,MAAAA,GAAS,MAAMb,YAAAA,CAAaC,IAAAA,EAAMW,IAAAA,CAAAA;AACxC,MAAA,IAAIC,MAAAA,CAAOT,KAAAA,CAAMU,MAAAA,GAAS,CAAA,EAAG;AACzBX,QAAAA,IAAAA,CAAKY,IAAAA,CAAKH,IAAAA,EAAAA,GAASC,MAAAA,CAAOV,IAAI,CAAA;AAC9BC,QAAAA,KAAAA,CAAMW,IAAAA,CAAI,GAAIF,MAAAA,CAAOT,KAAK,CAAA;AAC1BC,QAAAA,YAAAA,CAAaU,IAAAA,CAAI,GAAIF,MAAAA,CAAOR,YAAY,CAAA;MAC5C,CAAA,MAAO;AACHW,QAAAA,MAAAA,CAAOC,KAAAA,CAAM,CAAA,eAAA,EAAkBL,IAAAA,CAAAA,CAAM,CAAA;AACzC,MAAA;AACJ,IAAA,CAAA,MAAA,IAAWM,eAAAA,CAAgBC,GAAAA,CAAIC,OAAAA,CAAQR,IAAAA,CAAAA,CAAAA,EAAQ;AAC3CR,MAAAA,KAAAA,CAAMW,KAAKH,IAAAA,CAAAA;AACX,MAAA,IAAIS,QAAAA,CAAST,IAAAA,CAAAA,KAAU,YAAA,eAA2BG,IAAAA,CAAKO,OAAAA,CAAQV,IAAAA,CAAAA,CAAAA;AAC/DI,MAAAA,MAAAA,CAAOC,KAAAA,CAAM,CAAA,QAAA,EAAWL,IAAAA,CAAAA,CAAM,CAAA;AAClC,IAAA;AACJ,EAAA;AACA,EAAA,OAAO;AAAET,IAAAA,IAAAA;AAAMC,IAAAA,KAAAA;AAAOC,IAAAA;AAAa,GAAA;AACvC,CAAA,EAzB4B,cAAA","file":"ZS7IDLZZ.js","sourcesContent":["import { readdir, realpath, stat } from 'fs/promises';\nimport { basename, dirname, extname, join } from 'path';\n\nimport { logger } from '../logger';\nimport { COPY_EXTENSIONS, removeExcludedFiles } from './exclude';\n\nexport const tryRealpath = async (path: string): Promise<string | undefined> => {\n try {\n return await realpath(path);\n } catch {\n return undefined;\n }\n};\n\nexport const tryIsDirectory = async (path: string): Promise<boolean> => {\n try {\n return (await stat(path)).isDirectory();\n } catch {\n return false;\n }\n};\n\nexport const tryReaddir = async (dir: string): Promise<string[]> => {\n try {\n return await readdir(dir);\n } catch {\n return [];\n }\n};\n\nexport interface CollectedTree {\n /** directories containing copyable content, relative to root (no empties) */\n dirs: string[];\n /** copyable files (COPY_EXTENSIONS), relative to root (excluded subtrees pruned) */\n files: string[];\n /** dirs that directly contain a Cargo.toml (crate roots), relative to root; '.' is the root */\n manifestDirs: string[];\n}\n\n/**\n * Walk `root` once, applying exclusion per level and keeping only COPY_EXTENSIONS files.\n * Also records `manifestDirs` (dirs holding a Cargo.toml) so consumers don't re-scan.\n */\nexport const collectFiles = async (root: string, relativePath = ''): Promise<CollectedTree> => {\n const dirs: string[] = [];\n const files: string[] = [];\n const manifestDirs: string[] = [];\n\n const rawFileNames = await tryReaddir(join(root, relativePath));\n const fileNames = removeExcludedFiles(rawFileNames).map((e) => join(relativePath, e));\n\n for (const file of fileNames) {\n if (await tryIsDirectory(join(root, file))) {\n const subDir = await collectFiles(root, file);\n if (subDir.files.length > 0) {\n dirs.push(file, ...subDir.dirs);\n files.push(...subDir.files);\n manifestDirs.push(...subDir.manifestDirs);\n } else {\n logger.trace(`skip empty dir ${file}`);\n }\n } else if (COPY_EXTENSIONS.has(extname(file))) {\n files.push(file);\n if (basename(file) === 'Cargo.toml') manifestDirs.push(dirname(file));\n logger.trace(`collect ${file}`);\n }\n }\n return { dirs, files, manifestDirs };\n};\n"]}
package/dist/cli.js CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env tsx
2
- import { resolveDependencies } from './UB65DPGZ.js';
3
- import './ZH2AZQUX.js';
4
- import './NVUOVNKE.js';
5
- import './PSAML6YW.js';
2
+ import { resolveDependencies } from './N4NI6N3K.js';
3
+ import './N2QRCDCB.js';
4
+ import './ZQ7KHDAO.js';
5
+ import './ZS7IDLZZ.js';
6
6
  import { logger, setLogLevel, parseLogLevel } from './UDDAJZY4.js';
7
- import './XEADETHB.js';
7
+ import './2T2WFWNM.js';
8
8
  import { __name } from './VUOMXK5T.js';
9
9
  import { Command } from 'commander';
10
10
 
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- export { resolveDependencies } from './UB65DPGZ.js';
2
- import './ZH2AZQUX.js';
3
- import './NVUOVNKE.js';
4
- import './PSAML6YW.js';
1
+ export { resolveDependencies } from './N4NI6N3K.js';
2
+ import './N2QRCDCB.js';
3
+ import './ZQ7KHDAO.js';
4
+ import './ZS7IDLZZ.js';
5
5
  import './UDDAJZY4.js';
6
- import './XEADETHB.js';
6
+ import './2T2WFWNM.js';
7
7
  import './VUOMXK5T.js';
8
8
  //# sourceMappingURL=index.js.map
9
9
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- export { discoverPackages, isCrate, isWorkspaceRoot } from '../NVUOVNKE.js';
2
- import '../PSAML6YW.js';
1
+ export { discoverPackages, isCrate, isWorkspaceRoot } from '../ZQ7KHDAO.js';
2
+ import '../ZS7IDLZZ.js';
3
3
  import '../UDDAJZY4.js';
4
- import '../XEADETHB.js';
4
+ import '../2T2WFWNM.js';
5
5
  import '../VUOMXK5T.js';
6
6
  //# sourceMappingURL=discover.js.map
7
7
  //# sourceMappingURL=discover.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"exclude.d.ts","sourceRoot":"","sources":["../../src/resolve/exclude.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,eAAe,aAAqC,CAAC;AA6ClE,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,KAAG,MAAM,EACN,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,OACkB,CAAC"}
1
+ {"version":3,"file":"exclude.d.ts","sourceRoot":"","sources":["../../src/resolve/exclude.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,eAAO,MAAM,eAAe,aAAqC,CAAC;AA+ClE,sDAAsD;AACtD,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,KAAG,MAAM,EACN,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,MAAM,KAAG,OACkB,CAAC"}
@@ -1,4 +1,4 @@
1
- export { COPY_EXTENSIONS, hasExcludedSegment, removeExcludedFiles } from '../XEADETHB.js';
1
+ export { COPY_EXTENSIONS, hasExcludedSegment, removeExcludedFiles } from '../2T2WFWNM.js';
2
2
  import '../VUOMXK5T.js';
3
3
  //# sourceMappingURL=exclude.js.map
4
4
  //# sourceMappingURL=exclude.js.map
@@ -1,9 +1,9 @@
1
- export { buildDependenciesPathMap, resolveDependencies } from '../UB65DPGZ.js';
2
- import '../ZH2AZQUX.js';
3
- import '../NVUOVNKE.js';
4
- import '../PSAML6YW.js';
1
+ export { buildDependenciesPathMap, resolveDependencies } from '../N4NI6N3K.js';
2
+ import '../N2QRCDCB.js';
3
+ import '../ZQ7KHDAO.js';
4
+ import '../ZS7IDLZZ.js';
5
5
  import '../UDDAJZY4.js';
6
- import '../XEADETHB.js';
6
+ import '../2T2WFWNM.js';
7
7
  import '../VUOMXK5T.js';
8
8
  //# sourceMappingURL=index.js.map
9
9
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
- export { collectFiles, tryIsDirectory, tryReaddir, tryRealpath } from '../PSAML6YW.js';
1
+ export { collectFiles, tryIsDirectory, tryReaddir, tryRealpath } from '../ZS7IDLZZ.js';
2
2
  import '../UDDAJZY4.js';
3
- import '../XEADETHB.js';
3
+ import '../2T2WFWNM.js';
4
4
  import '../VUOMXK5T.js';
5
5
  //# sourceMappingURL=io.js.map
6
6
  //# sourceMappingURL=io.js.map
@@ -1,8 +1,8 @@
1
- export { pruneExcludedLiteralMembers, rewriteCargoToml, rewriteCargoTomls, rewritePathDeps, stripRootOnlyTables } from '../ZH2AZQUX.js';
2
- import '../NVUOVNKE.js';
3
- import '../PSAML6YW.js';
1
+ export { pruneExcludedLiteralMembers, rewriteCargoToml, rewriteCargoTomls, rewritePathDeps, stripRootOnlyTables } from '../N2QRCDCB.js';
2
+ import '../ZQ7KHDAO.js';
3
+ import '../ZS7IDLZZ.js';
4
4
  import '../UDDAJZY4.js';
5
- import '../XEADETHB.js';
5
+ import '../2T2WFWNM.js';
6
6
  import '../VUOMXK5T.js';
7
7
  //# sourceMappingURL=rewrite.js.map
8
8
  //# sourceMappingURL=rewrite.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/build-utils-rust",
3
- "version": "0.2.124",
3
+ "version": "0.2.125",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -18,15 +18,15 @@
18
18
  "dependencies": {
19
19
  "commander": "13.1.0",
20
20
  "smol-toml": "^1.7.0",
21
- "@layerzerolabs/logger-node": "0.2.124"
21
+ "@layerzerolabs/logger-node": "0.2.125"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@types/node": "^22.18.6",
25
25
  "tsup": "^8.4.0",
26
26
  "tsx": "^4.21.0",
27
27
  "vitest": "^3.2.6",
28
- "@layerzerolabs/typescript-configuration": "0.2.124",
29
- "@layerzerolabs/tsup-configuration": "0.2.124"
28
+ "@layerzerolabs/tsup-configuration": "0.2.125",
29
+ "@layerzerolabs/typescript-configuration": "0.2.125"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "restricted",
@@ -29,6 +29,8 @@ const EXCLUDE_FILE = new Set([
29
29
  // npm
30
30
  'package.json',
31
31
  'pnpm-lock.yaml',
32
+ // Host-side TS config only; not needed for Rust crate vendoring.
33
+ 'tsconfig.json',
32
34
  // turbo
33
35
  'turbo-snapshot.lock.json',
34
36
  'turbo.json',
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/resolve/exclude.ts"],"names":["COPY_EXTENSIONS","Set","EXCLUDE_DIR","EXCLUDE_FILE","COPY_EXCLUDES","removeExcludedFiles","entries","filter","entry","has","hasExcludedSegment","relPath","split","some","segment"],"mappings":";;;AACO,IAAMA,eAAAA,uBAAsBC,GAAAA,CAAI;AAAC,EAAA,KAAA;AAAO,EAAA,OAAA;AAAS,EAAA;AAAQ,CAAA;AAGhE,IAAMC,WAAAA,uBAAkBD,GAAAA,CAAI;;AAExB,EAAA,cAAA;AACA,EAAA,cAAA;AACA,EAAA,QAAA;AACA,EAAA,QAAA;;AAEA,EAAA,UAAA;AACA,EAAA,SAAA;AACA,EAAA,MAAA;AACA,EAAA,QAAA;;AAEA,EAAA,MAAA;AACA,EAAA,SAAA;;AAEA,EAAA,OAAA;AACA,EAAA,mBAAA;AACA,EAAA,mBAAA;;AAEA,EAAA;AACH,CAAA,CAAA;AAGD,IAAME,YAAAA,uBAAmBF,GAAAA,CAAI;;AAEzB,EAAA,cAAA;AACA,EAAA,gBAAA;;AAEA,EAAA,0BAAA;AACA,EAAA,YAAA;;AAEA,EAAA,YAAA;AACA,EAAA,aAAA;AACA,EAAA,WAAA;AACA,EAAA,qBAAA;AACA,EAAA,cAAA;;AAEA,EAAA;AACH,CAAA,CAAA;AAED,IAAMG,aAAAA,uBAAoBH,GAAAA,CAAI;AAAIC,EAAAA,GAAAA,WAAAA;AAAgBC,EAAAA,GAAAA;AAAa,CAAA,CAAA;AAGxD,IAAME,mBAAAA,mBAAsB,MAAA,CAAA,CAACC,OAAAA,KAChCA,OAAAA,CAAQC,MAAAA,CAAO,CAACC,KAAAA,KAAU,CAACJ,aAAAA,CAAcK,GAAAA,CAAID,KAAAA,CAAAA,CAAAA,EADd,qBAAA;AAO5B,IAAME,kBAAAA,mBAAqB,MAAA,CAAA,CAACC,OAAAA,KAC/BA,OAAAA,CAAQC,MAAM,QAAA,CAAA,CAAUC,IAAAA,CAAK,CAACC,OAAAA,KAAYZ,WAAAA,CAAYO,GAAAA,CAAIK,OAAAA,CAAAA,CAAAA,EAD5B,oBAAA","file":"XEADETHB.js","sourcesContent":["/** Files vendored into dependencies/ — everything else is skipped by type. */\nexport const COPY_EXTENSIONS = new Set(['.rs', '.toml', '.json']);\n\n/** Directories never descended into when copying or scanning. */\nconst EXCLUDE_DIR = new Set([\n // npm directories\n 'dependencies',\n 'node_modules',\n 'target',\n '.turbo',\n // cargo directories\n 'examples',\n 'benches',\n 'fuzz',\n '.cargo',\n // vcs / ci\n '.git',\n '.github',\n // shared directories\n 'tests',\n 'integration-tests',\n 'integration_tests',\n // stellar test snapshots\n 'test_snapshots',\n]);\n\n/** Files matching COPY_EXTENSIONS that must still be skipped — lockfiles, toolchain config, etc. */\nconst EXCLUDE_FILE = new Set([\n // npm\n 'package.json',\n 'pnpm-lock.yaml',\n // turbo\n 'turbo-snapshot.lock.json',\n 'turbo.json',\n // cargo/rust\n 'Cargo.lock',\n 'clippy.toml',\n 'deny.toml',\n 'rust-toolchain.toml',\n 'rustfmt.toml',\n // solana\n 'Anchor.toml',\n]);\n\nconst COPY_EXCLUDES = new Set([...EXCLUDE_DIR, ...EXCLUDE_FILE]);\n\n/** Filter excluded names from a directory listing. */\nexport const removeExcludedFiles = (entries: string[]): string[] =>\n entries.filter((entry) => !COPY_EXCLUDES.has(entry));\n\n/**\n * True if a resolved crate path contains an excluded segment.\n * Do not use on raw `path` dep values — those legitimately pass through node_modules.\n */\nexport const hasExcludedSegment = (relPath: string): boolean =>\n relPath.split(/[\\\\/]+/).some((segment) => EXCLUDE_DIR.has(segment));\n"]}