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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/CHANGELOG.md +941 -0
  2. package/dist/AssetGraph.js +591 -0
  3. package/dist/Atlaspack.js +666 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1740 -0
  7. package/dist/CommittedAsset.js +142 -0
  8. package/dist/Dependency.js +125 -0
  9. package/dist/Environment.js +132 -0
  10. package/dist/EnvironmentManager.js +108 -0
  11. package/dist/IdentifierRegistry.js +38 -0
  12. package/dist/InternalConfig.js +37 -0
  13. package/dist/PackagerRunner.js +545 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1360 -0
  16. package/dist/SymbolPropagation.js +620 -0
  17. package/dist/TargetDescriptor.schema.js +143 -0
  18. package/dist/Transformation.js +514 -0
  19. package/dist/UncommittedAsset.js +315 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +383 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +74 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +81 -0
  25. package/dist/atlaspack-v3/fs.js +52 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
  30. package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
  31. package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
  32. package/dist/atlaspack-v3/worker/compat/index.js +25 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-logger.js +26 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  37. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  38. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  39. package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
  40. package/dist/atlaspack-v3/worker/worker.js +381 -0
  41. package/dist/constants.js +17 -0
  42. package/dist/dumpGraphToGraphViz.js +281 -0
  43. package/dist/index.js +62 -0
  44. package/dist/loadAtlaspackPlugin.js +128 -0
  45. package/dist/loadDotEnv.js +41 -0
  46. package/dist/projectPath.js +83 -0
  47. package/dist/public/Asset.js +279 -0
  48. package/dist/public/Bundle.js +224 -0
  49. package/dist/public/BundleGraph.js +371 -0
  50. package/dist/public/BundleGroup.js +53 -0
  51. package/dist/public/Config.js +286 -0
  52. package/dist/public/Dependency.js +138 -0
  53. package/dist/public/Environment.js +278 -0
  54. package/dist/public/MutableBundleGraph.js +277 -0
  55. package/dist/public/PluginOptions.js +80 -0
  56. package/dist/public/Symbols.js +248 -0
  57. package/dist/public/Target.js +69 -0
  58. package/dist/registerCoreWithSerializer.js +38 -0
  59. package/dist/requests/AssetGraphRequest.js +439 -0
  60. package/dist/requests/AssetGraphRequestRust.js +273 -0
  61. package/dist/requests/AssetRequest.js +130 -0
  62. package/dist/requests/AtlaspackBuildRequest.js +92 -0
  63. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  64. package/dist/requests/BundleGraphRequest.js +447 -0
  65. package/dist/requests/ConfigRequest.js +246 -0
  66. package/dist/requests/DevDepRequest.js +204 -0
  67. package/dist/requests/EntryRequest.js +314 -0
  68. package/dist/requests/PackageRequest.js +72 -0
  69. package/dist/requests/PathRequest.js +349 -0
  70. package/dist/requests/TargetRequest.js +1311 -0
  71. package/dist/requests/ValidationRequest.js +49 -0
  72. package/dist/requests/WriteBundleRequest.js +254 -0
  73. package/dist/requests/WriteBundlesRequest.js +184 -0
  74. package/dist/requests/asset-graph-diff.js +128 -0
  75. package/dist/requests/asset-graph-dot.js +131 -0
  76. package/dist/resolveOptions.js +269 -0
  77. package/dist/rustWorkerThreadDylibHack.js +19 -0
  78. package/dist/serializerCore.browser.js +43 -0
  79. package/dist/summarizeRequest.js +39 -0
  80. package/dist/types.js +31 -0
  81. package/dist/utils.js +172 -0
  82. package/dist/worker.js +123 -0
  83. package/lib/AssetGraph.js +111 -14
  84. package/lib/Atlaspack.js +94 -41
  85. package/lib/AtlaspackConfig.js +15 -3
  86. package/lib/AtlaspackConfig.schema.js +16 -5
  87. package/lib/BundleGraph.js +197 -32
  88. package/lib/CommittedAsset.js +7 -1
  89. package/lib/Dependency.js +8 -2
  90. package/lib/Environment.js +15 -8
  91. package/lib/EnvironmentManager.js +143 -0
  92. package/lib/IdentifierRegistry.js +1 -3
  93. package/lib/InternalConfig.js +3 -2
  94. package/lib/PackagerRunner.js +90 -27
  95. package/lib/ReporterRunner.js +6 -9
  96. package/lib/RequestTracker.js +266 -156
  97. package/lib/SymbolPropagation.js +42 -18
  98. package/lib/TargetDescriptor.schema.js +7 -1
  99. package/lib/Transformation.js +66 -15
  100. package/lib/UncommittedAsset.js +33 -12
  101. package/lib/Validation.js +18 -2
  102. package/lib/applyRuntimes.js +96 -4
  103. package/lib/assetUtils.js +15 -5
  104. package/lib/atlaspack-v3/AtlaspackV3.js +52 -14
  105. package/lib/atlaspack-v3/NapiWorkerPool.js +28 -1
  106. package/lib/atlaspack-v3/fs.js +3 -1
  107. package/lib/atlaspack-v3/index.js +28 -1
  108. package/lib/atlaspack-v3/jsCallable.js +0 -2
  109. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  110. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  111. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  112. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  113. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +15 -10
  114. package/lib/atlaspack-v3/worker/compat/plugin-config.js +13 -34
  115. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -0
  116. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  117. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  118. package/lib/atlaspack-v3/worker/index.js +3 -0
  119. package/lib/atlaspack-v3/worker/side-effect-detector.js +215 -0
  120. package/lib/atlaspack-v3/worker/worker.js +199 -71
  121. package/lib/constants.js +0 -1
  122. package/lib/dumpGraphToGraphViz.js +71 -16
  123. package/lib/index.js +45 -1
  124. package/lib/loadDotEnv.js +4 -1
  125. package/lib/projectPath.js +5 -0
  126. package/lib/public/Asset.js +21 -11
  127. package/lib/public/Bundle.js +15 -16
  128. package/lib/public/BundleGraph.js +25 -22
  129. package/lib/public/BundleGroup.js +4 -5
  130. package/lib/public/Config.js +118 -17
  131. package/lib/public/Dependency.js +8 -6
  132. package/lib/public/Environment.js +12 -7
  133. package/lib/public/MutableBundleGraph.js +54 -12
  134. package/lib/public/PluginOptions.js +2 -2
  135. package/lib/public/Symbols.js +11 -11
  136. package/lib/public/Target.js +7 -6
  137. package/lib/registerCoreWithSerializer.js +5 -3
  138. package/lib/requests/AssetGraphRequest.js +74 -27
  139. package/lib/requests/AssetGraphRequestRust.js +140 -64
  140. package/lib/requests/AssetRequest.js +23 -6
  141. package/lib/requests/AtlaspackBuildRequest.js +43 -4
  142. package/lib/requests/AtlaspackConfigRequest.js +27 -16
  143. package/lib/requests/BundleGraphRequest.js +41 -24
  144. package/lib/requests/ConfigRequest.js +53 -4
  145. package/lib/requests/DevDepRequest.js +31 -5
  146. package/lib/requests/EntryRequest.js +2 -0
  147. package/lib/requests/PackageRequest.js +16 -2
  148. package/lib/requests/PathRequest.js +24 -3
  149. package/lib/requests/TargetRequest.js +122 -57
  150. package/lib/requests/ValidationRequest.js +5 -1
  151. package/lib/requests/WriteBundleRequest.js +39 -11
  152. package/lib/requests/WriteBundlesRequest.js +51 -4
  153. package/lib/requests/asset-graph-diff.js +12 -7
  154. package/lib/requests/asset-graph-dot.js +1 -7
  155. package/lib/resolveOptions.js +38 -11
  156. package/lib/rustWorkerThreadDylibHack.js +0 -1
  157. package/lib/types/AssetGraph.d.ts +80 -0
  158. package/lib/types/Atlaspack.d.ts +52 -0
  159. package/lib/types/AtlaspackConfig.d.ts +65 -0
  160. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  161. package/lib/types/BundleGraph.d.ts +184 -0
  162. package/lib/types/CommittedAsset.d.ts +23 -0
  163. package/lib/types/Dependency.d.ts +44 -0
  164. package/lib/types/Environment.d.ts +11 -0
  165. package/lib/types/EnvironmentManager.d.ts +37 -0
  166. package/lib/types/IdentifierRegistry.d.ts +6 -0
  167. package/lib/types/InternalConfig.d.ts +23 -0
  168. package/lib/types/PackagerRunner.d.ts +85 -0
  169. package/lib/types/ReporterRunner.d.ts +25 -0
  170. package/lib/types/RequestTracker.d.ts +385 -0
  171. package/lib/types/SymbolPropagation.d.ts +11 -0
  172. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  173. package/lib/types/Transformation.d.ts +72 -0
  174. package/lib/types/UncommittedAsset.d.ts +61 -0
  175. package/lib/types/Validation.d.ts +37 -0
  176. package/lib/types/applyRuntimes.d.ts +25 -0
  177. package/lib/types/assetUtils.d.ts +42 -0
  178. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +34 -0
  179. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  180. package/lib/types/atlaspack-v3/fs.d.ts +12 -0
  181. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  182. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  183. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  184. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  185. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  186. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  187. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
  188. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  189. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  190. package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
  191. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  192. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  193. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  194. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  195. package/lib/types/atlaspack-v3/worker/worker.d.ts +80 -0
  196. package/lib/types/constants.d.ts +13 -0
  197. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  198. package/lib/types/index.d.ts +8 -0
  199. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  200. package/lib/types/loadDotEnv.d.ts +3 -0
  201. package/lib/types/projectPath.d.ts +19 -0
  202. package/lib/types/public/Asset.d.ts +74 -0
  203. package/lib/types/public/Bundle.d.ts +45 -0
  204. package/lib/types/public/BundleGraph.d.ts +72 -0
  205. package/lib/types/public/BundleGroup.d.ts +12 -0
  206. package/lib/types/public/Config.d.ts +75 -0
  207. package/lib/types/public/Dependency.d.ts +32 -0
  208. package/lib/types/public/Environment.d.ts +34 -0
  209. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  210. package/lib/types/public/PluginOptions.d.ts +25 -0
  211. package/lib/types/public/Symbols.d.ts +81 -0
  212. package/lib/types/public/Target.d.ts +16 -0
  213. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  214. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  215. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  216. package/lib/types/requests/AssetRequest.d.ts +16 -0
  217. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  218. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  219. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  220. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  221. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  222. package/lib/types/requests/EntryRequest.d.ts +36 -0
  223. package/lib/types/requests/PackageRequest.d.ts +27 -0
  224. package/lib/types/requests/PathRequest.d.ts +48 -0
  225. package/lib/types/requests/TargetRequest.d.ts +48 -0
  226. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  227. package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
  228. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  229. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  230. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  231. package/lib/types/resolveOptions.d.ts +3 -0
  232. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  233. package/lib/types/serializerCore.browser.d.ts +3 -0
  234. package/lib/types/summarizeRequest.d.ts +10 -0
  235. package/lib/types/types.d.ts +495 -0
  236. package/lib/types/utils.d.ts +23 -0
  237. package/lib/types/worker.d.ts +44 -0
  238. package/lib/types.js +8 -1
  239. package/lib/utils.js +17 -2
  240. package/lib/worker.js +30 -14
  241. package/package.json +25 -35
  242. package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
  243. package/src/{Atlaspack.js → Atlaspack.ts} +134 -67
  244. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  245. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  246. package/src/{BundleGraph.js → BundleGraph.ts} +383 -140
  247. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  248. package/src/{Dependency.js → Dependency.ts} +59 -42
  249. package/src/{Environment.js → Environment.ts} +24 -15
  250. package/src/EnvironmentManager.ts +154 -0
  251. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  252. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  253. package/src/{PackagerRunner.js → PackagerRunner.ts} +179 -87
  254. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  255. package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
  256. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
  257. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
  258. package/src/{Transformation.js → Transformation.ts} +110 -65
  259. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +60 -39
  260. package/src/{Validation.js → Validation.ts} +32 -17
  261. package/src/{applyRuntimes.js → applyRuntimes.ts} +133 -26
  262. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  263. package/src/atlaspack-v3/AtlaspackV3.ts +143 -0
  264. package/src/atlaspack-v3/NapiWorkerPool.ts +91 -0
  265. package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
  266. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  267. package/src/atlaspack-v3/jsCallable.ts +14 -0
  268. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  269. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  270. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  271. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  272. package/src/atlaspack-v3/worker/compat/index.ts +9 -0
  273. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  274. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  275. package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
  276. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  277. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  278. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  279. package/src/atlaspack-v3/worker/index.js +2 -1
  280. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  281. package/src/atlaspack-v3/worker/worker.ts +531 -0
  282. package/src/{constants.js → constants.ts} +0 -3
  283. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  284. package/src/index.ts +18 -0
  285. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  286. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  287. package/src/{projectPath.js → projectPath.ts} +20 -9
  288. package/src/public/{Asset.js → Asset.ts} +41 -28
  289. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  290. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  291. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  292. package/src/public/{Config.js → Config.ts} +171 -33
  293. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  294. package/src/public/{Environment.js → Environment.ts} +28 -17
  295. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  296. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  297. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  298. package/src/public/{Target.js → Target.ts} +10 -8
  299. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  300. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +129 -80
  301. package/src/requests/AssetGraphRequestRust.ts +364 -0
  302. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  303. package/src/requests/AtlaspackBuildRequest.ts +163 -0
  304. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  305. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +97 -79
  306. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  307. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  308. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  309. package/src/requests/{PackageRequest.js → PackageRequest.ts} +34 -22
  310. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  311. package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
  312. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  313. package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
  314. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
  315. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  316. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  317. package/src/{resolveOptions.js → resolveOptions.ts} +59 -25
  318. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  319. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  320. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  321. package/src/types.ts +650 -0
  322. package/src/{utils.js → utils.ts} +52 -21
  323. package/src/{worker.js → worker.ts} +50 -42
  324. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
  325. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  326. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  327. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  328. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  329. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  330. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  331. package/test/Environment.test.ts +153 -0
  332. package/test/EnvironmentManager.test.ts +188 -0
  333. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  334. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  335. package/test/PackagerRunner.test.ts +0 -0
  336. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  337. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  338. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  339. package/test/PublicEnvironment.test.ts +49 -0
  340. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  341. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
  342. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  343. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
  344. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  345. package/test/fixtures/custom-targets/package.json +6 -0
  346. package/test/public/Config.test.ts +104 -0
  347. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  348. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  349. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  350. package/test/{test-utils.js → test-utils.ts} +4 -11
  351. package/test/{utils.test.js → utils.test.ts} +1 -3
  352. package/tsconfig.json +60 -0
  353. package/tsconfig.tsbuildinfo +1 -0
  354. package/index.d.ts +0 -30
  355. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  356. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  357. package/src/atlaspack-v3/jsCallable.js +0 -18
  358. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  359. package/src/atlaspack-v3/worker/worker.js +0 -362
  360. package/src/index.js +0 -13
  361. package/src/requests/AssetGraphRequestRust.js +0 -263
  362. package/src/requests/AtlaspackBuildRequest.js +0 -111
  363. package/src/types.js +0 -600
  364. package/test/Environment.test.js +0 -119
  365. package/test/PackagerRunner.test.js +0 -27
  366. package/test/PublicEnvironment.test.js +0 -27
  367. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {NodeId} from '@atlaspack/graph';
4
2
  import type {Async} from '@atlaspack/types';
5
3
  import type {SharedReference} from '@atlaspack/workers';
@@ -20,6 +18,7 @@ import logger from '@atlaspack/logger';
20
18
 
21
19
  import invariant from 'assert';
22
20
  import nullthrows from 'nullthrows';
21
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
23
22
  import {PromiseQueue, setEqual} from '@atlaspack/utils';
24
23
  import {hashString} from '@atlaspack/rust';
25
24
  import ThrowableDiagnostic from '@atlaspack/diagnostic';
@@ -30,44 +29,47 @@ import createEntryRequest from './EntryRequest';
30
29
  import createTargetRequest from './TargetRequest';
31
30
  import createAssetRequest from './AssetRequest';
32
31
  import createPathRequest from './PathRequest';
33
- import {type ProjectPath, fromProjectPathRelative} from '../projectPath';
32
+ import {ProjectPath, fromProjectPathRelative} from '../projectPath';
34
33
  import dumpGraphToGraphViz from '../dumpGraphToGraphViz';
35
34
  import {propagateSymbols} from '../SymbolPropagation';
36
35
  import {requestTypes} from '../RequestTracker';
37
36
 
38
- export type AssetGraphRequestInput = {|
39
- entries?: Array<ProjectPath>,
40
- assetGroups?: Array<AssetGroup>,
41
- optionsRef: SharedReference,
42
- name: string,
43
- shouldBuildLazily?: boolean,
44
- lazyIncludes?: RegExp[],
45
- lazyExcludes?: RegExp[],
46
- requestedAssetIds?: Set<string>,
47
- |};
48
-
49
- export type AssetGraphRequestResult = {|
50
- assetGraph: AssetGraph,
37
+ export type AssetGraphRequestInput = {
38
+ entries?: Array<ProjectPath>;
39
+ assetGroups?: Array<AssetGroup>;
40
+ optionsRef: SharedReference;
41
+ name: string;
42
+ shouldBuildLazily?: boolean;
43
+ lazyIncludes?: RegExp[];
44
+ lazyExcludes?: RegExp[];
45
+ requestedAssetIds?: Set<string>;
46
+ skipSymbolProp?: boolean;
47
+ };
48
+
49
+ export type AssetGraphRequestResult = {
50
+ assetGraph: AssetGraph;
51
51
  /** Assets added/modified since the last successful build. */
52
- changedAssets: Map<string, Asset>,
52
+ changedAssets: Map<string, Asset>;
53
53
  /** Assets added/modified since the last symbol propagation invocation. */
54
- changedAssetsPropagation: Set<string>,
55
- assetGroupsWithRemovedParents: ?Set<NodeId>,
56
- previousSymbolPropagationErrors: ?Map<NodeId, Array<Diagnostic>>,
57
- assetRequests: Array<AssetGroup>,
58
- |};
59
-
60
- type RunInput = {|
61
- input: AssetGraphRequestInput,
62
- ...StaticRunOpts<AssetGraphRequestResult>,
63
- |};
64
-
65
- type AssetGraphRequest = {|
66
- id: string,
67
- +type: typeof requestTypes.asset_graph_request,
68
- run: (RunInput) => Async<AssetGraphRequestResult>,
69
- input: AssetGraphRequestInput,
70
- |};
54
+ changedAssetsPropagation: Set<string>;
55
+ assetGroupsWithRemovedParents: Set<NodeId> | null | undefined;
56
+ previousSymbolPropagationErrors:
57
+ | Map<NodeId, Array<Diagnostic>>
58
+ | null
59
+ | undefined;
60
+ assetRequests: Array<AssetGroup>;
61
+ };
62
+
63
+ type RunInput = {
64
+ input: AssetGraphRequestInput;
65
+ } & StaticRunOpts<AssetGraphRequestResult>;
66
+
67
+ type AssetGraphRequest = {
68
+ id: string;
69
+ readonly type: typeof requestTypes.asset_graph_request;
70
+ run: (arg1: RunInput) => Async<AssetGraphRequestResult>;
71
+ input: AssetGraphRequestInput;
72
+ };
71
73
 
72
74
  export default function createAssetGraphRequest(
73
75
  requestInput: AssetGraphRequestInput,
@@ -80,9 +82,14 @@ export default function createAssetGraphRequest(
80
82
  await input.api.getPreviousResult<AssetGraphRequestResult>();
81
83
 
82
84
  let builder = new AssetGraphBuilder(input, prevResult);
83
- let assetGraphRequest = await await builder.build();
85
+ let assetGraphRequest = await builder.build();
84
86
 
85
87
  // early break for incremental bundling if production or flag is off;
88
+ assetGraphRequest.assetGraph.setDisableIncrementalBundling(
89
+ !input.options.shouldBundleIncrementally ||
90
+ input.options.mode === 'production',
91
+ );
92
+
86
93
  if (
87
94
  !input.options.shouldBundleIncrementally ||
88
95
  input.options.mode === 'production'
@@ -106,10 +113,10 @@ const typesWithRequests = new Set([
106
113
  export class AssetGraphBuilder {
107
114
  assetGraph: AssetGraph;
108
115
  assetRequests: Array<AssetGroup> = [];
109
- queue: PromiseQueue<mixed>;
116
+ queue: PromiseQueue<unknown>;
110
117
  changedAssets: Map<string, Asset>;
111
118
  changedAssetsPropagation: Set<string>;
112
- prevChangedAssetsPropagation: ?Set<string>;
119
+ prevChangedAssetsPropagation: Set<string> | null | undefined;
113
120
  optionsRef: SharedReference;
114
121
  options: AtlaspackOptions;
115
122
  api: RunAPI<AssetGraphRequestResult>;
@@ -122,10 +129,11 @@ export class AssetGraphBuilder {
122
129
  isSingleChangeRebuild: boolean;
123
130
  assetGroupsWithRemovedParents: Set<NodeId>;
124
131
  previousSymbolPropagationErrors: Map<NodeId, Array<Diagnostic>>;
132
+ skipSymbolProp: boolean;
125
133
 
126
134
  constructor(
127
135
  {input, api, options}: RunInput,
128
- prevResult: ?AssetGraphRequestResult,
136
+ prevResult?: AssetGraphRequestResult | null,
129
137
  ) {
130
138
  let {
131
139
  entries,
@@ -161,20 +169,32 @@ export class AssetGraphBuilder {
161
169
  this.shouldBuildLazily = shouldBuildLazily ?? false;
162
170
  this.lazyIncludes = lazyIncludes ?? [];
163
171
  this.lazyExcludes = lazyExcludes ?? [];
164
- this.cacheKey =
165
- hashString(
172
+ this.skipSymbolProp = input.skipSymbolProp ?? false;
173
+
174
+ if (getFeatureFlag('cachePerformanceImprovements')) {
175
+ const key = hashString(
166
176
  `${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
167
177
  options.mode
168
178
  }${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
169
- ) + '-AssetGraph';
179
+ );
180
+ this.cacheKey = `AssetGraph/${ATLASPACK_VERSION}/${options.mode}/${key}`;
181
+ } else {
182
+ this.cacheKey =
183
+ hashString(
184
+ `${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
185
+ options.mode
186
+ }${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
187
+ ) + '-AssetGraph';
188
+ }
170
189
 
171
190
  this.isSingleChangeRebuild =
172
191
  api
173
192
  .getInvalidSubRequests()
193
+ // @ts-expect-error TS2367
174
194
  .filter((req) => req.requestType === 'asset_request').length === 1;
175
195
  this.queue = new PromiseQueue();
176
196
 
177
- assetGraph.onNodeRemoved = (nodeId) => {
197
+ assetGraph.onNodeRemoved = (nodeId: NodeId) => {
178
198
  this.assetGroupsWithRemovedParents.delete(nodeId);
179
199
 
180
200
  // This needs to mark all connected nodes that doesn't become orphaned
@@ -196,7 +216,7 @@ export class AssetGraphBuilder {
196
216
  }
197
217
 
198
218
  async build(): Promise<AssetGraphRequestResult> {
199
- let errors = [];
219
+ let errors: Array<Error> = [];
200
220
  let rootNodeId = nullthrows(
201
221
  this.assetGraph.rootNodeId,
202
222
  'A root node is required to traverse',
@@ -224,6 +244,7 @@ export class AssetGraphBuilder {
224
244
  for (let childNodeId of this.assetGraph.getNodeIdsConnectedFrom(nodeId)) {
225
245
  let child = nullthrows(this.assetGraph.getNode(childNodeId));
226
246
  if (
247
+ // @ts-expect-error TS2339
227
248
  (!visited.has(childNodeId) || child.hasDeferred) &&
228
249
  this.shouldVisitChild(nodeId, childNodeId)
229
250
  ) {
@@ -281,41 +302,51 @@ export class AssetGraphBuilder {
281
302
  this.assetGraph,
282
303
  'AssetGraph_' + this.name + '_before_prop',
283
304
  );
284
- try {
285
- let errors = propagateSymbols({
286
- options: this.options,
287
- assetGraph: this.assetGraph,
288
- changedAssetsPropagation: this.changedAssetsPropagation,
289
- assetGroupsWithRemovedParents: this.assetGroupsWithRemovedParents,
290
- previousErrors: this.previousSymbolPropagationErrors,
291
- });
292
- this.changedAssetsPropagation.clear();
293
-
294
- if (errors.size > 0) {
295
- this.api.storeResult(
296
- {
297
- assetGraph: this.assetGraph,
298
- changedAssets: this.changedAssets,
299
- changedAssetsPropagation: this.changedAssetsPropagation,
300
- assetGroupsWithRemovedParents: this.assetGroupsWithRemovedParents,
301
- previousSymbolPropagationErrors: errors,
302
- assetRequests: [],
303
- },
304
- this.cacheKey,
305
- );
306
305
 
307
- // Just throw the first error. Since errors can bubble (e.g. reexporting a reexported symbol also fails),
308
- // determining which failing export is the root cause is nontrivial (because of circular dependencies).
309
- throw new ThrowableDiagnostic({
310
- diagnostic: [...errors.values()][0],
306
+ // Skip symbol propagation for runtime assets - they have pre-computed symbol data
307
+ if (this.skipSymbolProp) {
308
+ logger.verbose({
309
+ origin: '@atlaspack/core',
310
+ message: 'Skipping symbol propagation for runtime asset graph',
311
+ });
312
+ } else {
313
+ try {
314
+ let errors = propagateSymbols({
315
+ options: this.options,
316
+ assetGraph: this.assetGraph,
317
+ changedAssetsPropagation: this.changedAssetsPropagation,
318
+ assetGroupsWithRemovedParents: this.assetGroupsWithRemovedParents,
319
+ previousErrors: this.previousSymbolPropagationErrors,
311
320
  });
321
+ this.changedAssetsPropagation.clear();
322
+
323
+ if (errors.size > 0) {
324
+ this.api.storeResult(
325
+ {
326
+ assetGraph: this.assetGraph,
327
+ changedAssets: this.changedAssets,
328
+ changedAssetsPropagation: this.changedAssetsPropagation,
329
+ assetGroupsWithRemovedParents:
330
+ this.assetGroupsWithRemovedParents,
331
+ previousSymbolPropagationErrors: errors,
332
+ assetRequests: [],
333
+ },
334
+ this.cacheKey,
335
+ );
336
+
337
+ // Just throw the first error. Since errors can bubble (e.g. reexporting a reexported symbol also fails),
338
+ // determining which failing export is the root cause is nontrivial (because of circular dependencies).
339
+ throw new ThrowableDiagnostic({
340
+ diagnostic: [...errors.values()][0],
341
+ });
342
+ }
343
+ } catch (e: any) {
344
+ await dumpGraphToGraphViz(
345
+ this.assetGraph,
346
+ 'AssetGraph_' + this.name + '_failed',
347
+ );
348
+ throw e;
312
349
  }
313
- } catch (e) {
314
- await dumpGraphToGraphViz(
315
- this.assetGraph,
316
- 'AssetGraph_' + this.name + '_failed',
317
- );
318
- throw e;
319
350
  }
320
351
  }
321
352
  await dumpGraphToGraphViz(this.assetGraph, 'AssetGraph_' + this.name);
@@ -428,9 +459,12 @@ export class AssetGraphBuilder {
428
459
  shouldSkipRequest(nodeId: NodeId): boolean {
429
460
  let node = nullthrows(this.assetGraph.getNode(nodeId));
430
461
  return (
462
+ // @ts-expect-error TS2339
431
463
  node.complete === true ||
432
464
  !typesWithRequests.has(node.type) ||
465
+ // @ts-expect-error TS2339
433
466
  (node.correspondingRequest != null &&
467
+ // @ts-expect-error TS2339
434
468
  this.api.canSkipSubrequest(node.correspondingRequest))
435
469
  );
436
470
  }
@@ -459,7 +493,7 @@ export class AssetGraphBuilder {
459
493
  `Can not queue corresponding request of node with type ${node.type}`,
460
494
  );
461
495
  }
462
- return new Promise((resolve) => {
496
+ return new Promise((resolve: (result: Promise<null> | null) => void) => {
463
497
  this.queue.add(() =>
464
498
  promise.then(
465
499
  () => {
@@ -501,6 +535,7 @@ export class AssetGraphBuilder {
501
535
 
502
536
  if (didEntriesChange) {
503
537
  this.assetGraph.safeToIncrementallyBundle = false;
538
+ this.assetGraph.setNeedsBundling();
504
539
  }
505
540
  }
506
541
  }
@@ -515,15 +550,16 @@ export class AssetGraphBuilder {
515
550
 
516
551
  async runPathRequest(input: Dependency) {
517
552
  let request = createPathRequest({dependency: input, name: this.name});
518
- let result = await this.api.runRequest<PathRequestInput, ?AssetGroup>(
519
- request,
520
- {force: true},
521
- );
553
+ let result = await this.api.runRequest<
554
+ PathRequestInput,
555
+ AssetGroup | null | undefined
556
+ >(request, {force: true});
522
557
  this.assetGraph.resolveDependency(input, result, request.id);
523
558
  }
524
559
 
525
560
  async runAssetRequest(input: AssetGroup) {
526
561
  this.assetRequests.push(input);
562
+ // @ts-expect-error TS2345
527
563
  let request = createAssetRequest({
528
564
  ...input,
529
565
  name: this.name,
@@ -538,16 +574,28 @@ export class AssetGraphBuilder {
538
574
 
539
575
  if (assets != null) {
540
576
  for (let asset of assets) {
577
+ // Pass the runtimeAssetRequiringExecutionOnLoad flag from the asset
578
+ // group down to the asset itself, for reading in the packager.
579
+ if (input.runtimeAssetRequiringExecutionOnLoad) {
580
+ asset.meta = {
581
+ ...(asset.meta ?? {}),
582
+ runtimeAssetRequiringExecutionOnLoad:
583
+ input.runtimeAssetRequiringExecutionOnLoad,
584
+ };
585
+ }
586
+
541
587
  if (this.assetGraph.safeToIncrementallyBundle) {
542
588
  let otherAsset = this.assetGraph.getNodeByContentKey(asset.id);
543
589
  if (otherAsset != null) {
544
590
  invariant(otherAsset.type === 'asset');
545
591
  if (!this._areDependenciesEqualForAssets(asset, otherAsset.value)) {
546
592
  this.assetGraph.safeToIncrementallyBundle = false;
593
+ this.assetGraph.setNeedsBundling();
547
594
  }
548
595
  } else {
549
596
  // adding a new entry or dependency
550
597
  this.assetGraph.safeToIncrementallyBundle = false;
598
+ this.assetGraph.setNeedsBundling();
551
599
  }
552
600
  }
553
601
  this.changedAssets.set(asset.id, asset);
@@ -556,6 +604,7 @@ export class AssetGraphBuilder {
556
604
  this.assetGraph.resolveAssetGroup(input, assets, request.id);
557
605
  } else {
558
606
  this.assetGraph.safeToIncrementallyBundle = false;
607
+ this.assetGraph.setNeedsBundling();
559
608
  }
560
609
 
561
610
  this.isSingleChangeRebuild = false;