@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,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,7 +18,6 @@ import logger from '@atlaspack/logger';
20
18
 
21
19
  import invariant from 'assert';
22
20
  import nullthrows from 'nullthrows';
23
- import {getFeatureFlag} from '@atlaspack/feature-flags';
24
21
  import {PromiseQueue, setEqual} from '@atlaspack/utils';
25
22
  import {hashString} from '@atlaspack/rust';
26
23
  import ThrowableDiagnostic from '@atlaspack/diagnostic';
@@ -31,44 +28,47 @@ import createEntryRequest from './EntryRequest';
31
28
  import createTargetRequest from './TargetRequest';
32
29
  import createAssetRequest from './AssetRequest';
33
30
  import createPathRequest from './PathRequest';
34
- import {type ProjectPath, fromProjectPathRelative} from '../projectPath';
31
+ import {ProjectPath, fromProjectPathRelative} from '../projectPath';
35
32
  import dumpGraphToGraphViz from '../dumpGraphToGraphViz';
36
33
  import {propagateSymbols} from '../SymbolPropagation';
37
34
  import {requestTypes} from '../RequestTracker';
38
35
 
39
- export type AssetGraphRequestInput = {|
40
- entries?: Array<ProjectPath>,
41
- assetGroups?: Array<AssetGroup>,
42
- optionsRef: SharedReference,
43
- name: string,
44
- shouldBuildLazily?: boolean,
45
- lazyIncludes?: RegExp[],
46
- lazyExcludes?: RegExp[],
47
- requestedAssetIds?: Set<string>,
48
- |};
49
-
50
- export type AssetGraphRequestResult = {|
51
- assetGraph: AssetGraph,
36
+ export type AssetGraphRequestInput = {
37
+ entries?: Array<ProjectPath>;
38
+ assetGroups?: Array<AssetGroup>;
39
+ optionsRef: SharedReference;
40
+ name: string;
41
+ shouldBuildLazily?: boolean;
42
+ lazyIncludes?: RegExp[];
43
+ lazyExcludes?: RegExp[];
44
+ requestedAssetIds?: Set<string>;
45
+ skipSymbolProp?: boolean;
46
+ };
47
+
48
+ export type AssetGraphRequestResult = {
49
+ assetGraph: AssetGraph;
52
50
  /** Assets added/modified since the last successful build. */
53
- changedAssets: Map<string, Asset>,
51
+ changedAssets: Map<string, Asset>;
54
52
  /** Assets added/modified since the last symbol propagation invocation. */
55
- changedAssetsPropagation: Set<string>,
56
- assetGroupsWithRemovedParents: ?Set<NodeId>,
57
- previousSymbolPropagationErrors: ?Map<NodeId, Array<Diagnostic>>,
58
- assetRequests: Array<AssetGroup>,
59
- |};
60
-
61
- type RunInput = {|
62
- input: AssetGraphRequestInput,
63
- ...StaticRunOpts<AssetGraphRequestResult>,
64
- |};
65
-
66
- type AssetGraphRequest = {|
67
- id: string,
68
- +type: typeof requestTypes.asset_graph_request,
69
- run: (RunInput) => Async<AssetGraphRequestResult>,
70
- input: AssetGraphRequestInput,
71
- |};
53
+ changedAssetsPropagation: Set<string>;
54
+ assetGroupsWithRemovedParents: Set<NodeId> | null | undefined;
55
+ previousSymbolPropagationErrors:
56
+ | Map<NodeId, Array<Diagnostic>>
57
+ | null
58
+ | undefined;
59
+ assetRequests: Array<AssetGroup>;
60
+ };
61
+
62
+ type RunInput = {
63
+ input: AssetGraphRequestInput;
64
+ } & StaticRunOpts<AssetGraphRequestResult>;
65
+
66
+ type AssetGraphRequest = {
67
+ id: string;
68
+ readonly type: typeof requestTypes.asset_graph_request;
69
+ run: (arg1: RunInput) => Async<AssetGraphRequestResult>;
70
+ input: AssetGraphRequestInput;
71
+ };
72
72
 
73
73
  export default function createAssetGraphRequest(
74
74
  requestInput: AssetGraphRequestInput,
@@ -81,7 +81,7 @@ export default function createAssetGraphRequest(
81
81
  await input.api.getPreviousResult<AssetGraphRequestResult>();
82
82
 
83
83
  let builder = new AssetGraphBuilder(input, prevResult);
84
- let assetGraphRequest = await await builder.build();
84
+ let assetGraphRequest = await builder.build();
85
85
 
86
86
  // early break for incremental bundling if production or flag is off;
87
87
  if (
@@ -91,6 +91,13 @@ export default function createAssetGraphRequest(
91
91
  assetGraphRequest.assetGraph.safeToIncrementallyBundle = false;
92
92
  }
93
93
 
94
+ if (
95
+ !input.options.shouldBundleIncrementally ||
96
+ input.options.mode === 'production'
97
+ ) {
98
+ assetGraphRequest.assetGraph.safeToIncrementallyBundle = false;
99
+ }
100
+
94
101
  return assetGraphRequest;
95
102
  },
96
103
  input: requestInput,
@@ -107,10 +114,10 @@ const typesWithRequests = new Set([
107
114
  export class AssetGraphBuilder {
108
115
  assetGraph: AssetGraph;
109
116
  assetRequests: Array<AssetGroup> = [];
110
- queue: PromiseQueue<mixed>;
117
+ queue: PromiseQueue<unknown>;
111
118
  changedAssets: Map<string, Asset>;
112
119
  changedAssetsPropagation: Set<string>;
113
- prevChangedAssetsPropagation: ?Set<string>;
120
+ prevChangedAssetsPropagation: Set<string> | null | undefined;
114
121
  optionsRef: SharedReference;
115
122
  options: AtlaspackOptions;
116
123
  api: RunAPI<AssetGraphRequestResult>;
@@ -123,10 +130,11 @@ export class AssetGraphBuilder {
123
130
  isSingleChangeRebuild: boolean;
124
131
  assetGroupsWithRemovedParents: Set<NodeId>;
125
132
  previousSymbolPropagationErrors: Map<NodeId, Array<Diagnostic>>;
133
+ skipSymbolProp: boolean;
126
134
 
127
135
  constructor(
128
136
  {input, api, options}: RunInput,
129
- prevResult: ?AssetGraphRequestResult,
137
+ prevResult?: AssetGraphRequestResult | null,
130
138
  ) {
131
139
  let {
132
140
  entries,
@@ -162,29 +170,23 @@ export class AssetGraphBuilder {
162
170
  this.shouldBuildLazily = shouldBuildLazily ?? false;
163
171
  this.lazyIncludes = lazyIncludes ?? [];
164
172
  this.lazyExcludes = lazyExcludes ?? [];
165
- if (getFeatureFlag('cachePerformanceImprovements')) {
166
- const key = hashString(
173
+ this.skipSymbolProp = input.skipSymbolProp ?? false;
174
+
175
+ this.cacheKey =
176
+ hashString(
167
177
  `${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
168
178
  options.mode
169
179
  }${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
170
- );
171
- this.cacheKey = `AssetGraph/${ATLASPACK_VERSION}/${options.mode}/${key}`;
172
- } else {
173
- this.cacheKey =
174
- hashString(
175
- `${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
176
- options.mode
177
- }${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
178
- ) + '-AssetGraph';
179
- }
180
+ ) + '-AssetGraph';
180
181
 
181
182
  this.isSingleChangeRebuild =
182
183
  api
183
184
  .getInvalidSubRequests()
185
+ // @ts-expect-error TS2367
184
186
  .filter((req) => req.requestType === 'asset_request').length === 1;
185
187
  this.queue = new PromiseQueue();
186
188
 
187
- assetGraph.onNodeRemoved = (nodeId) => {
189
+ assetGraph.onNodeRemoved = (nodeId: NodeId) => {
188
190
  this.assetGroupsWithRemovedParents.delete(nodeId);
189
191
 
190
192
  // This needs to mark all connected nodes that doesn't become orphaned
@@ -206,7 +208,7 @@ export class AssetGraphBuilder {
206
208
  }
207
209
 
208
210
  async build(): Promise<AssetGraphRequestResult> {
209
- let errors = [];
211
+ let errors: Array<Error> = [];
210
212
  let rootNodeId = nullthrows(
211
213
  this.assetGraph.rootNodeId,
212
214
  'A root node is required to traverse',
@@ -234,6 +236,7 @@ export class AssetGraphBuilder {
234
236
  for (let childNodeId of this.assetGraph.getNodeIdsConnectedFrom(nodeId)) {
235
237
  let child = nullthrows(this.assetGraph.getNode(childNodeId));
236
238
  if (
239
+ // @ts-expect-error TS2339
237
240
  (!visited.has(childNodeId) || child.hasDeferred) &&
238
241
  this.shouldVisitChild(nodeId, childNodeId)
239
242
  ) {
@@ -291,41 +294,51 @@ export class AssetGraphBuilder {
291
294
  this.assetGraph,
292
295
  'AssetGraph_' + this.name + '_before_prop',
293
296
  );
294
- try {
295
- let errors = propagateSymbols({
296
- options: this.options,
297
- assetGraph: this.assetGraph,
298
- changedAssetsPropagation: this.changedAssetsPropagation,
299
- assetGroupsWithRemovedParents: this.assetGroupsWithRemovedParents,
300
- previousErrors: this.previousSymbolPropagationErrors,
301
- });
302
- this.changedAssetsPropagation.clear();
303
-
304
- if (errors.size > 0) {
305
- this.api.storeResult(
306
- {
307
- assetGraph: this.assetGraph,
308
- changedAssets: this.changedAssets,
309
- changedAssetsPropagation: this.changedAssetsPropagation,
310
- assetGroupsWithRemovedParents: this.assetGroupsWithRemovedParents,
311
- previousSymbolPropagationErrors: errors,
312
- assetRequests: [],
313
- },
314
- this.cacheKey,
315
- );
316
297
 
317
- // Just throw the first error. Since errors can bubble (e.g. reexporting a reexported symbol also fails),
318
- // determining which failing export is the root cause is nontrivial (because of circular dependencies).
319
- throw new ThrowableDiagnostic({
320
- diagnostic: [...errors.values()][0],
298
+ // Skip symbol propagation for runtime assets - they have pre-computed symbol data
299
+ if (this.skipSymbolProp) {
300
+ logger.verbose({
301
+ origin: '@atlaspack/core',
302
+ message: 'Skipping symbol propagation for runtime asset graph',
303
+ });
304
+ } else {
305
+ try {
306
+ let errors = propagateSymbols({
307
+ options: this.options,
308
+ assetGraph: this.assetGraph,
309
+ changedAssetsPropagation: this.changedAssetsPropagation,
310
+ assetGroupsWithRemovedParents: this.assetGroupsWithRemovedParents,
311
+ previousErrors: this.previousSymbolPropagationErrors,
321
312
  });
313
+ this.changedAssetsPropagation.clear();
314
+
315
+ if (errors.size > 0) {
316
+ this.api.storeResult(
317
+ {
318
+ assetGraph: this.assetGraph,
319
+ changedAssets: this.changedAssets,
320
+ changedAssetsPropagation: this.changedAssetsPropagation,
321
+ assetGroupsWithRemovedParents:
322
+ this.assetGroupsWithRemovedParents,
323
+ previousSymbolPropagationErrors: errors,
324
+ assetRequests: [],
325
+ },
326
+ this.cacheKey,
327
+ );
328
+
329
+ // Just throw the first error. Since errors can bubble (e.g. reexporting a reexported symbol also fails),
330
+ // determining which failing export is the root cause is nontrivial (because of circular dependencies).
331
+ throw new ThrowableDiagnostic({
332
+ diagnostic: [...errors.values()][0],
333
+ });
334
+ }
335
+ } catch (e: any) {
336
+ await dumpGraphToGraphViz(
337
+ this.assetGraph,
338
+ 'AssetGraph_' + this.name + '_failed',
339
+ );
340
+ throw e;
322
341
  }
323
- } catch (e) {
324
- await dumpGraphToGraphViz(
325
- this.assetGraph,
326
- 'AssetGraph_' + this.name + '_failed',
327
- );
328
- throw e;
329
342
  }
330
343
  }
331
344
  await dumpGraphToGraphViz(this.assetGraph, 'AssetGraph_' + this.name);
@@ -438,9 +451,12 @@ export class AssetGraphBuilder {
438
451
  shouldSkipRequest(nodeId: NodeId): boolean {
439
452
  let node = nullthrows(this.assetGraph.getNode(nodeId));
440
453
  return (
454
+ // @ts-expect-error TS2339
441
455
  node.complete === true ||
442
456
  !typesWithRequests.has(node.type) ||
457
+ // @ts-expect-error TS2339
443
458
  (node.correspondingRequest != null &&
459
+ // @ts-expect-error TS2339
444
460
  this.api.canSkipSubrequest(node.correspondingRequest))
445
461
  );
446
462
  }
@@ -469,7 +485,7 @@ export class AssetGraphBuilder {
469
485
  `Can not queue corresponding request of node with type ${node.type}`,
470
486
  );
471
487
  }
472
- return new Promise((resolve) => {
488
+ return new Promise((resolve: (result: Promise<null> | null) => void) => {
473
489
  this.queue.add(() =>
474
490
  promise.then(
475
491
  () => {
@@ -525,15 +541,16 @@ export class AssetGraphBuilder {
525
541
 
526
542
  async runPathRequest(input: Dependency) {
527
543
  let request = createPathRequest({dependency: input, name: this.name});
528
- let result = await this.api.runRequest<PathRequestInput, ?AssetGroup>(
529
- request,
530
- {force: true},
531
- );
544
+ let result = await this.api.runRequest<
545
+ PathRequestInput,
546
+ AssetGroup | null | undefined
547
+ >(request, {force: true});
532
548
  this.assetGraph.resolveDependency(input, result, request.id);
533
549
  }
534
550
 
535
551
  async runAssetRequest(input: AssetGroup) {
536
552
  this.assetRequests.push(input);
553
+ // @ts-expect-error TS2345
537
554
  let request = createAssetRequest({
538
555
  ...input,
539
556
  name: this.name,
@@ -548,6 +565,16 @@ export class AssetGraphBuilder {
548
565
 
549
566
  if (assets != null) {
550
567
  for (let asset of assets) {
568
+ // Pass the runtimeAssetRequiringExecutionOnLoad flag from the asset
569
+ // group down to the asset itself, for reading in the packager.
570
+ if (input.runtimeAssetRequiringExecutionOnLoad) {
571
+ asset.meta = {
572
+ ...(asset.meta ?? {}),
573
+ runtimeAssetRequiringExecutionOnLoad:
574
+ input.runtimeAssetRequiringExecutionOnLoad,
575
+ };
576
+ }
577
+
551
578
  if (this.assetGraph.safeToIncrementallyBundle) {
552
579
  let otherAsset = this.assetGraph.getNodeByContentKey(asset.id);
553
580
  if (otherAsset != null) {