@atlaspack/core 2.16.2-canary.37 → 2.16.2-canary.371

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 (367) hide show
  1. package/CHANGELOG.md +941 -0
  2. package/dist/AssetGraph.js +591 -0
  3. package/dist/Atlaspack.js +666 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1740 -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 +545 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1360 -0
  16. package/dist/SymbolPropagation.js +620 -0
  17. package/dist/TargetDescriptor.schema.js +143 -0
  18. package/dist/Transformation.js +514 -0
  19. package/dist/UncommittedAsset.js +315 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +383 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +74 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +81 -0
  25. package/dist/atlaspack-v3/fs.js +52 -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 +25 -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-logger.js +26 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  37. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  38. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  39. package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
  40. package/dist/atlaspack-v3/worker/worker.js +381 -0
  41. package/dist/constants.js +17 -0
  42. package/dist/dumpGraphToGraphViz.js +281 -0
  43. package/dist/index.js +62 -0
  44. package/dist/loadAtlaspackPlugin.js +128 -0
  45. package/dist/loadDotEnv.js +41 -0
  46. package/dist/projectPath.js +83 -0
  47. package/dist/public/Asset.js +279 -0
  48. package/dist/public/Bundle.js +224 -0
  49. package/dist/public/BundleGraph.js +371 -0
  50. package/dist/public/BundleGroup.js +53 -0
  51. package/dist/public/Config.js +286 -0
  52. package/dist/public/Dependency.js +138 -0
  53. package/dist/public/Environment.js +278 -0
  54. package/dist/public/MutableBundleGraph.js +277 -0
  55. package/dist/public/PluginOptions.js +80 -0
  56. package/dist/public/Symbols.js +248 -0
  57. package/dist/public/Target.js +69 -0
  58. package/dist/registerCoreWithSerializer.js +38 -0
  59. package/dist/requests/AssetGraphRequest.js +439 -0
  60. package/dist/requests/AssetGraphRequestRust.js +273 -0
  61. package/dist/requests/AssetRequest.js +130 -0
  62. package/dist/requests/AtlaspackBuildRequest.js +92 -0
  63. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  64. package/dist/requests/BundleGraphRequest.js +447 -0
  65. package/dist/requests/ConfigRequest.js +246 -0
  66. package/dist/requests/DevDepRequest.js +204 -0
  67. package/dist/requests/EntryRequest.js +314 -0
  68. package/dist/requests/PackageRequest.js +72 -0
  69. package/dist/requests/PathRequest.js +349 -0
  70. package/dist/requests/TargetRequest.js +1311 -0
  71. package/dist/requests/ValidationRequest.js +49 -0
  72. package/dist/requests/WriteBundleRequest.js +254 -0
  73. package/dist/requests/WriteBundlesRequest.js +184 -0
  74. package/dist/requests/asset-graph-diff.js +128 -0
  75. package/dist/requests/asset-graph-dot.js +131 -0
  76. package/dist/resolveOptions.js +269 -0
  77. package/dist/rustWorkerThreadDylibHack.js +19 -0
  78. package/dist/serializerCore.browser.js +43 -0
  79. package/dist/summarizeRequest.js +39 -0
  80. package/dist/types.js +31 -0
  81. package/dist/utils.js +172 -0
  82. package/dist/worker.js +123 -0
  83. package/lib/AssetGraph.js +111 -14
  84. package/lib/Atlaspack.js +94 -41
  85. package/lib/AtlaspackConfig.js +15 -3
  86. package/lib/AtlaspackConfig.schema.js +16 -5
  87. package/lib/BundleGraph.js +197 -32
  88. package/lib/CommittedAsset.js +7 -1
  89. package/lib/Dependency.js +8 -2
  90. package/lib/Environment.js +15 -8
  91. package/lib/EnvironmentManager.js +143 -0
  92. package/lib/IdentifierRegistry.js +1 -3
  93. package/lib/InternalConfig.js +3 -2
  94. package/lib/PackagerRunner.js +90 -27
  95. package/lib/ReporterRunner.js +6 -9
  96. package/lib/RequestTracker.js +266 -156
  97. package/lib/SymbolPropagation.js +42 -18
  98. package/lib/TargetDescriptor.schema.js +7 -1
  99. package/lib/Transformation.js +66 -15
  100. package/lib/UncommittedAsset.js +33 -12
  101. package/lib/Validation.js +18 -2
  102. package/lib/applyRuntimes.js +96 -4
  103. package/lib/assetUtils.js +15 -5
  104. package/lib/atlaspack-v3/AtlaspackV3.js +52 -14
  105. package/lib/atlaspack-v3/NapiWorkerPool.js +28 -1
  106. package/lib/atlaspack-v3/fs.js +3 -1
  107. package/lib/atlaspack-v3/index.js +28 -1
  108. package/lib/atlaspack-v3/jsCallable.js +0 -2
  109. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  110. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  111. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  112. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  113. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +15 -10
  114. package/lib/atlaspack-v3/worker/compat/plugin-config.js +13 -34
  115. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -0
  116. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  117. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  118. package/lib/atlaspack-v3/worker/index.js +3 -0
  119. package/lib/atlaspack-v3/worker/side-effect-detector.js +215 -0
  120. package/lib/atlaspack-v3/worker/worker.js +199 -71
  121. package/lib/constants.js +0 -1
  122. package/lib/dumpGraphToGraphViz.js +71 -16
  123. package/lib/index.js +45 -1
  124. package/lib/loadDotEnv.js +4 -1
  125. package/lib/projectPath.js +5 -0
  126. package/lib/public/Asset.js +21 -11
  127. package/lib/public/Bundle.js +15 -16
  128. package/lib/public/BundleGraph.js +25 -22
  129. package/lib/public/BundleGroup.js +4 -5
  130. package/lib/public/Config.js +118 -17
  131. package/lib/public/Dependency.js +8 -6
  132. package/lib/public/Environment.js +12 -7
  133. package/lib/public/MutableBundleGraph.js +54 -12
  134. package/lib/public/PluginOptions.js +2 -2
  135. package/lib/public/Symbols.js +11 -11
  136. package/lib/public/Target.js +7 -6
  137. package/lib/registerCoreWithSerializer.js +5 -3
  138. package/lib/requests/AssetGraphRequest.js +74 -27
  139. package/lib/requests/AssetGraphRequestRust.js +140 -64
  140. package/lib/requests/AssetRequest.js +23 -6
  141. package/lib/requests/AtlaspackBuildRequest.js +43 -4
  142. package/lib/requests/AtlaspackConfigRequest.js +27 -16
  143. package/lib/requests/BundleGraphRequest.js +41 -24
  144. package/lib/requests/ConfigRequest.js +53 -4
  145. package/lib/requests/DevDepRequest.js +31 -5
  146. package/lib/requests/EntryRequest.js +2 -0
  147. package/lib/requests/PackageRequest.js +16 -2
  148. package/lib/requests/PathRequest.js +24 -3
  149. package/lib/requests/TargetRequest.js +122 -57
  150. package/lib/requests/ValidationRequest.js +5 -1
  151. package/lib/requests/WriteBundleRequest.js +39 -11
  152. package/lib/requests/WriteBundlesRequest.js +51 -4
  153. package/lib/requests/asset-graph-diff.js +12 -7
  154. package/lib/requests/asset-graph-dot.js +1 -7
  155. package/lib/resolveOptions.js +38 -11
  156. package/lib/rustWorkerThreadDylibHack.js +0 -1
  157. package/lib/types/AssetGraph.d.ts +80 -0
  158. package/lib/types/Atlaspack.d.ts +52 -0
  159. package/lib/types/AtlaspackConfig.d.ts +65 -0
  160. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  161. package/lib/types/BundleGraph.d.ts +184 -0
  162. package/lib/types/CommittedAsset.d.ts +23 -0
  163. package/lib/types/Dependency.d.ts +44 -0
  164. package/lib/types/Environment.d.ts +11 -0
  165. package/lib/types/EnvironmentManager.d.ts +37 -0
  166. package/lib/types/IdentifierRegistry.d.ts +6 -0
  167. package/lib/types/InternalConfig.d.ts +23 -0
  168. package/lib/types/PackagerRunner.d.ts +85 -0
  169. package/lib/types/ReporterRunner.d.ts +25 -0
  170. package/lib/types/RequestTracker.d.ts +385 -0
  171. package/lib/types/SymbolPropagation.d.ts +11 -0
  172. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  173. package/lib/types/Transformation.d.ts +72 -0
  174. package/lib/types/UncommittedAsset.d.ts +61 -0
  175. package/lib/types/Validation.d.ts +37 -0
  176. package/lib/types/applyRuntimes.d.ts +25 -0
  177. package/lib/types/assetUtils.d.ts +42 -0
  178. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +34 -0
  179. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  180. package/lib/types/atlaspack-v3/fs.d.ts +12 -0
  181. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  182. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  183. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  184. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  185. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  186. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  187. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
  188. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  189. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  190. package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
  191. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  192. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  193. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  194. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  195. package/lib/types/atlaspack-v3/worker/worker.d.ts +80 -0
  196. package/lib/types/constants.d.ts +13 -0
  197. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  198. package/lib/types/index.d.ts +8 -0
  199. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  200. package/lib/types/loadDotEnv.d.ts +3 -0
  201. package/lib/types/projectPath.d.ts +19 -0
  202. package/lib/types/public/Asset.d.ts +74 -0
  203. package/lib/types/public/Bundle.d.ts +45 -0
  204. package/lib/types/public/BundleGraph.d.ts +72 -0
  205. package/lib/types/public/BundleGroup.d.ts +12 -0
  206. package/lib/types/public/Config.d.ts +75 -0
  207. package/lib/types/public/Dependency.d.ts +32 -0
  208. package/lib/types/public/Environment.d.ts +34 -0
  209. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  210. package/lib/types/public/PluginOptions.d.ts +25 -0
  211. package/lib/types/public/Symbols.d.ts +81 -0
  212. package/lib/types/public/Target.d.ts +16 -0
  213. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  214. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  215. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  216. package/lib/types/requests/AssetRequest.d.ts +16 -0
  217. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  218. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  219. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  220. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  221. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  222. package/lib/types/requests/EntryRequest.d.ts +36 -0
  223. package/lib/types/requests/PackageRequest.d.ts +27 -0
  224. package/lib/types/requests/PathRequest.d.ts +48 -0
  225. package/lib/types/requests/TargetRequest.d.ts +48 -0
  226. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  227. package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
  228. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  229. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  230. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  231. package/lib/types/resolveOptions.d.ts +3 -0
  232. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  233. package/lib/types/serializerCore.browser.d.ts +3 -0
  234. package/lib/types/summarizeRequest.d.ts +10 -0
  235. package/lib/types/types.d.ts +495 -0
  236. package/lib/types/utils.d.ts +23 -0
  237. package/lib/types/worker.d.ts +44 -0
  238. package/lib/types.js +8 -1
  239. package/lib/utils.js +17 -2
  240. package/lib/worker.js +30 -14
  241. package/package.json +25 -35
  242. package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
  243. package/src/{Atlaspack.js → Atlaspack.ts} +134 -67
  244. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  245. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  246. package/src/{BundleGraph.js → BundleGraph.ts} +383 -140
  247. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  248. package/src/{Dependency.js → Dependency.ts} +59 -42
  249. package/src/{Environment.js → Environment.ts} +24 -15
  250. package/src/EnvironmentManager.ts +154 -0
  251. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  252. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  253. package/src/{PackagerRunner.js → PackagerRunner.ts} +179 -87
  254. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  255. package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
  256. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
  257. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
  258. package/src/{Transformation.js → Transformation.ts} +110 -65
  259. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +60 -39
  260. package/src/{Validation.js → Validation.ts} +32 -17
  261. package/src/{applyRuntimes.js → applyRuntimes.ts} +133 -26
  262. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  263. package/src/atlaspack-v3/AtlaspackV3.ts +143 -0
  264. package/src/atlaspack-v3/NapiWorkerPool.ts +91 -0
  265. package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
  266. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  267. package/src/atlaspack-v3/jsCallable.ts +14 -0
  268. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  269. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  270. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  271. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  272. package/src/atlaspack-v3/worker/compat/index.ts +9 -0
  273. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  274. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  275. package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
  276. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  277. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  278. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  279. package/src/atlaspack-v3/worker/index.js +2 -1
  280. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  281. package/src/atlaspack-v3/worker/worker.ts +531 -0
  282. package/src/{constants.js → constants.ts} +0 -3
  283. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  284. package/src/index.ts +18 -0
  285. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  286. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  287. package/src/{projectPath.js → projectPath.ts} +20 -9
  288. package/src/public/{Asset.js → Asset.ts} +41 -28
  289. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  290. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  291. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  292. package/src/public/{Config.js → Config.ts} +171 -33
  293. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  294. package/src/public/{Environment.js → Environment.ts} +28 -17
  295. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  296. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  297. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  298. package/src/public/{Target.js → Target.ts} +10 -8
  299. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  300. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +129 -80
  301. package/src/requests/AssetGraphRequestRust.ts +364 -0
  302. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  303. package/src/requests/AtlaspackBuildRequest.ts +163 -0
  304. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  305. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +97 -79
  306. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  307. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  308. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  309. package/src/requests/{PackageRequest.js → PackageRequest.ts} +34 -22
  310. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  311. package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
  312. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  313. package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
  314. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
  315. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  316. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  317. package/src/{resolveOptions.js → resolveOptions.ts} +59 -25
  318. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  319. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  320. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  321. package/src/types.ts +650 -0
  322. package/src/{utils.js → utils.ts} +52 -21
  323. package/src/{worker.js → worker.ts} +50 -42
  324. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
  325. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  326. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  327. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  328. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  329. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  330. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  331. package/test/Environment.test.ts +153 -0
  332. package/test/EnvironmentManager.test.ts +188 -0
  333. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  334. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  335. package/test/PackagerRunner.test.ts +0 -0
  336. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  337. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  338. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  339. package/test/PublicEnvironment.test.ts +49 -0
  340. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  341. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
  342. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  343. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
  344. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  345. package/test/fixtures/custom-targets/package.json +6 -0
  346. package/test/public/Config.test.ts +104 -0
  347. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  348. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  349. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  350. package/test/{test-utils.js → test-utils.ts} +4 -11
  351. package/test/{utils.test.js → utils.test.ts} +1 -3
  352. package/tsconfig.json +60 -0
  353. package/tsconfig.tsbuildinfo +1 -0
  354. package/index.d.ts +0 -30
  355. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  356. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  357. package/src/atlaspack-v3/jsCallable.js +0 -18
  358. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  359. package/src/atlaspack-v3/worker/worker.js +0 -362
  360. package/src/index.js +0 -13
  361. package/src/requests/AssetGraphRequestRust.js +0 -263
  362. package/src/requests/AtlaspackBuildRequest.js +0 -111
  363. package/src/types.js +0 -600
  364. package/test/Environment.test.js +0 -119
  365. package/test/PackagerRunner.test.js +0 -27
  366. package/test/PublicEnvironment.test.js +0 -27
  367. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -26,11 +26,19 @@ function _logger() {
26
26
  };
27
27
  return data;
28
28
  }
29
- var _AssetGraph = _interopRequireWildcard(require("../AssetGraph"));
29
+ function _featureFlags() {
30
+ const data = require("@atlaspack/feature-flags");
31
+ _featureFlags = function () {
32
+ return data;
33
+ };
34
+ return data;
35
+ }
36
+ var _AssetGraph = _interopRequireDefault(require("../AssetGraph"));
30
37
  var _RequestTracker = require("../RequestTracker");
31
38
  var _SymbolPropagation = require("../SymbolPropagation");
32
- 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); }
33
- 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; }
39
+ var _EnvironmentManager = require("../EnvironmentManager");
40
+ var _Environment = require("../Environment");
41
+ var _dumpGraphToGraphViz = _interopRequireDefault(require("../dumpGraphToGraphViz"));
34
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
43
  function createAssetGraphRequestRust(rustAtlaspack) {
36
44
  return input => ({
@@ -38,12 +46,29 @@ function createAssetGraphRequestRust(rustAtlaspack) {
38
46
  id: input.name,
39
47
  run: async input => {
40
48
  let options = input.options;
41
- let serializedAssetGraph = await rustAtlaspack.buildAssetGraph();
42
- serializedAssetGraph.nodes = serializedAssetGraph.nodes.map(node => JSON.parse(node));
49
+ let {
50
+ assetGraphPromise,
51
+ commitPromise
52
+ } = await rustAtlaspack.buildAssetGraph();
53
+ let [serializedAssetGraph, assetGraphError] = await assetGraphPromise;
54
+ if (assetGraphError) {
55
+ throw new (_diagnostic().default)({
56
+ diagnostic: assetGraphError
57
+ });
58
+ }
59
+
60
+ // Don't reuse a previous asset graph result if Rust didn't have one too
61
+ let prevResult = null;
62
+ if (serializedAssetGraph.hadPreviousGraph) {
63
+ prevResult = await input.api.getPreviousResult();
64
+ }
43
65
  let {
44
66
  assetGraph,
45
67
  changedAssets
46
- } = (0, _logger().instrument)('atlaspack_v3_getAssetGraph', () => getAssetGraph(serializedAssetGraph));
68
+ } = (0, _logger().instrument)('atlaspack_v3_getAssetGraph', () => {
69
+ var _prevResult;
70
+ return getAssetGraph(serializedAssetGraph, (_prevResult = prevResult) === null || _prevResult === void 0 ? void 0 : _prevResult.assetGraph);
71
+ });
47
72
  let changedAssetsPropagation = new Set(changedAssets.keys());
48
73
  let errors = (0, _SymbolPropagation.propagateSymbols)({
49
74
  options,
@@ -60,7 +85,8 @@ function createAssetGraphRequestRust(rustAtlaspack) {
60
85
  diagnostic: [...errors.values()][0]
61
86
  });
62
87
  }
63
- return {
88
+ await (0, _dumpGraphToGraphViz.default)(assetGraph, 'AssetGraphV3');
89
+ let result = {
64
90
  assetGraph,
65
91
  assetRequests: [],
66
92
  assetGroupsWithRemovedParents: new Set(),
@@ -68,19 +94,64 @@ function createAssetGraphRequestRust(rustAtlaspack) {
68
94
  changedAssetsPropagation,
69
95
  previousSymbolPropagationErrors: undefined
70
96
  };
97
+ let [_commitResult, commitError] = await commitPromise;
98
+ if (commitError) {
99
+ throw new (_diagnostic().default)({
100
+ diagnostic: {
101
+ message: 'Error committing asset graph in Rust: ' + commitError.message
102
+ }
103
+ });
104
+ }
105
+ await input.api.storeResult(result);
106
+ input.api.invalidateOnBuild();
107
+ return result;
71
108
  },
72
109
  input
73
110
  });
74
111
  }
112
+ function getAssetGraph(serializedGraph, prevAssetGraph) {
113
+ let graph;
114
+ let reuseEdges = false;
115
+ if (prevAssetGraph && serializedGraph.safeToSkipBundling) {
116
+ graph = new _AssetGraph.default({
117
+ _contentKeyToNodeId: prevAssetGraph._contentKeyToNodeId,
118
+ _nodeIdToContentKey: prevAssetGraph._nodeIdToContentKey,
119
+ nodes: prevAssetGraph.nodes,
120
+ rootNodeId: prevAssetGraph.rootNodeId,
121
+ adjacencyList: prevAssetGraph.adjacencyList
122
+ });
123
+ reuseEdges = true;
124
+ } else if (prevAssetGraph && (serializedGraph.updates.length > 0 || serializedGraph.nodes.length > 0)) {
125
+ graph = new _AssetGraph.default({
126
+ _contentKeyToNodeId: prevAssetGraph._contentKeyToNodeId,
127
+ _nodeIdToContentKey: prevAssetGraph._nodeIdToContentKey,
128
+ nodes: prevAssetGraph.nodes,
129
+ initialCapacity: serializedGraph.edges.length,
130
+ // Accomodate the root node
131
+ initialNodeCapacity: prevAssetGraph.nodes.length + 1,
132
+ rootNodeId: prevAssetGraph.rootNodeId
133
+ });
134
+ graph.safeToIncrementallyBundle = false;
135
+ } else {
136
+ graph = new _AssetGraph.default({
137
+ _contentKeyToNodeId: new Map(),
138
+ _nodeIdToContentKey: new Map(),
139
+ initialCapacity: serializedGraph.edges.length,
140
+ // Accomodate the root node
141
+ initialNodeCapacity: serializedGraph.nodes.length + 1
142
+ });
143
+ let rootNodeId = graph.addNodeByContentKey('@@root', {
144
+ id: '@@root',
145
+ type: 'root',
146
+ value: null
147
+ });
148
+ graph.setRootNodeId(rootNodeId);
149
+ graph.safeToIncrementallyBundle = false;
150
+ }
151
+ (0, _assert().default)(graph, 'Asset graph not initialized');
152
+ (0, _assert().default)(graph.rootNodeId != null, 'Asset graph has no root node');
75
153
 
76
- // $FlowFixMe
77
- function getAssetGraph(serializedGraph) {
78
- let graph = new _AssetGraph.default({
79
- _contentKeyToNodeId: new Map(),
80
- _nodeIdToContentKey: new Map(),
81
- initialCapacity: serializedGraph.edges.length
82
- });
83
- graph.safeToIncrementallyBundle = false;
154
+ // @ts-expect-error TS7031
84
155
  function mapSymbols({
85
156
  exported,
86
157
  ...symbol
@@ -88,19 +159,16 @@ function getAssetGraph(serializedGraph) {
88
159
  let jsSymbol = {
89
160
  local: symbol.local ?? undefined,
90
161
  loc: symbol.loc ?? undefined,
91
- meta: undefined,
92
- isWeak: symbol.isWeak
162
+ isWeak: symbol.isWeak,
163
+ meta: {
164
+ isEsm: symbol.isEsmExport,
165
+ isStaticBindingSafe: symbol.isStaticBindingSafe
166
+ }
93
167
  };
94
168
  if (symbol.exported) {
95
- // $FlowFixMe
169
+ // @ts-expect-error TS2339
96
170
  jsSymbol.exported = symbol.exported;
97
171
  }
98
- if (symbol.isEsmExport) {
99
- // $FlowFixMe
100
- jsSymbol.meta = {
101
- isEsm: true
102
- };
103
- }
104
172
  return [exported, jsSymbol];
105
173
  }
106
174
 
@@ -112,20 +180,27 @@ function getAssetGraph(serializedGraph) {
112
180
  let envKey = [env.context, env.engines.atlaspack, env.engines.browsers, env.engines.electron, env.engines.node, env.includeNodeModules, env.isLibrary, env.outputFormat, env.shouldScopeHoist, env.shouldOptimize, env.sourceType].join(':');
113
181
  let envId = envs.get(envKey);
114
182
  if (envId == null) {
115
- envId = envs.size;
183
+ envId = (0, _Environment.getEnvironmentHash)(env);
116
184
  envs.set(envKey, envId);
117
185
  }
118
186
  return envId;
119
187
  };
120
- for (let node of serializedGraph.nodes) {
121
- if (node.type === 'root') {
122
- let index = graph.addNodeByContentKey('@@root', {
123
- id: '@@root',
124
- type: 'root',
125
- value: null
126
- });
127
- graph.setRootNodeId(index);
128
- } else if (node.type === 'entry') {
188
+ function updateNode(newNode, isUpdateNode) {
189
+ if (isUpdateNode) {
190
+ let existingNode = graph.getNodeByContentKey(newNode.id);
191
+ (0, _assert().default)(existingNode && existingNode.type === newNode.type);
192
+ Object.assign(existingNode, newNode);
193
+ } else {
194
+ graph.addNodeByContentKey(newNode.id, newNode);
195
+ }
196
+ }
197
+ let nodeTypeSwitchoverIndex = serializedGraph.nodes.length;
198
+ let nodesCount = serializedGraph.nodes.length + serializedGraph.updates.length;
199
+ for (let index = 0; index < nodesCount; index++) {
200
+ let isUpdateNode = index >= nodeTypeSwitchoverIndex;
201
+ let node = isUpdateNode ? serializedGraph.updates[index - nodeTypeSwitchoverIndex] : serializedGraph.nodes[index];
202
+ node = JSON.parse(node);
203
+ if (node.type === 'entry') {
129
204
  let id = 'entry:' + ++entry;
130
205
  graph.addNodeByContentKey(id, {
131
206
  id: id,
@@ -137,8 +212,11 @@ function getAssetGraph(serializedGraph) {
137
212
  let id = asset.id;
138
213
  asset.committed = true;
139
214
  asset.contentKey = id;
140
- asset.env.id = getEnvId(asset.env);
215
+ asset.env.id = (0, _featureFlags().getFeatureFlag)('environmentDeduplication') ?
216
+ // TODO: Rust can do this and avoid copying a significant amount of data over
217
+ (0, _Environment.getEnvironmentHash)(asset.env) : getEnvId(asset.env);
141
218
  asset.mapKey = `map:${asset.id}`;
219
+ asset.env = (0, _EnvironmentManager.toEnvironmentRef)(asset.env);
142
220
 
143
221
  // This is populated later when we map the edges between assets and dependencies
144
222
  asset.dependencies = new Map();
@@ -150,19 +228,25 @@ function getAssetGraph(serializedGraph) {
150
228
  asset.symbols = new Map(asset.symbols.map(mapSymbols));
151
229
  }
152
230
  changedAssets.set(id, asset);
153
- graph.addNodeByContentKey(id, {
231
+ let assetNode = {
154
232
  id,
155
233
  type: 'asset',
156
234
  usedSymbols: new Set(),
157
235
  usedSymbolsDownDirty: true,
158
236
  usedSymbolsUpDirty: true,
159
237
  value: asset
160
- });
238
+ };
239
+ updateNode(assetNode, isUpdateNode);
161
240
  } else if (node.type === 'dependency') {
162
- let id = node.value.id;
163
- let dependency = node.value.dependency;
241
+ let {
242
+ dependency,
243
+ id
244
+ } = node.value;
164
245
  dependency.id = id;
165
- dependency.env.id = getEnvId(dependency.env);
246
+ dependency.env.id = (0, _featureFlags().getFeatureFlag)('environmentDeduplication') ?
247
+ // TODO: Rust can do this and avoid copying a significant amount of data over
248
+ (0, _Environment.getEnvironmentHash)(dependency.env) : getEnvId(dependency.env);
249
+ dependency.env = (0, _EnvironmentManager.toEnvironmentRef)(dependency.env);
166
250
  if (dependency.symbols != null) {
167
251
  var _dependency$symbols;
168
252
  dependency.symbols = new Map((_dependency$symbols = dependency.symbols) === null || _dependency$symbols === void 0 ? void 0 : _dependency$symbols.map(mapSymbols));
@@ -173,43 +257,35 @@ function getAssetGraph(serializedGraph) {
173
257
  usedSymbolsDown.add('*');
174
258
  usedSymbolsUp.set('*', undefined);
175
259
  }
176
- graph.addNodeByContentKey(id, {
260
+ let depNode = {
177
261
  id,
178
262
  type: 'dependency',
179
263
  deferred: false,
180
264
  excluded: false,
181
265
  hasDeferred: node.has_deferred,
266
+ // @ts-expect-error TS2322
182
267
  usedSymbolsDown,
183
268
  usedSymbolsDownDirty: true,
184
269
  usedSymbolsUp,
185
270
  usedSymbolsUpDirtyDown: true,
186
271
  usedSymbolsUpDirtyUp: true,
187
272
  value: dependency
188
- });
273
+ };
274
+ updateNode(depNode, isUpdateNode);
189
275
  }
190
276
  }
191
- for (let i = 0; i < serializedGraph.edges.length; i += 2) {
192
- let from = serializedGraph.edges[i];
193
- let to = serializedGraph.edges[i + 1];
194
- let fromNode = graph.getNode(from);
195
- let toNode = graph.getNode(to);
196
- if ((fromNode === null || fromNode === void 0 ? void 0 : fromNode.type) === 'dependency') {
197
- (0, _assert().default)((toNode === null || toNode === void 0 ? void 0 : toNode.type) === 'asset');
198
-
199
- // For backwards compatibility, create asset group node if needed.
200
- let assetGroupNode = (0, _AssetGraph.nodeFromAssetGroup)({
201
- filePath: toNode.value.filePath,
202
- env: fromNode.value.env,
203
- pipeline: toNode.value.pipeline,
204
- sideEffects: Boolean(toNode.value.sideEffects)
205
- });
206
- let index = graph.addNodeByContentKeyIfNeeded(assetGroupNode.id, assetGroupNode);
207
- graph.addEdge(from, index);
208
- graph.addEdge(index, to);
209
- } else if ((fromNode === null || fromNode === void 0 ? void 0 : fromNode.type) === 'asset' && (toNode === null || toNode === void 0 ? void 0 : toNode.type) === 'dependency') {
210
- fromNode.value.dependencies.set(toNode.value.id, toNode.value);
211
- graph.addEdge(from, to);
212
- } else {
277
+ if (!reuseEdges) {
278
+ for (let i = 0; i < serializedGraph.edges.length; i += 2) {
279
+ let from = serializedGraph.edges[i];
280
+ let to = serializedGraph.edges[i + 1];
281
+ let fromNode = graph.getNode(from);
282
+ let toNode = graph.getNode(to);
283
+ if ((fromNode === null || fromNode === void 0 ? void 0 : fromNode.type) === 'dependency') {
284
+ (0, _assert().default)((toNode === null || toNode === void 0 ? void 0 : toNode.type) === 'asset');
285
+ }
286
+ if ((fromNode === null || fromNode === void 0 ? void 0 : fromNode.type) === 'asset' && (toNode === null || toNode === void 0 ? void 0 : toNode.type) === 'dependency') {
287
+ fromNode.value.dependencies.set(toNode.value.id, toNode.value);
288
+ }
213
289
  graph.addEdge(from, to);
214
290
  }
215
291
  }
@@ -31,6 +31,7 @@ var _ConfigRequest = require("./ConfigRequest");
31
31
  var _projectPath = require("../projectPath");
32
32
  var _ReporterRunner = require("../ReporterRunner");
33
33
  var _RequestTracker = require("../RequestTracker");
34
+ var _EnvironmentManager = require("../EnvironmentManager");
34
35
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
36
  function createAssetRequest(input) {
36
37
  return {
@@ -42,8 +43,10 @@ function createAssetRequest(input) {
42
43
  }
43
44
  const type = 'asset_request';
44
45
  function getId(input) {
45
- return (0, _rust().hashString)(type + (0, _projectPath.fromProjectPathRelative)(input.filePath) + input.env.id + String(input.isSource) + String(input.sideEffects) + (input.code ?? '') + ':' + (input.pipeline ?? '') + ':' + (input.query ?? ''));
46
+ return (0, _rust().hashString)(type + (0, _projectPath.fromProjectPathRelative)(input.filePath) + (0, _EnvironmentManager.toEnvironmentId)(input.env) + String(input.isSource) + String(input.sideEffects) + (input.code ?? '') + ':' + (input.pipeline ?? '') + ':' + (input.query ?? ''));
46
47
  }
48
+
49
+ // @ts-expect-error TS7031
47
50
  async function run({
48
51
  input,
49
52
  api,
@@ -64,17 +67,31 @@ async function run({
64
67
  } = input;
65
68
  let {
66
69
  cachePath
67
- } = (0, _nullthrows().default)(await api.runRequest((0, _AtlaspackConfigRequest.default)()));
68
- let previousDevDepRequests = new Map(await Promise.all(api.getSubRequests().filter(req => req.requestType === _RequestTracker.requestTypes.dev_dep_request).map(async req => [req.id, (0, _nullthrows().default)(await api.getRequestResult(req.id))])));
70
+ } = (0, _nullthrows().default)(
71
+ // @ts-expect-error TS2347
72
+ await api.runRequest((0, _AtlaspackConfigRequest.default)()));
73
+ let previousDevDepRequests = new Map(await Promise.all(api.getSubRequests()
74
+ // @ts-expect-error TS7006
75
+ .filter(req => req.requestType === _RequestTracker.requestTypes.dev_dep_request)
76
+ // @ts-expect-error TS7006
77
+ .map(async req => [req.id,
78
+ // @ts-expect-error TS2347
79
+ (0, _nullthrows().default)(await api.getRequestResult(req.id))])));
69
80
  let request = {
70
81
  ...rest,
71
82
  invalidateReason,
72
- devDeps: new Map([...previousDevDepRequests.entries()].filter(([id]) => api.canSkipSubrequest(id)).map(([, req]) => [`${req.specifier}:${(0, _projectPath.fromProjectPathRelative)(req.resolveFrom)}`, req.hash])),
73
- invalidDevDeps: await Promise.all([...previousDevDepRequests.entries()].filter(([id]) => !api.canSkipSubrequest(id)).flatMap(([, req]) => {
83
+ devDeps: new Map([...previousDevDepRequests.entries()]
84
+ // @ts-expect-error TS2769
85
+ .filter(([id]) => api.canSkipSubrequest(id)).map(([, req]) => [`${req.specifier}:${(0, _projectPath.fromProjectPathRelative)(req.resolveFrom)}`, req.hash])),
86
+ invalidDevDeps: await Promise.all([...previousDevDepRequests.entries()]
87
+ // @ts-expect-error TS2769
88
+ .filter(([id]) => !api.canSkipSubrequest(id)).flatMap(([, req]) => {
74
89
  return [{
75
90
  specifier: req.specifier,
76
91
  resolveFrom: req.resolveFrom
77
- }, ...(req.additionalInvalidations ?? []).map(i => ({
92
+ },
93
+ // @ts-expect-error TS7006
94
+ ...(req.additionalInvalidations ?? []).map(i => ({
78
95
  specifier: i.specifier,
79
96
  resolveFrom: i.resolveFrom
80
97
  }))];
@@ -21,6 +21,14 @@ function _profiler() {
21
21
  return data;
22
22
  }
23
23
  var _RequestTracker = require("../RequestTracker");
24
+ function _featureFlags() {
25
+ const data = require("@atlaspack/feature-flags");
26
+ _featureFlags = function () {
27
+ return data;
28
+ };
29
+ return data;
30
+ }
31
+ var _EnvironmentManager = require("../EnvironmentManager");
24
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
33
  function createAtlaspackBuildRequest(input) {
26
34
  return {
@@ -53,13 +61,40 @@ async function run({
53
61
  } = await api.runRequest(bundleGraphRequest, {
54
62
  force: Boolean(rustAtlaspack) || options.shouldBuildLazily && requestedAssetIds.size > 0
55
63
  });
64
+ if ((0, _featureFlags().getFeatureFlag)('nativePackager') && (0, _featureFlags().getFeatureFlag)('nativePackagerSSRDev') && rustAtlaspack) {
65
+ let hasSupportedTarget = false;
66
+ bundleGraph.traverseBundles((bundle, ctx, actions) => {
67
+ if ((0, _EnvironmentManager.fromEnvironmentId)(bundle.env).context === 'tesseract' && bundle.type === 'js') {
68
+ hasSupportedTarget = true;
69
+ actions.stop();
70
+ }
71
+ });
72
+ if (hasSupportedTarget) {
73
+ // In theory this could be a (somehow) null[] - but we know if we've gotten this far it probably isn't..
74
+ let nodes = bundleGraph._graph.nodes;
75
+ let rawEdges = [];
76
+ const gen = bundleGraph._graph.getAllEdges();
77
+ let next = gen.next();
78
+ while (!next.done) {
79
+ let edge = next.value;
80
+ rawEdges.push([edge.from, edge.to, edge.type]);
81
+ next = gen.next();
82
+ }
83
+ await rustAtlaspack.loadBundleGraph({
84
+ nodes,
85
+ edges: rawEdges
86
+ });
87
+ }
88
+ }
56
89
 
57
- // $FlowFixMe Added in Flow 0.121.0 upgrade in #4381 (Windows only)
90
+ // @ts-expect-error TS2345
58
91
  (0, _dumpGraphToGraphViz.default)(bundleGraph._graph, 'BundleGraph', _BundleGraph.bundleGraphEdgeTypes);
59
92
  await (0, _ReporterRunner.report)({
60
93
  type: 'buildProgress',
61
94
  phase: 'bundled',
62
- bundleGraph: new _BundleGraph2.default(bundleGraph, (bundle, bundleGraph, options) => _Bundle.NamedBundle.get(bundle, bundleGraph, options), options),
95
+ bundleGraph: new _BundleGraph2.default(bundleGraph,
96
+ // @ts-expect-error TS2304
97
+ (bundle, bundleGraph, options) => _Bundle.NamedBundle.get(bundle, bundleGraph, options), options),
63
98
  changedAssets: new Map(Array.from(changedAssets).map(([id, asset]) => [id, (0, _Asset.assetFromValue)(asset, options)]))
64
99
  });
65
100
  let packagingMeasurement = _profiler().tracer.createMeasurement('packaging');
@@ -67,13 +102,17 @@ async function run({
67
102
  bundleGraph,
68
103
  optionsRef
69
104
  });
70
- let bundleInfo = await api.runRequest(writeBundlesRequest);
105
+ let {
106
+ bundleInfo,
107
+ scopeHoistingStats
108
+ } = await api.runRequest(writeBundlesRequest);
71
109
  packagingMeasurement && packagingMeasurement.end();
72
110
  (0, _utils.assertSignalNotAborted)(signal);
73
111
  return {
74
112
  bundleGraph,
75
113
  bundleInfo,
76
114
  changedAssets,
77
- assetRequests
115
+ assetRequests,
116
+ scopeHoistingStats
78
117
  };
79
118
  }
@@ -68,6 +68,8 @@ var _utils2 = require("../utils");
68
68
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
69
69
  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); }
70
70
  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; }
71
+ // @ts-expect-error TS2344
72
+
71
73
  const type = 'atlaspack_config_request';
72
74
  function createAtlaspackConfigRequest() {
73
75
  return {
@@ -117,10 +119,12 @@ function getCachedAtlaspackConfig(result, options) {
117
119
  } = result;
118
120
  let config = atlaspackConfigCache.get(cachePath);
119
121
  if (config) {
122
+ // @ts-expect-error TS2740
120
123
  return config;
121
124
  }
122
125
  config = new _AtlaspackConfig.AtlaspackConfig(processedConfig, options);
123
126
  atlaspackConfigCache.set(cachePath, config);
127
+ // @ts-expect-error TS2322
124
128
  return config;
125
129
  }
126
130
  async function loadAtlaspackConfig(options) {
@@ -157,13 +161,23 @@ async function resolveAtlaspackConfig(options) {
157
161
  extendedFiles
158
162
  } = await parseAndProcessConfig(configPath, contents, options);
159
163
  if (options.additionalReporters.length > 0) {
160
- config.reporters = [...options.additionalReporters.map(({
161
- packageName,
162
- resolveFrom
163
- }) => ({
164
+ var _config$reporters;
165
+ const reporterMap = new Map();
166
+ options.additionalReporters.forEach(({
164
167
  packageName,
165
168
  resolveFrom
166
- })), ...(config.reporters ?? [])];
169
+ }) => {
170
+ reporterMap.set(packageName, {
171
+ packageName,
172
+ resolveFrom
173
+ });
174
+ });
175
+ (_config$reporters = config.reporters) === null || _config$reporters === void 0 || _config$reporters.forEach(reporter => {
176
+ if (!reporterMap.has(reporter.packageName)) {
177
+ reporterMap.set(reporter.packageName, reporter);
178
+ }
179
+ });
180
+ config.reporters = Array.from(reporterMap.values());
167
181
  }
168
182
  return {
169
183
  config,
@@ -207,7 +221,6 @@ async function parseAndProcessConfig(configPath, contents, options) {
207
221
  function processPipeline(options, pipeline, keyPath, filePath) {
208
222
  if (pipeline) {
209
223
  return pipeline.map((pkg, i) => {
210
- // $FlowFixMe
211
224
  if (pkg === '...') return pkg;
212
225
  return {
213
226
  packageName: pkg,
@@ -218,14 +231,8 @@ function processPipeline(options, pipeline, keyPath, filePath) {
218
231
  }
219
232
  }
220
233
  const RESERVED_PIPELINES = new Set(['node:', 'npm:', 'http:', 'https:', 'data:', 'tel:', 'mailto:']);
221
- async function processMap(
222
- // $FlowFixMe
223
- map, keyPath, filePath, options
224
- // $FlowFixMe
225
- ) {
234
+ async function processMap(map, keyPath, filePath, options) {
226
235
  if (!map) return undefined;
227
-
228
- // $FlowFixMe
229
236
  let res = {};
230
237
  for (let k in map) {
231
238
  let i = k.indexOf(':');
@@ -268,6 +275,7 @@ async function processConfig(configFile, options) {
268
275
  } : {
269
276
  /*::...null*/
270
277
  }),
278
+ // @ts-expect-error TS2322
271
279
  resolvers: processPipeline(options, configFile.resolvers, '/resolvers', configFile.filePath),
272
280
  transformers: await processMap(configFile.transformers, '/transformers', configFile.filePath, options),
273
281
  bundler: configFile.bundler != null ? {
@@ -275,11 +283,14 @@ async function processConfig(configFile, options) {
275
283
  resolveFrom: (0, _projectPath.toProjectPath)(options.projectRoot, configFile.filePath),
276
284
  keyPath: '/bundler'
277
285
  } : undefined,
286
+ // @ts-expect-error TS2322
278
287
  namers: processPipeline(options, configFile.namers, '/namers', configFile.filePath),
288
+ // @ts-expect-error TS2322
279
289
  runtimes: processPipeline(options, configFile.runtimes, '/runtimes', configFile.filePath),
280
290
  packagers: await processMap(configFile.packagers, '/packagers', configFile.filePath, options),
281
291
  optimizers: await processMap(configFile.optimizers, '/optimizers', configFile.filePath, options),
282
292
  compressors: await processMap(configFile.compressors, '/compressors', configFile.filePath, options),
293
+ // @ts-expect-error TS2322
283
294
  reporters: processPipeline(options, configFile.reporters, '/reporters', configFile.filePath),
284
295
  validators: await processMap(configFile.validators, '/validators', configFile.filePath, options)
285
296
  };
@@ -462,14 +473,14 @@ function mergeMaps(base, ext, merger) {
462
473
  let res = {};
463
474
  // Add the extension options first so they have higher precedence in the output glob map
464
475
  for (let k in ext) {
465
- //$FlowFixMe Flow doesn't correctly infer the type. See https://github.com/facebook/flow/issues/1736.
466
476
  let key = k;
467
- res[key] = merger && base[key] != null ? merger(base[key], ext[key]) : ext[key];
477
+ res[key] =
478
+ // @ts-expect-error TS2345
479
+ merger && base[key] != null ? merger(base[key], ext[key]) : ext[key];
468
480
  }
469
481
 
470
482
  // Add base options that aren't defined in the extension
471
483
  for (let k in base) {
472
- // $FlowFixMe
473
484
  let key = k;
474
485
  if (res[key] == null) {
475
486
  res[key] = base[key];