@proteinjs/reflection-build 2.0.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/package.json +5 -5
  3. package/test/examples/source-repository/a/node_modules/.package-lock.json +13 -13
  4. package/test/examples/source-repository/a/node_modules/@proteinjs/util/CHANGELOG.md +8 -0
  5. package/test/examples/source-repository/a/node_modules/@proteinjs/util/LICENSE +21 -0
  6. package/test/examples/source-repository/a/node_modules/@proteinjs/util/package.json +3 -2
  7. package/test/examples/source-repository/a/node_modules/@proteinjs/util/tsconfig.json +1 -0
  8. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/CHANGELOG.md +63 -0
  9. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/LICENSE +21 -0
  10. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/index.d.ts +1 -0
  11. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/index.js +1 -0
  12. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/index.js.map +1 -1
  13. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/ArgsMap.js +7 -4
  14. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/ArgsMap.js.map +1 -1
  15. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/Fs.js +16 -12
  16. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/Fs.js.map +1 -1
  17. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.d.ts +59 -13
  18. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js +119 -80
  19. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js.map +1 -1
  20. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/WorkspaceDeclaration.d.ts +91 -0
  21. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/WorkspaceDeclaration.js +608 -0
  22. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/WorkspaceDeclaration.js.map +1 -0
  23. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/dist/src/promisifiedFs.d.ts +0 -1
  24. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/index.ts +1 -0
  25. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/package.json +4 -3
  26. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/src/ArgsMap.ts +7 -4
  27. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/src/Fs.ts +12 -9
  28. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/src/PackageUtil.ts +92 -38
  29. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/src/WorkspaceDeclaration.ts +340 -0
  30. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/test/ArgsMap.test.ts +35 -0
  31. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/test/Fs.getFilePathsMatchingGlob.test.ts +70 -0
  32. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/test/PackageUtil.getLocalPackageMap.test.ts +107 -0
  33. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/test/PackageUtil.pathKeyedIdentity.test.ts +169 -0
  34. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/test/WorkspaceDeclaration.test.ts +174 -0
  35. package/test/examples/source-repository/a/node_modules/@proteinjs/util-node/tsconfig.json +1 -0
  36. package/test/examples/source-repository/a/package-lock.json +16 -16
  37. package/test/examples/source-repository/a/package.json +3 -3
  38. package/test/examples/source-repository/b/node_modules/.package-lock.json +10 -10
  39. package/test/examples/source-repository/b/node_modules/@proteinjs/util/CHANGELOG.md +8 -0
  40. package/test/examples/source-repository/b/node_modules/@proteinjs/util/LICENSE +21 -0
  41. package/test/examples/source-repository/b/node_modules/@proteinjs/util/package.json +3 -2
  42. package/test/examples/source-repository/b/node_modules/@proteinjs/util/tsconfig.json +1 -0
  43. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/CHANGELOG.md +63 -0
  44. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/LICENSE +21 -0
  45. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/index.d.ts +1 -0
  46. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/index.js +1 -0
  47. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/index.js.map +1 -1
  48. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/ArgsMap.js +7 -4
  49. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/ArgsMap.js.map +1 -1
  50. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/Fs.js +16 -12
  51. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/Fs.js.map +1 -1
  52. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.d.ts +59 -13
  53. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js +119 -80
  54. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/PackageUtil.js.map +1 -1
  55. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/WorkspaceDeclaration.d.ts +91 -0
  56. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/WorkspaceDeclaration.js +608 -0
  57. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/WorkspaceDeclaration.js.map +1 -0
  58. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/dist/src/promisifiedFs.d.ts +0 -1
  59. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/index.ts +1 -0
  60. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/package.json +4 -3
  61. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/src/ArgsMap.ts +7 -4
  62. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/src/Fs.ts +12 -9
  63. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/src/PackageUtil.ts +92 -38
  64. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/src/WorkspaceDeclaration.ts +340 -0
  65. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/test/ArgsMap.test.ts +35 -0
  66. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/test/Fs.getFilePathsMatchingGlob.test.ts +70 -0
  67. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/test/PackageUtil.getLocalPackageMap.test.ts +107 -0
  68. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/test/PackageUtil.pathKeyedIdentity.test.ts +169 -0
  69. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/test/WorkspaceDeclaration.test.ts +174 -0
  70. package/test/examples/source-repository/b/node_modules/@proteinjs/util-node/tsconfig.json +1 -0
  71. package/test/examples/source-repository/b/package-lock.json +13 -13
  72. package/test/examples/source-repository/b/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [2.0.3](https://github.com/proteinjs/reflection/compare/@proteinjs/reflection-build@2.0.2...@proteinjs/reflection-build@2.0.3) (2026-09-13)
7
+
8
+ **Note:** Version bump only for package @proteinjs/reflection-build
9
+
10
+
11
+
12
+
13
+
14
+ ## [2.0.2](https://github.com/proteinjs/reflection/compare/@proteinjs/reflection-build@2.0.1...@proteinjs/reflection-build@2.0.2) (2026-08-24)
15
+
16
+ **Note:** Version bump only for package @proteinjs/reflection-build
17
+
18
+
19
+
20
+
21
+
6
22
  ## [2.0.1](https://github.com/proteinjs/reflection/compare/@proteinjs/reflection-build@2.0.0...@proteinjs/reflection-build@2.0.1) (2026-08-22)
7
23
 
8
24
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/reflection-build",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Build system for reflection",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -30,9 +30,9 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@dagrejs/graphlib": "2.1.4",
33
- "@proteinjs/reflection": "^1.1.14",
34
- "@proteinjs/util": "^1.6.1",
35
- "@proteinjs/util-node": "^1.10.1",
33
+ "@proteinjs/reflection": "^1.2.1",
34
+ "@proteinjs/util": "^1.6.2",
35
+ "@proteinjs/util-node": "^1.11.0",
36
36
  "globby": "11.0.1",
37
37
  "gulp": "4.0.2",
38
38
  "gulp-shell": "0.8.0",
@@ -56,5 +56,5 @@
56
56
  "ts-jest": "29.1.1",
57
57
  "typescript": "5.2.2"
58
58
  },
59
- "gitHead": "2b0b36dd29e18f4cc1a7f1de3deb13fcb2417027"
59
+ "gitHead": "08efe7af6ecec2da0d3c4def1058e52dfa113c9e"
60
60
  }
@@ -10,9 +10,9 @@
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@dagrejs/graphlib": "2.1.4",
13
- "@proteinjs/reflection": "^1.1.12",
14
- "@proteinjs/util": "^1.6.1",
15
- "@proteinjs/util-node": "^1.10.1",
13
+ "@proteinjs/reflection": "^1.2.0",
14
+ "@proteinjs/util": "^1.6.2",
15
+ "@proteinjs/util-node": "^1.11.0",
16
16
  "globby": "11.0.1",
17
17
  "gulp": "4.0.2",
18
18
  "gulp-shell": "0.8.0",
@@ -1078,9 +1078,9 @@
1078
1078
  }
1079
1079
  },
1080
1080
  "node_modules/@proteinjs/reflection": {
1081
- "version": "1.1.12",
1082
- "resolved": "https://registry.npmjs.org/@proteinjs/reflection/-/reflection-1.1.12.tgz",
1083
- "integrity": "sha512-w+sL7Nqppk4DXdFxrfwjEGHSPykCwB3GWaiQXcP6X+8Qtj32BI0wmTvAt6hXvtbXPhvIHPFnTfSs9qlW0FYf9Q==",
1081
+ "version": "1.2.0",
1082
+ "resolved": "https://registry.npmjs.org/@proteinjs/reflection/-/reflection-1.2.0.tgz",
1083
+ "integrity": "sha512-AsoipvjpRD0WA1VC4770D5NsN0BDdli9UipdzHHPxcA+BJYcxwPLPLA7h+AAXTNMNfpr/BbEFkxHC0oSCiTkNg==",
1084
1084
  "license": "ISC",
1085
1085
  "dependencies": {
1086
1086
  "@dagrejs/graphlib": "2.1.4",
@@ -1092,9 +1092,9 @@
1092
1092
  "link": true
1093
1093
  },
1094
1094
  "node_modules/@proteinjs/util": {
1095
- "version": "1.6.1",
1096
- "resolved": "https://registry.npmjs.org/@proteinjs/util/-/util-1.6.1.tgz",
1097
- "integrity": "sha512-bFy6++l1u6RtMMeZEDYvMQWg14SAG2gCgUrcPy9M0Ctl0ATVMdQbU3h4IUQOlxwW32mWoni0qDTt9BkmHwAQjg==",
1095
+ "version": "1.6.2",
1096
+ "resolved": "https://registry.npmjs.org/@proteinjs/util/-/util-1.6.2.tgz",
1097
+ "integrity": "sha512-ZY7rMImFNnGV7x/Bqkkav1/gy9IvRR823JcnRJ4SoWXSlA29kuPdaHfnBay6eTQ7+kjiGGtJ+tMWM6NvZW9rUw==",
1098
1098
  "license": "ISC",
1099
1099
  "dependencies": {
1100
1100
  "@dagrejs/graphlib": "2.1.4",
@@ -1102,13 +1102,13 @@
1102
1102
  }
1103
1103
  },
1104
1104
  "node_modules/@proteinjs/util-node": {
1105
- "version": "1.10.1",
1106
- "resolved": "https://registry.npmjs.org/@proteinjs/util-node/-/util-node-1.10.1.tgz",
1107
- "integrity": "sha512-950BkiO4ccf9Bbt0CpvPj5pUalNH9dV1zqr7Cw1Dh3tg9xny6R02p1QrKvPU7anoZcnSp2Us6lBv0rlutYoSWw==",
1105
+ "version": "1.11.0",
1106
+ "resolved": "https://registry.npmjs.org/@proteinjs/util-node/-/util-node-1.11.0.tgz",
1107
+ "integrity": "sha512-+G6Q2w/F5NqmB/3wpNlhj6anpFs503xeKGiec4Hh0+WAsN1JkZCMmEQsHrrzaLGide0b6LyY3Kdo1eycFWRwGw==",
1108
1108
  "license": "ISC",
1109
1109
  "dependencies": {
1110
1110
  "@dagrejs/graphlib": "2.1.4",
1111
- "@proteinjs/util": "^1.6.1",
1111
+ "@proteinjs/util": "^1.6.2",
1112
1112
  "fs-extra": "11.1.1",
1113
1113
  "globby": "11.0.1",
1114
1114
  "typescript": "5.2.2"
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.6.2](https://github.com/proteinjs/util/compare/@proteinjs/util@1.6.1...@proteinjs/util@1.6.2) (2026-08-13)
7
+
8
+ **Note:** Version bump only for package @proteinjs/util
9
+
10
+
11
+
12
+
13
+
6
14
  # [1.6.0](https://github.com/proteinjs/util/compare/@proteinjs/util@1.5.0...@proteinjs/util@1.6.0) (2026-03-06)
7
15
 
8
16
 
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Brent Bahry
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@proteinjs/util",
3
- "version": "1.6.1",
3
+ "version": "1.6.2",
4
4
  "description": "Runtime-agnostic util libs",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,5 +36,6 @@
36
36
  "eslint-config-prettier": "9.1.0",
37
37
  "eslint-plugin-prettier": "5.1.3",
38
38
  "typescript": "5.2.2"
39
- }
39
+ },
40
+ "gitHead": "6b3396594c660b51fb8312414afba5af74287159"
40
41
  }
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "compilerOptions": {
3
+ "noEmitOnError": true,
3
4
  "rootDir": "./",
4
5
  "target": "es5",
5
6
  "module": "commonjs",
@@ -3,6 +3,69 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.11.0](https://github.com/proteinjs/util/compare/@proteinjs/util-node@1.10.6...@proteinjs/util-node@1.11.0) (2026-09-03)
7
+
8
+
9
+ ### Features
10
+
11
+ * **util-node:** workspace membership is declared, never crawled — WorkspaceDeclaration is the one owner of which package.json files are members: a root's lerna.json `packages` (lerna's default packages/* when the field is absent) plus the root package.json `workspacePackages` extra roots name exactly its members; a declared root OWNS its subtree (nothing undeclared beneath it is a member, however the tree is walked from above); only a tree with no declaration at its root is crawled — bounded exactly as before (no hidden dirs, node_modules, dist, symlinks) — and it hands every declared root it meets to that root's declaration. Hard errors naming their paths: a declared literal with no package.json; two leaf packages sharing a name (containers — every root in the metarepo is named `root` — are path-identified and exempt). npm's own `workspaces` field is deliberately not read (a different install model). Why: n3xah/app Deploy to Test run 33747781291 (2026-09-03) — CI fixture trees carrying the app's own package names shadowed packages/common, server and ui in the crawl (last path wins), build-workspace built "1 package in workspace", the image shipped with no packages/server/dist, and the migration gate failed on `Cannot find module dist/generated/index.js`. RED RUN stated: the shadowing repro through PackageUtil.getWorkspaceMetadata resolved @t/server to the fixture path at the pre-fix scanner; green with the declaration wired in. Bites verified: collision check disarmed -> the collision pin red alone; declaration ignored at the root -> repro + globs + literal-missing red; restored green. Suite: packages/node 6 suites / 30 tests green (24 pre-existing + 6 new). ([a8f3684](https://github.com/proteinjs/util/commit/a8f368494a07146d850c33584428945601d223e3))
12
+
13
+
14
+
15
+
16
+
17
+ ## [1.10.6](https://github.com/proteinjs/util/compare/@proteinjs/util-node@1.10.5...@proteinjs/util-node@1.10.6) (2026-09-02)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * **util-node:** Fs glob helpers prune ignored directories under a dot-directory base path — match relative to cwd (absolute:true) instead of folding the directory into an absolute pattern. In the absolute form fast-glob matched the ignore list against the absolute entry path and a globstar does not cross a dot-segment, so under ~/.n3xa/workspaces/<name> (the default local workspaces root) or a .scratch estate the ignore list matched nothing: every node_modules/dist was walked in full, workspace symlinks followed into cycles, and the dev-skill Glob of every package.json over a materialized metarepo exhausted a 12G heap three times running (2026-09-02). getFilePaths now rides the same path (its dir + '**/*' form walked one level only without a trailing separator). RED RUN stated: Fs.getFilePathsMatchingGlob.test 3/3 red at the pre-fix code (EACCES from inside node_modules/dep/locked under a dot-directory tmp root — the walk provably entering node_modules); green with the cwd form. Bite verified: absolute form re-introduced -> 3/3 red; restored green. Suite: packages/node 5 suites / 24 tests green (21 pre-existing + 3 new). ([2aace27](https://github.com/proteinjs/util/commit/2aace277e5e5727dc2666ee0a3cd3d49a3c69932))
23
+
24
+
25
+
26
+
27
+
28
+ ## [1.10.5](https://github.com/proteinjs/util/compare/@proteinjs/util-node@1.10.4...@proteinjs/util-node@1.10.5) (2026-09-02)
29
+
30
+
31
+ ### Bug Fixes
32
+
33
+ * **util-node:** parseArgsMap splits on the FIRST '=' only — values with embedded '=' (the estate CLI's --note among them) previously truncated at the second '=' (split('=')[1] kept one segment). The parser now preserves the full value after the first separator; bare flags and empty values unchanged. RED RUN stated: ArgsMap.test 2/6 red at the pre-fix code (--note=a=b=c parsed as 'a'); green with the indexOf split. Bite verified: truncation re-introduced -> the 2 embedded-'=' pins red alone; restored green. Suite: packages/node 4 suites / 21 tests green (15 pre-existing + 6 new). ([277c1d6](https://github.com/proteinjs/util/commit/277c1d65e15d874f7c1750b3edf63bf905120780))
34
+
35
+
36
+
37
+
38
+
39
+ ## [1.10.4](https://github.com/proteinjs/util/compare/@proteinjs/util-node@1.10.3...@proteinjs/util-node@1.10.4) (2026-08-17)
40
+
41
+
42
+ ### Bug Fixes
43
+
44
+ * package identity is the package.json path — name-keyed discovery dropped same-named packages ([9cd9721](https://github.com/proteinjs/util/commit/9cd9721dec7052f65b1021a4c004900ff19802a8)), closes [#75](https://github.com/proteinjs/util/issues/75)
45
+
46
+
47
+
48
+
49
+
50
+ ## [1.10.3](https://github.com/proteinjs/util/compare/@proteinjs/util-node@1.10.2...@proteinjs/util-node@1.10.3) (2026-08-15)
51
+
52
+
53
+ ### Bug Fixes
54
+
55
+ * bounded workspace package discovery — replace glob walk that descended unpruned into hidden directories ([04a56bb](https://github.com/proteinjs/util/commit/04a56bb228536ffa2fb63e888524c672f4cca186))
56
+
57
+
58
+
59
+
60
+
61
+ ## [1.10.2](https://github.com/proteinjs/util/compare/@proteinjs/util-node@1.10.1...@proteinjs/util-node@1.10.2) (2026-08-13)
62
+
63
+ **Note:** Version bump only for package @proteinjs/util-node
64
+
65
+
66
+
67
+
68
+
6
69
  # [1.10.0](https://github.com/proteinjs/util/compare/@proteinjs/util-node@1.9.0...@proteinjs/util-node@1.10.0) (2026-07-28)
7
70
 
8
71
 
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 Brent Bahry
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -6,3 +6,4 @@ export * from './src/PackageUtil';
6
6
  export * from './src/GitUtil';
7
7
  export * from './src/ArgsMap';
8
8
  export * from './src/LogColorWrapper';
9
+ export * from './src/WorkspaceDeclaration';
@@ -22,4 +22,5 @@ __exportStar(require("./src/PackageUtil"), exports);
22
22
  __exportStar(require("./src/GitUtil"), exports);
23
23
  __exportStar(require("./src/ArgsMap"), exports);
24
24
  __exportStar(require("./src/LogColorWrapper"), exports);
25
+ __exportStar(require("./src/WorkspaceDeclaration"), exports);
25
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,mDAAiC;AACjC,4CAA0B;AAC1B,2CAAyB;AACzB,oDAAkC;AAClC,gDAA8B;AAC9B,gDAA8B;AAC9B,wDAAsC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,mDAAiC;AACjC,4CAA0B;AAC1B,2CAAyB;AACzB,oDAAkC;AAClC,gDAA8B;AAC9B,gDAA8B;AAC9B,wDAAsC;AACtC,6DAA2C"}
@@ -7,12 +7,15 @@ var parseArgsMap = function (rawArgs) {
7
7
  if (!arg.startsWith('--')) {
8
8
  return;
9
9
  }
10
- var keyValue = arg.slice(2).split('=');
11
- if (keyValue.length > 1) {
12
- args[keyValue[0]] = keyValue[1];
10
+ // Split on the FIRST '=' only — values legitimately contain '=' (e.g. --note=port=9040)
11
+ // and must be preserved in full.
12
+ var keyValue = arg.slice(2);
13
+ var separatorIndex = keyValue.indexOf('=');
14
+ if (separatorIndex >= 0) {
15
+ args[keyValue.slice(0, separatorIndex)] = keyValue.slice(separatorIndex + 1);
13
16
  }
14
17
  else {
15
- args[keyValue[0]] = true;
18
+ args[keyValue] = true;
16
19
  }
17
20
  });
18
21
  return args;
@@ -1 +1 @@
1
- {"version":3,"file":"ArgsMap.js","sourceRoot":"","sources":["../../src/ArgsMap.ts"],"names":[],"mappings":";;;AAIO,IAAM,YAAY,GAAG,UAAC,OAAiB;IAC5C,IAAM,IAAI,GAAY,EAAE,CAAC;IACzB,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG;QAClB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO;SACR;QAED,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;SACjC;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;SAC1B;IACH,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAfW,QAAA,YAAY,gBAevB"}
1
+ {"version":3,"file":"ArgsMap.js","sourceRoot":"","sources":["../../src/ArgsMap.ts"],"names":[],"mappings":";;;AAIO,IAAM,YAAY,GAAG,UAAC,OAAiB;IAC5C,IAAM,IAAI,GAAY,EAAE,CAAC;IACzB,OAAO,CAAC,OAAO,CAAC,UAAC,GAAG;QAClB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACzB,OAAO;SACR;QAED,wFAAwF;QACxF,iCAAiC;QACjC,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAM,cAAc,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7C,IAAI,cAAc,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;SAC9E;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;SACvB;IACH,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAlBW,QAAA,YAAY,gBAkBvB"}
@@ -218,9 +218,7 @@ var Fs = /** @class */ (function () {
218
218
  return __awaiter(this, void 0, void 0, function () {
219
219
  return __generator(this, function (_a) {
220
220
  switch (_a.label) {
221
- case 0: return [4 /*yield*/, (0, globby_1.default)(dir + '**/*', {
222
- ignore: __spreadArray([], globIgnorePatterns, true),
223
- })];
221
+ case 0: return [4 /*yield*/, Fs.getFilePathsMatchingGlob(dir, '**/*', globIgnorePatterns)];
224
222
  case 1: return [2 /*return*/, _a.sent()];
225
223
  }
226
224
  });
@@ -229,20 +227,26 @@ var Fs = /** @class */ (function () {
229
227
  // @param dirPrefix recursively search for files in this dir
230
228
  // @param glob file matching pattern ie. **/package.json
231
229
  // @param globIgnorePatterns ie. ['**/node_modules/**', '**/dist/**'] to ignore these directories
232
- // @return string[] of file paths
230
+ // @return string[] of absolute file paths
233
231
  Fs.getFilePathsMatchingGlob = function (dirPrefix, glob, globIgnorePatterns) {
234
232
  if (globIgnorePatterns === void 0) { globIgnorePatterns = []; }
235
233
  return __awaiter(this, void 0, void 0, function () {
236
234
  return __generator(this, function (_a) {
237
235
  switch (_a.label) {
238
- case 0:
239
- if (dirPrefix[dirPrefix.length - 1] != path_1.default.sep) {
240
- dirPrefix += path_1.default.sep;
241
- }
242
- return [4 /*yield*/, (0, globby_1.default)(dirPrefix + glob, {
243
- ignore: __spreadArray([], globIgnorePatterns, true),
244
- })];
245
- case 1: return [2 /*return*/, _a.sent()];
236
+ case 0: return [4 /*yield*/, (0, globby_1.default)(glob, {
237
+ cwd: dirPrefix,
238
+ absolute: true,
239
+ ignore: __spreadArray([], globIgnorePatterns, true),
240
+ })];
241
+ case 1:
242
+ // Match relative to the directory (`cwd`) rather than folding it into an absolute pattern.
243
+ // In the absolute form fast-glob matched the ignore list against the absolute entry path,
244
+ // and a globstar does not cross a dot-segment — so under any base path containing a
245
+ // dot-directory (`~/.n3xa/workspaces/<name>`, a `.scratch` estate) the ignore list matched
246
+ // nothing: every node_modules/dist was walked in full, workspace symlinks followed into
247
+ // cycles, and the caller ran out of heap on a large tree. Relative matching keeps the ignore
248
+ // list and the entry paths in the same frame, so the prune holds under any base path.
249
+ return [2 /*return*/, _a.sent()];
246
250
  }
247
251
  });
248
252
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Fs.js","sourceRoot":"","sources":["../../src/Fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Fs.js","sourceRoot":"","sources":["../../src/Fs.ts"],"names":[],"mappings":"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"}
@@ -14,11 +14,29 @@ export type LocalPackage = {
14
14
  lernaJson?: any;
15
15
  };
16
16
  };
17
+ /**
18
+ * Name-keyed resolution index: dependency declarations reference packages BY NAME, so name →
19
+ * package is how a declared dep resolves to a workspace member. Names are not identities —
20
+ * every workspace root in a metarepo is named `root` — so when several packages share a name,
21
+ * this map holds only one of them (deterministically: the lexicographically last package.json
22
+ * path wins). Enumeration and identity questions belong to `LocalPackagePathMap`.
23
+ */
17
24
  export type LocalPackageMap = {
18
25
  [packageName: string]: LocalPackage;
19
26
  };
27
+ /**
28
+ * Path-keyed identity map: one entry per discovered package.json, keyed by its absolute path.
29
+ * This is the DISCOVERY truth — same-named packages (the metarepo root, the app root, and every
30
+ * nested lerna root are all named `root`) never collide here. Use it wherever the question is
31
+ * "which packages exist" (enumeration, symlink coverage); use `LocalPackageMap` only to resolve
32
+ * a dependency NAME to its workspace member.
33
+ */
34
+ export type LocalPackagePathMap = {
35
+ [packageJsonPath: string]: LocalPackage;
36
+ };
20
37
  export type WorkspaceMetadata = {
21
38
  packageMap: LocalPackageMap;
39
+ packagePathMap: LocalPackagePathMap;
22
40
  packageGraph: any;
23
41
  sortedPackageNames: string[];
24
42
  workspaceToPackageMap: {
@@ -59,13 +77,33 @@ export declare class PackageUtil {
59
77
  };
60
78
  private static logCompilerErrors;
61
79
  /**
62
- * Get map of local packages within repo specified by directory path
80
+ * Get the name-keyed resolution index of local packages within the repo specified by
81
+ * directory path. Derived from `getLocalPackagePathMap` (which owns discovery); see
82
+ * `LocalPackageMap` for the name-collision semantics.
63
83
  *
64
84
  * @param dir dir path that contains local packages
65
- * @param globIgnorePatterns already includes: ['**\/node_modules/**', '**\/dist/**']
66
85
  * @returns {[packageName: string]: LocalPackage}
67
86
  */
68
- static getLocalPackageMap(dir: string, globIgnorePatterns?: string[]): Promise<LocalPackageMap>;
87
+ static getLocalPackageMap(dir: string): Promise<LocalPackageMap>;
88
+ /**
89
+ * Every member package of the workspace rooted at `dir`, keyed by package.json path — the
90
+ * package's IDENTITY. Same-named packages (every workspace root is named `root`) are distinct
91
+ * entries here; anything that enumerates workspace members must start from this map, not from
92
+ * the name-keyed index.
93
+ *
94
+ * Membership is DECLARED, never crawled — `WorkspaceDeclaration` is the one owner: a root's
95
+ * lerna.json `packages` (plus the root package.json's `workspacePackages` extra roots) names
96
+ * exactly its members, a declared root owns its subtree, and only a tree with no declaration
97
+ * at its root is walked (bounded: never into hidden directories, `node_modules`, `dist`, or
98
+ * through symlinks — the unbounded-glob OOM of 2026-09-02 stays fixed). A same-named
99
+ * package.json nobody declared (the CI fixture trees that shadowed the app's packages in
100
+ * n3xah/app run 33747781291) is not a member; a leaf-name collision among members is a hard
101
+ * error naming both paths.
102
+ *
103
+ * @param dir dir path that contains local packages
104
+ * @returns {[packageJsonPath: string]: LocalPackage}
105
+ */
106
+ static getLocalPackagePathMap(dir: string): Promise<LocalPackagePathMap>;
69
107
  /**
70
108
  * Finds the nearest package.json in the directory hierarchy starting from the given directory.
71
109
  * @param dir The starting directory path to search from.
@@ -120,17 +158,18 @@ export declare class PackageUtil {
120
158
  /**
121
159
  * Compute the transitive closure of workspace dependencies for `localPackage`.
122
160
  *
123
- * Reuses `getPackageDependencyGraph`, which already crawls `dependencies` and
124
- * `devDependencies` (transitively, across the whole workspace) and adds an
125
- * edge `consumer -> dependency` for each. So the workspace deps reachable from
126
- * a package are exactly the nodes reachable by following `successors` from its
127
- * node. We do a cycle-safe traversal (a `visited` set), since the dependency
128
- * graph can contain cycles. The package itself is excluded from the result.
161
+ * Traverses dependency DECLARATIONS (`dependencies` + `devDependencies`) starting from THIS
162
+ * package instance's own package.json, resolving each declared name through
163
+ * `localPackageMap` and expanding through the resolved packages' declarations in turn.
164
+ * Cycle safety and the visited set are PATH-KEYED (package.json paths): identity is the
165
+ * path, never the name. The closure is never seeded from a shared name-keyed graph node —
166
+ * same-named packages (every workspace root is named `root`) share such a node, so a
167
+ * graph-seeded closure conflates their dependencies and computes another package's closure
168
+ * for whichever same-named instance lost the name-keyed collision.
129
169
  *
130
- * Only names present in `localPackageMap` are returned — i.e. packages that
131
- * actually live in the workspace and can be symlinked (the graph already
132
- * filters to file:/relative/workspace deps in `addDependencies`, but we filter
133
- * again here so the result is exactly the set of linkable packages).
170
+ * Only names present in `localPackageMap` are traversed and returned — i.e. packages that
171
+ * actually live in the workspace and can be symlinked. The package itself is excluded from
172
+ * the result (its own path seeds the visited set).
134
173
  *
135
174
  * Public: WorkspaceDoctor (@proteinjs/build) diagnoses the same closure this method links —
136
175
  * verification and repair must agree on the set of packages that ought to be symlinked.
@@ -152,4 +191,11 @@ export declare class PackageUtil {
152
191
  * @param localPackageMap `LocalPackageMap` of the workspace
153
192
  */
154
193
  private static symlinkPackage;
194
+ /**
195
+ * Derive the name-keyed resolution index from the path-keyed discovery map. When several
196
+ * packages share a name, the lexicographically last package.json path wins — deterministic,
197
+ * and irrelevant for real dependency names (nothing declares a dep on `root`; uniquely-named
198
+ * packages resolve identically either way).
199
+ */
200
+ private static toNameKeyedMap;
155
201
  }