@atlaspack/core 2.16.2-canary.48 → 2.16.2-canary.481

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 (380) hide show
  1. package/CHANGELOG.md +1324 -0
  2. package/dist/AssetGraph.js +523 -0
  3. package/dist/Atlaspack.js +701 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1906 -0
  7. package/dist/CommittedAsset.js +142 -0
  8. package/dist/Dependency.js +125 -0
  9. package/dist/Environment.js +132 -0
  10. package/dist/EnvironmentManager.js +108 -0
  11. package/dist/IdentifierRegistry.js +38 -0
  12. package/dist/InternalConfig.js +37 -0
  13. package/dist/PackagerRunner.js +470 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1297 -0
  16. package/dist/SymbolPropagation.js +624 -0
  17. package/dist/TargetDescriptor.schema.js +146 -0
  18. package/dist/Transformation.js +514 -0
  19. package/dist/UncommittedAsset.js +310 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +384 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +83 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +114 -0
  25. package/dist/atlaspack-v3/fs.js +53 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
  30. package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
  31. package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
  32. package/dist/atlaspack-v3/worker/compat/index.js +24 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  37. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  38. package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
  39. package/dist/atlaspack-v3/worker/worker.js +398 -0
  40. package/dist/constants.js +17 -0
  41. package/dist/dumpGraphToGraphViz.js +281 -0
  42. package/dist/index.js +62 -0
  43. package/dist/loadAtlaspackPlugin.js +128 -0
  44. package/dist/loadDotEnv.js +41 -0
  45. package/dist/projectPath.js +83 -0
  46. package/dist/public/Asset.js +279 -0
  47. package/dist/public/Bundle.js +224 -0
  48. package/dist/public/BundleGraph.js +371 -0
  49. package/dist/public/BundleGroup.js +53 -0
  50. package/dist/public/Config.js +286 -0
  51. package/dist/public/Dependency.js +138 -0
  52. package/dist/public/Environment.js +278 -0
  53. package/dist/public/MutableBundleGraph.js +277 -0
  54. package/dist/public/PluginOptions.js +80 -0
  55. package/dist/public/Symbols.js +248 -0
  56. package/dist/public/Target.js +69 -0
  57. package/dist/registerCoreWithSerializer.js +38 -0
  58. package/dist/requests/AssetGraphRequest.js +430 -0
  59. package/dist/requests/AssetGraphRequestRust.js +471 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +98 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +381 -0
  64. package/dist/requests/BundleGraphRequestRust.js +324 -0
  65. package/dist/requests/BundleGraphRequestUtils.js +262 -0
  66. package/dist/requests/ConfigRequest.js +246 -0
  67. package/dist/requests/DevDepRequest.js +204 -0
  68. package/dist/requests/EntryRequest.js +314 -0
  69. package/dist/requests/PackageRequest.js +89 -0
  70. package/dist/requests/PathRequest.js +349 -0
  71. package/dist/requests/TargetRequest.js +1316 -0
  72. package/dist/requests/ValidationRequest.js +49 -0
  73. package/dist/requests/WriteBundleRequest.js +522 -0
  74. package/dist/requests/WriteBundlesRequest.js +190 -0
  75. package/dist/requests/asset-graph-diff.js +128 -0
  76. package/dist/requests/asset-graph-dot.js +131 -0
  77. package/dist/resolveOptions.js +267 -0
  78. package/dist/rustWorkerThreadDylibHack.js +19 -0
  79. package/dist/serializerCore.browser.js +43 -0
  80. package/dist/summarizeRequest.js +39 -0
  81. package/dist/types.js +31 -0
  82. package/dist/utils.js +172 -0
  83. package/dist/worker.js +123 -0
  84. package/lib/AssetGraph.js +53 -15
  85. package/lib/Atlaspack.js +140 -56
  86. package/lib/AtlaspackConfig.js +17 -6
  87. package/lib/AtlaspackConfig.schema.js +16 -5
  88. package/lib/BundleGraph.js +390 -43
  89. package/lib/CommittedAsset.js +8 -2
  90. package/lib/Dependency.js +9 -3
  91. package/lib/Environment.js +16 -10
  92. package/lib/EnvironmentManager.js +143 -0
  93. package/lib/IdentifierRegistry.js +2 -4
  94. package/lib/InternalConfig.js +3 -2
  95. package/lib/PackagerRunner.js +46 -82
  96. package/lib/ReporterRunner.js +8 -12
  97. package/lib/RequestTracker.js +191 -152
  98. package/lib/SymbolPropagation.js +52 -29
  99. package/lib/TargetDescriptor.schema.js +10 -1
  100. package/lib/Transformation.js +68 -19
  101. package/lib/UncommittedAsset.js +17 -24
  102. package/lib/Validation.js +20 -5
  103. package/lib/applyRuntimes.js +98 -7
  104. package/lib/assetUtils.js +16 -6
  105. package/lib/atlaspack-v3/AtlaspackV3.js +58 -15
  106. package/lib/atlaspack-v3/NapiWorkerPool.js +63 -2
  107. package/lib/atlaspack-v3/fs.js +4 -1
  108. package/lib/atlaspack-v3/index.js +28 -1
  109. package/lib/atlaspack-v3/jsCallable.js +0 -2
  110. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  111. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  112. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  113. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  114. package/lib/atlaspack-v3/worker/compat/index.js +0 -11
  115. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +16 -11
  116. package/lib/atlaspack-v3/worker/compat/plugin-config.js +14 -35
  117. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -2
  118. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  119. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  120. package/lib/atlaspack-v3/worker/index.js +3 -0
  121. package/lib/atlaspack-v3/worker/side-effect-detector.js +214 -0
  122. package/lib/atlaspack-v3/worker/worker.js +231 -79
  123. package/lib/constants.js +0 -1
  124. package/lib/dumpGraphToGraphViz.js +72 -17
  125. package/lib/index.js +46 -3
  126. package/lib/loadAtlaspackPlugin.js +2 -3
  127. package/lib/loadDotEnv.js +5 -2
  128. package/lib/projectPath.js +6 -1
  129. package/lib/public/Asset.js +22 -12
  130. package/lib/public/Bundle.js +16 -18
  131. package/lib/public/BundleGraph.js +27 -25
  132. package/lib/public/BundleGroup.js +5 -6
  133. package/lib/public/Config.js +118 -18
  134. package/lib/public/Dependency.js +9 -7
  135. package/lib/public/Environment.js +13 -8
  136. package/lib/public/MutableBundleGraph.js +56 -15
  137. package/lib/public/PluginOptions.js +2 -2
  138. package/lib/public/Symbols.js +12 -12
  139. package/lib/public/Target.js +8 -7
  140. package/lib/registerCoreWithSerializer.js +7 -4
  141. package/lib/requests/AssetGraphRequest.js +61 -40
  142. package/lib/requests/AssetGraphRequestRust.js +314 -82
  143. package/lib/requests/AssetRequest.js +24 -7
  144. package/lib/requests/AtlaspackBuildRequest.js +53 -7
  145. package/lib/requests/AtlaspackConfigRequest.js +29 -19
  146. package/lib/requests/BundleGraphRequest.js +61 -130
  147. package/lib/requests/BundleGraphRequestRust.js +381 -0
  148. package/lib/requests/BundleGraphRequestUtils.js +280 -0
  149. package/lib/requests/ConfigRequest.js +55 -7
  150. package/lib/requests/DevDepRequest.js +32 -6
  151. package/lib/requests/EntryRequest.js +4 -3
  152. package/lib/requests/PackageRequest.js +56 -12
  153. package/lib/requests/PathRequest.js +26 -6
  154. package/lib/requests/TargetRequest.js +129 -60
  155. package/lib/requests/ValidationRequest.js +6 -2
  156. package/lib/requests/WriteBundleRequest.js +329 -20
  157. package/lib/requests/WriteBundlesRequest.js +64 -10
  158. package/lib/requests/asset-graph-diff.js +13 -8
  159. package/lib/requests/asset-graph-dot.js +2 -8
  160. package/lib/resolveOptions.js +37 -14
  161. package/lib/rustWorkerThreadDylibHack.js +0 -1
  162. package/lib/serializerCore.browser.js +1 -2
  163. package/lib/summarizeRequest.js +1 -1
  164. package/lib/types/AssetGraph.d.ts +55 -0
  165. package/lib/types/Atlaspack.d.ts +52 -0
  166. package/lib/types/AtlaspackConfig.d.ts +65 -0
  167. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  168. package/lib/types/BundleGraph.d.ts +232 -0
  169. package/lib/types/CommittedAsset.d.ts +23 -0
  170. package/lib/types/Dependency.d.ts +44 -0
  171. package/lib/types/Environment.d.ts +11 -0
  172. package/lib/types/EnvironmentManager.d.ts +37 -0
  173. package/lib/types/IdentifierRegistry.d.ts +6 -0
  174. package/lib/types/InternalConfig.d.ts +23 -0
  175. package/lib/types/PackagerRunner.d.ts +85 -0
  176. package/lib/types/ReporterRunner.d.ts +25 -0
  177. package/lib/types/RequestTracker.d.ts +385 -0
  178. package/lib/types/SymbolPropagation.d.ts +11 -0
  179. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  180. package/lib/types/Transformation.d.ts +72 -0
  181. package/lib/types/UncommittedAsset.d.ts +61 -0
  182. package/lib/types/Validation.d.ts +37 -0
  183. package/lib/types/applyRuntimes.d.ts +25 -0
  184. package/lib/types/assetUtils.d.ts +42 -0
  185. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +35 -0
  186. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  187. package/lib/types/atlaspack-v3/fs.d.ts +13 -0
  188. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  189. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  190. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  191. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  192. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  193. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  194. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -2
  195. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  196. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  197. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  198. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  199. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  200. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  201. package/lib/types/atlaspack-v3/worker/worker.d.ts +81 -0
  202. package/lib/types/constants.d.ts +13 -0
  203. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  204. package/lib/types/index.d.ts +8 -0
  205. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  206. package/lib/types/loadDotEnv.d.ts +3 -0
  207. package/lib/types/projectPath.d.ts +19 -0
  208. package/lib/types/public/Asset.d.ts +74 -0
  209. package/lib/types/public/Bundle.d.ts +45 -0
  210. package/lib/types/public/BundleGraph.d.ts +72 -0
  211. package/lib/types/public/BundleGroup.d.ts +12 -0
  212. package/lib/types/public/Config.d.ts +75 -0
  213. package/lib/types/public/Dependency.d.ts +32 -0
  214. package/lib/types/public/Environment.d.ts +34 -0
  215. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  216. package/lib/types/public/PluginOptions.d.ts +25 -0
  217. package/lib/types/public/Symbols.d.ts +81 -0
  218. package/lib/types/public/Target.d.ts +16 -0
  219. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  220. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  221. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  222. package/lib/types/requests/AssetRequest.d.ts +16 -0
  223. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  224. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  225. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  226. package/lib/types/requests/BundleGraphRequestRust.d.ts +34 -0
  227. package/lib/types/requests/BundleGraphRequestUtils.d.ts +38 -0
  228. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  229. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  230. package/lib/types/requests/EntryRequest.d.ts +36 -0
  231. package/lib/types/requests/PackageRequest.d.ts +27 -0
  232. package/lib/types/requests/PathRequest.d.ts +48 -0
  233. package/lib/types/requests/TargetRequest.d.ts +48 -0
  234. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  235. package/lib/types/requests/WriteBundleRequest.d.ts +80 -0
  236. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  237. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  238. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  239. package/lib/types/resolveOptions.d.ts +3 -0
  240. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  241. package/lib/types/serializerCore.browser.d.ts +3 -0
  242. package/lib/types/summarizeRequest.d.ts +10 -0
  243. package/lib/types/types.d.ts +496 -0
  244. package/lib/types/utils.d.ts +23 -0
  245. package/lib/types/worker.d.ts +44 -0
  246. package/lib/types.js +8 -1
  247. package/lib/utils.js +18 -3
  248. package/lib/worker.js +32 -15
  249. package/package.json +26 -36
  250. package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
  251. package/src/{Atlaspack.js → Atlaspack.ts} +181 -72
  252. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  253. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  254. package/src/{BundleGraph.js → BundleGraph.ts} +575 -145
  255. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  256. package/src/{Dependency.js → Dependency.ts} +59 -42
  257. package/src/{Environment.js → Environment.ts} +24 -15
  258. package/src/EnvironmentManager.ts +154 -0
  259. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  260. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  261. package/src/{PackagerRunner.js → PackagerRunner.ts} +114 -159
  262. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  263. package/src/{RequestTracker.js → RequestTracker.ts} +444 -355
  264. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +178 -61
  265. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +10 -1
  266. package/src/{Transformation.js → Transformation.ts} +110 -65
  267. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +45 -49
  268. package/src/{Validation.js → Validation.ts} +32 -17
  269. package/src/{applyRuntimes.js → applyRuntimes.ts} +135 -26
  270. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  271. package/src/atlaspack-v3/AtlaspackV3.ts +183 -0
  272. package/src/atlaspack-v3/NapiWorkerPool.ts +129 -0
  273. package/src/atlaspack-v3/{fs.js → fs.ts} +8 -4
  274. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  275. package/src/atlaspack-v3/jsCallable.ts +14 -0
  276. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  277. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  278. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  279. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  280. package/src/atlaspack-v3/worker/compat/index.ts +8 -0
  281. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  282. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  283. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  284. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  285. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  286. package/src/atlaspack-v3/worker/index.js +2 -1
  287. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  288. package/src/atlaspack-v3/worker/worker.ts +548 -0
  289. package/src/{constants.js → constants.ts} +0 -3
  290. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  291. package/src/index.ts +18 -0
  292. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  293. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  294. package/src/{projectPath.js → projectPath.ts} +20 -9
  295. package/src/public/{Asset.js → Asset.ts} +41 -28
  296. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  297. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  298. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  299. package/src/public/{Config.js → Config.ts} +171 -33
  300. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  301. package/src/public/{Environment.js → Environment.ts} +28 -17
  302. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  303. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  304. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  305. package/src/public/{Target.js → Target.ts} +10 -8
  306. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  307. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +117 -90
  308. package/src/requests/AssetGraphRequestRust.ts +557 -0
  309. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  310. package/src/requests/AtlaspackBuildRequest.ts +168 -0
  311. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  312. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +119 -199
  313. package/src/requests/BundleGraphRequestRust.ts +470 -0
  314. package/src/requests/BundleGraphRequestUtils.ts +323 -0
  315. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  316. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  317. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  318. package/src/requests/{PackageRequest.js → PackageRequest.ts} +52 -25
  319. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  320. package/src/requests/{TargetRequest.js → TargetRequest.ts} +265 -179
  321. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  322. package/src/requests/WriteBundleRequest.ts +734 -0
  323. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +134 -50
  324. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  325. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  326. package/src/{resolveOptions.js → resolveOptions.ts} +57 -27
  327. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  328. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  329. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  330. package/src/types.ts +651 -0
  331. package/src/{utils.js → utils.ts} +52 -21
  332. package/src/{worker.js → worker.ts} +50 -42
  333. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +5 -8
  334. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  335. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  336. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  337. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  338. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  339. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  340. package/test/Environment.test.ts +153 -0
  341. package/test/EnvironmentManager.test.ts +188 -0
  342. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  343. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  344. package/test/PackagerRunner.test.ts +0 -0
  345. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  346. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  347. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  348. package/test/PublicEnvironment.test.ts +49 -0
  349. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  350. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +136 -58
  351. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  352. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +91 -92
  353. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  354. package/test/fixtures/custom-targets/package.json +6 -0
  355. package/test/public/Config.test.ts +104 -0
  356. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  357. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  358. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  359. package/test/requests/WriteBundleRequest.test.ts +602 -0
  360. package/test/{test-utils.js → test-utils.ts} +3 -4
  361. package/test/{utils.test.js → utils.test.ts} +1 -3
  362. package/tsconfig.json +60 -0
  363. package/tsconfig.tsbuildinfo +1 -0
  364. package/index.d.ts +0 -30
  365. package/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
  366. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  367. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  368. package/src/atlaspack-v3/jsCallable.js +0 -18
  369. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  370. package/src/atlaspack-v3/worker/compat/plugin-logger.js +0 -47
  371. package/src/atlaspack-v3/worker/worker.js +0 -369
  372. package/src/index.js +0 -13
  373. package/src/requests/AssetGraphRequestRust.js +0 -263
  374. package/src/requests/AtlaspackBuildRequest.js +0 -111
  375. package/src/requests/WriteBundleRequest.js +0 -369
  376. package/src/types.js +0 -600
  377. package/test/Environment.test.js +0 -119
  378. package/test/PackagerRunner.test.js +0 -27
  379. package/test/PublicEnvironment.test.js +0 -27
  380. package/test/requests/AssetGraphRequestRust.test.js +0 -411
package/lib/utils.js CHANGED
@@ -36,7 +36,11 @@ function _utils() {
36
36
  return data;
37
37
  }
38
38
  var _projectPath = require("./projectPath");
39
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
39
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
40
+ // flow-to-ts helpers
41
+
42
+ // /flow-to-ts helpers
43
+
40
44
  const base62 = (0, _baseX().default)('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
41
45
  function getBundleGroupId(bundleGroup) {
42
46
  return 'bundle_group:' + bundleGroup.target.name + bundleGroup.entryAssetId;
@@ -75,6 +79,8 @@ function optionsProxy(options, invalidateOnOptionChange, addDevDependency) {
75
79
  if (!ignoreOptions.has(prop)) {
76
80
  invalidateOnOptionChange(prop);
77
81
  }
82
+
83
+ // @ts-expect-error TS7053
78
84
  return target[prop];
79
85
  }
80
86
  });
@@ -94,30 +100,39 @@ function proxyPackageManager(projectRoot, packageManager, addDevDependency) {
94
100
  return require;
95
101
  }
96
102
 
97
- // $FlowFixMe
103
+ // @ts-expect-error TS7053
98
104
  return target[prop];
99
105
  }
100
106
  });
101
107
  }
102
108
  function hashFromOption(value) {
103
109
  if (typeof value === 'object' && value != null) {
110
+ // @ts-expect-error TS2345
104
111
  return (0, _utils().hashObject)(value);
105
112
  }
106
113
  return String(value);
107
114
  }
108
115
  function invalidateOnFileCreateToInternal(projectRoot, invalidation) {
116
+ // @ts-expect-error TS2339
109
117
  if (invalidation.glob != null) {
118
+ // @ts-expect-error TS2339
110
119
  return {
111
120
  glob: (0, _projectPath.toProjectPath)(projectRoot, invalidation.glob)
112
121
  };
122
+ // @ts-expect-error TS2339
113
123
  } else if (invalidation.filePath != null) {
114
124
  return {
125
+ // @ts-expect-error TS2339
115
126
  filePath: (0, _projectPath.toProjectPath)(projectRoot, invalidation.filePath)
116
127
  };
117
128
  } else {
118
- (0, _assert().default)(invalidation.aboveFilePath != null && invalidation.fileName != null);
129
+ (0, _assert().default)(
130
+ // @ts-expect-error TS2339
131
+ invalidation.aboveFilePath != null && invalidation.fileName != null);
119
132
  return {
133
+ // @ts-expect-error TS2339
120
134
  fileName: invalidation.fileName,
135
+ // @ts-expect-error TS2339
121
136
  aboveFilePath: (0, _projectPath.toProjectPath)(projectRoot, invalidation.aboveFilePath)
122
137
  };
123
138
  }
package/lib/worker.js CHANGED
@@ -46,7 +46,7 @@ function _buildCache() {
46
46
  return data;
47
47
  }
48
48
  function _sourceMap() {
49
- const data = require("@parcel/source-map");
49
+ const data = require("@atlaspack/source-map");
50
50
  _sourceMap = function () {
51
51
  return data;
52
52
  };
@@ -76,29 +76,25 @@ function _featureFlags() {
76
76
  require("@atlaspack/cache");
77
77
  require("@atlaspack/package-manager");
78
78
  require("@atlaspack/fs");
79
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
79
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
80
+ // @ts-expect-error TS2305
81
+
80
82
  // register with serializer
81
- // $FlowFixMe
82
- if (process.env.ATLASPACK_BUILD_REPL && process.browser) {
83
- /* eslint-disable import/no-extraneous-dependencies, monorepo/no-internal-import */
84
- require('@atlaspack/repl/src/atlaspack/BrowserPackageManager.js');
85
- // $FlowFixMe
86
- require('@atlaspack/repl/src/atlaspack/ExtendedMemoryFS.js');
87
- /* eslint-enable import/no-extraneous-dependencies, monorepo/no-internal-import */
88
- }
83
+
84
+ // flow-to-ts helpers
85
+
86
+ // /flow-to-ts helpers
89
87
 
90
88
  (0, _registerCoreWithSerializer.registerCoreWithSerializer)();
91
89
 
92
90
  // Remove the workerApi type from the TransformationOpts and ValidationOpts types:
93
91
  // https://github.com/facebook/flow/issues/2835
92
+
94
93
  // TODO: this should eventually be replaced by an in memory cache layer
95
94
  let atlaspackConfigCache = new Map();
96
95
  function loadOptions(ref, workerApi) {
97
- return (0, _nullthrows().default)(workerApi.getSharedReference(ref
98
- // $FlowFixMe
99
- ));
96
+ return (0, _nullthrows().default)(workerApi.getSharedReference(ref));
100
97
  }
101
-
102
98
  async function loadConfig(cachePath, options) {
103
99
  let config = atlaspackConfigCache.get(cachePath);
104
100
  if (config && config.options === options) {
@@ -125,6 +121,7 @@ async function runTransform(workerApi, opts) {
125
121
  return new _Transformation.default({
126
122
  workerApi,
127
123
  options,
124
+ // @ts-expect-error TS2783
128
125
  config,
129
126
  ...rest
130
127
  }).run();
@@ -139,8 +136,10 @@ async function runValidate(workerApi, opts) {
139
136
  let config = await loadConfig(configCachePath, options);
140
137
  return new _Validation.default({
141
138
  workerApi,
139
+ // @ts-expect-error TS2783
142
140
  report: _ReporterRunner.reportWorker.bind(null, workerApi),
143
141
  options,
142
+ // @ts-expect-error TS2783
144
143
  config,
145
144
  ...rest
146
145
  }).run();
@@ -161,6 +160,7 @@ async function runPackage(workerApi, {
161
160
  let runner = new _PackagerRunner.default({
162
161
  config: atlaspackConfig,
163
162
  options,
163
+ // @ts-expect-error TS2322
164
164
  report: _workers().default.isWorker() ? _ReporterRunner.reportWorker.bind(null, workerApi) : _ReporterRunner.report,
165
165
  previousDevDeps,
166
166
  previousInvalidations
@@ -172,7 +172,24 @@ async function childInit() {
172
172
  await (_rust().init === null || _rust().init === void 0 ? void 0 : (0, _rust().init)());
173
173
  }
174
174
  const PKG_RE = /node_modules[/\\]((?:@[^/\\]+[/\\][^/\\]+)|[^/\\]+)(?!.*[/\\]node_modules[/\\])/;
175
- function invalidateRequireCache() {
175
+ function invalidateRequireCache(workerApi, file) {
176
+ if (process.env.ATLASPACK_BUILD_ENV === 'test') {
177
+ // Delete this module and all children in the same node_modules folder
178
+ let module = require.cache[file];
179
+ if (module) {
180
+ var _file$match;
181
+ delete require.cache[file];
182
+ let pkg = (_file$match = file.match(PKG_RE)) === null || _file$match === void 0 ? void 0 : _file$match[1];
183
+ for (let child of module.children) {
184
+ var _child$id$match;
185
+ if (pkg === ((_child$id$match = child.id.match(PKG_RE)) === null || _child$id$match === void 0 ? void 0 : _child$id$match[1])) {
186
+ invalidateRequireCache(workerApi, child.id);
187
+ }
188
+ }
189
+ }
190
+ atlaspackConfigCache.clear();
191
+ return;
192
+ }
176
193
  throw new Error('invalidateRequireCache is only for tests');
177
194
  }
178
195
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaspack/core",
3
- "version": "2.16.2-canary.48+3af500201",
3
+ "version": "2.16.2-canary.481+a1d772935",
4
4
  "license": "(MIT OR Apache-2.0)",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -9,39 +9,40 @@
9
9
  "type": "git",
10
10
  "url": "https://github.com/atlassian-labs/atlaspack.git"
11
11
  },
12
- "main": "lib/index.js",
13
- "types": "index.d.ts",
14
- "source": "src/index.js",
12
+ "main": "./lib/index.js",
13
+ "source": "./src/index.ts",
14
+ "types": "./lib/types/index.d.ts",
15
15
  "engines": {
16
16
  "node": ">= 16.0.0"
17
17
  },
18
18
  "scripts": {
19
19
  "test": "mocha",
20
20
  "test-ci": "mocha",
21
- "check-ts": "tsc --noEmit index.d.ts"
21
+ "generate-ts": "tsc --emitDeclarationOnly",
22
+ "build:lib": "gulp build --gulpfile ../../../gulpfile.js --cwd ."
22
23
  },
23
24
  "dependencies": {
24
- "@atlaspack/build-cache": "2.13.3-canary.116+3af500201",
25
- "@atlaspack/cache": "3.1.1-canary.48+3af500201",
26
- "@atlaspack/diagnostic": "2.14.1-canary.116+3af500201",
27
- "@atlaspack/events": "2.14.1-canary.116+3af500201",
28
- "@atlaspack/feature-flags": "2.14.1-canary.116+3af500201",
29
- "@atlaspack/fs": "2.14.5-canary.48+3af500201",
30
- "@atlaspack/graph": "3.4.1-canary.116+3af500201",
31
- "@atlaspack/logger": "2.14.5-canary.48+3af500201",
32
- "@atlaspack/package-manager": "2.14.5-canary.48+3af500201",
33
- "@atlaspack/plugin": "2.14.5-canary.48+3af500201",
34
- "@atlaspack/profiler": "2.14.1-canary.116+3af500201",
35
- "@atlaspack/rust": "3.2.1-canary.48+3af500201",
36
- "@atlaspack/types": "2.14.5-canary.48+3af500201",
37
- "@atlaspack/utils": "2.14.5-canary.48+3af500201",
38
- "@atlaspack/workers": "2.14.5-canary.48+3af500201",
25
+ "@atlaspack/build-cache": "2.13.3-canary.549+a1d772935",
26
+ "@atlaspack/cache": "3.1.1-canary.481+a1d772935",
27
+ "@atlaspack/diagnostic": "2.14.1-canary.549+a1d772935",
28
+ "@atlaspack/events": "2.14.1-canary.549+a1d772935",
29
+ "@atlaspack/feature-flags": "2.14.1-canary.549+a1d772935",
30
+ "@atlaspack/fs": "2.14.5-canary.481+a1d772935",
31
+ "@atlaspack/graph": "3.4.1-canary.549+a1d772935",
32
+ "@atlaspack/logger": "2.14.5-canary.481+a1d772935",
33
+ "@atlaspack/package-manager": "2.14.5-canary.481+a1d772935",
34
+ "@atlaspack/plugin": "2.14.5-canary.481+a1d772935",
35
+ "@atlaspack/profiler": "2.14.1-canary.549+a1d772935",
36
+ "@atlaspack/rust": "3.2.1-canary.481+a1d772935",
37
+ "@atlaspack/source-map": "3.3.8-canary.4260+a1d772935",
38
+ "@atlaspack/types": "2.14.5-canary.481+a1d772935",
39
+ "@atlaspack/utils": "2.14.5-canary.481+a1d772935",
40
+ "@atlaspack/workers": "2.14.5-canary.481+a1d772935",
39
41
  "@mischnic/json-sourcemap": "^0.1.0",
40
- "@parcel/source-map": "^2.1.1",
41
42
  "base-x": "^3.0.8",
42
43
  "browserslist": "^4.6.6",
43
44
  "clone": "^2.1.1",
44
- "dotenv": "^7.0.0",
45
+ "dotenv": "^12.0.4",
45
46
  "dotenv-expand": "^5.1.0",
46
47
  "json5": "^2.2.0",
47
48
  "msgpackr": "^1.9.9",
@@ -49,27 +50,16 @@
49
50
  "semver": "^7.5.2"
50
51
  },
51
52
  "devDependencies": {
52
- "@atlaspack/babel-register": "2.14.1",
53
+ "@atlaspack/babel-register": "2.14.5",
53
54
  "@types/node": ">= 18",
54
55
  "graphviz": "^0.0.9",
55
56
  "jest-diff": "*",
56
57
  "rfdc": "1",
57
58
  "tempy": "^0.2.1"
58
59
  },
59
- "exports": {
60
- "./*": "./*",
61
- ".": {
62
- "types": "./index.d.ts",
63
- "default": "./lib/index.js"
64
- },
65
- "./worker": {
66
- "@atlaspack::sources": "./src/worker.js",
67
- "default": "./lib/worker.js"
68
- }
69
- },
70
60
  "browser": {
71
61
  "./src/serializerCore.js": "./src/serializerCore.browser.js"
72
62
  },
73
63
  "type": "commonjs",
74
- "gitHead": "3af5002017ed237c1bcfed5c5cf3f0da5b3a9f92"
75
- }
64
+ "gitHead": "a1d772935c9ed74c6d8eafbee6b65eb91ddc38fd"
65
+ }
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {GraphVisitor} from '@atlaspack/types';
4
2
  import type {
5
3
  ContentGraphOpts,
@@ -28,23 +26,27 @@ import {hashObject} from '@atlaspack/utils';
28
26
  import nullthrows from 'nullthrows';
29
27
  import {ContentGraph} from '@atlaspack/graph';
30
28
  import {createDependency} from './Dependency';
31
- import {type ProjectPath, fromProjectPathRelative} from './projectPath';
32
-
33
- type InitOpts = {|
34
- entries?: Array<ProjectPath>,
35
- targets?: Array<Target>,
36
- assetGroups?: Array<AssetGroup>,
37
- |};
38
-
39
- type AssetGraphOpts = {|
40
- ...ContentGraphOpts<AssetGraphNode>,
41
- hash?: ?string,
42
- |};
43
-
44
- type SerializedAssetGraph = {|
45
- ...SerializedContentGraph<AssetGraphNode>,
46
- hash?: ?string,
47
- |};
29
+ import {ProjectPath, fromProjectPathRelative} from './projectPath';
30
+ import {
31
+ fromEnvironmentId,
32
+ toEnvironmentId,
33
+ toEnvironmentRef,
34
+ } from './EnvironmentManager';
35
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
36
+
37
+ type InitOpts = {
38
+ entries?: Array<ProjectPath>;
39
+ targets?: Array<Target>;
40
+ assetGroups?: Array<AssetGroup>;
41
+ };
42
+
43
+ type AssetGraphOpts = ContentGraphOpts<AssetGraphNode> & {
44
+ hash?: string | null | undefined;
45
+ };
46
+
47
+ type SerializedAssetGraph = SerializedContentGraph<AssetGraphNode> & {
48
+ hash?: string | null | undefined;
49
+ };
48
50
 
49
51
  export function nodeFromDep(dep: Dependency): DependencyNode {
50
52
  return {
@@ -64,8 +66,10 @@ export function nodeFromDep(dep: Dependency): DependencyNode {
64
66
  export function nodeFromAssetGroup(assetGroup: AssetGroup): AssetGroupNode {
65
67
  return {
66
68
  id: hashString(
69
+ // @ts-expect-error TS2345
67
70
  fromProjectPathRelative(assetGroup.filePath) +
68
- assetGroup.env.id +
71
+ // @ts-expect-error TS2345
72
+ toEnvironmentId(assetGroup.env) +
69
73
  String(assetGroup.isSource) +
70
74
  String(assetGroup.sideEffects) +
71
75
  (assetGroup.code ?? '') +
@@ -107,16 +111,20 @@ export function nodeFromEntryFile(entry: Entry): EntryFileNode {
107
111
  };
108
112
  }
109
113
 
114
+ // @ts-expect-error TS2417
110
115
  export default class AssetGraph extends ContentGraph<AssetGraphNode> {
111
- onNodeRemoved: ?(nodeId: NodeId) => mixed;
112
- hash: ?string;
116
+ onNodeRemoved: ((nodeId: NodeId) => unknown) | null | undefined;
117
+ hash: string | null | undefined;
113
118
  envCache: Map<string, Environment>;
119
+
114
120
  safeToIncrementallyBundle: boolean = true;
121
+
115
122
  undeferredDependencies: Set<Dependency>;
116
123
 
117
- constructor(opts: ?AssetGraphOpts) {
124
+ constructor(opts?: AssetGraphOpts | null) {
118
125
  if (opts) {
119
126
  let {hash, ...rest} = opts;
127
+ // @ts-expect-error TS2345
120
128
  super(rest);
121
129
  this.hash = hash;
122
130
  } else {
@@ -134,12 +142,10 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
134
142
  this.envCache = new Map();
135
143
  }
136
144
 
137
- // $FlowFixMe[prop-missing]
138
145
  static deserialize(opts: AssetGraphOpts): AssetGraph {
139
146
  return new AssetGraph(opts);
140
147
  }
141
148
 
142
- // $FlowFixMe[prop-missing]
143
149
  serialize(): SerializedAssetGraph {
144
150
  return {
145
151
  ...super.serialize(),
@@ -147,21 +153,35 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
147
153
  };
148
154
  }
149
155
 
156
+ /**
157
+ * Determine if we can incrementally bundle, which will not require a full bundling pass
158
+ * but just update assets into the bundle graph output.
159
+ */
160
+ canIncrementallyBundle(): boolean {
161
+ return this.safeToIncrementallyBundle;
162
+ }
163
+
150
164
  // Deduplicates Environments by making them referentially equal
151
165
  normalizeEnvironment(input: Asset | Dependency | AssetGroup) {
152
- let {id, context} = input.env;
166
+ if (getFeatureFlag('environmentDeduplication')) {
167
+ return;
168
+ }
169
+
170
+ // @ts-expect-error TS2345
171
+ let {id, context} = fromEnvironmentId(input.env);
153
172
  let idAndContext = `${id}-${context}`;
154
173
 
155
174
  let env = this.envCache.get(idAndContext);
156
175
  if (env) {
157
- input.env = env;
176
+ input.env = toEnvironmentRef(env);
158
177
  } else {
159
- this.envCache.set(idAndContext, input.env);
178
+ // @ts-expect-error TS2345
179
+ this.envCache.set(idAndContext, fromEnvironmentId(input.env));
160
180
  }
161
181
  }
162
182
 
163
183
  setRootConnections({entries, assetGroups}: InitOpts) {
164
- let nodes = [];
184
+ let nodes: Array<AssetGroupNode | EntrySpecifierNode> = [];
165
185
  if (entries) {
166
186
  for (let entry of entries) {
167
187
  let node = nodeFromEntrySpecifier(entry);
@@ -185,8 +205,6 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
185
205
  let existing = this.getNodeByContentKey(node.id);
186
206
  if (existing != null) {
187
207
  invariant(existing.type === node.type);
188
- // $FlowFixMe[incompatible-type] Checked above
189
- // $FlowFixMe[prop-missing]
190
208
  existing.value = node.value;
191
209
  let existingId = this.getNodeIdByContentKey(node.id);
192
210
  this.updateNode(existingId, existing);
@@ -235,13 +253,14 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
235
253
  env: target.env,
236
254
  isEntry: true,
237
255
  needsStableName: true,
238
- symbols: target.env.isLibrary
256
+ // @ts-expect-error TS2322
257
+ symbols: fromEnvironmentId(target.env).isLibrary
239
258
  ? new Map([['*', {local: '*', isWeak: true, loc: null}]])
240
259
  : undefined,
241
260
  }),
242
261
  );
243
262
 
244
- if (node.value.env.isLibrary) {
263
+ if (fromEnvironmentId(node.value.env).isLibrary) {
245
264
  // in library mode, all of the entry's symbols are "used"
246
265
  node.usedSymbolsDown.add('*');
247
266
  node.usedSymbolsUp.set('*', undefined);
@@ -262,7 +281,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
262
281
 
263
282
  resolveDependency(
264
283
  dependency: Dependency,
265
- assetGroup: ?AssetGroup,
284
+ assetGroup: AssetGroup | null | undefined,
266
285
  correspondingRequest: string,
267
286
  ) {
268
287
  let depNodeId = this.getNodeIdByContentKey(dependency.id);
@@ -344,9 +363,11 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
344
363
  let hasDeferred = this.getNodeIdsConnectedFrom(traversedNodeId).some(
345
364
  (childNodeId) => {
346
365
  let childNode = nullthrows(this.getNode(childNodeId));
366
+ // @ts-expect-error TS2339
347
367
  return childNode.hasDeferred == null
348
368
  ? false
349
- : childNode.hasDeferred;
369
+ : // @ts-expect-error TS2339
370
+ childNode.hasDeferred;
350
371
  },
351
372
  );
352
373
  if (!hasDeferred) {
@@ -357,6 +378,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
357
378
  traversedNode.type === 'asset_group' &&
358
379
  nodeId !== traversedNodeId
359
380
  ) {
381
+ // @ts-expect-error TS2339
360
382
  if (!ctx?.hasDeferred) {
361
383
  this.safeToIncrementallyBundle = false;
362
384
  delete traversedNode.hasDeferred;
@@ -378,7 +400,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
378
400
  // a huge number of functions since we can avoid even transforming the files that aren't used.
379
401
  shouldDeferDependency(
380
402
  dependency: Dependency,
381
- sideEffects: ?boolean,
403
+ sideEffects: boolean | null | undefined,
382
404
  canDefer: boolean,
383
405
  ): boolean {
384
406
  let dependencySymbols = dependency.symbols;
@@ -389,7 +411,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
389
411
  }
390
412
 
391
413
  let isDeferrable =
392
- [...dependencySymbols].every(([, {isWeak}]) => isWeak) &&
414
+ [...dependencySymbols].every(([, {isWeak}]: [any, any]) => isWeak) &&
393
415
  sideEffects === false &&
394
416
  canDefer &&
395
417
  !dependencySymbols.has('*');
@@ -404,7 +426,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
404
426
 
405
427
  let assets = this.getNodeIdsConnectedTo(depNodeId);
406
428
  let symbols = new Map(
407
- [...dependencySymbols].map(([key, val]) => [val.local, key]),
429
+ [...dependencySymbols].map(([key, val]: [any, any]) => [val.local, key]),
408
430
  );
409
431
  invariant(assets.length === 1);
410
432
  let firstAsset = nullthrows(this.getNode(assets[0]));
@@ -428,7 +450,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
428
450
 
429
451
  let depIsDeferrable =
430
452
  d.symbols &&
431
- !(d.env.isLibrary && d.isEntry) &&
453
+ !(fromEnvironmentId(d.env).isLibrary && d.isEntry) &&
432
454
  !d.symbols.has('*') &&
433
455
  ![...d.symbols.keys()].some((symbol) => {
434
456
  let assetSymbol = resolvedAsset.symbols?.get(symbol)?.local;
@@ -450,6 +472,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
450
472
  ) {
451
473
  this.normalizeEnvironment(assetGroup);
452
474
  let assetGroupNode = nodeFromAssetGroup(assetGroup);
475
+ // @ts-expect-error TS2322
453
476
  assetGroupNode = this.getNodeByContentKey(assetGroupNode.id);
454
477
  if (!assetGroupNode) {
455
478
  return;
@@ -473,16 +496,16 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
473
496
  }
474
497
  }
475
498
 
476
- let assetObjects: Array<{|
477
- assetNodeId: NodeId,
478
- dependentAssets: Array<Asset>,
479
- |}> = [];
480
- let assetNodeIds = [];
499
+ let assetObjects: Array<{
500
+ assetNodeId: NodeId;
501
+ dependentAssets: Array<Asset>;
502
+ }> = [];
503
+ let assetNodeIds: Array<NodeId> = [];
481
504
  for (let asset of assets) {
482
505
  this.normalizeEnvironment(asset);
483
506
  let isDirect = !dependentAssetKeys.has(asset.uniqueKey);
484
507
 
485
- let dependentAssets = [];
508
+ let dependentAssets: Array<Asset> = [];
486
509
  for (let dep of asset.dependencies.values()) {
487
510
  let dependentAsset = assetsByKey.get(dep.specifier);
488
511
  if (dependentAsset) {
@@ -519,7 +542,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
519
542
 
520
543
  resolveAsset(assetNode: AssetNode, dependentAssets: Array<Asset>) {
521
544
  let depNodeIds: Array<NodeId> = [];
522
- let depNodesWithAssets = [];
545
+ let depNodesWithAssets: Array<Array<AssetNode | DependencyNode>> = [];
523
546
  for (let dep of assetNode.value.dependencies.values()) {
524
547
  this.normalizeEnvironment(dep);
525
548
  let depNode = nodeFromDep(dep);
@@ -532,6 +555,19 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
532
555
  ...depNode.value.meta,
533
556
  ...existing.value.resolverMeta,
534
557
  };
558
+
559
+ if (getFeatureFlag('hmrImprovements')) {
560
+ depNode.value.resolverMeta = existing.value.resolverMeta;
561
+ }
562
+ }
563
+ if (getFeatureFlag('hmrImprovements')) {
564
+ if (
565
+ existing?.type === 'dependency' &&
566
+ existing.value.resolverPriority != null
567
+ ) {
568
+ depNode.value.priority = existing.value.resolverPriority;
569
+ depNode.value.resolverPriority = existing.value.resolverPriority;
570
+ }
535
571
  }
536
572
  let dependentAsset = dependentAssets.find(
537
573
  (a) => a.uniqueKey === dep.specifier,
@@ -563,7 +599,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
563
599
  getIncomingDependencies(asset: Asset): Array<Dependency> {
564
600
  let nodeId = this.getNodeIdByContentKey(asset.id);
565
601
  let assetGroupIds = this.getNodeIdsConnectedTo(nodeId);
566
- let dependencies = [];
602
+ let dependencies: Array<Dependency> = [];
567
603
  for (let i = 0; i < assetGroupIds.length; i++) {
568
604
  let assetGroupId = assetGroupIds[i];
569
605
 
@@ -592,8 +628,8 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
592
628
 
593
629
  traverseAssets<TContext>(
594
630
  visit: GraphVisitor<Asset, TContext>,
595
- startNodeId: ?NodeId,
596
- ): ?TContext {
631
+ startNodeId?: NodeId | null,
632
+ ): TContext | null | undefined {
597
633
  return this.filteredTraverse(
598
634
  (nodeId) => {
599
635
  let node = nullthrows(this.getNode(nodeId));
@@ -605,7 +641,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
605
641
  }
606
642
 
607
643
  getEntryAssetGroupNodes(): Array<AssetGroupNode> {
608
- let entryNodes = [];
644
+ let entryNodes: Array<AssetGroupNode> = [];
609
645
  this.traverse((nodeId, _, actions) => {
610
646
  let node = nullthrows(this.getNode(nodeId));
611
647
  if (node.type === 'asset_group') {
@@ -617,7 +653,7 @@ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
617
653
  }
618
654
 
619
655
  getEntryAssets(): Array<Asset> {
620
- let entries = [];
656
+ let entries: Array<Asset> = [];
621
657
  this.traverseAssets((asset, ctx, traversal) => {
622
658
  entries.push(asset);
623
659
  traversal.skipChildren();