@atlaspack/core 2.16.2-canary.5 → 2.16.2-canary.500

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 +1452 -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 +160 -57
  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 +38 -40
  96. package/lib/ReporterRunner.js +8 -12
  97. package/lib/RequestTracker.js +336 -168
  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 +23 -13
  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 +239 -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 +25 -7
  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 +60 -27
  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 +67 -124
  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 +336 -18
  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 +35 -10
  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 +27 -33
  250. package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
  251. package/src/{Atlaspack.js → Atlaspack.ts} +203 -73
  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} +109 -103
  262. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  263. package/src/{RequestTracker.js → RequestTracker.ts} +672 -347
  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} +50 -39
  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} +102 -50
  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} +114 -77
  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} +117 -187
  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} +55 -23
  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} +149 -59
  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} +4 -11
  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 -362
  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 -362
  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,18 +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';
19
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
23
20
  import ThrowableDiagnostic, {errorToDiagnostic} from '@atlaspack/diagnostic';
24
21
  import AssetGraph from '../AssetGraph';
25
- import BundleGraph from '../public/BundleGraph';
26
22
  import InternalBundleGraph, {bundleGraphEdgeTypes} from '../BundleGraph';
27
23
  import MutableBundleGraph from '../public/MutableBundleGraph';
28
- import {Bundle, NamedBundle} from '../public/Bundle';
29
24
  import {report} from '../ReporterRunner';
30
25
  import dumpGraphToGraphViz from '../dumpGraphToGraphViz';
31
- import {unique, setSymmetricDifference} from '@atlaspack/utils';
32
26
  import {hashString} from '@atlaspack/rust';
33
27
  import PluginOptions from '../public/PluginOptions';
34
28
  import applyRuntimes from '../applyRuntimes';
@@ -41,19 +35,16 @@ import {
41
35
  createDevDependency,
42
36
  getDevDepRequests,
43
37
  invalidateDevDeps,
44
- runDevDepRequest,
45
38
  } from './DevDepRequest';
46
- import {createConfig} from '../InternalConfig';
47
- import {
48
- loadPluginConfig,
49
- runConfigRequest,
50
- type PluginWithLoadConfig,
51
- } from './ConfigRequest';
39
+ import {PluginWithLoadConfig} from './ConfigRequest';
40
+ import {fromProjectPathRelative} from '../projectPath';
52
41
  import {
53
- joinProjectPath,
54
- fromProjectPathRelative,
55
- toProjectPathUnsafe,
56
- } from '../projectPath';
42
+ validateBundles,
43
+ nameBundle,
44
+ loadPluginConfigWithDevDeps,
45
+ runDevDepRequest as runDevDepRequestShared,
46
+ dumpBundleGraphSnapshot,
47
+ } from './BundleGraphRequestUtils';
57
48
  import createAssetGraphRequestJS from './AssetGraphRequest';
58
49
  import {createAssetGraphRequestRust} from './AssetGraphRequestRust';
59
50
  import {tracer, PluginTracer} from '@atlaspack/profiler';
@@ -65,34 +56,30 @@ import {
65
56
  } from './asset-graph-dot';
66
57
  import {Priority} from '../types';
67
58
 
68
- type BundleGraphRequestInput = {|
69
- requestedAssetIds: Set<string>,
70
- signal?: AbortSignal,
71
- optionsRef: SharedReference,
72
- |};
73
-
74
- type BundleGraphRequestResult = {|
75
- bundleGraph: InternalBundleGraph,
76
- |};
59
+ type BundleGraphRequestInput = {
60
+ requestedAssetIds: Set<string>;
61
+ signal?: AbortSignal;
62
+ optionsRef: SharedReference;
63
+ };
77
64
 
78
- type RunInput = {|
79
- input: BundleGraphRequestInput,
80
- ...StaticRunOpts<BundleGraphResult>,
81
- |};
65
+ type RunInput = {
66
+ input: BundleGraphRequestInput;
67
+ } & StaticRunOpts<BundleGraphResult>;
82
68
 
83
69
  // 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
- |};
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
+ };
96
83
 
97
84
  function applySideEffectsForLoadableImports(assetGraph: AssetGraph) {
98
85
  // Avoid revisiting nodes
@@ -146,9 +133,10 @@ export default function createBundleGraphRequest(
146
133
  let {optionsRef, requestedAssetIds, signal} = input.input;
147
134
  let measurement = tracer.createMeasurement('building');
148
135
 
149
- let createAssetGraphRequest = input.rustAtlaspack
150
- ? createAssetGraphRequestRust(input.rustAtlaspack)
151
- : createAssetGraphRequestJS;
136
+ let createAssetGraphRequest =
137
+ getFeatureFlag('atlaspackV3') && input.rustAtlaspack
138
+ ? createAssetGraphRequestRust(input.rustAtlaspack)
139
+ : createAssetGraphRequestJS;
152
140
 
153
141
  let request = createAssetGraphRequest({
154
142
  name: 'Main',
@@ -158,14 +146,17 @@ export default function createBundleGraphRequest(
158
146
  lazyIncludes: options.lazyIncludes,
159
147
  lazyExcludes: options.lazyExcludes,
160
148
  requestedAssetIds,
149
+ skipSymbolProp: getFeatureFlag('rustSymbolTracker'),
161
150
  });
162
151
 
163
- let {assetGraph, changedAssets, assetRequests} = await api.runRequest(
164
- request,
165
- {
166
- force:
167
- Boolean(input.rustAtlaspack) ||
168
- (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
+ });
169
160
  },
170
161
  );
171
162
 
@@ -197,7 +188,11 @@ export default function createBundleGraphRequest(
197
188
  // force: true,
198
189
  // },
199
190
  // );
200
- // require('./asset-graph-diff.js')(jsAssetGraph, assetGraph);
191
+ // require('./asset-graph-diff.ts')(
192
+ // jsAssetGraph,
193
+ // assetGraph,
194
+ // options.projectRoot,
195
+ // );
201
196
  // }
202
197
 
203
198
  measurement && measurement.end();
@@ -244,7 +239,7 @@ export default function createBundleGraphRequest(
244
239
  }
245
240
 
246
241
  await dumpGraphToGraphViz(
247
- // $FlowFixMe Added in Flow 0.121.0 upgrade in #4381 (Windows only)
242
+ // @ts-expect-error TS2345
248
243
  res.bundleGraph._graph,
249
244
  'BundleGraph',
250
245
  bundleGraphEdgeTypes,
@@ -306,62 +301,47 @@ class BundlerRunner {
306
301
  }
307
302
  }
308
303
 
309
- async loadConfig<T: PluginWithLoadConfig>(plugin: LoadedPlugin<T>) {
310
- let config = createConfig({
311
- plugin: plugin.name,
312
- searchPath: toProjectPathUnsafe('index'),
313
- });
314
-
315
- await loadPluginConfig(plugin, config, this.options);
316
- await runConfigRequest(this.api, config);
317
- for (let devDep of config.devDeps) {
318
- let devDepRequest = await createDevDependency(
319
- devDep,
320
- this.previousDevDeps,
321
- this.options,
322
- );
323
- await this.runDevDepRequest(devDepRequest);
324
- }
325
-
326
- 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
+ );
327
313
  }
328
314
 
329
315
  async runDevDepRequest(devDepRequest: DevDepRequest | DevDepRequestRef) {
330
- let {specifier, resolveFrom} = devDepRequest;
331
- let key = `${specifier}:${fromProjectPathRelative(resolveFrom)}`;
332
- this.devDepRequests.set(key, devDepRequest);
333
- await runDevDepRequest(this.api, devDepRequest);
316
+ await runDevDepRequestShared(this.api, devDepRequest, this.devDepRequests);
334
317
  }
335
318
 
336
319
  async bundle({
337
320
  graph,
338
321
  changedAssets,
339
322
  assetRequests,
340
- }: {|
341
- graph: AssetGraph,
342
- changedAssets: Map<string, Asset>,
343
- assetRequests: Array<AssetGroup>,
344
- |}): Promise<BundleGraphResult> {
323
+ }: {
324
+ graph: AssetGraph;
325
+ changedAssets: Map<string, Asset>;
326
+ assetRequests: Array<AssetGroup>;
327
+ }): Promise<BundleGraphResult> {
345
328
  report({
346
329
  type: 'buildProgress',
347
330
  phase: 'bundling',
348
331
  });
349
-
332
+ let didIncrementallyBundle = false;
350
333
  await this.loadConfigs();
351
334
 
352
335
  let plugin = await this.config.getBundler();
353
336
  let {plugin: bundler, name, resolveFrom} = plugin;
354
337
 
355
338
  // 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) {
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) {
365
345
  graph.safeToIncrementallyBundle = false;
366
346
  }
367
347
 
@@ -373,7 +353,7 @@ class BundlerRunner {
373
353
  category: 'bundle',
374
354
  });
375
355
  try {
376
- if (previousBundleGraphResult) {
356
+ if (canIncrementallyBundle && previousBundleGraphResult) {
377
357
  internalBundleGraph = previousBundleGraphResult.bundleGraph;
378
358
  for (let changedAssetId of changedAssets.keys()) {
379
359
  // Copy over the whole node to also have correct symbol data
@@ -383,6 +363,7 @@ class BundlerRunner {
383
363
  invariant(changedAssetNode.type === 'asset');
384
364
  internalBundleGraph.updateAsset(changedAssetNode);
385
365
  }
366
+ didIncrementallyBundle = true;
386
367
  } else {
387
368
  internalBundleGraph = InternalBundleGraph.fromAssetGraph(
388
369
  graph,
@@ -391,7 +372,7 @@ class BundlerRunner {
391
372
  invariant(internalBundleGraph != null); // ensures the graph was created
392
373
 
393
374
  await dumpGraphToGraphViz(
394
- // $FlowFixMe
375
+ // @ts-expect-error TS2345
395
376
  internalBundleGraph._graph,
396
377
  'before_bundle',
397
378
  bundleGraphEdgeTypes,
@@ -416,16 +397,20 @@ class BundlerRunner {
416
397
  }
417
398
 
418
399
  // this the normal bundle workflow (bundle, optimizing, run-times, naming)
419
- await bundler.bundle({
420
- bundleGraph: mutableBundleGraph,
421
- config: this.configs.get(plugin.name)?.result,
422
- options: this.pluginOptions,
423
- logger,
424
- 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
+ });
425
408
  });
426
409
 
427
410
  measurement && measurement.end();
428
411
 
412
+ dumpBundleGraphSnapshot(internalBundleGraph, 'js');
413
+
429
414
  if (this.pluginOptions.mode === 'production') {
430
415
  let optimizeMeasurement;
431
416
  try {
@@ -442,7 +427,7 @@ class BundlerRunner {
442
427
  options: this.pluginOptions,
443
428
  logger,
444
429
  });
445
- } catch (e) {
430
+ } catch (e: any) {
446
431
  throw new ThrowableDiagnostic({
447
432
  diagnostic: errorToDiagnostic(e, {
448
433
  origin: plugin.name,
@@ -451,7 +436,7 @@ class BundlerRunner {
451
436
  } finally {
452
437
  optimizeMeasurement && optimizeMeasurement.end();
453
438
  await dumpGraphToGraphViz(
454
- // $FlowFixMe[incompatible-call]
439
+ // @ts-expect-error TS2345
455
440
  internalBundleGraph._graph,
456
441
  'after_optimize',
457
442
  );
@@ -470,13 +455,14 @@ class BundlerRunner {
470
455
  );
471
456
  await this.runDevDepRequest(devDepRequest);
472
457
  }
473
- } catch (e) {
458
+ } catch (e: any) {
474
459
  if (internalBundleGraph != null) {
475
460
  this.api.storeResult(
476
461
  {
477
462
  bundleGraph: internalBundleGraph,
478
463
  changedAssets: new Map(),
479
464
  assetRequests: [],
465
+ didIncrementallyBundle,
480
466
  },
481
467
  this.cacheKey,
482
468
  );
@@ -490,7 +476,7 @@ class BundlerRunner {
490
476
  } finally {
491
477
  if (internalBundleGraph != null) {
492
478
  await dumpGraphToGraphViz(
493
- // $FlowFixMe[incompatible-call]
479
+ // @ts-expect-error TS2345
494
480
  internalBundleGraph._graph,
495
481
  'after_bundle',
496
482
  bundleGraphEdgeTypes,
@@ -499,28 +485,37 @@ class BundlerRunner {
499
485
  }
500
486
 
501
487
  let changedRuntimes = new Map();
502
- if (!previousBundleGraphResult) {
488
+ if (!previousBundleGraphResult || !canIncrementallyBundle) {
503
489
  let namers = await this.config.getNamers();
504
490
  // inline bundles must still be named so the PackagerRunner
505
491
  // can match them to the correct packager/optimizer plugins.
506
492
  let bundles = internalBundleGraph.getBundles({includeInline: true});
507
493
  await Promise.all(
508
494
  bundles.map((bundle) =>
509
- this.nameBundle(namers, bundle, internalBundleGraph),
495
+ nameBundle(
496
+ namers,
497
+ bundle,
498
+ internalBundleGraph,
499
+ this.options,
500
+ this.pluginOptions,
501
+ this.configs,
502
+ ),
510
503
  ),
511
504
  );
512
505
 
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
- });
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
+ );
524
519
 
525
520
  // Add dev deps for namers, AFTER running them to account for lazy require().
526
521
  for (let namer of namers) {
@@ -535,14 +530,14 @@ class BundlerRunner {
535
530
  await this.runDevDepRequest(devDepRequest);
536
531
  }
537
532
 
538
- this.validateBundles(internalBundleGraph);
533
+ validateBundles(internalBundleGraph);
539
534
 
540
535
  // Pre-compute the hashes for each bundle so they are only computed once and shared between workers.
541
536
  internalBundleGraph.getBundleGraphHash();
542
537
  }
543
538
 
544
539
  await dumpGraphToGraphViz(
545
- // $FlowFixMe
540
+ // @ts-expect-error TS2345
546
541
  internalBundleGraph._graph,
547
542
  'after_runtimes',
548
543
  bundleGraphEdgeTypes,
@@ -553,6 +548,7 @@ class BundlerRunner {
553
548
  bundleGraph: internalBundleGraph,
554
549
  changedAssets: new Map(),
555
550
  assetRequests: [],
551
+ didIncrementallyBundle,
556
552
  },
557
553
  this.cacheKey,
558
554
  );
@@ -561,73 +557,7 @@ class BundlerRunner {
561
557
  bundleGraph: internalBundleGraph,
562
558
  changedAssets: changedRuntimes,
563
559
  assetRequests,
560
+ didIncrementallyBundle,
564
561
  };
565
562
  }
566
-
567
- validateBundles(bundleGraph: InternalBundleGraph): void {
568
- let bundles = bundleGraph.getBundles();
569
-
570
- let bundleNames = bundles.map((b) =>
571
- joinProjectPath(b.target.distDir, nullthrows(b.name)),
572
- );
573
- assert.deepEqual(
574
- bundleNames,
575
- unique(bundleNames),
576
- 'Bundles must have unique name. Conflicting names: ' +
577
- [
578
- ...setSymmetricDifference(
579
- new Set(bundleNames),
580
- new Set(unique(bundleNames)),
581
- ),
582
- ].join(),
583
- );
584
- }
585
-
586
- async nameBundle(
587
- namers: Array<LoadedPlugin<Namer<mixed>>>,
588
- internalBundle: InternalBundle,
589
- internalBundleGraph: InternalBundleGraph,
590
- ): Promise<void> {
591
- let bundle = Bundle.get(internalBundle, internalBundleGraph, this.options);
592
- let bundleGraph = new BundleGraph<IBundle>(
593
- internalBundleGraph,
594
- NamedBundle.get.bind(NamedBundle),
595
- this.options,
596
- );
597
-
598
- for (let namer of namers) {
599
- let measurement;
600
- try {
601
- measurement = tracer.createMeasurement(namer.name, 'namer', bundle.id);
602
- let name = await namer.plugin.name({
603
- bundle,
604
- bundleGraph,
605
- config: this.configs.get(namer.name)?.result,
606
- options: this.pluginOptions,
607
- logger: new PluginLogger({origin: namer.name}),
608
- tracer: new PluginTracer({origin: namer.name, category: 'namer'}),
609
- });
610
-
611
- if (name != null) {
612
- internalBundle.name = name;
613
- let {hashReference} = internalBundle;
614
- internalBundle.displayName = name.includes(hashReference)
615
- ? name.replace(hashReference, '[hash]')
616
- : name;
617
-
618
- return;
619
- }
620
- } catch (e) {
621
- throw new ThrowableDiagnostic({
622
- diagnostic: errorToDiagnostic(e, {
623
- origin: namer.name,
624
- }),
625
- });
626
- } finally {
627
- measurement && measurement.end();
628
- }
629
- }
630
-
631
- throw new Error('Unable to name bundle');
632
- }
633
563
  }