@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.
- package/.turbo/turbo-build.log +16 -16
- package/.turbo/turbo-lint.log +1 -1
- package/.turbo/turbo-test.log +5 -5
- package/dist/{XEADETHB.js → 2T2WFWNM.js} +4 -2
- package/dist/2T2WFWNM.js.map +1 -0
- package/dist/{ZH2AZQUX.js → N2QRCDCB.js} +5 -5
- package/dist/{ZH2AZQUX.js.map → N2QRCDCB.js.map} +1 -1
- package/dist/{UB65DPGZ.js → N4NI6N3K.js} +5 -5
- package/dist/{UB65DPGZ.js.map → N4NI6N3K.js.map} +1 -1
- package/dist/{NVUOVNKE.js → ZQ7KHDAO.js} +3 -3
- package/dist/{NVUOVNKE.js.map → ZQ7KHDAO.js.map} +1 -1
- package/dist/{PSAML6YW.js → ZS7IDLZZ.js} +3 -3
- package/dist/{PSAML6YW.js.map → ZS7IDLZZ.js.map} +1 -1
- package/dist/cli.js +5 -5
- package/dist/index.js +5 -5
- package/dist/resolve/discover.js +3 -3
- package/dist/resolve/exclude.d.ts.map +1 -1
- package/dist/resolve/exclude.js +1 -1
- package/dist/resolve/index.js +5 -5
- package/dist/resolve/io.js +2 -2
- package/dist/resolve/rewrite.js +4 -4
- package/package.json +4 -4
- package/src/resolve/exclude.ts +2 -0
- package/dist/XEADETHB.js.map +0 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -12,32 +12,32 @@
|
|
|
12
12
|
[34mESM[39m Build start
|
|
13
13
|
[32mESM[39m [1mdist/index.js [22m[32m264.00 B[39m
|
|
14
14
|
[32mESM[39m [1mdist/resolve/index.js [22m[32m297.00 B[39m
|
|
15
|
+
[32mESM[39m [1mdist/resolve/discover.js [22m[32m250.00 B[39m
|
|
15
16
|
[32mESM[39m [1mdist/cli.js [22m[32m1.29 KB[39m
|
|
16
17
|
[32mESM[39m [1mdist/logger.js [22m[32m171.00 B[39m
|
|
17
|
-
[32mESM[39m [1mdist/resolve/discover.js [22m[32m250.00 B[39m
|
|
18
18
|
[32mESM[39m [1mdist/resolve/io.js [22m[32m224.00 B[39m
|
|
19
|
-
[32mESM[39m [1mdist/
|
|
20
|
-
[32mESM[39m [1mdist/
|
|
21
|
-
[32mESM[39m [1mdist/
|
|
22
|
-
[32mESM[39m [1mdist/
|
|
19
|
+
[32mESM[39m [1mdist/N4NI6N3K.js [22m[32m3.20 KB[39m
|
|
20
|
+
[32mESM[39m [1mdist/resolve/rewrite.js [22m[32m333.00 B[39m
|
|
21
|
+
[32mESM[39m [1mdist/ZQ7KHDAO.js [22m[32m1.71 KB[39m
|
|
22
|
+
[32mESM[39m [1mdist/ZS7IDLZZ.js [22m[32m1.78 KB[39m
|
|
23
23
|
[32mESM[39m [1mdist/UDDAJZY4.js [22m[32m796.00 B[39m
|
|
24
|
+
[32mESM[39m [1mdist/N2QRCDCB.js [22m[32m4.71 KB[39m
|
|
24
25
|
[32mESM[39m [1mdist/VUOMXK5T.js [22m[32m222.00 B[39m
|
|
25
|
-
[32mESM[39m [1mdist/
|
|
26
|
-
[32mESM[39m [1mdist/resolve/rewrite.js [22m[32m333.00 B[39m
|
|
26
|
+
[32mESM[39m [1mdist/2T2WFWNM.js [22m[32m1.38 KB[39m
|
|
27
27
|
[32mESM[39m [1mdist/resolve/exclude.js [22m[32m187.00 B[39m
|
|
28
28
|
[32mESM[39m [1mdist/index.js.map [22m[32m69.00 B[39m
|
|
29
|
+
[32mESM[39m [1mdist/resolve/discover.js.map [22m[32m72.00 B[39m
|
|
30
|
+
[32mESM[39m [1mdist/cli.js.map [22m[32m2.44 KB[39m
|
|
29
31
|
[32mESM[39m [1mdist/resolve/index.js.map [22m[32m69.00 B[39m
|
|
30
32
|
[32mESM[39m [1mdist/logger.js.map [22m[32m70.00 B[39m
|
|
31
|
-
[32mESM[39m [1mdist/cli.js.map [22m[32m2.44 KB[39m
|
|
32
|
-
[32mESM[39m [1mdist/resolve/discover.js.map [22m[32m72.00 B[39m
|
|
33
33
|
[32mESM[39m [1mdist/resolve/io.js.map [22m[32m66.00 B[39m
|
|
34
|
-
[32mESM[39m [1mdist/
|
|
35
|
-
[32mESM[39m [1mdist/
|
|
36
|
-
[32mESM[39m [1mdist/
|
|
37
|
-
[32mESM[39m [1mdist/PSAML6YW.js.map [22m[32m4.67 KB[39m
|
|
34
|
+
[32mESM[39m [1mdist/N4NI6N3K.js.map [22m[32m8.64 KB[39m
|
|
35
|
+
[32mESM[39m [1mdist/resolve/rewrite.js.map [22m[32m71.00 B[39m
|
|
36
|
+
[32mESM[39m [1mdist/ZQ7KHDAO.js.map [22m[32m5.33 KB[39m
|
|
38
37
|
[32mESM[39m [1mdist/UDDAJZY4.js.map [22m[32m1.55 KB[39m
|
|
38
|
+
[32mESM[39m [1mdist/ZS7IDLZZ.js.map [22m[32m4.67 KB[39m
|
|
39
|
+
[32mESM[39m [1mdist/N2QRCDCB.js.map [22m[32m14.05 KB[39m
|
|
39
40
|
[32mESM[39m [1mdist/VUOMXK5T.js.map [22m[32m72.00 B[39m
|
|
40
|
-
[32mESM[39m [1mdist/
|
|
41
|
-
[32mESM[39m [1mdist/XEADETHB.js.map [22m[32m2.82 KB[39m
|
|
41
|
+
[32mESM[39m [1mdist/2T2WFWNM.js.map [22m[32m2.93 KB[39m
|
|
42
42
|
[32mESM[39m [1mdist/resolve/exclude.js.map [22m[32m71.00 B[39m
|
|
43
|
-
[32mESM[39m ⚡️ Build success in
|
|
43
|
+
[32mESM[39m ⚡️ Build success in 137ms
|
package/.turbo/turbo-lint.log
CHANGED
|
@@ -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:
|
|
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)
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -13,20 +13,20 @@ Breaking changes might not follow SemVer, please pin Vitest's version when using
|
|
|
13
13
|
[90mstdout[2m | tests/resolve/index.test.ts[2m > [22m[2mresolveDependencies — workspace mode ([workspace] members)[2m > [22m[2mplaces dependencies/ at workspace root when root Cargo.toml has [workspace]
|
|
14
14
|
[22m[39m[INFO] Resolved 1 Cargo dependencies into dependencies
|
|
15
15
|
|
|
16
|
-
[32m✓[39m tests/resolve/discover.test.ts [2m([22m[2m16 tests[22m[2m)[22m[32m
|
|
16
|
+
[32m✓[39m tests/resolve/discover.test.ts [2m([22m[2m16 tests[22m[2m)[22m[32m 17[2mms[22m[39m
|
|
17
17
|
[90mstdout[2m | tests/resolve/index.test.ts[2m > [22m[2mresolveDependencies — transitive dep rewriting[2m > [22m[2mrewrites paths inside copied crates to point to flat siblings
|
|
18
18
|
[22m[39m[INFO] Resolved 2 Cargo dependencies into dependencies
|
|
19
19
|
|
|
20
20
|
[90mstdout[2m | tests/resolve/index.test.ts[2m > [22m[2mresolveDependencies — transitive dep rewriting[2m > [22m[2mstrips root-only Cargo tables from copied dependency manifests
|
|
21
21
|
[22m[39m[INFO] Resolved 1 Cargo dependencies into dependencies
|
|
22
22
|
|
|
23
|
-
[32m✓[39m tests/resolve/rewrite.test.ts [2m([22m[2m22 tests[22m[2m)[22m[32m 38[2mms[22m[39m
|
|
24
23
|
[90mstdout[2m | tests/resolve/index.test.ts[2m > [22m[2mresolveDependencies — Stellar workspace dependency vendoring[2m > [22m[2mcopies the whole workspace tree, including deeply nested members
|
|
25
24
|
[22m[39m[INFO] Resolved 1 Cargo dependencies into dependencies
|
|
26
25
|
|
|
27
26
|
[90mstdout[2m | tests/resolve/index.test.ts[2m > [22m[2mresolveDependencies — Stellar workspace dependency vendoring[2m > [22m[2mpreserves the [workspace] root manifest so member inheritance still resolves
|
|
28
27
|
[22m[39m[INFO] Resolved 1 Cargo dependencies into dependencies
|
|
29
28
|
|
|
29
|
+
[32m✓[39m tests/resolve/rewrite.test.ts [2m([22m[2m22 tests[22m[2m)[22m[32m 32[2mms[22m[39m
|
|
30
30
|
[90mstdout[2m | tests/resolve/index.test.ts[2m > [22m[2mresolveDependencies — Stellar workspace dependency vendoring[2m > [22m[2mleaves the consumer manifest untouched (it already points at dependencies/)
|
|
31
31
|
[22m[39m[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
|
[90mstdout[2m | tests/resolve/index.test.ts[2m > [22m[2mresolveDependencies — error handling[2m > [22m[2mempty node_modules does not change dependencies state[2m > [22m[2mdependencies already exists
|
|
61
61
|
[22m[39m[INFO] No @layerzerolabs namespaced Cargo dependencies found in node_modules
|
|
62
62
|
|
|
63
|
-
[32m✓[39m tests/resolve/index.test.ts [2m([22m[2m18 tests[22m[2m)[22m[32m
|
|
63
|
+
[32m✓[39m tests/resolve/index.test.ts [2m([22m[2m18 tests[22m[2m)[22m[32m 77[2mms[22m[39m
|
|
64
64
|
|
|
65
65
|
[2m Test Files [22m [1m[32m3 passed[39m[22m[90m (3)[39m
|
|
66
66
|
[2m Tests [22m [1m[32m56 passed[39m[22m[90m (56)[39m
|
|
67
67
|
[2mType Errors [22m [2mno errors[22m
|
|
68
|
-
[2m Start at [22m
|
|
69
|
-
[2m Duration [22m
|
|
68
|
+
[2m Start at [22m 01:50:29
|
|
69
|
+
[2m Duration [22m 466ms[2m (transform 202ms, setup 0ms, collect 465ms, tests 126ms, environment 0ms, prepare 207ms)[22m
|
|
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=
|
|
55
|
-
//# sourceMappingURL=
|
|
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 './
|
|
2
|
-
import { tryRealpath } from './
|
|
1
|
+
import { isWorkspaceRoot } from './ZQ7KHDAO.js';
|
|
2
|
+
import { tryRealpath } from './ZS7IDLZZ.js';
|
|
3
3
|
import { logger } from './UDDAJZY4.js';
|
|
4
|
-
import { hasExcludedSegment } from './
|
|
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=
|
|
115
|
-
//# sourceMappingURL=
|
|
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 './
|
|
2
|
-
import { discoverPackages, isCrate } from './
|
|
3
|
-
import { collectFiles } from './
|
|
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=
|
|
83
|
-
//# sourceMappingURL=
|
|
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":"
|
|
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 './
|
|
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=
|
|
52
|
-
//# sourceMappingURL=
|
|
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":"
|
|
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 './
|
|
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=
|
|
59
|
-
//# sourceMappingURL=
|
|
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":"
|
|
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 './
|
|
3
|
-
import './
|
|
4
|
-
import './
|
|
5
|
-
import './
|
|
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 './
|
|
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 './
|
|
2
|
-
import './
|
|
3
|
-
import './
|
|
4
|
-
import './
|
|
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 './
|
|
6
|
+
import './2T2WFWNM.js';
|
|
7
7
|
import './VUOMXK5T.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/resolve/discover.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { discoverPackages, isCrate, isWorkspaceRoot } from '../
|
|
2
|
-
import '../
|
|
1
|
+
export { discoverPackages, isCrate, isWorkspaceRoot } from '../ZQ7KHDAO.js';
|
|
2
|
+
import '../ZS7IDLZZ.js';
|
|
3
3
|
import '../UDDAJZY4.js';
|
|
4
|
-
import '../
|
|
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;
|
|
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"}
|
package/dist/resolve/exclude.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { COPY_EXTENSIONS, hasExcludedSegment, removeExcludedFiles } from '../
|
|
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
|
package/dist/resolve/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { buildDependenciesPathMap, resolveDependencies } from '../
|
|
2
|
-
import '../
|
|
3
|
-
import '../
|
|
4
|
-
import '../
|
|
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 '../
|
|
6
|
+
import '../2T2WFWNM.js';
|
|
7
7
|
import '../VUOMXK5T.js';
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/dist/resolve/io.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { collectFiles, tryIsDirectory, tryReaddir, tryRealpath } from '../
|
|
1
|
+
export { collectFiles, tryIsDirectory, tryReaddir, tryRealpath } from '../ZS7IDLZZ.js';
|
|
2
2
|
import '../UDDAJZY4.js';
|
|
3
|
-
import '../
|
|
3
|
+
import '../2T2WFWNM.js';
|
|
4
4
|
import '../VUOMXK5T.js';
|
|
5
5
|
//# sourceMappingURL=io.js.map
|
|
6
6
|
//# sourceMappingURL=io.js.map
|
package/dist/resolve/rewrite.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { pruneExcludedLiteralMembers, rewriteCargoToml, rewriteCargoTomls, rewritePathDeps, stripRootOnlyTables } from '../
|
|
2
|
-
import '../
|
|
3
|
-
import '../
|
|
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 '../
|
|
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.
|
|
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.
|
|
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/
|
|
29
|
-
"@layerzerolabs/
|
|
28
|
+
"@layerzerolabs/tsup-configuration": "0.2.125",
|
|
29
|
+
"@layerzerolabs/typescript-configuration": "0.2.125"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"access": "restricted",
|
package/src/resolve/exclude.ts
CHANGED
package/dist/XEADETHB.js.map
DELETED
|
@@ -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"]}
|