@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
@@ -1,4 +1,3 @@
1
- // @flow strict-local
2
1
  import type {
3
2
  Async,
4
3
  FilePath,
@@ -13,6 +12,7 @@ import type {
13
12
  PureAtlaspackConfigPipeline,
14
13
  AtlaspackOptions,
15
14
  ProcessedAtlaspackConfig,
15
+ AtlaspackPluginNode,
16
16
  } from '../types';
17
17
 
18
18
  import {createBuildCache} from '@atlaspack/build-cache';
@@ -40,33 +40,33 @@ import {toProjectPath} from '../projectPath';
40
40
  import {requestTypes} from '../RequestTracker';
41
41
  import {optionsProxy} from '../utils';
42
42
 
43
- type ConfigMap<K, V> = {[K]: V, ...};
43
+ // @ts-expect-error TS2344
44
+ type ConfigMap<K, V> = Partial<Record<K, V>>;
44
45
 
45
- export type ConfigAndCachePath = {|
46
- config: ProcessedAtlaspackConfig,
47
- cachePath: string,
48
- |};
46
+ export type ConfigAndCachePath = {
47
+ config: ProcessedAtlaspackConfig;
48
+ cachePath: string;
49
+ };
49
50
 
50
- type RunOpts<TResult> = {|
51
- input: null,
52
- ...StaticRunOpts<TResult>,
53
- |};
51
+ type RunOpts<TResult> = {
52
+ input: null;
53
+ } & StaticRunOpts<TResult>;
54
54
 
55
- export type AtlaspackConfigRequest = {|
56
- id: string,
57
- type: typeof requestTypes.atlaspack_config_request,
58
- input: null,
55
+ export type AtlaspackConfigRequest = {
56
+ id: string;
57
+ type: typeof requestTypes.atlaspack_config_request;
58
+ input: null;
59
59
  run: (
60
- RunOpts<AtlaspackConfigRequestResult>,
61
- ) => Async<AtlaspackConfigRequestResult>,
62
- |};
60
+ arg1: RunOpts<AtlaspackConfigRequestResult>,
61
+ ) => Async<AtlaspackConfigRequestResult>;
62
+ };
63
63
 
64
64
  export type AtlaspackConfigRequestResult = ConfigAndCachePath;
65
65
 
66
- type AtlaspackConfigChain = {|
67
- config: ProcessedAtlaspackConfig,
68
- extendedFiles: Array<FilePath>,
69
- |};
66
+ type AtlaspackConfigChain = {
67
+ config: ProcessedAtlaspackConfig;
68
+ extendedFiles: Array<FilePath>;
69
+ };
70
70
 
71
71
  const type = 'atlaspack_config_request';
72
72
 
@@ -79,10 +79,9 @@ export default function createAtlaspackConfigRequest(): AtlaspackConfigRequest {
79
79
  config,
80
80
  extendedFiles,
81
81
  usedDefault,
82
- }: {|
83
- ...AtlaspackConfigChain,
84
- usedDefault: boolean,
85
- |} = await loadAtlaspackConfig(
82
+ }: AtlaspackConfigChain & {
83
+ usedDefault: boolean;
84
+ } = await loadAtlaspackConfig(
86
85
  optionsProxy(options, api.invalidateOnOptionChange),
87
86
  );
88
87
 
@@ -122,18 +121,22 @@ export function getCachedAtlaspackConfig(
122
121
  let {config: processedConfig, cachePath} = result;
123
122
  let config = atlaspackConfigCache.get(cachePath);
124
123
  if (config) {
124
+ // @ts-expect-error TS2740
125
125
  return config;
126
126
  }
127
127
 
128
128
  config = new AtlaspackConfig(processedConfig, options);
129
129
 
130
130
  atlaspackConfigCache.set(cachePath, config);
131
+ // @ts-expect-error TS2322
131
132
  return config;
132
133
  }
133
134
 
134
- export async function loadAtlaspackConfig(
135
- options: AtlaspackOptions,
136
- ): Promise<{|...AtlaspackConfigChain, usedDefault: boolean|}> {
135
+ export async function loadAtlaspackConfig(options: AtlaspackOptions): Promise<
136
+ AtlaspackConfigChain & {
137
+ usedDefault: boolean;
138
+ }
139
+ > {
137
140
  let atlaspackConfig = await resolveAtlaspackConfig(options);
138
141
 
139
142
  if (!atlaspackConfig) {
@@ -145,7 +148,13 @@ export async function loadAtlaspackConfig(
145
148
 
146
149
  export async function resolveAtlaspackConfig(
147
150
  options: AtlaspackOptions,
148
- ): Promise<?{|...AtlaspackConfigChain, usedDefault: boolean|}> {
151
+ ): Promise<
152
+ | (AtlaspackConfigChain & {
153
+ usedDefault: boolean;
154
+ })
155
+ | null
156
+ | undefined
157
+ > {
149
158
  let resolveFrom = getResolveFrom(options.inputFS, options.projectRoot);
150
159
  let configPath =
151
160
  options.config != null
@@ -173,7 +182,7 @@ export async function resolveAtlaspackConfig(
173
182
  let contents;
174
183
  try {
175
184
  contents = await options.inputFS.readFile(configPath, 'utf8');
176
- } catch (e) {
185
+ } catch (e: any) {
177
186
  throw new ThrowableDiagnostic({
178
187
  diagnostic: {
179
188
  message: md`Could not find parcel config at ${path.relative(
@@ -189,13 +198,19 @@ export async function resolveAtlaspackConfig(
189
198
  await parseAndProcessConfig(configPath, contents, options);
190
199
 
191
200
  if (options.additionalReporters.length > 0) {
192
- config.reporters = [
193
- ...options.additionalReporters.map(({packageName, resolveFrom}) => ({
194
- packageName,
195
- resolveFrom,
196
- })),
197
- ...(config.reporters ?? []),
198
- ];
201
+ const reporterMap = new Map<PackageName, AtlaspackPluginNode>();
202
+
203
+ options.additionalReporters.forEach(({packageName, resolveFrom}) => {
204
+ reporterMap.set(packageName, {packageName, resolveFrom});
205
+ });
206
+
207
+ config.reporters?.forEach((reporter) => {
208
+ if (!reporterMap.has(reporter.packageName)) {
209
+ reporterMap.set(reporter.packageName, reporter);
210
+ }
211
+ });
212
+
213
+ config.reporters = Array.from(reporterMap.values());
199
214
  }
200
215
 
201
216
  return {config, extendedFiles, usedDefault};
@@ -217,7 +232,7 @@ export async function parseAndProcessConfig(
217
232
  let config: RawAtlaspackConfig;
218
233
  try {
219
234
  config = parse(contents);
220
- } catch (e) {
235
+ } catch (e: any) {
221
236
  let pos = {
222
237
  line: e.lineNumber,
223
238
  column: e.columnNumber,
@@ -249,13 +264,12 @@ export async function parseAndProcessConfig(
249
264
 
250
265
  function processPipeline(
251
266
  options: AtlaspackOptions,
252
- pipeline: ?Array<PackageName>,
267
+ pipeline: Array<PackageName> | null | undefined,
253
268
  keyPath: string,
254
269
  filePath: FilePath,
255
270
  ) {
256
271
  if (pipeline) {
257
272
  return pipeline.map((pkg, i) => {
258
- // $FlowFixMe
259
273
  if (pkg === '...') return pkg;
260
274
 
261
275
  return {
@@ -278,16 +292,13 @@ const RESERVED_PIPELINES = new Set([
278
292
  ]);
279
293
 
280
294
  async function processMap(
281
- // $FlowFixMe
282
- map: ?ConfigMap<any, any>,
295
+ map: ConfigMap<any, any> | null | undefined,
283
296
  keyPath: string,
284
297
  filePath: FilePath,
285
298
  options: AtlaspackOptions,
286
- // $FlowFixMe
287
299
  ): Promise<ConfigMap<any, any> | typeof undefined> {
288
300
  if (!map) return undefined;
289
301
 
290
- // $FlowFixMe
291
302
  let res: ConfigMap<any, any> = {};
292
303
  for (let k in map) {
293
304
  let i = k.indexOf(':');
@@ -346,6 +357,7 @@ export async function processConfig(
346
357
  : {
347
358
  /*::...null*/
348
359
  }),
360
+ // @ts-expect-error TS2322
349
361
  resolvers: processPipeline(
350
362
  options,
351
363
  configFile.resolvers,
@@ -369,12 +381,14 @@ export async function processConfig(
369
381
  keyPath: '/bundler',
370
382
  }
371
383
  : undefined,
384
+ // @ts-expect-error TS2322
372
385
  namers: processPipeline(
373
386
  options,
374
387
  configFile.namers,
375
388
  '/namers',
376
389
  configFile.filePath,
377
390
  ),
391
+ // @ts-expect-error TS2322
378
392
  runtimes: processPipeline(
379
393
  options,
380
394
  configFile.runtimes,
@@ -399,6 +413,7 @@ export async function processConfig(
399
413
  configFile.filePath,
400
414
  options,
401
415
  ),
416
+ // @ts-expect-error TS2322
402
417
  reporters: processPipeline(
403
418
  options,
404
419
  configFile.reporters,
@@ -437,7 +452,7 @@ export async function processConfigChain(
437
452
  let exts = Array.isArray(configFile.extends)
438
453
  ? configFile.extends
439
454
  : [configFile.extends];
440
- let errors = [];
455
+ let errors: Array<any> = [];
441
456
  if (exts.length !== 0) {
442
457
  let extStartConfig;
443
458
  let i = 0;
@@ -454,7 +469,7 @@ export async function processConfigChain(
454
469
  extStartConfig = extStartConfig
455
470
  ? mergeConfigs(extStartConfig, nextConfig)
456
471
  : nextConfig;
457
- } catch (err) {
472
+ } catch (err: any) {
458
473
  errors.push(err);
459
474
  }
460
475
 
@@ -491,7 +506,7 @@ export async function resolveExtends(
491
506
  try {
492
507
  let {resolved} = await options.packageManager.resolve(ext, configPath);
493
508
  return options.inputFS.realpath(resolved);
494
- } catch (err) {
509
+ } catch (err: any) {
495
510
  let parentContents = await options.inputFS.readFile(configPath, 'utf8');
496
511
  let alternatives = await findAlternativeNodeModules(
497
512
  options.inputFS,
@@ -539,7 +554,7 @@ async function processExtendedConfig(
539
554
  resolvedExtendedConfigPath,
540
555
  'utf8',
541
556
  );
542
- } catch (e) {
557
+ } catch (e: any) {
543
558
  let parentContents = await options.inputFS.readFile(configPath, 'utf8');
544
559
  let alternatives = await findAlternativeFiles(
545
560
  options.inputFS,
@@ -580,7 +595,7 @@ export function validateConfigFile(
580
595
  ) {
581
596
  try {
582
597
  validateNotEmpty(config, relativePath);
583
- } catch (e) {
598
+ } catch (e: any) {
584
599
  throw new ThrowableDiagnostic({
585
600
  diagnostic: {
586
601
  message: e.message,
@@ -650,8 +665,8 @@ function assertPurePipeline(
650
665
  }
651
666
 
652
667
  export function mergePipelines(
653
- base: ?ExtendableAtlaspackConfigPipeline,
654
- ext: ?ExtendableAtlaspackConfigPipeline,
668
+ base?: ExtendableAtlaspackConfigPipeline | null,
669
+ ext?: ExtendableAtlaspackConfigPipeline | null,
655
670
  ): ExtendableAtlaspackConfigPipeline {
656
671
  if (ext == null) {
657
672
  return base ?? [];
@@ -676,9 +691,9 @@ export function mergePipelines(
676
691
  }
677
692
  }
678
693
 
679
- export function mergeMaps<K: string, V>(
680
- base: ?ConfigMap<K, V>,
681
- ext: ?ConfigMap<K, V>,
694
+ export function mergeMaps<K extends string, V>(
695
+ base?: ConfigMap<K, V> | null,
696
+ ext?: ConfigMap<K, V> | null,
682
697
  merger?: (a: V, b: V) => V,
683
698
  ): ConfigMap<K, V> {
684
699
  if (!ext || Object.keys(ext).length === 0) {
@@ -692,16 +707,15 @@ export function mergeMaps<K: string, V>(
692
707
  let res: ConfigMap<K, V> = {};
693
708
  // Add the extension options first so they have higher precedence in the output glob map
694
709
  for (let k in ext) {
695
- //$FlowFixMe Flow doesn't correctly infer the type. See https://github.com/facebook/flow/issues/1736.
696
- let key: K = (k: any);
710
+ let key: K = k as any;
697
711
  res[key] =
712
+ // @ts-expect-error TS2345
698
713
  merger && base[key] != null ? merger(base[key], ext[key]) : ext[key];
699
714
  }
700
715
 
701
716
  // Add base options that aren't defined in the extension
702
717
  for (let k in base) {
703
- // $FlowFixMe
704
- let key: K = (k: any);
718
+ let key: K = k as any;
705
719
  if (res[key] == null) {
706
720
  res[key] = base[key];
707
721
  }
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {Async, Bundle as IBundle, Namer} from '@atlaspack/types';
4
2
  import type {SharedReference} from '@atlaspack/workers';
5
3
  import type {AtlaspackConfig, LoadedPlugin} from '../AtlaspackConfig';
@@ -19,7 +17,8 @@ import fs from 'fs';
19
17
  import invariant from 'assert';
20
18
  import assert from 'assert';
21
19
  import nullthrows from 'nullthrows';
22
- import {PluginLogger} from '@atlaspack/logger';
20
+ import {instrumentAsync, PluginLogger} from '@atlaspack/logger';
21
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
23
22
  import ThrowableDiagnostic, {errorToDiagnostic} from '@atlaspack/diagnostic';
24
23
  import AssetGraph from '../AssetGraph';
25
24
  import BundleGraph from '../public/BundleGraph';
@@ -47,7 +46,7 @@ import {createConfig} from '../InternalConfig';
47
46
  import {
48
47
  loadPluginConfig,
49
48
  runConfigRequest,
50
- type PluginWithLoadConfig,
49
+ PluginWithLoadConfig,
51
50
  } from './ConfigRequest';
52
51
  import {
53
52
  joinProjectPath,
@@ -65,34 +64,30 @@ import {
65
64
  } from './asset-graph-dot';
66
65
  import {Priority} from '../types';
67
66
 
68
- type BundleGraphRequestInput = {|
69
- requestedAssetIds: Set<string>,
70
- signal?: AbortSignal,
71
- optionsRef: SharedReference,
72
- |};
67
+ type BundleGraphRequestInput = {
68
+ requestedAssetIds: Set<string>;
69
+ signal?: AbortSignal;
70
+ optionsRef: SharedReference;
71
+ };
73
72
 
74
- type BundleGraphRequestResult = {|
75
- bundleGraph: InternalBundleGraph,
76
- |};
77
-
78
- type RunInput = {|
79
- input: BundleGraphRequestInput,
80
- ...StaticRunOpts<BundleGraphResult>,
81
- |};
73
+ type RunInput = {
74
+ input: BundleGraphRequestInput;
75
+ } & StaticRunOpts<BundleGraphResult>;
82
76
 
83
77
  // TODO: Rename to BundleGraphRequestResult
84
- export type BundleGraphResult = {|
85
- bundleGraph: InternalBundleGraph,
86
- changedAssets: Map<string, Asset>,
87
- assetRequests: Array<AssetGroup>,
88
- |};
89
-
90
- type BundleGraphRequest = {|
91
- id: string,
92
- +type: typeof requestTypes.bundle_graph_request,
93
- run: (RunInput) => Async<BundleGraphResult>,
94
- input: BundleGraphRequestInput,
95
- |};
78
+ export type BundleGraphResult = {
79
+ bundleGraph: InternalBundleGraph;
80
+ assetGraphBundlingVersion: number;
81
+ changedAssets: Map<string, Asset>;
82
+ assetRequests: Array<AssetGroup>;
83
+ };
84
+
85
+ type BundleGraphRequest = {
86
+ id: string;
87
+ readonly type: typeof requestTypes.bundle_graph_request;
88
+ run: (arg1: RunInput) => Async<BundleGraphResult>;
89
+ input: BundleGraphRequestInput;
90
+ };
96
91
 
97
92
  function applySideEffectsForLoadableImports(assetGraph: AssetGraph) {
98
93
  // Avoid revisiting nodes
@@ -146,9 +141,10 @@ export default function createBundleGraphRequest(
146
141
  let {optionsRef, requestedAssetIds, signal} = input.input;
147
142
  let measurement = tracer.createMeasurement('building');
148
143
 
149
- let createAssetGraphRequest = input.rustAtlaspack
150
- ? createAssetGraphRequestRust(input.rustAtlaspack)
151
- : createAssetGraphRequestJS;
144
+ let createAssetGraphRequest =
145
+ getFeatureFlag('atlaspackV3') && input.rustAtlaspack
146
+ ? createAssetGraphRequestRust(input.rustAtlaspack)
147
+ : createAssetGraphRequestJS;
152
148
 
153
149
  let request = createAssetGraphRequest({
154
150
  name: 'Main',
@@ -160,12 +156,14 @@ export default function createBundleGraphRequest(
160
156
  requestedAssetIds,
161
157
  });
162
158
 
163
- let {assetGraph, changedAssets, assetRequests} = await api.runRequest(
164
- request,
165
- {
166
- force:
167
- Boolean(input.rustAtlaspack) ||
168
- (options.shouldBuildLazily && requestedAssetIds.size > 0),
159
+ let {assetGraph, changedAssets, assetRequests} = await instrumentAsync(
160
+ 'asset-graph-request',
161
+ () => {
162
+ return api.runRequest(request, {
163
+ force:
164
+ Boolean(input.rustAtlaspack) ||
165
+ (options.shouldBuildLazily && requestedAssetIds.size > 0),
166
+ });
169
167
  },
170
168
  );
171
169
 
@@ -197,7 +195,11 @@ export default function createBundleGraphRequest(
197
195
  // force: true,
198
196
  // },
199
197
  // );
200
- // require('./asset-graph-diff.js')(jsAssetGraph, assetGraph);
198
+ // require('./asset-graph-diff.ts')(
199
+ // jsAssetGraph,
200
+ // assetGraph,
201
+ // options.projectRoot,
202
+ // );
201
203
  // }
202
204
 
203
205
  measurement && measurement.end();
@@ -214,6 +216,7 @@ export default function createBundleGraphRequest(
214
216
 
215
217
  if (subRequestsInvalid) {
216
218
  assetGraph.safeToIncrementallyBundle = false;
219
+ assetGraph.setNeedsBundling();
217
220
  }
218
221
 
219
222
  let configResult = nullthrows(
@@ -244,7 +247,7 @@ export default function createBundleGraphRequest(
244
247
  }
245
248
 
246
249
  await dumpGraphToGraphViz(
247
- // $FlowFixMe Added in Flow 0.121.0 upgrade in #4381 (Windows only)
250
+ // @ts-expect-error TS2345
248
251
  res.bundleGraph._graph,
249
252
  'BundleGraph',
250
253
  bundleGraphEdgeTypes,
@@ -282,12 +285,21 @@ class BundlerRunner {
282
285
  this.pluginOptions = new PluginOptions(
283
286
  optionsProxy(this.options, api.invalidateOnOptionChange),
284
287
  );
285
- this.cacheKey =
286
- hashString(
288
+ if (getFeatureFlag('cachePerformanceImprovements')) {
289
+ const key = hashString(
287
290
  `${ATLASPACK_VERSION}:BundleGraph:${
288
291
  JSON.stringify(options.entries) ?? ''
289
292
  }${options.mode}${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
290
- ) + '-BundleGraph';
293
+ );
294
+ this.cacheKey = `BundleGraph/${ATLASPACK_VERSION}/${options.mode}/${key}`;
295
+ } else {
296
+ this.cacheKey =
297
+ hashString(
298
+ `${ATLASPACK_VERSION}:BundleGraph:${
299
+ JSON.stringify(options.entries) ?? ''
300
+ }${options.mode}${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
301
+ ) + '-BundleGraph';
302
+ }
291
303
  }
292
304
 
293
305
  async loadConfigs() {
@@ -306,7 +318,7 @@ class BundlerRunner {
306
318
  }
307
319
  }
308
320
 
309
- async loadConfig<T: PluginWithLoadConfig>(plugin: LoadedPlugin<T>) {
321
+ async loadConfig<T extends PluginWithLoadConfig>(plugin: LoadedPlugin<T>) {
310
322
  let config = createConfig({
311
323
  plugin: plugin.name,
312
324
  searchPath: toProjectPathUnsafe('index'),
@@ -337,11 +349,11 @@ class BundlerRunner {
337
349
  graph,
338
350
  changedAssets,
339
351
  assetRequests,
340
- }: {|
341
- graph: AssetGraph,
342
- changedAssets: Map<string, Asset>,
343
- assetRequests: Array<AssetGroup>,
344
- |}): Promise<BundleGraphResult> {
352
+ }: {
353
+ graph: AssetGraph;
354
+ changedAssets: Map<string, Asset>;
355
+ assetRequests: Array<AssetGroup>;
356
+ }): Promise<BundleGraphResult> {
345
357
  report({
346
358
  type: 'buildProgress',
347
359
  phase: 'bundling',
@@ -353,16 +365,17 @@ class BundlerRunner {
353
365
  let {plugin: bundler, name, resolveFrom} = plugin;
354
366
 
355
367
  // if a previous asset graph hash is passed in, check if the bundle graph is also available
356
- let previousBundleGraphResult: ?BundleGraphRequestResult;
357
- if (graph.safeToIncrementallyBundle) {
358
- try {
359
- previousBundleGraphResult = await this.api.getPreviousResult();
360
- } catch {
361
- // if the bundle graph had an error or was removed, don't fail the build
362
- }
363
- }
364
- if (previousBundleGraphResult == null) {
368
+ const previousBundleGraphResult: BundleGraphResult | null | undefined =
369
+ await this.api.getPreviousResult();
370
+ const canIncrementallyBundle =
371
+ previousBundleGraphResult?.assetGraphBundlingVersion != null &&
372
+ graph.canIncrementallyBundle(
373
+ previousBundleGraphResult.assetGraphBundlingVersion,
374
+ );
375
+
376
+ if (graph.safeToIncrementallyBundle && previousBundleGraphResult == null) {
365
377
  graph.safeToIncrementallyBundle = false;
378
+ graph.setNeedsBundling();
366
379
  }
367
380
 
368
381
  let internalBundleGraph;
@@ -373,7 +386,7 @@ class BundlerRunner {
373
386
  category: 'bundle',
374
387
  });
375
388
  try {
376
- if (previousBundleGraphResult) {
389
+ if (canIncrementallyBundle && previousBundleGraphResult) {
377
390
  internalBundleGraph = previousBundleGraphResult.bundleGraph;
378
391
  for (let changedAssetId of changedAssets.keys()) {
379
392
  // Copy over the whole node to also have correct symbol data
@@ -391,7 +404,7 @@ class BundlerRunner {
391
404
  invariant(internalBundleGraph != null); // ensures the graph was created
392
405
 
393
406
  await dumpGraphToGraphViz(
394
- // $FlowFixMe
407
+ // @ts-expect-error TS2345
395
408
  internalBundleGraph._graph,
396
409
  'before_bundle',
397
410
  bundleGraphEdgeTypes,
@@ -442,7 +455,7 @@ class BundlerRunner {
442
455
  options: this.pluginOptions,
443
456
  logger,
444
457
  });
445
- } catch (e) {
458
+ } catch (e: any) {
446
459
  throw new ThrowableDiagnostic({
447
460
  diagnostic: errorToDiagnostic(e, {
448
461
  origin: plugin.name,
@@ -451,7 +464,7 @@ class BundlerRunner {
451
464
  } finally {
452
465
  optimizeMeasurement && optimizeMeasurement.end();
453
466
  await dumpGraphToGraphViz(
454
- // $FlowFixMe[incompatible-call]
467
+ // @ts-expect-error TS2345
455
468
  internalBundleGraph._graph,
456
469
  'after_optimize',
457
470
  );
@@ -470,11 +483,12 @@ class BundlerRunner {
470
483
  );
471
484
  await this.runDevDepRequest(devDepRequest);
472
485
  }
473
- } catch (e) {
486
+ } catch (e: any) {
474
487
  if (internalBundleGraph != null) {
475
488
  this.api.storeResult(
476
489
  {
477
490
  bundleGraph: internalBundleGraph,
491
+ assetGraphBundlingVersion: graph.getBundlingVersion(),
478
492
  changedAssets: new Map(),
479
493
  assetRequests: [],
480
494
  },
@@ -490,7 +504,7 @@ class BundlerRunner {
490
504
  } finally {
491
505
  if (internalBundleGraph != null) {
492
506
  await dumpGraphToGraphViz(
493
- // $FlowFixMe[incompatible-call]
507
+ // @ts-expect-error TS2345
494
508
  internalBundleGraph._graph,
495
509
  'after_bundle',
496
510
  bundleGraphEdgeTypes,
@@ -499,7 +513,7 @@ class BundlerRunner {
499
513
  }
500
514
 
501
515
  let changedRuntimes = new Map();
502
- if (!previousBundleGraphResult) {
516
+ if (!previousBundleGraphResult || !canIncrementallyBundle) {
503
517
  let namers = await this.config.getNamers();
504
518
  // inline bundles must still be named so the PackagerRunner
505
519
  // can match them to the correct packager/optimizer plugins.
@@ -510,17 +524,19 @@ class BundlerRunner {
510
524
  ),
511
525
  );
512
526
 
513
- changedRuntimes = await applyRuntimes({
514
- bundleGraph: internalBundleGraph,
515
- api: this.api,
516
- config: this.config,
517
- options: this.options,
518
- optionsRef: this.optionsRef,
519
- pluginOptions: this.pluginOptions,
520
- previousDevDeps: this.previousDevDeps,
521
- devDepRequests: this.devDepRequests,
522
- configs: this.configs,
523
- });
527
+ changedRuntimes = await instrumentAsync('applyRuntimes', () =>
528
+ applyRuntimes({
529
+ bundleGraph: internalBundleGraph,
530
+ api: this.api,
531
+ config: this.config,
532
+ options: this.options,
533
+ optionsRef: this.optionsRef,
534
+ pluginOptions: this.pluginOptions,
535
+ previousDevDeps: this.previousDevDeps,
536
+ devDepRequests: this.devDepRequests,
537
+ configs: this.configs,
538
+ }),
539
+ );
524
540
 
525
541
  // Add dev deps for namers, AFTER running them to account for lazy require().
526
542
  for (let namer of namers) {
@@ -542,7 +558,7 @@ class BundlerRunner {
542
558
  }
543
559
 
544
560
  await dumpGraphToGraphViz(
545
- // $FlowFixMe
561
+ // @ts-expect-error TS2345
546
562
  internalBundleGraph._graph,
547
563
  'after_runtimes',
548
564
  bundleGraphEdgeTypes,
@@ -551,6 +567,7 @@ class BundlerRunner {
551
567
  this.api.storeResult(
552
568
  {
553
569
  bundleGraph: internalBundleGraph,
570
+ assetGraphBundlingVersion: graph.getBundlingVersion(),
554
571
  changedAssets: new Map(),
555
572
  assetRequests: [],
556
573
  },
@@ -559,6 +576,7 @@ class BundlerRunner {
559
576
 
560
577
  return {
561
578
  bundleGraph: internalBundleGraph,
579
+ assetGraphBundlingVersion: graph.getBundlingVersion(),
562
580
  changedAssets: changedRuntimes,
563
581
  assetRequests,
564
582
  };
@@ -584,7 +602,7 @@ class BundlerRunner {
584
602
  }
585
603
 
586
604
  async nameBundle(
587
- namers: Array<LoadedPlugin<Namer<mixed>>>,
605
+ namers: Array<LoadedPlugin<Namer<unknown>>>,
588
606
  internalBundle: InternalBundle,
589
607
  internalBundleGraph: InternalBundleGraph,
590
608
  ): Promise<void> {
@@ -617,7 +635,7 @@ class BundlerRunner {
617
635
 
618
636
  return;
619
637
  }
620
- } catch (e) {
638
+ } catch (e: any) {
621
639
  throw new ThrowableDiagnostic({
622
640
  diagnostic: errorToDiagnostic(e, {
623
641
  origin: namer.name,