@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
@@ -0,0 +1,364 @@
1
+ import invariant from 'assert';
2
+
3
+ import ThrowableDiagnostic from '@atlaspack/diagnostic';
4
+ import type {Async} from '@atlaspack/types';
5
+ import {instrument} from '@atlaspack/logger';
6
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
7
+
8
+ import AssetGraph from '../AssetGraph';
9
+ import type {AtlaspackV3} from '../atlaspack-v3';
10
+ import {requestTypes, StaticRunOpts} from '../RequestTracker';
11
+ import {propagateSymbols} from '../SymbolPropagation';
12
+ import type {
13
+ Environment,
14
+ Asset,
15
+ AssetGraphNode,
16
+ AssetNode,
17
+ DependencyNode,
18
+ } from '../types';
19
+
20
+ import type {
21
+ AssetGraphRequestInput,
22
+ AssetGraphRequestResult,
23
+ } from './AssetGraphRequest';
24
+ import {toEnvironmentRef} from '../EnvironmentManager';
25
+ import {getEnvironmentHash} from '../Environment';
26
+ import dumpGraphToGraphViz from '../dumpGraphToGraphViz';
27
+ import assert from 'assert';
28
+
29
+ type RunInput = {
30
+ input: AssetGraphRequestInput;
31
+ } & StaticRunOpts<AssetGraphRequestResult>;
32
+
33
+ type AssetGraphRequest = {
34
+ id: string;
35
+ readonly type: typeof requestTypes.asset_graph_request;
36
+ run: (arg1: RunInput) => Async<AssetGraphRequestResult>;
37
+ input: AssetGraphRequestInput;
38
+ };
39
+
40
+ type SerializedAssetGraphDelta = {
41
+ nodes: Array<any>;
42
+ edges: Array<string>;
43
+ updates: Array<any>;
44
+ safeToSkipBundling: boolean;
45
+ hadPreviousGraph: boolean;
46
+ };
47
+
48
+ export function createAssetGraphRequestRust(
49
+ rustAtlaspack: AtlaspackV3,
50
+ ): (input: AssetGraphRequestInput) => AssetGraphRequest {
51
+ return (input: AssetGraphRequestInput) => ({
52
+ type: requestTypes.asset_graph_request,
53
+ id: input.name,
54
+ run: async (input) => {
55
+ let options = input.options;
56
+ let {assetGraphPromise, commitPromise} =
57
+ await rustAtlaspack.buildAssetGraph();
58
+
59
+ let [serializedAssetGraph, assetGraphError] =
60
+ (await assetGraphPromise) as [SerializedAssetGraphDelta, Error | null];
61
+
62
+ if (assetGraphError) {
63
+ throw new ThrowableDiagnostic({
64
+ diagnostic: assetGraphError,
65
+ });
66
+ }
67
+
68
+ // Don't reuse a previous asset graph result if Rust didn't have one too
69
+ let prevResult = null;
70
+ if (serializedAssetGraph.hadPreviousGraph) {
71
+ prevResult =
72
+ await input.api.getPreviousResult<AssetGraphRequestResult>();
73
+ }
74
+
75
+ let {assetGraph, changedAssets} = instrument(
76
+ 'atlaspack_v3_getAssetGraph',
77
+ () => getAssetGraph(serializedAssetGraph, prevResult?.assetGraph),
78
+ );
79
+
80
+ let changedAssetsPropagation = new Set(changedAssets.keys());
81
+ let errors = propagateSymbols({
82
+ options,
83
+ assetGraph,
84
+ changedAssetsPropagation,
85
+ assetGroupsWithRemovedParents: new Set(),
86
+ previousErrors: new Map(), //this.previousSymbolPropagationErrors,
87
+ });
88
+
89
+ if (errors.size > 0) {
90
+ // Just throw the first error. Since errors can bubble (e.g. reexporting a reexported symbol also fails),
91
+ // determining which failing export is the root cause is nontrivial (because of circular dependencies).
92
+ throw new ThrowableDiagnostic({
93
+ diagnostic: [...errors.values()][0],
94
+ });
95
+ }
96
+
97
+ await dumpGraphToGraphViz(assetGraph, 'AssetGraphV3');
98
+
99
+ let result = {
100
+ assetGraph,
101
+ assetRequests: [],
102
+ assetGroupsWithRemovedParents: new Set<number>(),
103
+ changedAssets,
104
+ changedAssetsPropagation,
105
+ previousSymbolPropagationErrors: undefined,
106
+ };
107
+
108
+ let [_commitResult, commitError] = await commitPromise;
109
+
110
+ if (commitError) {
111
+ throw new ThrowableDiagnostic({
112
+ diagnostic: {
113
+ message:
114
+ 'Error committing asset graph in Rust: ' + commitError.message,
115
+ },
116
+ });
117
+ }
118
+
119
+ await input.api.storeResult(result);
120
+ input.api.invalidateOnBuild();
121
+
122
+ return result;
123
+ },
124
+ input,
125
+ });
126
+ }
127
+
128
+ export function getAssetGraph(
129
+ serializedGraph: any,
130
+ prevAssetGraph?: AssetGraph,
131
+ ): {
132
+ assetGraph: AssetGraph;
133
+ changedAssets: Map<string, Asset>;
134
+ } {
135
+ let graph: AssetGraph;
136
+
137
+ let reuseEdges = false;
138
+
139
+ if (prevAssetGraph && serializedGraph.safeToSkipBundling) {
140
+ graph = new AssetGraph({
141
+ _contentKeyToNodeId: prevAssetGraph._contentKeyToNodeId,
142
+ _nodeIdToContentKey: prevAssetGraph._nodeIdToContentKey,
143
+ nodes: prevAssetGraph.nodes,
144
+ rootNodeId: prevAssetGraph.rootNodeId,
145
+ adjacencyList: prevAssetGraph.adjacencyList,
146
+ });
147
+ reuseEdges = true;
148
+ } else if (
149
+ prevAssetGraph &&
150
+ (serializedGraph.updates.length > 0 || serializedGraph.nodes.length > 0)
151
+ ) {
152
+ graph = new AssetGraph({
153
+ _contentKeyToNodeId: prevAssetGraph._contentKeyToNodeId,
154
+ _nodeIdToContentKey: prevAssetGraph._nodeIdToContentKey,
155
+ nodes: prevAssetGraph.nodes,
156
+ initialCapacity: serializedGraph.edges.length,
157
+ // Accomodate the root node
158
+ initialNodeCapacity: prevAssetGraph.nodes.length + 1,
159
+ rootNodeId: prevAssetGraph.rootNodeId,
160
+ });
161
+ graph.safeToIncrementallyBundle = false;
162
+ } else {
163
+ graph = new AssetGraph({
164
+ _contentKeyToNodeId: new Map(),
165
+ _nodeIdToContentKey: new Map(),
166
+ initialCapacity: serializedGraph.edges.length,
167
+ // Accomodate the root node
168
+ initialNodeCapacity: serializedGraph.nodes.length + 1,
169
+ });
170
+
171
+ let rootNodeId = graph.addNodeByContentKey('@@root', {
172
+ id: '@@root',
173
+ type: 'root',
174
+ value: null,
175
+ });
176
+
177
+ graph.setRootNodeId(rootNodeId);
178
+ graph.safeToIncrementallyBundle = false;
179
+ }
180
+
181
+ invariant(graph, 'Asset graph not initialized');
182
+ invariant(graph.rootNodeId != null, 'Asset graph has no root node');
183
+
184
+ // @ts-expect-error TS7031
185
+ function mapSymbols({exported, ...symbol}) {
186
+ let jsSymbol = {
187
+ local: symbol.local ?? undefined,
188
+ loc: symbol.loc ?? undefined,
189
+ isWeak: symbol.isWeak,
190
+ meta: {
191
+ isEsm: symbol.isEsmExport,
192
+ isStaticBindingSafe: symbol.isStaticBindingSafe,
193
+ },
194
+ };
195
+
196
+ if (symbol.exported) {
197
+ // @ts-expect-error TS2339
198
+ jsSymbol.exported = symbol.exported;
199
+ }
200
+
201
+ return [exported, jsSymbol];
202
+ }
203
+
204
+ // See crates/atlaspack_core/src/types/environment.rs
205
+ let changedAssets = new Map();
206
+ let entry = 0;
207
+
208
+ let envs = new Map();
209
+ let getEnvId = (env: Environment) => {
210
+ let envKey = [
211
+ env.context,
212
+ env.engines.atlaspack,
213
+ env.engines.browsers,
214
+ env.engines.electron,
215
+ env.engines.node,
216
+ env.includeNodeModules,
217
+ env.isLibrary,
218
+ env.outputFormat,
219
+ env.shouldScopeHoist,
220
+ env.shouldOptimize,
221
+ env.sourceType,
222
+ ].join(':');
223
+
224
+ let envId = envs.get(envKey);
225
+ if (envId == null) {
226
+ envId = getEnvironmentHash(env);
227
+ envs.set(envKey, envId);
228
+ }
229
+
230
+ return envId;
231
+ };
232
+
233
+ function updateNode(newNode: AssetGraphNode, isUpdateNode: boolean) {
234
+ if (isUpdateNode) {
235
+ let existingNode = graph.getNodeByContentKey(newNode.id);
236
+
237
+ assert(existingNode && existingNode.type === newNode.type);
238
+
239
+ Object.assign(existingNode, newNode);
240
+ } else {
241
+ graph.addNodeByContentKey(newNode.id, newNode);
242
+ }
243
+ }
244
+
245
+ let nodeTypeSwitchoverIndex = serializedGraph.nodes.length;
246
+ let nodesCount =
247
+ serializedGraph.nodes.length + serializedGraph.updates.length;
248
+
249
+ for (let index = 0; index < nodesCount; index++) {
250
+ let isUpdateNode = index >= nodeTypeSwitchoverIndex;
251
+ let node = isUpdateNode
252
+ ? serializedGraph.updates[index - nodeTypeSwitchoverIndex]
253
+ : serializedGraph.nodes[index];
254
+
255
+ node = JSON.parse(node);
256
+
257
+ if (node.type === 'entry') {
258
+ let id = 'entry:' + ++entry;
259
+
260
+ graph.addNodeByContentKey(id, {
261
+ id: id,
262
+ type: 'root',
263
+ value: null,
264
+ });
265
+ } else if (node.type === 'asset') {
266
+ let asset = node.value;
267
+ let id = asset.id;
268
+
269
+ asset.committed = true;
270
+ asset.contentKey = id;
271
+ asset.env.id = getFeatureFlag('environmentDeduplication')
272
+ ? // TODO: Rust can do this and avoid copying a significant amount of data over
273
+ getEnvironmentHash(asset.env)
274
+ : getEnvId(asset.env);
275
+ asset.mapKey = `map:${asset.id}`;
276
+
277
+ asset.env = toEnvironmentRef(asset.env);
278
+
279
+ // This is populated later when we map the edges between assets and dependencies
280
+ asset.dependencies = new Map();
281
+
282
+ // We need to add this property for source map handling, as some assets like runtimes
283
+ // are processed after the Rust transformation and take the v2 code path
284
+ asset.meta.isV3 = true;
285
+
286
+ if (asset.symbols != null) {
287
+ asset.symbols = new Map(asset.symbols.map(mapSymbols));
288
+ }
289
+
290
+ changedAssets.set(id, asset);
291
+
292
+ let assetNode: AssetNode = {
293
+ id,
294
+ type: 'asset',
295
+ usedSymbols: new Set(),
296
+ usedSymbolsDownDirty: true,
297
+ usedSymbolsUpDirty: true,
298
+ value: asset,
299
+ };
300
+ updateNode(assetNode, isUpdateNode);
301
+ } else if (node.type === 'dependency') {
302
+ let {dependency, id} = node.value;
303
+
304
+ dependency.id = id;
305
+ dependency.env.id = getFeatureFlag('environmentDeduplication')
306
+ ? // TODO: Rust can do this and avoid copying a significant amount of data over
307
+ getEnvironmentHash(dependency.env)
308
+ : getEnvId(dependency.env);
309
+ dependency.env = toEnvironmentRef(dependency.env);
310
+
311
+ if (dependency.symbols != null) {
312
+ dependency.symbols = new Map(dependency.symbols?.map(mapSymbols));
313
+ }
314
+
315
+ let usedSymbolsDown = new Set();
316
+ let usedSymbolsUp = new Map();
317
+ if (dependency.isEntry && dependency.isLibrary) {
318
+ usedSymbolsDown.add('*');
319
+ usedSymbolsUp.set('*', undefined);
320
+ }
321
+
322
+ let depNode: DependencyNode = {
323
+ id,
324
+ type: 'dependency',
325
+ deferred: false,
326
+ excluded: false,
327
+ hasDeferred: node.has_deferred,
328
+ // @ts-expect-error TS2322
329
+ usedSymbolsDown,
330
+ usedSymbolsDownDirty: true,
331
+ usedSymbolsUp,
332
+ usedSymbolsUpDirtyDown: true,
333
+ usedSymbolsUpDirtyUp: true,
334
+ value: dependency,
335
+ };
336
+
337
+ updateNode(depNode, isUpdateNode);
338
+ }
339
+ }
340
+
341
+ if (!reuseEdges) {
342
+ for (let i = 0; i < serializedGraph.edges.length; i += 2) {
343
+ let from = serializedGraph.edges[i];
344
+ let to = serializedGraph.edges[i + 1];
345
+ let fromNode = graph.getNode(from);
346
+ let toNode = graph.getNode(to);
347
+
348
+ if (fromNode?.type === 'dependency') {
349
+ invariant(toNode?.type === 'asset');
350
+ }
351
+
352
+ if (fromNode?.type === 'asset' && toNode?.type === 'dependency') {
353
+ fromNode.value.dependencies.set(toNode.value.id, toNode.value);
354
+ }
355
+
356
+ graph.addEdge(from, to);
357
+ }
358
+ }
359
+
360
+ return {
361
+ assetGraph: graph,
362
+ changedAssets,
363
+ };
364
+ }
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {ContentKey} from '@atlaspack/graph';
4
2
  import type {Async} from '@atlaspack/types';
5
3
  import type {StaticRunOpts} from '../RequestTracker';
@@ -21,18 +19,18 @@ import {fromProjectPath, fromProjectPathRelative} from '../projectPath';
21
19
  import {report} from '../ReporterRunner';
22
20
  import {requestTypes} from '../RequestTracker';
23
21
  import type {DevDepRequestResult} from './DevDepRequest';
22
+ import {toEnvironmentId} from '../EnvironmentManager';
24
23
 
25
- type RunInput<TResult> = {|
26
- input: AssetRequestInput,
27
- ...StaticRunOpts<TResult>,
28
- |};
24
+ type RunInput<TResult> = {
25
+ input: AssetRequestInput;
26
+ } & StaticRunOpts<TResult>;
29
27
 
30
- export type AssetRequest = {|
31
- id: ContentKey,
32
- +type: typeof requestTypes.asset_request,
33
- run: (RunInput<AssetRequestResult>) => Async<AssetRequestResult>,
34
- input: AssetRequestInput,
35
- |};
28
+ export type AssetRequest = {
29
+ id: ContentKey;
30
+ readonly type: typeof requestTypes.asset_request;
31
+ run: (arg1: RunInput<AssetRequestResult>) => Async<AssetRequestResult>;
32
+ input: AssetRequestInput;
33
+ };
36
34
 
37
35
  export default function createAssetRequest(
38
36
  input: AssetRequestInput,
@@ -51,7 +49,7 @@ function getId(input: AssetRequestInput) {
51
49
  return hashString(
52
50
  type +
53
51
  fromProjectPathRelative(input.filePath) +
54
- input.env.id +
52
+ toEnvironmentId(input.env) +
55
53
  String(input.isSource) +
56
54
  String(input.sideEffects) +
57
55
  (input.code ?? '') +
@@ -62,6 +60,7 @@ function getId(input: AssetRequestInput) {
62
60
  );
63
61
  }
64
62
 
63
+ // @ts-expect-error TS7031
65
64
  async function run({input, api, farm, invalidateReason, options}) {
66
65
  report({
67
66
  type: 'buildProgress',
@@ -73,6 +72,7 @@ async function run({input, api, farm, invalidateReason, options}) {
73
72
  let start = Date.now();
74
73
  let {optionsRef, ...rest} = input;
75
74
  let {cachePath} = nullthrows(
75
+ // @ts-expect-error TS2347
76
76
  await api.runRequest<null, ConfigAndCachePath>(
77
77
  createAtlaspackConfigRequest(),
78
78
  ),
@@ -82,9 +82,12 @@ async function run({input, api, farm, invalidateReason, options}) {
82
82
  await Promise.all(
83
83
  api
84
84
  .getSubRequests()
85
+ // @ts-expect-error TS7006
85
86
  .filter((req) => req.requestType === requestTypes.dev_dep_request)
87
+ // @ts-expect-error TS7006
86
88
  .map(async (req) => [
87
89
  req.id,
90
+ // @ts-expect-error TS2347
88
91
  nullthrows(await api.getRequestResult<DevDepRequestResult>(req.id)),
89
92
  ]),
90
93
  ),
@@ -95,21 +98,24 @@ async function run({input, api, farm, invalidateReason, options}) {
95
98
  invalidateReason,
96
99
  devDeps: new Map(
97
100
  [...previousDevDepRequests.entries()]
98
- .filter(([id]) => api.canSkipSubrequest(id))
99
- .map(([, req]: [string, DevDepRequestResult]) => [
101
+ // @ts-expect-error TS2769
102
+ .filter(([id]: [any]) => api.canSkipSubrequest(id))
103
+ .map(([, req]: [any, any]) => [
100
104
  `${req.specifier}:${fromProjectPathRelative(req.resolveFrom)}`,
101
105
  req.hash,
102
106
  ]),
103
107
  ),
104
108
  invalidDevDeps: await Promise.all(
105
109
  [...previousDevDepRequests.entries()]
106
- .filter(([id]) => !api.canSkipSubrequest(id))
107
- .flatMap(([, req]: [string, DevDepRequestResult]) => {
110
+ // @ts-expect-error TS2769
111
+ .filter(([id]: [any]) => !api.canSkipSubrequest(id))
112
+ .flatMap(([, req]: [any, any]) => {
108
113
  return [
109
114
  {
110
115
  specifier: req.specifier,
111
116
  resolveFrom: req.resolveFrom,
112
117
  },
118
+ // @ts-expect-error TS7006
113
119
  ...(req.additionalInvalidations ?? []).map((i) => ({
114
120
  specifier: i.specifier,
115
121
  resolveFrom: i.resolveFrom,
@@ -127,7 +133,7 @@ async function run({input, api, farm, invalidateReason, options}) {
127
133
  configCachePath: cachePath,
128
134
  optionsRef,
129
135
  request,
130
- }): TransformationResult);
136
+ })) as TransformationResult;
131
137
 
132
138
  let time = Date.now() - start;
133
139
  if (assets) {
@@ -0,0 +1,163 @@
1
+ import type {ContentKey} from '@atlaspack/graph';
2
+ import type {Async} from '@atlaspack/types';
3
+ import type {SharedReference} from '@atlaspack/workers';
4
+
5
+ import type {StaticRunOpts} from '../RequestTracker';
6
+ import type {
7
+ Asset,
8
+ AssetGroup,
9
+ BundleGraphNode,
10
+ PackagedBundleInfo,
11
+ } from '../types';
12
+ import type BundleGraph from '../BundleGraph';
13
+
14
+ import createBundleGraphRequest, {
15
+ BundleGraphResult,
16
+ } from './BundleGraphRequest';
17
+ import createWriteBundlesRequest from './WriteBundlesRequest';
18
+ import {assertSignalNotAborted} from '../utils';
19
+ import dumpGraphToGraphViz from '../dumpGraphToGraphViz';
20
+ import {BundleGraphEdgeType, bundleGraphEdgeTypes} from '../BundleGraph';
21
+ import {report} from '../ReporterRunner';
22
+ import IBundleGraph from '../public/BundleGraph';
23
+ import {NamedBundle} from '../public/Bundle';
24
+ import {assetFromValue} from '../public/Asset';
25
+
26
+ import {tracer} from '@atlaspack/profiler';
27
+ import {requestTypes} from '../RequestTracker';
28
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
29
+ import {fromEnvironmentId} from '../EnvironmentManager';
30
+ import invariant from 'assert';
31
+
32
+ type AtlaspackBuildRequestInput = {
33
+ optionsRef: SharedReference;
34
+ requestedAssetIds: Set<string>;
35
+ signal?: AbortSignal;
36
+ };
37
+
38
+ export type AtlaspackBuildRequestResult = {
39
+ bundleGraph: BundleGraph;
40
+ bundleInfo: Map<string, PackagedBundleInfo>;
41
+ changedAssets: Map<string, Asset>;
42
+ assetRequests: Array<AssetGroup>;
43
+ scopeHoistingStats?: {
44
+ totalAssets: number;
45
+ wrappedAssets: number;
46
+ };
47
+ };
48
+
49
+ type RunInput<TResult> = {
50
+ input: AtlaspackBuildRequestInput;
51
+ } & StaticRunOpts<TResult>;
52
+
53
+ export type AtlaspackBuildRequest = {
54
+ id: ContentKey;
55
+ readonly type: typeof requestTypes.atlaspack_build_request;
56
+ run: (
57
+ arg1: RunInput<AtlaspackBuildRequestResult>,
58
+ ) => Async<AtlaspackBuildRequestResult>;
59
+ input: AtlaspackBuildRequestInput;
60
+ };
61
+
62
+ export default function createAtlaspackBuildRequest(
63
+ input: AtlaspackBuildRequestInput,
64
+ ): AtlaspackBuildRequest {
65
+ return {
66
+ type: requestTypes.atlaspack_build_request,
67
+ id: 'atlaspack_build_request',
68
+ run,
69
+ input,
70
+ };
71
+ }
72
+
73
+ async function run({
74
+ input,
75
+ api,
76
+ options,
77
+ rustAtlaspack,
78
+ }: RunInput<AtlaspackBuildRequestResult>) {
79
+ let {optionsRef, requestedAssetIds, signal} = input;
80
+
81
+ let bundleGraphRequest = createBundleGraphRequest({
82
+ optionsRef,
83
+ requestedAssetIds,
84
+ signal,
85
+ });
86
+
87
+ let {bundleGraph, changedAssets, assetRequests}: BundleGraphResult =
88
+ await api.runRequest(bundleGraphRequest, {
89
+ force:
90
+ Boolean(rustAtlaspack) ||
91
+ (options.shouldBuildLazily && requestedAssetIds.size > 0),
92
+ });
93
+
94
+ if (
95
+ getFeatureFlag('nativePackager') &&
96
+ getFeatureFlag('nativePackagerSSRDev') &&
97
+ rustAtlaspack
98
+ ) {
99
+ let hasSupportedTarget = false;
100
+ bundleGraph.traverseBundles((bundle, ctx, actions) => {
101
+ if (
102
+ fromEnvironmentId(bundle.env).context === 'tesseract' &&
103
+ bundle.type === 'js'
104
+ ) {
105
+ hasSupportedTarget = true;
106
+ actions.stop();
107
+ }
108
+ });
109
+ if (hasSupportedTarget) {
110
+ // In theory this could be a (somehow) null[] - but we know if we've gotten this far it probably isn't..
111
+ let nodes = bundleGraph._graph.nodes as BundleGraphNode[];
112
+ let rawEdges: [number, number, BundleGraphEdgeType][] = [];
113
+ const gen = bundleGraph._graph.getAllEdges();
114
+ let next = gen.next();
115
+ while (!next.done) {
116
+ let edge = next.value;
117
+ rawEdges.push([edge.from, edge.to, edge.type]);
118
+ next = gen.next();
119
+ }
120
+ await rustAtlaspack.loadBundleGraph({nodes, edges: rawEdges});
121
+ }
122
+ }
123
+
124
+ // @ts-expect-error TS2345
125
+ dumpGraphToGraphViz(bundleGraph._graph, 'BundleGraph', bundleGraphEdgeTypes);
126
+
127
+ await report({
128
+ type: 'buildProgress',
129
+ phase: 'bundled',
130
+ bundleGraph: new IBundleGraph(
131
+ bundleGraph,
132
+ // @ts-expect-error TS2304
133
+ (bundle: Bundle, bundleGraph: BundleGraph, options: AtlaspackOptions) =>
134
+ NamedBundle.get(bundle, bundleGraph, options),
135
+ options,
136
+ ),
137
+ changedAssets: new Map(
138
+ Array.from(changedAssets).map(([id, asset]: [any, any]) => [
139
+ id,
140
+ assetFromValue(asset, options),
141
+ ]),
142
+ ),
143
+ });
144
+
145
+ let packagingMeasurement = tracer.createMeasurement('packaging');
146
+ let writeBundlesRequest = createWriteBundlesRequest({
147
+ bundleGraph,
148
+ optionsRef,
149
+ });
150
+
151
+ let {bundleInfo, scopeHoistingStats} =
152
+ await api.runRequest(writeBundlesRequest);
153
+ packagingMeasurement && packagingMeasurement.end();
154
+ assertSignalNotAborted(signal);
155
+
156
+ return {
157
+ bundleGraph,
158
+ bundleInfo,
159
+ changedAssets,
160
+ assetRequests,
161
+ scopeHoistingStats,
162
+ };
163
+ }