@atlaspack/core 2.16.2-canary.0 → 2.16.2-canary.100

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 (75) hide show
  1. package/CHANGELOG.md +242 -0
  2. package/lib/AssetGraph.js +27 -7
  3. package/lib/Atlaspack.js +24 -5
  4. package/lib/BundleGraph.js +6 -5
  5. package/lib/Dependency.js +6 -2
  6. package/lib/Environment.js +5 -3
  7. package/lib/EnvironmentManager.js +137 -0
  8. package/lib/InternalConfig.js +3 -2
  9. package/lib/PackagerRunner.js +52 -15
  10. package/lib/RequestTracker.js +319 -93
  11. package/lib/UncommittedAsset.js +20 -2
  12. package/lib/applyRuntimes.js +2 -1
  13. package/lib/assetUtils.js +2 -1
  14. package/lib/atlaspack-v3/worker/worker.js +8 -0
  15. package/lib/index.js +29 -1
  16. package/lib/public/Asset.js +3 -2
  17. package/lib/public/Bundle.js +2 -1
  18. package/lib/public/BundleGraph.js +21 -5
  19. package/lib/public/Config.js +91 -3
  20. package/lib/public/Dependency.js +2 -1
  21. package/lib/public/MutableBundleGraph.js +2 -1
  22. package/lib/public/Target.js +2 -1
  23. package/lib/requests/AssetGraphRequest.js +13 -1
  24. package/lib/requests/AssetGraphRequestRust.js +17 -2
  25. package/lib/requests/AssetRequest.js +2 -1
  26. package/lib/requests/BundleGraphRequest.js +13 -1
  27. package/lib/requests/ConfigRequest.js +27 -4
  28. package/lib/requests/DevDepRequest.js +21 -1
  29. package/lib/requests/PathRequest.js +10 -0
  30. package/lib/requests/TargetRequest.js +18 -16
  31. package/lib/requests/WriteBundleRequest.js +15 -3
  32. package/lib/requests/WriteBundlesRequest.js +1 -0
  33. package/lib/resolveOptions.js +4 -2
  34. package/package.json +18 -25
  35. package/src/AssetGraph.js +30 -7
  36. package/src/Atlaspack.js +29 -13
  37. package/src/BundleGraph.js +13 -8
  38. package/src/Dependency.js +13 -5
  39. package/src/Environment.js +9 -6
  40. package/src/EnvironmentManager.js +145 -0
  41. package/src/InternalConfig.js +6 -5
  42. package/src/PackagerRunner.js +72 -20
  43. package/src/RequestTracker.js +543 -149
  44. package/src/UncommittedAsset.js +23 -3
  45. package/src/applyRuntimes.js +6 -1
  46. package/src/assetUtils.js +4 -3
  47. package/src/atlaspack-v3/worker/compat/plugin-config.js +9 -5
  48. package/src/atlaspack-v3/worker/worker.js +7 -0
  49. package/src/index.js +5 -1
  50. package/src/public/Asset.js +9 -2
  51. package/src/public/Bundle.js +2 -1
  52. package/src/public/BundleGraph.js +22 -5
  53. package/src/public/Config.js +128 -14
  54. package/src/public/Dependency.js +2 -1
  55. package/src/public/MutableBundleGraph.js +5 -2
  56. package/src/public/Target.js +2 -1
  57. package/src/requests/AssetGraphRequest.js +13 -3
  58. package/src/requests/AssetGraphRequestRust.js +14 -2
  59. package/src/requests/AssetRequest.js +2 -1
  60. package/src/requests/BundleGraphRequest.js +13 -3
  61. package/src/requests/ConfigRequest.js +33 -9
  62. package/src/requests/DevDepRequest.js +44 -12
  63. package/src/requests/PathRequest.js +4 -0
  64. package/src/requests/TargetRequest.js +19 -25
  65. package/src/requests/WriteBundleRequest.js +14 -8
  66. package/src/requests/WriteBundlesRequest.js +1 -0
  67. package/src/resolveOptions.js +4 -2
  68. package/src/types.js +10 -7
  69. package/test/Environment.test.js +43 -34
  70. package/test/EnvironmentManager.test.js +192 -0
  71. package/test/PublicEnvironment.test.js +10 -7
  72. package/test/RequestTracker.test.js +124 -4
  73. package/test/public/Config.test.js +108 -0
  74. package/test/requests/ConfigRequest.test.js +199 -7
  75. package/test/test-utils.js +4 -9
package/CHANGELOG.md CHANGED
@@ -1,5 +1,247 @@
1
1
  # @atlaspack/core
2
2
 
3
+ ## 2.18.6
4
+
5
+ ### Patch Changes
6
+
7
+ - [#655](https://github.com/atlassian-labs/atlaspack/pull/655) [`5ded263`](https://github.com/atlassian-labs/atlaspack/commit/5ded263c7f11b866e8885b81c73e20dd060b25be) Thanks [@yamadapc](https://github.com/yamadapc)! - Clean-up inline requires multi-threading feature-flag
8
+
9
+ - [#658](https://github.com/atlassian-labs/atlaspack/pull/658) [`74fd942`](https://github.com/atlassian-labs/atlaspack/commit/74fd94236ac697207082c4b755b079e56f5564fb) Thanks [@yamadapc](https://github.com/yamadapc)! - Fix environment deduplication issues
10
+
11
+ - Updated dependencies [[`5ded263`](https://github.com/atlassian-labs/atlaspack/commit/5ded263c7f11b866e8885b81c73e20dd060b25be)]:
12
+ - @atlaspack/feature-flags@2.18.3
13
+ - @atlaspack/cache@3.2.10
14
+ - @atlaspack/fs@2.15.10
15
+ - @atlaspack/graph@3.5.5
16
+ - @atlaspack/utils@2.15.3
17
+ - @atlaspack/package-manager@2.14.15
18
+ - @atlaspack/profiler@2.14.13
19
+ - @atlaspack/types@2.15.5
20
+ - @atlaspack/workers@2.14.15
21
+ - @atlaspack/plugin@2.14.15
22
+
23
+ ## 2.18.5
24
+
25
+ ### Patch Changes
26
+
27
+ - [#652](https://github.com/atlassian-labs/atlaspack/pull/652) [`644b157`](https://github.com/atlassian-labs/atlaspack/commit/644b157dee72a871acc2d0facf0b87b8eea51956) Thanks [@yamadapc](https://github.com/yamadapc)! - Fix bugs related to build aborts. Builds and cache writes will no longer be aborted.
28
+
29
+ - Updated dependencies [[`644b157`](https://github.com/atlassian-labs/atlaspack/commit/644b157dee72a871acc2d0facf0b87b8eea51956)]:
30
+ - @atlaspack/feature-flags@2.18.2
31
+ - @atlaspack/cache@3.2.9
32
+ - @atlaspack/fs@2.15.9
33
+ - @atlaspack/graph@3.5.4
34
+ - @atlaspack/utils@2.15.2
35
+ - @atlaspack/package-manager@2.14.14
36
+ - @atlaspack/profiler@2.14.12
37
+ - @atlaspack/types@2.15.4
38
+ - @atlaspack/workers@2.14.14
39
+ - @atlaspack/plugin@2.14.14
40
+
41
+ ## 2.18.4
42
+
43
+ ### Patch Changes
44
+
45
+ - [#650](https://github.com/atlassian-labs/atlaspack/pull/650) [`ef3d622`](https://github.com/atlassian-labs/atlaspack/commit/ef3d6228f4e006702198a19c61e051d194d325cb) Thanks [@alshdavid](https://github.com/alshdavid)! - Remove package.json#exports
46
+
47
+ - [#646](https://github.com/atlassian-labs/atlaspack/pull/646) [`6b1f5ff`](https://github.com/atlassian-labs/atlaspack/commit/6b1f5fff68d7131fae075e14f4d2c02606dc6058) Thanks [@alshdavid](https://github.com/alshdavid)! - Export WORKER_PATH from @atlaspack/core
48
+
49
+ - [#633](https://github.com/atlassian-labs/atlaspack/pull/633) [`26aa9c5`](https://github.com/atlassian-labs/atlaspack/commit/26aa9c599d2be45ce1438a74c5fa22f39b9b554b) Thanks [@sbhuiyan-atlassian](https://github.com/sbhuiyan-atlassian)! - Ported various HMR changes from Parcel
50
+
51
+ - [#648](https://github.com/atlassian-labs/atlaspack/pull/648) [`c8f7df4`](https://github.com/atlassian-labs/atlaspack/commit/c8f7df4eadfc4718040fceb065dae6e96a4051e7) Thanks [@alshdavid](https://github.com/alshdavid)! - Export ATLASPACK_VERSION and other internals
52
+
53
+ - [#626](https://github.com/atlassian-labs/atlaspack/pull/626) [`0501255`](https://github.com/atlassian-labs/atlaspack/commit/05012550da35b05ce7d356a8cc29311e7f9afdca) Thanks [@yamadapc](https://github.com/yamadapc)! - Clean-up tsconfig invalidation improvements feature-flag
54
+
55
+ - Updated dependencies [[`ef3d622`](https://github.com/atlassian-labs/atlaspack/commit/ef3d6228f4e006702198a19c61e051d194d325cb), [`26aa9c5`](https://github.com/atlassian-labs/atlaspack/commit/26aa9c599d2be45ce1438a74c5fa22f39b9b554b), [`0501255`](https://github.com/atlassian-labs/atlaspack/commit/05012550da35b05ce7d356a8cc29311e7f9afdca)]:
56
+ - @atlaspack/workers@2.14.13
57
+ - @atlaspack/logger@2.14.11
58
+ - @atlaspack/feature-flags@2.18.1
59
+ - @atlaspack/fs@2.15.8
60
+ - @atlaspack/package-manager@2.14.13
61
+ - @atlaspack/types@2.15.3
62
+ - @atlaspack/cache@3.2.8
63
+ - @atlaspack/utils@2.15.1
64
+ - @atlaspack/graph@3.5.3
65
+ - @atlaspack/plugin@2.14.13
66
+ - @atlaspack/profiler@2.14.11
67
+
68
+ ## 2.18.3
69
+
70
+ ### Patch Changes
71
+
72
+ - Updated dependencies [[`10fbcfb`](https://github.com/atlassian-labs/atlaspack/commit/10fbcfbfa49c7a83da5d7c40983e36e87f524a75), [`85c52d3`](https://github.com/atlassian-labs/atlaspack/commit/85c52d3f7717b3c84a118d18ab98cfbfd71dcbd2), [`e39c6cf`](https://github.com/atlassian-labs/atlaspack/commit/e39c6cf05f7e95ce5420dbcea66f401b1cbd397c)]:
73
+ - @atlaspack/feature-flags@2.18.0
74
+ - @atlaspack/utils@2.15.0
75
+ - @atlaspack/cache@3.2.7
76
+ - @atlaspack/fs@2.15.7
77
+ - @atlaspack/graph@3.5.2
78
+ - @atlaspack/package-manager@2.14.12
79
+ - @atlaspack/workers@2.14.12
80
+ - @atlaspack/profiler@2.14.10
81
+ - @atlaspack/types@2.15.2
82
+ - @atlaspack/plugin@2.14.12
83
+
84
+ ## 2.18.2
85
+
86
+ ### Patch Changes
87
+
88
+ - Updated dependencies [[`73ea3c4`](https://github.com/atlassian-labs/atlaspack/commit/73ea3c4d85d4401fdd15abcbf988237e890e7ad3), [`b1b3693`](https://github.com/atlassian-labs/atlaspack/commit/b1b369317c66f8a431c170df2ebba4fa5b2e38ef)]:
89
+ - @atlaspack/feature-flags@2.17.0
90
+ - @atlaspack/cache@3.2.6
91
+ - @atlaspack/fs@2.15.6
92
+ - @atlaspack/graph@3.5.1
93
+ - @atlaspack/utils@2.14.11
94
+ - @atlaspack/package-manager@2.14.11
95
+ - @atlaspack/profiler@2.14.9
96
+ - @atlaspack/types@2.15.1
97
+ - @atlaspack/workers@2.14.11
98
+ - @atlaspack/plugin@2.14.11
99
+
100
+ ## 2.18.1
101
+
102
+ ### Patch Changes
103
+
104
+ - Updated dependencies [[`1b52b99`](https://github.com/atlassian-labs/atlaspack/commit/1b52b99db4298b04c1a6eb0f97994d75a2d436f9)]:
105
+ - @atlaspack/graph@3.5.0
106
+
107
+ ## 2.18.0
108
+
109
+ ### Minor Changes
110
+
111
+ - [#601](https://github.com/atlassian-labs/atlaspack/pull/601) [`1e32d4e`](https://github.com/atlassian-labs/atlaspack/commit/1e32d4eae6b3af3968e8a0ef97d35b4347fd4196) Thanks [@yamadapc](https://github.com/yamadapc)! - Improve granular configuration file invalidations
112
+
113
+ - [#599](https://github.com/atlassian-labs/atlaspack/pull/599) [`0b2f6f5`](https://github.com/atlassian-labs/atlaspack/commit/0b2f6f55794d3ff6e2f5a41f963e7e5dd8ad9f8d) Thanks [@pancaspe87](https://github.com/pancaspe87)! - load and write env to cache - change is feature flagged
114
+
115
+ ### Patch Changes
116
+
117
+ - [#595](https://github.com/atlassian-labs/atlaspack/pull/595) [`51aba5f`](https://github.com/atlassian-labs/atlaspack/commit/51aba5fc0e49235ee06bbc3c376f48c3e7da5c4b) Thanks [@yamadapc](https://github.com/yamadapc)! - Add bundleId to write bundle request results
118
+
119
+ - [#572](https://github.com/atlassian-labs/atlaspack/pull/572) [`6dd4ccb`](https://github.com/atlassian-labs/atlaspack/commit/6dd4ccb753541de32322d881f973d571dd57e4ca) Thanks [@yamadapc](https://github.com/yamadapc)! - Add feature-flagged change which removes all environment duplication around objects
120
+
121
+ - Updated dependencies [[`0999fb7`](https://github.com/atlassian-labs/atlaspack/commit/0999fb78da519a6c7582d212883e515fcf6c1252), [`51aba5f`](https://github.com/atlassian-labs/atlaspack/commit/51aba5fc0e49235ee06bbc3c376f48c3e7da5c4b), [`1e32d4e`](https://github.com/atlassian-labs/atlaspack/commit/1e32d4eae6b3af3968e8a0ef97d35b4347fd4196), [`35fdd4b`](https://github.com/atlassian-labs/atlaspack/commit/35fdd4b52da0af20f74667f7b8adfb2f90279b7c), [`6dd4ccb`](https://github.com/atlassian-labs/atlaspack/commit/6dd4ccb753541de32322d881f973d571dd57e4ca)]:
122
+ - @atlaspack/fs@2.15.5
123
+ - @atlaspack/types@2.15.0
124
+ - @atlaspack/rust@3.3.5
125
+ - @atlaspack/cache@3.2.5
126
+ - @atlaspack/package-manager@2.14.10
127
+ - @atlaspack/profiler@2.14.8
128
+ - @atlaspack/workers@2.14.10
129
+ - @atlaspack/plugin@2.14.10
130
+ - @atlaspack/logger@2.14.10
131
+ - @atlaspack/utils@2.14.10
132
+
133
+ ## 2.17.4
134
+
135
+ ### Patch Changes
136
+
137
+ - [#588](https://github.com/atlassian-labs/atlaspack/pull/588) [`1940859`](https://github.com/atlassian-labs/atlaspack/commit/194085942f0e86532e9d039fc3f8039badce4594) Thanks [@yamadapc](https://github.com/yamadapc)! - Do not invalidate all javascript files when tsconfig files change
138
+
139
+ - [#592](https://github.com/atlassian-labs/atlaspack/pull/592) [`15b6155`](https://github.com/atlassian-labs/atlaspack/commit/15b61556e9114203ebbc9de94b864118ca764598) Thanks [@yamadapc](https://github.com/yamadapc)! - Report large file invalidations
140
+
141
+ - [#503](https://github.com/atlassian-labs/atlaspack/pull/503) [`209692f`](https://github.com/atlassian-labs/atlaspack/commit/209692ffb11eae103a0d65c5e1118a5aa1625818) Thanks [@JakeLane](https://github.com/JakeLane)! - Fix conditional bundling reporter when condition is reused
142
+
143
+ - [#562](https://github.com/atlassian-labs/atlaspack/pull/562) [`d04de26`](https://github.com/atlassian-labs/atlaspack/commit/d04de26af684d7abfba5091fbe3df16a12cd0ebc) Thanks [@yamadapc](https://github.com/yamadapc)! - Update with feature-flagged change to write packages into files rather than LMDB
144
+
145
+ - Updated dependencies [[`124b7ff`](https://github.com/atlassian-labs/atlaspack/commit/124b7fff44f71aac9fbad289a9a9509b3dfc9aaa), [`e052521`](https://github.com/atlassian-labs/atlaspack/commit/e0525210850ed1606146eb86991049cf567c5dec), [`15c6d70`](https://github.com/atlassian-labs/atlaspack/commit/15c6d7000bd89da876bc590aa75b17a619a41896), [`e4d966c`](https://github.com/atlassian-labs/atlaspack/commit/e4d966c3c9c4292c5013372ae65b10d19d4bacc6), [`209692f`](https://github.com/atlassian-labs/atlaspack/commit/209692ffb11eae103a0d65c5e1118a5aa1625818), [`42a775d`](https://github.com/atlassian-labs/atlaspack/commit/42a775de8eec638ad188f3271964170d8c04d84b), [`29c2f10`](https://github.com/atlassian-labs/atlaspack/commit/29c2f106de9679adfb5afa04e1910471dc65a427), [`f4da1e1`](https://github.com/atlassian-labs/atlaspack/commit/f4da1e120e73eeb5e8b8927f05e88f04d6148c7b), [`1ef91fc`](https://github.com/atlassian-labs/atlaspack/commit/1ef91fcc863fdd2831511937083dbbc1263b3d9d)]:
146
+ - @atlaspack/cache@3.2.4
147
+ - @atlaspack/rust@3.3.4
148
+ - @atlaspack/fs@2.15.4
149
+ - @atlaspack/feature-flags@2.16.0
150
+ - @atlaspack/logger@2.14.9
151
+ - @atlaspack/utils@2.14.9
152
+ - @atlaspack/package-manager@2.14.9
153
+ - @atlaspack/graph@3.4.7
154
+ - @atlaspack/workers@2.14.9
155
+ - @atlaspack/profiler@2.14.7
156
+ - @atlaspack/types@2.14.9
157
+ - @atlaspack/plugin@2.14.9
158
+
159
+ ## 2.17.3
160
+
161
+ ### Patch Changes
162
+
163
+ - [#551](https://github.com/atlassian-labs/atlaspack/pull/551) [`30f6017`](https://github.com/atlassian-labs/atlaspack/commit/30f60175ba4d272c5fc193973c63bc298584775b) Thanks [@yamadapc](https://github.com/yamadapc)! - Log request tracker invalidation counts on start-up
164
+
165
+ - [#550](https://github.com/atlassian-labs/atlaspack/pull/550) [`3a3e8e7`](https://github.com/atlassian-labs/atlaspack/commit/3a3e8e7be9e2dffd7304436d792f0f595d59665a) Thanks [@yamadapc](https://github.com/yamadapc)! - Fix typescript declaration files
166
+
167
+ - [#555](https://github.com/atlassian-labs/atlaspack/pull/555) [`15c1e3c`](https://github.com/atlassian-labs/atlaspack/commit/15c1e3c0628bae4c768d76cf3afc53d6d0d7ce7c) Thanks [@alshdavid](https://github.com/alshdavid)! - Added ATLASPACK_NATIVE_THREADS env variable to control the number of threads used by the native thread schedular
168
+
169
+ - Updated dependencies [[`30f6017`](https://github.com/atlassian-labs/atlaspack/commit/30f60175ba4d272c5fc193973c63bc298584775b), [`3a3e8e7`](https://github.com/atlassian-labs/atlaspack/commit/3a3e8e7be9e2dffd7304436d792f0f595d59665a), [`1ab0a27`](https://github.com/atlassian-labs/atlaspack/commit/1ab0a275aeca40350415e2b03e7440d1dddc6228), [`b8a4ae8`](https://github.com/atlassian-labs/atlaspack/commit/b8a4ae8f83dc0a83d8b145c5f729936ce52080a3)]:
170
+ - @atlaspack/feature-flags@2.15.1
171
+ - @atlaspack/fs@2.15.3
172
+ - @atlaspack/rust@3.3.3
173
+ - @atlaspack/cache@3.2.3
174
+ - @atlaspack/graph@3.4.6
175
+ - @atlaspack/utils@2.14.8
176
+ - @atlaspack/package-manager@2.14.8
177
+ - @atlaspack/logger@2.14.8
178
+ - @atlaspack/profiler@2.14.6
179
+ - @atlaspack/types@2.14.8
180
+ - @atlaspack/workers@2.14.8
181
+ - @atlaspack/plugin@2.14.8
182
+
183
+ ## 2.17.2
184
+
185
+ ### Patch Changes
186
+
187
+ - Updated dependencies [[`a1773d2`](https://github.com/atlassian-labs/atlaspack/commit/a1773d2a62d0ef7805ac7524621dcabcc1afe929), [`556d6ab`](https://github.com/atlassian-labs/atlaspack/commit/556d6ab8ede759fa7f37fcd3f4da336ef1c55e8f)]:
188
+ - @atlaspack/feature-flags@2.15.0
189
+ - @atlaspack/logger@2.14.7
190
+ - @atlaspack/rust@3.3.2
191
+ - @atlaspack/cache@3.2.2
192
+ - @atlaspack/fs@2.15.2
193
+ - @atlaspack/graph@3.4.5
194
+ - @atlaspack/utils@2.14.7
195
+ - @atlaspack/package-manager@2.14.7
196
+ - @atlaspack/workers@2.14.7
197
+ - @atlaspack/profiler@2.14.5
198
+ - @atlaspack/types@2.14.7
199
+ - @atlaspack/plugin@2.14.7
200
+
201
+ ## 2.17.1
202
+
203
+ ### Patch Changes
204
+
205
+ - Updated dependencies [[`e0f5337`](https://github.com/atlassian-labs/atlaspack/commit/e0f533757bd1019dbd108a04952c87da15286e09)]:
206
+ - @atlaspack/feature-flags@2.14.4
207
+ - @atlaspack/rust@3.3.1
208
+ - @atlaspack/cache@3.2.1
209
+ - @atlaspack/fs@2.15.1
210
+ - @atlaspack/graph@3.4.4
211
+ - @atlaspack/utils@2.14.6
212
+ - @atlaspack/logger@2.14.6
213
+ - @atlaspack/package-manager@2.14.6
214
+ - @atlaspack/profiler@2.14.4
215
+ - @atlaspack/types@2.14.6
216
+ - @atlaspack/workers@2.14.6
217
+ - @atlaspack/plugin@2.14.6
218
+
219
+ ## 2.17.0
220
+
221
+ ### Minor Changes
222
+
223
+ - [#541](https://github.com/atlassian-labs/atlaspack/pull/541) [`e2ba0f6`](https://github.com/atlassian-labs/atlaspack/commit/e2ba0f69702656f3d1ce95ab1454e35062b13b39) Thanks [@yamadapc](https://github.com/yamadapc)! - Add database compaction debug command
224
+
225
+ ### Patch Changes
226
+
227
+ - [#530](https://github.com/atlassian-labs/atlaspack/pull/530) [`2e90c9b`](https://github.com/atlassian-labs/atlaspack/commit/2e90c9bd07d7eb52645f9d84ccbb7f82685cbc8c) Thanks [@yamadapc](https://github.com/yamadapc)! - Write metadata about the cache in a new entry
228
+
229
+ - [#511](https://github.com/atlassian-labs/atlaspack/pull/511) [`11d6f16`](https://github.com/atlassian-labs/atlaspack/commit/11d6f16b6397dee2f217167e5c98b39edb63f7a7) Thanks [@yamadapc](https://github.com/yamadapc)! - Clean-up dylib worker threads segmentation fault bug fix feature-flag
230
+
231
+ - Updated dependencies [[`11d6f16`](https://github.com/atlassian-labs/atlaspack/commit/11d6f16b6397dee2f217167e5c98b39edb63f7a7), [`e2ba0f6`](https://github.com/atlassian-labs/atlaspack/commit/e2ba0f69702656f3d1ce95ab1454e35062b13b39), [`d2c50c2`](https://github.com/atlassian-labs/atlaspack/commit/d2c50c2c020888b33bb25b8690d9320c2b69e2a6), [`46a90dc`](https://github.com/atlassian-labs/atlaspack/commit/46a90dccd019a26b222c878a92d23acc75dc67c5), [`4c17141`](https://github.com/atlassian-labs/atlaspack/commit/4c1714103dab2aa9039c488f381551d2b65d1d01)]:
232
+ - @atlaspack/feature-flags@2.14.3
233
+ - @atlaspack/rust@3.3.0
234
+ - @atlaspack/cache@3.2.0
235
+ - @atlaspack/fs@2.15.0
236
+ - @atlaspack/graph@3.4.3
237
+ - @atlaspack/utils@2.14.5
238
+ - @atlaspack/logger@2.14.5
239
+ - @atlaspack/package-manager@2.14.5
240
+ - @atlaspack/profiler@2.14.3
241
+ - @atlaspack/types@2.14.5
242
+ - @atlaspack/workers@2.14.5
243
+ - @atlaspack/plugin@2.14.5
244
+
3
245
  ## 2.16.1
4
246
 
5
247
  ### Patch Changes
package/lib/AssetGraph.js CHANGED
@@ -46,6 +46,14 @@ function _graph() {
46
46
  }
47
47
  var _Dependency = require("./Dependency");
48
48
  var _projectPath = require("./projectPath");
49
+ var _EnvironmentManager = require("./EnvironmentManager");
50
+ function _featureFlags() {
51
+ const data = require("@atlaspack/feature-flags");
52
+ _featureFlags = function () {
53
+ return data;
54
+ };
55
+ return data;
56
+ }
49
57
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
50
58
  function nodeFromDep(dep) {
51
59
  return {
@@ -63,7 +71,7 @@ function nodeFromDep(dep) {
63
71
  }
64
72
  function nodeFromAssetGroup(assetGroup) {
65
73
  return {
66
- id: (0, _rust().hashString)((0, _projectPath.fromProjectPathRelative)(assetGroup.filePath) + assetGroup.env.id + String(assetGroup.isSource) + String(assetGroup.sideEffects) + (assetGroup.code ?? '') + ':' + (assetGroup.pipeline ?? '') + ':' + (assetGroup.query ?? '')),
74
+ id: (0, _rust().hashString)((0, _projectPath.fromProjectPathRelative)(assetGroup.filePath) + (0, _EnvironmentManager.toEnvironmentId)(assetGroup.env) + String(assetGroup.isSource) + String(assetGroup.sideEffects) + (assetGroup.code ?? '') + ':' + (assetGroup.pipeline ?? '') + ':' + (assetGroup.query ?? '')),
67
75
  type: 'asset_group',
68
76
  value: assetGroup,
69
77
  usedSymbolsDownDirty: true
@@ -130,16 +138,19 @@ class AssetGraph extends _graph().ContentGraph {
130
138
 
131
139
  // Deduplicates Environments by making them referentially equal
132
140
  normalizeEnvironment(input) {
141
+ if ((0, _featureFlags().getFeatureFlag)('environmentDeduplication')) {
142
+ return;
143
+ }
133
144
  let {
134
145
  id,
135
146
  context
136
- } = input.env;
147
+ } = (0, _EnvironmentManager.fromEnvironmentId)(input.env);
137
148
  let idAndContext = `${id}-${context}`;
138
149
  let env = this.envCache.get(idAndContext);
139
150
  if (env) {
140
- input.env = env;
151
+ input.env = (0, _EnvironmentManager.toEnvironmentRef)(env);
141
152
  } else {
142
- this.envCache.set(idAndContext, input.env);
153
+ this.envCache.set(idAndContext, (0, _EnvironmentManager.fromEnvironmentId)(input.env));
143
154
  }
144
155
  }
145
156
  setRootConnections({
@@ -199,13 +210,13 @@ class AssetGraph extends _graph().ContentGraph {
199
210
  env: target.env,
200
211
  isEntry: true,
201
212
  needsStableName: true,
202
- symbols: target.env.isLibrary ? new Map([['*', {
213
+ symbols: (0, _EnvironmentManager.fromEnvironmentId)(target.env).isLibrary ? new Map([['*', {
203
214
  local: '*',
204
215
  isWeak: true,
205
216
  loc: null
206
217
  }]]) : undefined
207
218
  }));
208
- if (node.value.env.isLibrary) {
219
+ if ((0, _EnvironmentManager.fromEnvironmentId)(node.value.env).isLibrary) {
209
220
  // in library mode, all of the entry's symbols are "used"
210
221
  node.usedSymbolsDown.add('*');
211
222
  node.usedSymbolsUp.set('*', undefined);
@@ -348,7 +359,7 @@ class AssetGraph extends _graph().ContentGraph {
348
359
  if (this.undeferredDependencies.has(d)) {
349
360
  return false;
350
361
  }
351
- let depIsDeferrable = d.symbols && !(d.env.isLibrary && d.isEntry) && !d.symbols.has('*') && ![...d.symbols.keys()].some(symbol => {
362
+ let depIsDeferrable = d.symbols && !((0, _EnvironmentManager.fromEnvironmentId)(d.env).isLibrary && d.isEntry) && !d.symbols.has('*') && ![...d.symbols.keys()].some(symbol => {
352
363
  var _resolvedAsset$symbol;
353
364
  let assetSymbol = (_resolvedAsset$symbol = resolvedAsset.symbols) === null || _resolvedAsset$symbol === void 0 || (_resolvedAsset$symbol = _resolvedAsset$symbol.get(symbol)) === null || _resolvedAsset$symbol === void 0 ? void 0 : _resolvedAsset$symbol.local;
354
365
  return assetSymbol != null && symbols.has(assetSymbol);
@@ -432,6 +443,15 @@ class AssetGraph extends _graph().ContentGraph {
432
443
  ...depNode.value.meta,
433
444
  ...existing.value.resolverMeta
434
445
  };
446
+ if ((0, _featureFlags().getFeatureFlag)('hmrImprovements')) {
447
+ depNode.value.resolverMeta = existing.value.resolverMeta;
448
+ }
449
+ }
450
+ if ((0, _featureFlags().getFeatureFlag)('hmrImprovements')) {
451
+ if ((existing === null || existing === void 0 ? void 0 : existing.type) === 'dependency' && existing.value.resolverPriority != null) {
452
+ depNode.value.priority = existing.value.resolverPriority;
453
+ depNode.value.resolverPriority = existing.value.resolverPriority;
454
+ }
435
455
  }
436
456
  let dependentAsset = dependentAssets.find(a => a.uniqueKey === dep.specifier);
437
457
  if (dependentAsset) {
package/lib/Atlaspack.js CHANGED
@@ -166,9 +166,7 @@ class Atlaspack {
166
166
  ...this.#initialOptions.featureFlags
167
167
  };
168
168
  (0, _featureFlags().setFeatureFlags)(featureFlags);
169
- if ((0, _featureFlags().getFeatureFlag)('enableRustWorkerThreadDylibHack')) {
170
- (0, _rustWorkerThreadDylibHack.loadRustWorkerThreadDylibHack)();
171
- }
169
+ (0, _rustWorkerThreadDylibHack.loadRustWorkerThreadDylibHack)();
172
170
  await _sourceMap().init;
173
171
  await (_rust().init === null || _rust().init === void 0 ? void 0 : (0, _rust().init)());
174
172
  this.#disposable = new (_events().Disposable)();
@@ -209,10 +207,16 @@ class Atlaspack {
209
207
  // $FlowFixMe
210
208
  const version = require('../package.json').version;
211
209
  await lmdb.put('current_session_version', Buffer.from(version));
210
+ let threads = undefined;
211
+ if (process.env.ATLASPACK_NATIVE_THREADS !== undefined) {
212
+ threads = parseInt(process.env.ATLASPACK_NATIVE_THREADS, 10);
213
+ } else if (process.env.NODE_ENV === 'test') {
214
+ threads = 2;
215
+ }
212
216
  rustAtlaspack = await _atlaspackV.AtlaspackV3.create({
213
217
  ...options,
214
218
  corePath: _path().default.join(__dirname, '..'),
215
- threads: process.env.NODE_ENV === 'test' ? 2 : undefined,
219
+ threads,
216
220
  entries: Array.isArray(entries) ? entries : entries == null ? undefined : [entries],
217
221
  env: resolvedOptions.env,
218
222
  fs: inputFS && new _atlaspackV.FileSystemV3(inputFS),
@@ -506,7 +510,9 @@ class Atlaspack {
506
510
  if (this.rustAtlaspack) {
507
511
  nativeInvalid = await this.rustAtlaspack.respondToFsEvents(events);
508
512
  }
509
- let isInvalid = await this.#requestTracker.respondToFSEvents(events, Number.POSITIVE_INFINITY);
513
+ let {
514
+ didInvalidate: isInvalid
515
+ } = await this.#requestTracker.respondToFSEvents(events, Number.POSITIVE_INFINITY);
510
516
  if ((nativeInvalid || isInvalid) && this.#watchQueue.getNumWaiting() === 0) {
511
517
  if (this.#watchAbortController) {
512
518
  this.#watchAbortController.abort();
@@ -603,6 +609,19 @@ class Atlaspack {
603
609
  }
604
610
  return result;
605
611
  }
612
+
613
+ /**
614
+ * Copy the cache to a new directory and compact it.
615
+ */
616
+ async unstable_compactCache() {
617
+ await this._init();
618
+ const cache = (0, _nullthrows().default)(this.#resolvedOptions).cache;
619
+ if (cache instanceof _cache().LMDBLiteCache) {
620
+ await cache.compact('parcel-cache-compacted');
621
+ } else {
622
+ throw new Error('Cache is not an LMDBLiteCache');
623
+ }
624
+ }
606
625
  async unstable_transform(options) {
607
626
  var _options$env;
608
627
  if (!this.#initialized) {
@@ -51,6 +51,7 @@ function _featureFlags() {
51
51
  };
52
52
  return data;
53
53
  }
54
+ var _EnvironmentManager = require("./EnvironmentManager");
54
55
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
55
56
  const bundleGraphEdgeTypes = exports.bundleGraphEdgeTypes = {
56
57
  // A lack of an edge type indicates to follow the edge while traversing
@@ -207,7 +208,7 @@ class BundleGraph {
207
208
  }
208
209
  }
209
210
  }
210
- if (node.type === 'dependency' && node.value.symbols != null && node.value.env.shouldScopeHoist &&
211
+ if (node.type === 'dependency' && node.value.symbols != null && (0, _EnvironmentManager.fromEnvironmentId)(node.value.env).shouldScopeHoist &&
211
212
  // Disable in dev mode because this feature is at odds with safeToIncrementallyBundle
212
213
  isProduction) {
213
214
  let nodeValueSymbols = node.value.symbols;
@@ -859,7 +860,7 @@ class BundleGraph {
859
860
  return;
860
861
  }
861
862
  visitedBundles.add(descendant);
862
- if (descendant.type !== bundle.type || descendant.env.context !== bundle.env.context) {
863
+ if (descendant.type !== bundle.type || (0, _EnvironmentManager.fromEnvironmentId)(descendant.env).context !== (0, _EnvironmentManager.fromEnvironmentId)(bundle.env).context) {
863
864
  actions.skipChildren();
864
865
  return;
865
866
  }
@@ -887,7 +888,7 @@ class BundleGraph {
887
888
  isAssetReachableFromBundle(asset, bundle) {
888
889
  // If a bundle's environment is isolated, it can't access assets present
889
890
  // in any ancestor bundles. Don't consider any assets reachable.
890
- if (_Environment.ISOLATED_ENVS.has(bundle.env.context) || !bundle.isSplittable || bundle.bundleBehavior === _types.BundleBehavior.isolated || bundle.bundleBehavior === _types.BundleBehavior.inline) {
891
+ if (_Environment.ISOLATED_ENVS.has((0, _EnvironmentManager.fromEnvironmentId)(bundle.env).context) || !bundle.isSplittable || bundle.bundleBehavior === _types.BundleBehavior.isolated || bundle.bundleBehavior === _types.BundleBehavior.inline) {
891
892
  return false;
892
893
  }
893
894
 
@@ -915,7 +916,7 @@ class BundleGraph {
915
916
  let node = (0, _nullthrows().default)(this._graph.getNode(nodeId));
916
917
  // If we've reached the root or a context change without
917
918
  // finding this asset in the ancestry, it is not reachable.
918
- if (node.type === 'root' || node.type === 'bundle' && (node.value.id === bundle.id || node.value.env.context !== bundle.env.context)) {
919
+ if (node.type === 'root' || node.type === 'bundle' && (node.value.id === bundle.id || (0, _EnvironmentManager.fromEnvironmentId)(node.value.env).context !== (0, _EnvironmentManager.fromEnvironmentId)(bundle.env).context)) {
919
920
  isReachable = false;
920
921
  actions.stop();
921
922
  return;
@@ -1410,7 +1411,7 @@ class BundleGraph {
1410
1411
  for (let referencedBundle of this.getReferencedBundles(bundle)) {
1411
1412
  hash.writeString(referencedBundle.id);
1412
1413
  }
1413
- hash.writeString(JSON.stringify((0, _utils().objectSortedEntriesDeep)(bundle.env)));
1414
+ hash.writeString(JSON.stringify((0, _utils().objectSortedEntriesDeep)((0, _EnvironmentManager.fromEnvironmentId)(bundle.env))));
1414
1415
  return hash.finish();
1415
1416
  }
1416
1417
  getBundleGraphHash() {
package/lib/Dependency.js CHANGED
@@ -24,6 +24,7 @@ function _assert() {
24
24
  return data;
25
25
  }
26
26
  var _IdentifierRegistry = require("./IdentifierRegistry");
27
+ var _EnvironmentManager = require("./EnvironmentManager");
27
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
29
  function createDependencyId({
29
30
  sourceAssetId,
@@ -41,8 +42,11 @@ function createDependencyId({
41
42
  const params = {
42
43
  sourceAssetId,
43
44
  specifier,
44
- environmentId: env.id,
45
- target,
45
+ environmentId: (0, _EnvironmentManager.toEnvironmentId)(env),
46
+ target: target != null ? {
47
+ ...target,
48
+ env: (0, _EnvironmentManager.fromEnvironmentId)(target.env)
49
+ } : null,
46
50
  pipeline,
47
51
  specifierType: _types.SpecifierType[specifierType],
48
52
  bundleBehavior,
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createEnvironment = createEnvironment;
7
+ exports.getEnvironmentHash = getEnvironmentHash;
7
8
  exports.mergeEnvironments = mergeEnvironments;
8
9
  function _rust() {
9
10
  const data = require("@atlaspack/rust");
@@ -15,6 +16,7 @@ function _rust() {
15
16
  var _utils = require("./utils");
16
17
  var _Environment = _interopRequireWildcard(require("./public/Environment"));
17
18
  var _IdentifierRegistry = require("./IdentifierRegistry");
19
+ var _EnvironmentManager = require("./EnvironmentManager");
18
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
22
  const DEFAULT_ENGINES = {
@@ -108,15 +110,15 @@ function createEnvironment({
108
110
  loc
109
111
  };
110
112
  res.id = getEnvironmentHash(res);
111
- return Object.freeze(res);
113
+ return (0, _EnvironmentManager.toEnvironmentRef)(Object.freeze(res));
112
114
  }
113
115
  function mergeEnvironments(projectRoot, a, b) {
114
116
  // If merging the same object, avoid copying.
115
117
  if (a === b || !b) {
116
- return a;
118
+ return (0, _EnvironmentManager.toEnvironmentRef)(a);
117
119
  }
118
120
  if (b instanceof _Environment.default) {
119
- return (0, _Environment.environmentToInternalEnvironment)(b);
121
+ return (0, _EnvironmentManager.toEnvironmentRef)((0, _Environment.environmentToInternalEnvironment)(b));
120
122
  }
121
123
 
122
124
  // $FlowFixMe - ignore the `id` that is already on a
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fromEnvironmentId = fromEnvironmentId;
7
+ exports.loadEnvironmentsFromCache = loadEnvironmentsFromCache;
8
+ exports.toEnvironmentId = toEnvironmentId;
9
+ exports.toEnvironmentRef = toEnvironmentRef;
10
+ exports.writeEnvironmentsToCache = writeEnvironmentsToCache;
11
+ function _rust() {
12
+ const data = require("@atlaspack/rust");
13
+ _rust = function () {
14
+ return data;
15
+ };
16
+ return data;
17
+ }
18
+ function _featureFlags() {
19
+ const data = require("@atlaspack/feature-flags");
20
+ _featureFlags = function () {
21
+ return data;
22
+ };
23
+ return data;
24
+ }
25
+ function _logger() {
26
+ const data = require("@atlaspack/logger");
27
+ _logger = function () {
28
+ return data;
29
+ };
30
+ return data;
31
+ }
32
+ var _constants = require("./constants");
33
+ /*!
34
+ * At the moment we're doing this change for `CoreEnvironment`,
35
+ * but the same change must be made for `TypesEnvironment` in @atlaspack/types.
36
+ */
37
+ const localEnvironmentCache = new Map();
38
+
39
+ /**
40
+ * When deduplication is cleaned-up this will always be a string.
41
+ */
42
+
43
+ /**
44
+ * Convert environment to a ref.
45
+ * This is what we should be using to store environments.
46
+ */
47
+ function toEnvironmentRef(env) {
48
+ if (!(0, _featureFlags().getFeatureFlag)('environmentDeduplication')) {
49
+ return env;
50
+ }
51
+ const id = toEnvironmentId(env);
52
+ return id;
53
+ }
54
+
55
+ /**
56
+ * Convert environment to a string ID
57
+ */
58
+ function toEnvironmentId(
59
+ /**
60
+ * Redundant type during roll-out
61
+ */
62
+ env) {
63
+ if (!(0, _featureFlags().getFeatureFlag)('environmentDeduplication')) {
64
+ return typeof env === 'string' ? env : env.id;
65
+ }
66
+ if (typeof env === 'string') {
67
+ return env;
68
+ }
69
+ (0, _rust().addEnvironment)(env);
70
+ return env.id;
71
+ }
72
+ function fromEnvironmentId(id) {
73
+ if (!(0, _featureFlags().getFeatureFlag)('environmentDeduplication')) {
74
+ if (typeof id === 'string') {
75
+ throw new Error('This should never happen when environmentDeduplication feature-flag is off');
76
+ } else {
77
+ return id;
78
+ }
79
+ }
80
+ if (typeof id !== 'string') {
81
+ return id;
82
+ }
83
+ const localEnv = localEnvironmentCache.get(id);
84
+ if (localEnv) {
85
+ return localEnv;
86
+ }
87
+ const env = Object.freeze((0, _rust().getEnvironment)(id));
88
+ localEnvironmentCache.set(id, env);
89
+ return env;
90
+ }
91
+
92
+ /**
93
+ * Writes all environments and their IDs to the cache
94
+ * @param {Cache} cache
95
+ * @returns {Promise<void>}
96
+ */
97
+ async function writeEnvironmentsToCache(cache) {
98
+ const environments = (0, _rust().getAllEnvironments)();
99
+ const environmentIds = new Set();
100
+
101
+ // Store each environment individually
102
+ for (const env of environments) {
103
+ environmentIds.add(env.id);
104
+ const envKey = `Environment/${_constants.ATLASPACK_VERSION}/${env.id}`;
105
+ await (0, _logger().instrument)(`RequestTracker::writeToCache::cache.put(${envKey})`, async () => {
106
+ await cache.set(envKey, env);
107
+ });
108
+ }
109
+
110
+ // Store the list of environment IDs
111
+ await (0, _logger().instrument)(`RequestTracker::writeToCache::cache.put(${`EnvironmentManager/${_constants.ATLASPACK_VERSION}`})`, async () => {
112
+ await cache.set(`EnvironmentManager/${_constants.ATLASPACK_VERSION}`, Array.from(environmentIds));
113
+ });
114
+ }
115
+
116
+ /**
117
+ * Loads all environments and their IDs from the cache
118
+ * @param {Cache} cache
119
+ * @returns {Promise<void>}
120
+ */
121
+ async function loadEnvironmentsFromCache(cache) {
122
+ const cachedEnvIds = await cache.get(`EnvironmentManager/${_constants.ATLASPACK_VERSION}`);
123
+ if (cachedEnvIds == null) {
124
+ return;
125
+ }
126
+ const environments = [];
127
+ for (const envId of cachedEnvIds) {
128
+ const envKey = `Environment/${_constants.ATLASPACK_VERSION}/${envId}`;
129
+ const cachedEnv = await cache.get(envKey);
130
+ if (cachedEnv != null) {
131
+ environments.push(cachedEnv);
132
+ }
133
+ }
134
+ if (environments.length > 0) {
135
+ (0, _rust().setAllEnvironments)(environments);
136
+ }
137
+ }
@@ -14,6 +14,7 @@ function _rust() {
14
14
  return data;
15
15
  }
16
16
  var _IdentifierRegistry = require("./IdentifierRegistry");
17
+ var _EnvironmentManager = require("./EnvironmentManager");
17
18
  function createConfig({
18
19
  plugin,
19
20
  isSource,
@@ -30,11 +31,11 @@ function createConfig({
30
31
  invalidateOnBuild
31
32
  }) {
32
33
  let environment = env ?? (0, _Environment.createEnvironment)();
33
- const configId = (0, _rust().hashString)(plugin + (0, _projectPath.fromProjectPathRelative)(searchPath) + environment.id + String(isSource));
34
+ const configId = (0, _rust().hashString)(plugin + (0, _projectPath.fromProjectPathRelative)(searchPath) + (0, _EnvironmentManager.toEnvironmentId)(environment) + String(isSource));
34
35
  _IdentifierRegistry.identifierRegistry.addIdentifier('config_request', configId, {
35
36
  plugin,
36
37
  searchPath,
37
- environmentId: environment.id,
38
+ environmentId: (0, _EnvironmentManager.toEnvironmentId)(environment),
38
39
  isSource
39
40
  });
40
41
  return {