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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/CHANGELOG.md +1324 -0
  2. package/dist/AssetGraph.js +523 -0
  3. package/dist/Atlaspack.js +701 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1906 -0
  7. package/dist/CommittedAsset.js +142 -0
  8. package/dist/Dependency.js +125 -0
  9. package/dist/Environment.js +132 -0
  10. package/dist/EnvironmentManager.js +108 -0
  11. package/dist/IdentifierRegistry.js +38 -0
  12. package/dist/InternalConfig.js +37 -0
  13. package/dist/PackagerRunner.js +470 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1297 -0
  16. package/dist/SymbolPropagation.js +624 -0
  17. package/dist/TargetDescriptor.schema.js +146 -0
  18. package/dist/Transformation.js +514 -0
  19. package/dist/UncommittedAsset.js +310 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +384 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +83 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +114 -0
  25. package/dist/atlaspack-v3/fs.js +53 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
  30. package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
  31. package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
  32. package/dist/atlaspack-v3/worker/compat/index.js +24 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  37. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  38. package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
  39. package/dist/atlaspack-v3/worker/worker.js +398 -0
  40. package/dist/constants.js +17 -0
  41. package/dist/dumpGraphToGraphViz.js +281 -0
  42. package/dist/index.js +62 -0
  43. package/dist/loadAtlaspackPlugin.js +128 -0
  44. package/dist/loadDotEnv.js +41 -0
  45. package/dist/projectPath.js +83 -0
  46. package/dist/public/Asset.js +279 -0
  47. package/dist/public/Bundle.js +224 -0
  48. package/dist/public/BundleGraph.js +371 -0
  49. package/dist/public/BundleGroup.js +53 -0
  50. package/dist/public/Config.js +286 -0
  51. package/dist/public/Dependency.js +138 -0
  52. package/dist/public/Environment.js +278 -0
  53. package/dist/public/MutableBundleGraph.js +277 -0
  54. package/dist/public/PluginOptions.js +80 -0
  55. package/dist/public/Symbols.js +248 -0
  56. package/dist/public/Target.js +69 -0
  57. package/dist/registerCoreWithSerializer.js +38 -0
  58. package/dist/requests/AssetGraphRequest.js +430 -0
  59. package/dist/requests/AssetGraphRequestRust.js +471 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +98 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +381 -0
  64. package/dist/requests/BundleGraphRequestRust.js +324 -0
  65. package/dist/requests/BundleGraphRequestUtils.js +262 -0
  66. package/dist/requests/ConfigRequest.js +246 -0
  67. package/dist/requests/DevDepRequest.js +204 -0
  68. package/dist/requests/EntryRequest.js +314 -0
  69. package/dist/requests/PackageRequest.js +89 -0
  70. package/dist/requests/PathRequest.js +349 -0
  71. package/dist/requests/TargetRequest.js +1316 -0
  72. package/dist/requests/ValidationRequest.js +49 -0
  73. package/dist/requests/WriteBundleRequest.js +522 -0
  74. package/dist/requests/WriteBundlesRequest.js +190 -0
  75. package/dist/requests/asset-graph-diff.js +128 -0
  76. package/dist/requests/asset-graph-dot.js +131 -0
  77. package/dist/resolveOptions.js +267 -0
  78. package/dist/rustWorkerThreadDylibHack.js +19 -0
  79. package/dist/serializerCore.browser.js +43 -0
  80. package/dist/summarizeRequest.js +39 -0
  81. package/dist/types.js +31 -0
  82. package/dist/utils.js +172 -0
  83. package/dist/worker.js +123 -0
  84. package/lib/AssetGraph.js +53 -15
  85. package/lib/Atlaspack.js +140 -56
  86. package/lib/AtlaspackConfig.js +17 -6
  87. package/lib/AtlaspackConfig.schema.js +16 -5
  88. package/lib/BundleGraph.js +390 -43
  89. package/lib/CommittedAsset.js +8 -2
  90. package/lib/Dependency.js +9 -3
  91. package/lib/Environment.js +16 -10
  92. package/lib/EnvironmentManager.js +143 -0
  93. package/lib/IdentifierRegistry.js +2 -4
  94. package/lib/InternalConfig.js +3 -2
  95. package/lib/PackagerRunner.js +46 -82
  96. package/lib/ReporterRunner.js +8 -12
  97. package/lib/RequestTracker.js +191 -152
  98. package/lib/SymbolPropagation.js +52 -29
  99. package/lib/TargetDescriptor.schema.js +10 -1
  100. package/lib/Transformation.js +68 -19
  101. package/lib/UncommittedAsset.js +17 -24
  102. package/lib/Validation.js +20 -5
  103. package/lib/applyRuntimes.js +98 -7
  104. package/lib/assetUtils.js +16 -6
  105. package/lib/atlaspack-v3/AtlaspackV3.js +58 -15
  106. package/lib/atlaspack-v3/NapiWorkerPool.js +63 -2
  107. package/lib/atlaspack-v3/fs.js +4 -1
  108. package/lib/atlaspack-v3/index.js +28 -1
  109. package/lib/atlaspack-v3/jsCallable.js +0 -2
  110. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  111. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  112. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  113. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  114. package/lib/atlaspack-v3/worker/compat/index.js +0 -11
  115. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +16 -11
  116. package/lib/atlaspack-v3/worker/compat/plugin-config.js +14 -35
  117. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -2
  118. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  119. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  120. package/lib/atlaspack-v3/worker/index.js +3 -0
  121. package/lib/atlaspack-v3/worker/side-effect-detector.js +214 -0
  122. package/lib/atlaspack-v3/worker/worker.js +231 -79
  123. package/lib/constants.js +0 -1
  124. package/lib/dumpGraphToGraphViz.js +72 -17
  125. package/lib/index.js +46 -3
  126. package/lib/loadAtlaspackPlugin.js +2 -3
  127. package/lib/loadDotEnv.js +5 -2
  128. package/lib/projectPath.js +6 -1
  129. package/lib/public/Asset.js +22 -12
  130. package/lib/public/Bundle.js +16 -18
  131. package/lib/public/BundleGraph.js +27 -25
  132. package/lib/public/BundleGroup.js +5 -6
  133. package/lib/public/Config.js +118 -18
  134. package/lib/public/Dependency.js +9 -7
  135. package/lib/public/Environment.js +13 -8
  136. package/lib/public/MutableBundleGraph.js +56 -15
  137. package/lib/public/PluginOptions.js +2 -2
  138. package/lib/public/Symbols.js +12 -12
  139. package/lib/public/Target.js +8 -7
  140. package/lib/registerCoreWithSerializer.js +7 -4
  141. package/lib/requests/AssetGraphRequest.js +61 -40
  142. package/lib/requests/AssetGraphRequestRust.js +314 -82
  143. package/lib/requests/AssetRequest.js +24 -7
  144. package/lib/requests/AtlaspackBuildRequest.js +53 -7
  145. package/lib/requests/AtlaspackConfigRequest.js +29 -19
  146. package/lib/requests/BundleGraphRequest.js +61 -130
  147. package/lib/requests/BundleGraphRequestRust.js +381 -0
  148. package/lib/requests/BundleGraphRequestUtils.js +280 -0
  149. package/lib/requests/ConfigRequest.js +55 -7
  150. package/lib/requests/DevDepRequest.js +32 -6
  151. package/lib/requests/EntryRequest.js +4 -3
  152. package/lib/requests/PackageRequest.js +56 -12
  153. package/lib/requests/PathRequest.js +26 -6
  154. package/lib/requests/TargetRequest.js +129 -60
  155. package/lib/requests/ValidationRequest.js +6 -2
  156. package/lib/requests/WriteBundleRequest.js +329 -20
  157. package/lib/requests/WriteBundlesRequest.js +64 -10
  158. package/lib/requests/asset-graph-diff.js +13 -8
  159. package/lib/requests/asset-graph-dot.js +2 -8
  160. package/lib/resolveOptions.js +37 -14
  161. package/lib/rustWorkerThreadDylibHack.js +0 -1
  162. package/lib/serializerCore.browser.js +1 -2
  163. package/lib/summarizeRequest.js +1 -1
  164. package/lib/types/AssetGraph.d.ts +55 -0
  165. package/lib/types/Atlaspack.d.ts +52 -0
  166. package/lib/types/AtlaspackConfig.d.ts +65 -0
  167. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  168. package/lib/types/BundleGraph.d.ts +232 -0
  169. package/lib/types/CommittedAsset.d.ts +23 -0
  170. package/lib/types/Dependency.d.ts +44 -0
  171. package/lib/types/Environment.d.ts +11 -0
  172. package/lib/types/EnvironmentManager.d.ts +37 -0
  173. package/lib/types/IdentifierRegistry.d.ts +6 -0
  174. package/lib/types/InternalConfig.d.ts +23 -0
  175. package/lib/types/PackagerRunner.d.ts +85 -0
  176. package/lib/types/ReporterRunner.d.ts +25 -0
  177. package/lib/types/RequestTracker.d.ts +385 -0
  178. package/lib/types/SymbolPropagation.d.ts +11 -0
  179. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  180. package/lib/types/Transformation.d.ts +72 -0
  181. package/lib/types/UncommittedAsset.d.ts +61 -0
  182. package/lib/types/Validation.d.ts +37 -0
  183. package/lib/types/applyRuntimes.d.ts +25 -0
  184. package/lib/types/assetUtils.d.ts +42 -0
  185. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +35 -0
  186. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  187. package/lib/types/atlaspack-v3/fs.d.ts +13 -0
  188. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  189. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  190. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  191. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  192. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  193. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  194. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -2
  195. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  196. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  197. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  198. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  199. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  200. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  201. package/lib/types/atlaspack-v3/worker/worker.d.ts +81 -0
  202. package/lib/types/constants.d.ts +13 -0
  203. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  204. package/lib/types/index.d.ts +8 -0
  205. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  206. package/lib/types/loadDotEnv.d.ts +3 -0
  207. package/lib/types/projectPath.d.ts +19 -0
  208. package/lib/types/public/Asset.d.ts +74 -0
  209. package/lib/types/public/Bundle.d.ts +45 -0
  210. package/lib/types/public/BundleGraph.d.ts +72 -0
  211. package/lib/types/public/BundleGroup.d.ts +12 -0
  212. package/lib/types/public/Config.d.ts +75 -0
  213. package/lib/types/public/Dependency.d.ts +32 -0
  214. package/lib/types/public/Environment.d.ts +34 -0
  215. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  216. package/lib/types/public/PluginOptions.d.ts +25 -0
  217. package/lib/types/public/Symbols.d.ts +81 -0
  218. package/lib/types/public/Target.d.ts +16 -0
  219. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  220. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  221. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  222. package/lib/types/requests/AssetRequest.d.ts +16 -0
  223. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  224. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  225. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  226. package/lib/types/requests/BundleGraphRequestRust.d.ts +34 -0
  227. package/lib/types/requests/BundleGraphRequestUtils.d.ts +38 -0
  228. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  229. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  230. package/lib/types/requests/EntryRequest.d.ts +36 -0
  231. package/lib/types/requests/PackageRequest.d.ts +27 -0
  232. package/lib/types/requests/PathRequest.d.ts +48 -0
  233. package/lib/types/requests/TargetRequest.d.ts +48 -0
  234. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  235. package/lib/types/requests/WriteBundleRequest.d.ts +80 -0
  236. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  237. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  238. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  239. package/lib/types/resolveOptions.d.ts +3 -0
  240. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  241. package/lib/types/serializerCore.browser.d.ts +3 -0
  242. package/lib/types/summarizeRequest.d.ts +10 -0
  243. package/lib/types/types.d.ts +496 -0
  244. package/lib/types/utils.d.ts +23 -0
  245. package/lib/types/worker.d.ts +44 -0
  246. package/lib/types.js +8 -1
  247. package/lib/utils.js +18 -3
  248. package/lib/worker.js +32 -15
  249. package/package.json +26 -36
  250. package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
  251. package/src/{Atlaspack.js → Atlaspack.ts} +181 -72
  252. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  253. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  254. package/src/{BundleGraph.js → BundleGraph.ts} +575 -145
  255. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  256. package/src/{Dependency.js → Dependency.ts} +59 -42
  257. package/src/{Environment.js → Environment.ts} +24 -15
  258. package/src/EnvironmentManager.ts +154 -0
  259. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  260. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  261. package/src/{PackagerRunner.js → PackagerRunner.ts} +114 -159
  262. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  263. package/src/{RequestTracker.js → RequestTracker.ts} +444 -355
  264. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +178 -61
  265. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +10 -1
  266. package/src/{Transformation.js → Transformation.ts} +110 -65
  267. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +45 -49
  268. package/src/{Validation.js → Validation.ts} +32 -17
  269. package/src/{applyRuntimes.js → applyRuntimes.ts} +135 -26
  270. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  271. package/src/atlaspack-v3/AtlaspackV3.ts +183 -0
  272. package/src/atlaspack-v3/NapiWorkerPool.ts +129 -0
  273. package/src/atlaspack-v3/{fs.js → fs.ts} +8 -4
  274. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  275. package/src/atlaspack-v3/jsCallable.ts +14 -0
  276. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  277. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  278. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  279. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  280. package/src/atlaspack-v3/worker/compat/index.ts +8 -0
  281. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  282. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  283. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  284. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  285. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  286. package/src/atlaspack-v3/worker/index.js +2 -1
  287. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  288. package/src/atlaspack-v3/worker/worker.ts +548 -0
  289. package/src/{constants.js → constants.ts} +0 -3
  290. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  291. package/src/index.ts +18 -0
  292. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  293. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  294. package/src/{projectPath.js → projectPath.ts} +20 -9
  295. package/src/public/{Asset.js → Asset.ts} +41 -28
  296. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  297. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  298. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  299. package/src/public/{Config.js → Config.ts} +171 -33
  300. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  301. package/src/public/{Environment.js → Environment.ts} +28 -17
  302. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  303. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  304. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  305. package/src/public/{Target.js → Target.ts} +10 -8
  306. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  307. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +117 -90
  308. package/src/requests/AssetGraphRequestRust.ts +557 -0
  309. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  310. package/src/requests/AtlaspackBuildRequest.ts +168 -0
  311. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  312. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +119 -199
  313. package/src/requests/BundleGraphRequestRust.ts +470 -0
  314. package/src/requests/BundleGraphRequestUtils.ts +323 -0
  315. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  316. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  317. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  318. package/src/requests/{PackageRequest.js → PackageRequest.ts} +52 -25
  319. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  320. package/src/requests/{TargetRequest.js → TargetRequest.ts} +265 -179
  321. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  322. package/src/requests/WriteBundleRequest.ts +734 -0
  323. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +134 -50
  324. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  325. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  326. package/src/{resolveOptions.js → resolveOptions.ts} +57 -27
  327. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  328. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  329. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  330. package/src/types.ts +651 -0
  331. package/src/{utils.js → utils.ts} +52 -21
  332. package/src/{worker.js → worker.ts} +50 -42
  333. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +5 -8
  334. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  335. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  336. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  337. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  338. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  339. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  340. package/test/Environment.test.ts +153 -0
  341. package/test/EnvironmentManager.test.ts +188 -0
  342. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  343. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  344. package/test/PackagerRunner.test.ts +0 -0
  345. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  346. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  347. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  348. package/test/PublicEnvironment.test.ts +49 -0
  349. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  350. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +136 -58
  351. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  352. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +91 -92
  353. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  354. package/test/fixtures/custom-targets/package.json +6 -0
  355. package/test/public/Config.test.ts +104 -0
  356. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  357. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  358. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  359. package/test/requests/WriteBundleRequest.test.ts +602 -0
  360. package/test/{test-utils.js → test-utils.ts} +3 -4
  361. package/test/{utils.test.js → utils.test.ts} +1 -3
  362. package/tsconfig.json +60 -0
  363. package/tsconfig.tsbuildinfo +1 -0
  364. package/index.d.ts +0 -30
  365. package/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
  366. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  367. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  368. package/src/atlaspack-v3/jsCallable.js +0 -18
  369. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  370. package/src/atlaspack-v3/worker/compat/plugin-logger.js +0 -47
  371. package/src/atlaspack-v3/worker/worker.js +0 -369
  372. package/src/index.js +0 -13
  373. package/src/requests/AssetGraphRequestRust.js +0 -263
  374. package/src/requests/AtlaspackBuildRequest.js +0 -111
  375. package/src/requests/WriteBundleRequest.js +0 -369
  376. package/src/types.js +0 -600
  377. package/test/Environment.test.js +0 -119
  378. package/test/PackagerRunner.test.js +0 -27
  379. package/test/PublicEnvironment.test.js +0 -27
  380. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -1,13 +1,10 @@
1
- // @flow strict-local
2
-
3
- import type {Async, Bundle as IBundle, Namer} from '@atlaspack/types';
1
+ import type {Async} from '@atlaspack/types';
4
2
  import type {SharedReference} from '@atlaspack/workers';
5
3
  import type {AtlaspackConfig, LoadedPlugin} from '../AtlaspackConfig';
6
4
  import type {StaticRunOpts, RunAPI} from '../RequestTracker';
7
5
  import type {
8
6
  Asset,
9
7
  AssetGroup,
10
- Bundle as InternalBundle,
11
8
  Config,
12
9
  DevDepRequest,
13
10
  AtlaspackOptions,
@@ -17,19 +14,15 @@ import type {ConfigAndCachePath} from './AtlaspackConfigRequest';
17
14
 
18
15
  import fs from 'fs';
19
16
  import invariant from 'assert';
20
- import assert from 'assert';
21
17
  import nullthrows from 'nullthrows';
22
- import {PluginLogger} from '@atlaspack/logger';
18
+ import {instrumentAsync, PluginLogger} from '@atlaspack/logger';
23
19
  import {getFeatureFlag} from '@atlaspack/feature-flags';
24
20
  import ThrowableDiagnostic, {errorToDiagnostic} from '@atlaspack/diagnostic';
25
21
  import AssetGraph from '../AssetGraph';
26
- import BundleGraph from '../public/BundleGraph';
27
22
  import InternalBundleGraph, {bundleGraphEdgeTypes} from '../BundleGraph';
28
23
  import MutableBundleGraph from '../public/MutableBundleGraph';
29
- import {Bundle, NamedBundle} from '../public/Bundle';
30
24
  import {report} from '../ReporterRunner';
31
25
  import dumpGraphToGraphViz from '../dumpGraphToGraphViz';
32
- import {unique, setSymmetricDifference} from '@atlaspack/utils';
33
26
  import {hashString} from '@atlaspack/rust';
34
27
  import PluginOptions from '../public/PluginOptions';
35
28
  import applyRuntimes from '../applyRuntimes';
@@ -42,19 +35,16 @@ import {
42
35
  createDevDependency,
43
36
  getDevDepRequests,
44
37
  invalidateDevDeps,
45
- runDevDepRequest,
46
38
  } from './DevDepRequest';
47
- import {createConfig} from '../InternalConfig';
48
- import {
49
- loadPluginConfig,
50
- runConfigRequest,
51
- type PluginWithLoadConfig,
52
- } from './ConfigRequest';
39
+ import {PluginWithLoadConfig} from './ConfigRequest';
40
+ import {fromProjectPathRelative} from '../projectPath';
53
41
  import {
54
- joinProjectPath,
55
- fromProjectPathRelative,
56
- toProjectPathUnsafe,
57
- } from '../projectPath';
42
+ validateBundles,
43
+ nameBundle,
44
+ loadPluginConfigWithDevDeps,
45
+ runDevDepRequest as runDevDepRequestShared,
46
+ dumpBundleGraphSnapshot,
47
+ } from './BundleGraphRequestUtils';
58
48
  import createAssetGraphRequestJS from './AssetGraphRequest';
59
49
  import {createAssetGraphRequestRust} from './AssetGraphRequestRust';
60
50
  import {tracer, PluginTracer} from '@atlaspack/profiler';
@@ -66,34 +56,30 @@ import {
66
56
  } from './asset-graph-dot';
67
57
  import {Priority} from '../types';
68
58
 
69
- type BundleGraphRequestInput = {|
70
- requestedAssetIds: Set<string>,
71
- signal?: AbortSignal,
72
- optionsRef: SharedReference,
73
- |};
74
-
75
- type BundleGraphRequestResult = {|
76
- bundleGraph: InternalBundleGraph,
77
- |};
59
+ type BundleGraphRequestInput = {
60
+ requestedAssetIds: Set<string>;
61
+ signal?: AbortSignal;
62
+ optionsRef: SharedReference;
63
+ };
78
64
 
79
- type RunInput = {|
80
- input: BundleGraphRequestInput,
81
- ...StaticRunOpts<BundleGraphResult>,
82
- |};
65
+ type RunInput = {
66
+ input: BundleGraphRequestInput;
67
+ } & StaticRunOpts<BundleGraphResult>;
83
68
 
84
69
  // TODO: Rename to BundleGraphRequestResult
85
- export type BundleGraphResult = {|
86
- bundleGraph: InternalBundleGraph,
87
- changedAssets: Map<string, Asset>,
88
- assetRequests: Array<AssetGroup>,
89
- |};
90
-
91
- type BundleGraphRequest = {|
92
- id: string,
93
- +type: typeof requestTypes.bundle_graph_request,
94
- run: (RunInput) => Async<BundleGraphResult>,
95
- input: BundleGraphRequestInput,
96
- |};
70
+ export type BundleGraphResult = {
71
+ bundleGraph: InternalBundleGraph;
72
+ changedAssets: Map<string, Asset>;
73
+ assetRequests: Array<AssetGroup>;
74
+ didIncrementallyBundle: boolean;
75
+ };
76
+
77
+ type BundleGraphRequest = {
78
+ id: string;
79
+ readonly type: typeof requestTypes.bundle_graph_request;
80
+ run: (arg1: RunInput) => Async<BundleGraphResult>;
81
+ input: BundleGraphRequestInput;
82
+ };
97
83
 
98
84
  function applySideEffectsForLoadableImports(assetGraph: AssetGraph) {
99
85
  // Avoid revisiting nodes
@@ -147,9 +133,10 @@ export default function createBundleGraphRequest(
147
133
  let {optionsRef, requestedAssetIds, signal} = input.input;
148
134
  let measurement = tracer.createMeasurement('building');
149
135
 
150
- let createAssetGraphRequest = input.rustAtlaspack
151
- ? createAssetGraphRequestRust(input.rustAtlaspack)
152
- : createAssetGraphRequestJS;
136
+ let createAssetGraphRequest =
137
+ getFeatureFlag('atlaspackV3') && input.rustAtlaspack
138
+ ? createAssetGraphRequestRust(input.rustAtlaspack)
139
+ : createAssetGraphRequestJS;
153
140
 
154
141
  let request = createAssetGraphRequest({
155
142
  name: 'Main',
@@ -159,14 +146,17 @@ export default function createBundleGraphRequest(
159
146
  lazyIncludes: options.lazyIncludes,
160
147
  lazyExcludes: options.lazyExcludes,
161
148
  requestedAssetIds,
149
+ skipSymbolProp: getFeatureFlag('rustSymbolTracker'),
162
150
  });
163
151
 
164
- let {assetGraph, changedAssets, assetRequests} = await api.runRequest(
165
- request,
166
- {
167
- force:
168
- Boolean(input.rustAtlaspack) ||
169
- (options.shouldBuildLazily && requestedAssetIds.size > 0),
152
+ let {assetGraph, changedAssets, assetRequests} = await instrumentAsync(
153
+ 'asset-graph-request',
154
+ () => {
155
+ return api.runRequest(request, {
156
+ force:
157
+ Boolean(input.rustAtlaspack) ||
158
+ (options.shouldBuildLazily && requestedAssetIds.size > 0),
159
+ });
170
160
  },
171
161
  );
172
162
 
@@ -198,7 +188,11 @@ export default function createBundleGraphRequest(
198
188
  // force: true,
199
189
  // },
200
190
  // );
201
- // require('./asset-graph-diff.js')(jsAssetGraph, assetGraph);
191
+ // require('./asset-graph-diff.ts')(
192
+ // jsAssetGraph,
193
+ // assetGraph,
194
+ // options.projectRoot,
195
+ // );
202
196
  // }
203
197
 
204
198
  measurement && measurement.end();
@@ -245,7 +239,7 @@ export default function createBundleGraphRequest(
245
239
  }
246
240
 
247
241
  await dumpGraphToGraphViz(
248
- // $FlowFixMe Added in Flow 0.121.0 upgrade in #4381 (Windows only)
242
+ // @ts-expect-error TS2345
249
243
  res.bundleGraph._graph,
250
244
  'BundleGraph',
251
245
  bundleGraphEdgeTypes,
@@ -283,21 +277,12 @@ class BundlerRunner {
283
277
  this.pluginOptions = new PluginOptions(
284
278
  optionsProxy(this.options, api.invalidateOnOptionChange),
285
279
  );
286
- if (getFeatureFlag('cachePerformanceImprovements')) {
287
- const key = hashString(
280
+ this.cacheKey =
281
+ hashString(
288
282
  `${ATLASPACK_VERSION}:BundleGraph:${
289
283
  JSON.stringify(options.entries) ?? ''
290
284
  }${options.mode}${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
291
- );
292
- this.cacheKey = `BundleGraph/${ATLASPACK_VERSION}/${options.mode}/${key}`;
293
- } else {
294
- this.cacheKey =
295
- hashString(
296
- `${ATLASPACK_VERSION}:BundleGraph:${
297
- JSON.stringify(options.entries) ?? ''
298
- }${options.mode}${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
299
- ) + '-BundleGraph';
300
- }
285
+ ) + '-BundleGraph';
301
286
  }
302
287
 
303
288
  async loadConfigs() {
@@ -316,62 +301,47 @@ class BundlerRunner {
316
301
  }
317
302
  }
318
303
 
319
- async loadConfig<T: PluginWithLoadConfig>(plugin: LoadedPlugin<T>) {
320
- let config = createConfig({
321
- plugin: plugin.name,
322
- searchPath: toProjectPathUnsafe('index'),
323
- });
324
-
325
- await loadPluginConfig(plugin, config, this.options);
326
- await runConfigRequest(this.api, config);
327
- for (let devDep of config.devDeps) {
328
- let devDepRequest = await createDevDependency(
329
- devDep,
330
- this.previousDevDeps,
331
- this.options,
332
- );
333
- await this.runDevDepRequest(devDepRequest);
334
- }
335
-
336
- this.configs.set(plugin.name, config);
304
+ async loadConfig<T extends PluginWithLoadConfig>(plugin: LoadedPlugin<T>) {
305
+ await loadPluginConfigWithDevDeps(
306
+ plugin,
307
+ this.options,
308
+ this.api,
309
+ this.previousDevDeps,
310
+ this.devDepRequests,
311
+ this.configs,
312
+ );
337
313
  }
338
314
 
339
315
  async runDevDepRequest(devDepRequest: DevDepRequest | DevDepRequestRef) {
340
- let {specifier, resolveFrom} = devDepRequest;
341
- let key = `${specifier}:${fromProjectPathRelative(resolveFrom)}`;
342
- this.devDepRequests.set(key, devDepRequest);
343
- await runDevDepRequest(this.api, devDepRequest);
316
+ await runDevDepRequestShared(this.api, devDepRequest, this.devDepRequests);
344
317
  }
345
318
 
346
319
  async bundle({
347
320
  graph,
348
321
  changedAssets,
349
322
  assetRequests,
350
- }: {|
351
- graph: AssetGraph,
352
- changedAssets: Map<string, Asset>,
353
- assetRequests: Array<AssetGroup>,
354
- |}): Promise<BundleGraphResult> {
323
+ }: {
324
+ graph: AssetGraph;
325
+ changedAssets: Map<string, Asset>;
326
+ assetRequests: Array<AssetGroup>;
327
+ }): Promise<BundleGraphResult> {
355
328
  report({
356
329
  type: 'buildProgress',
357
330
  phase: 'bundling',
358
331
  });
359
-
332
+ let didIncrementallyBundle = false;
360
333
  await this.loadConfigs();
361
334
 
362
335
  let plugin = await this.config.getBundler();
363
336
  let {plugin: bundler, name, resolveFrom} = plugin;
364
337
 
365
338
  // if a previous asset graph hash is passed in, check if the bundle graph is also available
366
- let previousBundleGraphResult: ?BundleGraphRequestResult;
367
- if (graph.safeToIncrementallyBundle) {
368
- try {
369
- previousBundleGraphResult = await this.api.getPreviousResult();
370
- } catch {
371
- // if the bundle graph had an error or was removed, don't fail the build
372
- }
373
- }
374
- if (previousBundleGraphResult == null) {
339
+ const previousBundleGraphResult: BundleGraphResult | null | undefined =
340
+ await this.api.getPreviousResult();
341
+ const canIncrementallyBundle =
342
+ previousBundleGraphResult != null && graph.canIncrementallyBundle();
343
+
344
+ if (graph.safeToIncrementallyBundle && previousBundleGraphResult == null) {
375
345
  graph.safeToIncrementallyBundle = false;
376
346
  }
377
347
 
@@ -383,7 +353,7 @@ class BundlerRunner {
383
353
  category: 'bundle',
384
354
  });
385
355
  try {
386
- if (previousBundleGraphResult) {
356
+ if (canIncrementallyBundle && previousBundleGraphResult) {
387
357
  internalBundleGraph = previousBundleGraphResult.bundleGraph;
388
358
  for (let changedAssetId of changedAssets.keys()) {
389
359
  // Copy over the whole node to also have correct symbol data
@@ -393,6 +363,7 @@ class BundlerRunner {
393
363
  invariant(changedAssetNode.type === 'asset');
394
364
  internalBundleGraph.updateAsset(changedAssetNode);
395
365
  }
366
+ didIncrementallyBundle = true;
396
367
  } else {
397
368
  internalBundleGraph = InternalBundleGraph.fromAssetGraph(
398
369
  graph,
@@ -401,7 +372,7 @@ class BundlerRunner {
401
372
  invariant(internalBundleGraph != null); // ensures the graph was created
402
373
 
403
374
  await dumpGraphToGraphViz(
404
- // $FlowFixMe
375
+ // @ts-expect-error TS2345
405
376
  internalBundleGraph._graph,
406
377
  'before_bundle',
407
378
  bundleGraphEdgeTypes,
@@ -426,16 +397,20 @@ class BundlerRunner {
426
397
  }
427
398
 
428
399
  // this the normal bundle workflow (bundle, optimizing, run-times, naming)
429
- await bundler.bundle({
430
- bundleGraph: mutableBundleGraph,
431
- config: this.configs.get(plugin.name)?.result,
432
- options: this.pluginOptions,
433
- logger,
434
- tracer,
400
+ await instrumentAsync('bundle (V2)', async () => {
401
+ await bundler.bundle({
402
+ bundleGraph: mutableBundleGraph,
403
+ config: this.configs.get(plugin.name)?.result,
404
+ options: this.pluginOptions,
405
+ logger,
406
+ tracer,
407
+ });
435
408
  });
436
409
 
437
410
  measurement && measurement.end();
438
411
 
412
+ dumpBundleGraphSnapshot(internalBundleGraph, 'js');
413
+
439
414
  if (this.pluginOptions.mode === 'production') {
440
415
  let optimizeMeasurement;
441
416
  try {
@@ -452,7 +427,7 @@ class BundlerRunner {
452
427
  options: this.pluginOptions,
453
428
  logger,
454
429
  });
455
- } catch (e) {
430
+ } catch (e: any) {
456
431
  throw new ThrowableDiagnostic({
457
432
  diagnostic: errorToDiagnostic(e, {
458
433
  origin: plugin.name,
@@ -461,7 +436,7 @@ class BundlerRunner {
461
436
  } finally {
462
437
  optimizeMeasurement && optimizeMeasurement.end();
463
438
  await dumpGraphToGraphViz(
464
- // $FlowFixMe[incompatible-call]
439
+ // @ts-expect-error TS2345
465
440
  internalBundleGraph._graph,
466
441
  'after_optimize',
467
442
  );
@@ -480,13 +455,14 @@ class BundlerRunner {
480
455
  );
481
456
  await this.runDevDepRequest(devDepRequest);
482
457
  }
483
- } catch (e) {
458
+ } catch (e: any) {
484
459
  if (internalBundleGraph != null) {
485
460
  this.api.storeResult(
486
461
  {
487
462
  bundleGraph: internalBundleGraph,
488
463
  changedAssets: new Map(),
489
464
  assetRequests: [],
465
+ didIncrementallyBundle,
490
466
  },
491
467
  this.cacheKey,
492
468
  );
@@ -500,7 +476,7 @@ class BundlerRunner {
500
476
  } finally {
501
477
  if (internalBundleGraph != null) {
502
478
  await dumpGraphToGraphViz(
503
- // $FlowFixMe[incompatible-call]
479
+ // @ts-expect-error TS2345
504
480
  internalBundleGraph._graph,
505
481
  'after_bundle',
506
482
  bundleGraphEdgeTypes,
@@ -509,28 +485,37 @@ class BundlerRunner {
509
485
  }
510
486
 
511
487
  let changedRuntimes = new Map();
512
- if (!previousBundleGraphResult) {
488
+ if (!previousBundleGraphResult || !canIncrementallyBundle) {
513
489
  let namers = await this.config.getNamers();
514
490
  // inline bundles must still be named so the PackagerRunner
515
491
  // can match them to the correct packager/optimizer plugins.
516
492
  let bundles = internalBundleGraph.getBundles({includeInline: true});
517
493
  await Promise.all(
518
494
  bundles.map((bundle) =>
519
- this.nameBundle(namers, bundle, internalBundleGraph),
495
+ nameBundle(
496
+ namers,
497
+ bundle,
498
+ internalBundleGraph,
499
+ this.options,
500
+ this.pluginOptions,
501
+ this.configs,
502
+ ),
520
503
  ),
521
504
  );
522
505
 
523
- changedRuntimes = await applyRuntimes({
524
- bundleGraph: internalBundleGraph,
525
- api: this.api,
526
- config: this.config,
527
- options: this.options,
528
- optionsRef: this.optionsRef,
529
- pluginOptions: this.pluginOptions,
530
- previousDevDeps: this.previousDevDeps,
531
- devDepRequests: this.devDepRequests,
532
- configs: this.configs,
533
- });
506
+ changedRuntimes = await instrumentAsync('applyRuntimes', () =>
507
+ applyRuntimes({
508
+ bundleGraph: internalBundleGraph,
509
+ api: this.api,
510
+ config: this.config,
511
+ options: this.options,
512
+ optionsRef: this.optionsRef,
513
+ pluginOptions: this.pluginOptions,
514
+ previousDevDeps: this.previousDevDeps,
515
+ devDepRequests: this.devDepRequests,
516
+ configs: this.configs,
517
+ }),
518
+ );
534
519
 
535
520
  // Add dev deps for namers, AFTER running them to account for lazy require().
536
521
  for (let namer of namers) {
@@ -545,14 +530,14 @@ class BundlerRunner {
545
530
  await this.runDevDepRequest(devDepRequest);
546
531
  }
547
532
 
548
- this.validateBundles(internalBundleGraph);
533
+ validateBundles(internalBundleGraph);
549
534
 
550
535
  // Pre-compute the hashes for each bundle so they are only computed once and shared between workers.
551
536
  internalBundleGraph.getBundleGraphHash();
552
537
  }
553
538
 
554
539
  await dumpGraphToGraphViz(
555
- // $FlowFixMe
540
+ // @ts-expect-error TS2345
556
541
  internalBundleGraph._graph,
557
542
  'after_runtimes',
558
543
  bundleGraphEdgeTypes,
@@ -563,6 +548,7 @@ class BundlerRunner {
563
548
  bundleGraph: internalBundleGraph,
564
549
  changedAssets: new Map(),
565
550
  assetRequests: [],
551
+ didIncrementallyBundle,
566
552
  },
567
553
  this.cacheKey,
568
554
  );
@@ -571,73 +557,7 @@ class BundlerRunner {
571
557
  bundleGraph: internalBundleGraph,
572
558
  changedAssets: changedRuntimes,
573
559
  assetRequests,
560
+ didIncrementallyBundle,
574
561
  };
575
562
  }
576
-
577
- validateBundles(bundleGraph: InternalBundleGraph): void {
578
- let bundles = bundleGraph.getBundles();
579
-
580
- let bundleNames = bundles.map((b) =>
581
- joinProjectPath(b.target.distDir, nullthrows(b.name)),
582
- );
583
- assert.deepEqual(
584
- bundleNames,
585
- unique(bundleNames),
586
- 'Bundles must have unique name. Conflicting names: ' +
587
- [
588
- ...setSymmetricDifference(
589
- new Set(bundleNames),
590
- new Set(unique(bundleNames)),
591
- ),
592
- ].join(),
593
- );
594
- }
595
-
596
- async nameBundle(
597
- namers: Array<LoadedPlugin<Namer<mixed>>>,
598
- internalBundle: InternalBundle,
599
- internalBundleGraph: InternalBundleGraph,
600
- ): Promise<void> {
601
- let bundle = Bundle.get(internalBundle, internalBundleGraph, this.options);
602
- let bundleGraph = new BundleGraph<IBundle>(
603
- internalBundleGraph,
604
- NamedBundle.get.bind(NamedBundle),
605
- this.options,
606
- );
607
-
608
- for (let namer of namers) {
609
- let measurement;
610
- try {
611
- measurement = tracer.createMeasurement(namer.name, 'namer', bundle.id);
612
- let name = await namer.plugin.name({
613
- bundle,
614
- bundleGraph,
615
- config: this.configs.get(namer.name)?.result,
616
- options: this.pluginOptions,
617
- logger: new PluginLogger({origin: namer.name}),
618
- tracer: new PluginTracer({origin: namer.name, category: 'namer'}),
619
- });
620
-
621
- if (name != null) {
622
- internalBundle.name = name;
623
- let {hashReference} = internalBundle;
624
- internalBundle.displayName = name.includes(hashReference)
625
- ? name.replace(hashReference, '[hash]')
626
- : name;
627
-
628
- return;
629
- }
630
- } catch (e) {
631
- throw new ThrowableDiagnostic({
632
- diagnostic: errorToDiagnostic(e, {
633
- origin: namer.name,
634
- }),
635
- });
636
- } finally {
637
- measurement && measurement.end();
638
- }
639
- }
640
-
641
- throw new Error('Unable to name bundle');
642
- }
643
563
  }