@atlaspack/core 2.16.2-canary.27 → 2.16.2-canary.270

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 (358) hide show
  1. package/CHANGELOG.md +665 -0
  2. package/dist/AssetGraph.js +591 -0
  3. package/dist/Atlaspack.js +658 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +108 -0
  6. package/dist/BundleGraph.js +1635 -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 +490 -0
  19. package/dist/UncommittedAsset.js +315 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +305 -0
  22. package/dist/assetUtils.js +168 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +70 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +57 -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 +94 -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 +76 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-logger.js +26 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-options.js +122 -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/worker.js +297 -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 +359 -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 +429 -0
  59. package/dist/requests/AssetGraphRequestRust.js +262 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +65 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +445 -0
  64. package/dist/requests/ConfigRequest.js +222 -0
  65. package/dist/requests/DevDepRequest.js +204 -0
  66. package/dist/requests/EntryRequest.js +314 -0
  67. package/dist/requests/PackageRequest.js +62 -0
  68. package/dist/requests/PathRequest.js +349 -0
  69. package/dist/requests/TargetRequest.js +1311 -0
  70. package/dist/requests/ValidationRequest.js +49 -0
  71. package/dist/requests/WriteBundleRequest.js +254 -0
  72. package/dist/requests/WriteBundlesRequest.js +184 -0
  73. package/dist/requests/asset-graph-diff.js +128 -0
  74. package/dist/requests/asset-graph-dot.js +131 -0
  75. package/dist/resolveOptions.js +268 -0
  76. package/dist/rustWorkerThreadDylibHack.js +19 -0
  77. package/dist/serializerCore.browser.js +43 -0
  78. package/dist/summarizeRequest.js +39 -0
  79. package/dist/types.js +31 -0
  80. package/dist/utils.js +172 -0
  81. package/dist/worker.js +123 -0
  82. package/lib/AssetGraph.js +111 -14
  83. package/lib/Atlaspack.js +81 -37
  84. package/lib/AtlaspackConfig.js +15 -3
  85. package/lib/AtlaspackConfig.schema.js +7 -5
  86. package/lib/BundleGraph.js +90 -32
  87. package/lib/CommittedAsset.js +6 -0
  88. package/lib/Dependency.js +8 -2
  89. package/lib/Environment.js +15 -8
  90. package/lib/EnvironmentManager.js +143 -0
  91. package/lib/IdentifierRegistry.js +1 -3
  92. package/lib/InternalConfig.js +3 -2
  93. package/lib/PackagerRunner.js +90 -27
  94. package/lib/ReporterRunner.js +6 -9
  95. package/lib/RequestTracker.js +266 -156
  96. package/lib/SymbolPropagation.js +42 -18
  97. package/lib/TargetDescriptor.schema.js +7 -1
  98. package/lib/Transformation.js +26 -10
  99. package/lib/UncommittedAsset.js +30 -9
  100. package/lib/Validation.js +18 -2
  101. package/lib/applyRuntimes.js +9 -1
  102. package/lib/assetUtils.js +7 -4
  103. package/lib/atlaspack-v3/AtlaspackV3.js +32 -7
  104. package/lib/atlaspack-v3/NapiWorkerPool.js +3 -0
  105. package/lib/atlaspack-v3/fs.js +3 -1
  106. package/lib/atlaspack-v3/index.js +28 -1
  107. package/lib/atlaspack-v3/jsCallable.js +0 -2
  108. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  109. package/lib/atlaspack-v3/worker/compat/bitflags.js +7 -6
  110. package/lib/atlaspack-v3/worker/compat/dependency.js +3 -0
  111. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  112. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +14 -9
  113. package/lib/atlaspack-v3/worker/compat/plugin-config.js +8 -10
  114. package/lib/atlaspack-v3/worker/compat/plugin-options.js +1 -0
  115. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  116. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  117. package/lib/atlaspack-v3/worker/index.js +3 -0
  118. package/lib/atlaspack-v3/worker/worker.js +43 -7
  119. package/lib/constants.js +0 -1
  120. package/lib/dumpGraphToGraphViz.js +71 -16
  121. package/lib/index.js +45 -1
  122. package/lib/loadDotEnv.js +4 -1
  123. package/lib/projectPath.js +5 -0
  124. package/lib/public/Asset.js +21 -11
  125. package/lib/public/Bundle.js +15 -16
  126. package/lib/public/BundleGraph.js +10 -4
  127. package/lib/public/BundleGroup.js +4 -5
  128. package/lib/public/Config.js +118 -17
  129. package/lib/public/Dependency.js +8 -6
  130. package/lib/public/Environment.js +12 -7
  131. package/lib/public/MutableBundleGraph.js +54 -12
  132. package/lib/public/PluginOptions.js +2 -2
  133. package/lib/public/Symbols.js +11 -11
  134. package/lib/public/Target.js +7 -6
  135. package/lib/registerCoreWithSerializer.js +5 -3
  136. package/lib/requests/AssetGraphRequest.js +42 -5
  137. package/lib/requests/AssetGraphRequestRust.js +126 -62
  138. package/lib/requests/AssetRequest.js +23 -6
  139. package/lib/requests/AtlaspackBuildRequest.js +10 -4
  140. package/lib/requests/AtlaspackConfigRequest.js +27 -16
  141. package/lib/requests/BundleGraphRequest.js +34 -19
  142. package/lib/requests/ConfigRequest.js +28 -4
  143. package/lib/requests/DevDepRequest.js +31 -5
  144. package/lib/requests/EntryRequest.js +2 -0
  145. package/lib/requests/PackageRequest.js +2 -1
  146. package/lib/requests/PathRequest.js +24 -3
  147. package/lib/requests/TargetRequest.js +122 -57
  148. package/lib/requests/ValidationRequest.js +5 -1
  149. package/lib/requests/WriteBundleRequest.js +39 -11
  150. package/lib/requests/WriteBundlesRequest.js +51 -4
  151. package/lib/requests/asset-graph-diff.js +12 -7
  152. package/lib/requests/asset-graph-dot.js +1 -7
  153. package/lib/resolveOptions.js +36 -10
  154. package/lib/rustWorkerThreadDylibHack.js +0 -1
  155. package/lib/types/AssetGraph.d.ts +80 -0
  156. package/lib/types/Atlaspack.d.ts +52 -0
  157. package/lib/types/AtlaspackConfig.d.ts +65 -0
  158. package/lib/types/AtlaspackConfig.schema.d.ts +46 -0
  159. package/lib/types/BundleGraph.d.ts +182 -0
  160. package/lib/types/CommittedAsset.d.ts +23 -0
  161. package/lib/types/Dependency.d.ts +44 -0
  162. package/lib/types/Environment.d.ts +11 -0
  163. package/lib/types/EnvironmentManager.d.ts +37 -0
  164. package/lib/types/IdentifierRegistry.d.ts +6 -0
  165. package/lib/types/InternalConfig.d.ts +24 -0
  166. package/lib/types/PackagerRunner.d.ts +85 -0
  167. package/lib/types/ReporterRunner.d.ts +25 -0
  168. package/lib/types/RequestTracker.d.ts +385 -0
  169. package/lib/types/SymbolPropagation.d.ts +11 -0
  170. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  171. package/lib/types/Transformation.d.ts +72 -0
  172. package/lib/types/UncommittedAsset.d.ts +61 -0
  173. package/lib/types/Validation.d.ts +37 -0
  174. package/lib/types/applyRuntimes.d.ts +25 -0
  175. package/lib/types/assetUtils.d.ts +42 -0
  176. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +26 -0
  177. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +12 -0
  178. package/lib/types/atlaspack-v3/fs.d.ts +12 -0
  179. package/lib/types/atlaspack-v3/index.d.ts +5 -0
  180. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  181. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  182. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +15 -0
  183. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  184. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  185. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
  186. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  187. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +37 -0
  188. package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
  189. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +22 -0
  190. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  191. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  192. package/lib/types/atlaspack-v3/worker/worker.d.ts +60 -0
  193. package/lib/types/constants.d.ts +13 -0
  194. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  195. package/lib/types/index.d.ts +8 -0
  196. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  197. package/lib/types/loadDotEnv.d.ts +3 -0
  198. package/lib/types/projectPath.d.ts +19 -0
  199. package/lib/types/public/Asset.d.ts +74 -0
  200. package/lib/types/public/Bundle.d.ts +45 -0
  201. package/lib/types/public/BundleGraph.d.ts +70 -0
  202. package/lib/types/public/BundleGroup.d.ts +12 -0
  203. package/lib/types/public/Config.d.ts +75 -0
  204. package/lib/types/public/Dependency.d.ts +32 -0
  205. package/lib/types/public/Environment.d.ts +34 -0
  206. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  207. package/lib/types/public/PluginOptions.d.ts +25 -0
  208. package/lib/types/public/Symbols.d.ts +81 -0
  209. package/lib/types/public/Target.d.ts +16 -0
  210. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  211. package/lib/types/requests/AssetGraphRequest.d.ts +74 -0
  212. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  213. package/lib/types/requests/AssetRequest.d.ts +16 -0
  214. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  215. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  216. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  217. package/lib/types/requests/ConfigRequest.d.ts +59 -0
  218. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  219. package/lib/types/requests/EntryRequest.d.ts +36 -0
  220. package/lib/types/requests/PackageRequest.d.ts +27 -0
  221. package/lib/types/requests/PathRequest.d.ts +48 -0
  222. package/lib/types/requests/TargetRequest.d.ts +48 -0
  223. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  224. package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
  225. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  226. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  227. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  228. package/lib/types/resolveOptions.d.ts +3 -0
  229. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  230. package/lib/types/serializerCore.browser.d.ts +3 -0
  231. package/lib/types/summarizeRequest.d.ts +10 -0
  232. package/lib/types/types.d.ts +493 -0
  233. package/lib/types/utils.d.ts +23 -0
  234. package/lib/types/worker.d.ts +44 -0
  235. package/lib/types.js +8 -1
  236. package/lib/utils.js +17 -2
  237. package/lib/worker.js +29 -13
  238. package/package.json +24 -34
  239. package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
  240. package/src/{Atlaspack.js → Atlaspack.ts} +114 -61
  241. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +16 -19
  242. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  243. package/src/{BundleGraph.js → BundleGraph.ts} +231 -140
  244. package/src/{CommittedAsset.js → CommittedAsset.ts} +14 -12
  245. package/src/{Dependency.js → Dependency.ts} +59 -42
  246. package/src/{Environment.js → Environment.ts} +24 -15
  247. package/src/EnvironmentManager.ts +154 -0
  248. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  249. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  250. package/src/{PackagerRunner.js → PackagerRunner.ts} +178 -86
  251. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  252. package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
  253. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
  254. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
  255. package/src/{Transformation.js → Transformation.ts} +71 -62
  256. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +57 -36
  257. package/src/{Validation.js → Validation.ts} +32 -17
  258. package/src/{applyRuntimes.js → applyRuntimes.ts} +35 -26
  259. package/src/{assetUtils.js → assetUtils.ts} +47 -35
  260. package/src/atlaspack-v3/AtlaspackV3.ts +122 -0
  261. package/src/atlaspack-v3/{NapiWorkerPool.js → NapiWorkerPool.ts} +10 -5
  262. package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
  263. package/src/atlaspack-v3/{index.js → index.ts} +2 -4
  264. package/src/atlaspack-v3/jsCallable.ts +14 -0
  265. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  266. package/src/atlaspack-v3/worker/compat/{bitflags.js → bitflags.ts} +9 -10
  267. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +12 -12
  268. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  269. package/src/atlaspack-v3/worker/compat/index.ts +9 -0
  270. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +20 -19
  271. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +27 -26
  272. package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
  273. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +4 -5
  274. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  275. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  276. package/src/atlaspack-v3/worker/index.js +2 -1
  277. package/src/atlaspack-v3/worker/{worker.js → worker.ts} +102 -66
  278. package/src/{constants.js → constants.ts} +0 -3
  279. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  280. package/src/index.ts +18 -0
  281. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  282. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  283. package/src/{projectPath.js → projectPath.ts} +20 -9
  284. package/src/public/{Asset.js → Asset.ts} +40 -27
  285. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  286. package/src/public/{BundleGraph.js → BundleGraph.ts} +81 -50
  287. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  288. package/src/public/{Config.js → Config.ts} +171 -33
  289. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  290. package/src/public/{Environment.js → Environment.ts} +28 -17
  291. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  292. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  293. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  294. package/src/public/{Target.js → Target.ts} +10 -8
  295. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  296. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +84 -49
  297. package/src/requests/AssetGraphRequestRust.ts +352 -0
  298. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  299. package/src/requests/{AtlaspackBuildRequest.js → AtlaspackBuildRequest.ts} +46 -32
  300. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  301. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +71 -58
  302. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +71 -50
  303. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  304. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  305. package/src/requests/{PackageRequest.js → PackageRequest.ts} +20 -22
  306. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  307. package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
  308. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  309. package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
  310. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
  311. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  312. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  313. package/src/{resolveOptions.js → resolveOptions.ts} +56 -24
  314. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  315. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  316. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  317. package/src/types.ts +647 -0
  318. package/src/{utils.js → utils.ts} +52 -21
  319. package/src/{worker.js → worker.ts} +49 -41
  320. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
  321. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  322. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  323. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +75 -15
  324. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  325. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  326. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  327. package/test/Environment.test.ts +153 -0
  328. package/test/EnvironmentManager.test.ts +188 -0
  329. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  330. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  331. package/test/PackagerRunner.test.ts +0 -0
  332. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  333. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  334. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  335. package/test/PublicEnvironment.test.ts +49 -0
  336. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  337. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
  338. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  339. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
  340. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  341. package/test/fixtures/custom-targets/package.json +6 -0
  342. package/test/public/Config.test.ts +104 -0
  343. package/test/requests/{AssetGraphRequestRust.test.js → AssetGraphRequestRust.test.ts} +164 -134
  344. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  345. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  346. package/test/{test-utils.js → test-utils.ts} +4 -11
  347. package/test/{utils.test.js → utils.test.ts} +1 -3
  348. package/tsconfig.json +57 -0
  349. package/tsconfig.tsbuildinfo +1 -0
  350. package/index.d.ts +0 -30
  351. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  352. package/src/atlaspack-v3/jsCallable.js +0 -18
  353. package/src/index.js +0 -13
  354. package/src/requests/AssetGraphRequestRust.js +0 -263
  355. package/src/types.js +0 -600
  356. package/test/Environment.test.js +0 -119
  357. package/test/PackagerRunner.test.js +0 -27
  358. package/test/PublicEnvironment.test.js +0 -27
@@ -1,4 +1,3 @@
1
- // @flow
2
1
  import type {
3
2
  Symbol as ISymbol,
4
3
  MutableAssetSymbols as IMutableAssetSymbols,
@@ -16,13 +15,13 @@ const EMPTY_ITERABLE = {
16
15
  [Symbol.iterator]() {
17
16
  return EMPTY_ITERATOR;
18
17
  },
19
- };
18
+ } as const;
20
19
 
21
20
  const EMPTY_ITERATOR = {
22
21
  next() {
23
22
  return {done: true};
24
23
  },
25
- };
24
+ } as const;
26
25
 
27
26
  const inspect = Symbol.for('nodejs.util.inspect.custom');
28
27
 
@@ -31,10 +30,12 @@ export class AssetSymbols implements IAssetSymbols {
31
30
  /*::
32
31
  @@iterator(): Iterator<[ISymbol, {|local: ISymbol, loc: ?SourceLocation, meta?: ?Meta|}]> { return ({}: any); }
33
32
  */
33
+ // @ts-expect-error TS2564
34
34
  #value: Asset;
35
+ // @ts-expect-error TS2564
35
36
  #options: AtlaspackOptions;
36
37
 
37
- constructor(options: AtlaspackOptions, asset: Asset): AssetSymbols {
38
+ constructor(options: AtlaspackOptions, asset: Asset) {
38
39
  let existing = valueToSymbols.get(asset);
39
40
  if (existing != null) {
40
41
  return existing;
@@ -60,9 +61,14 @@ export class AssetSymbols implements IAssetSymbols {
60
61
  return false;
61
62
  }
62
63
 
63
- get(
64
- exportSymbol: ISymbol,
65
- ): ?{|local: ISymbol, loc: ?SourceLocation, meta?: ?Meta|} {
64
+ get(exportSymbol: ISymbol):
65
+ | {
66
+ local: ISymbol;
67
+ loc: SourceLocation | null | undefined;
68
+ meta?: Meta | null | undefined;
69
+ }
70
+ | null
71
+ | undefined {
66
72
  return fromInternalAssetSymbol(
67
73
  this.#options.projectRoot,
68
74
  this.#value.symbols?.get(exportSymbol),
@@ -76,19 +82,18 @@ export class AssetSymbols implements IAssetSymbols {
76
82
  exportSymbols(): Iterable<ISymbol> {
77
83
  return this.#value.symbols?.keys() ?? [];
78
84
  }
79
- // $FlowFixMe
85
+ // @ts-expect-error TS2416
80
86
  [Symbol.iterator]() {
81
87
  return this.#value.symbols
82
88
  ? this.#value.symbols[Symbol.iterator]()
83
89
  : EMPTY_ITERATOR;
84
90
  }
85
91
 
86
- // $FlowFixMe
87
92
  [inspect]() {
88
93
  return `AssetSymbols(${
89
94
  this.#value.symbols
90
95
  ? [...this.#value.symbols]
91
- .map(([s, {local}]) => `${s}:${local}`)
96
+ .map(([s, {local}]: [any, any]) => `${s}:${local}`)
92
97
  .join(', ')
93
98
  : null
94
99
  })`;
@@ -101,10 +106,12 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
101
106
  /*::
102
107
  @@iterator(): Iterator<[ISymbol, {|local: ISymbol, loc: ?SourceLocation, meta?: ?Meta|}]> { return ({}: any); }
103
108
  */
109
+ // @ts-expect-error TS2564
104
110
  #value: Asset;
111
+ // @ts-expect-error TS2564
105
112
  #options: AtlaspackOptions;
106
113
 
107
- constructor(options: AtlaspackOptions, asset: Asset): MutableAssetSymbols {
114
+ constructor(options: AtlaspackOptions, asset: Asset) {
108
115
  let existing = valueToMutableAssetSymbols.get(asset);
109
116
  if (existing != null) {
110
117
  return existing;
@@ -130,9 +137,14 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
130
137
  return false;
131
138
  }
132
139
 
133
- get(
134
- exportSymbol: ISymbol,
135
- ): ?{|local: ISymbol, loc: ?SourceLocation, meta?: ?Meta|} {
140
+ get(exportSymbol: ISymbol):
141
+ | {
142
+ local: ISymbol;
143
+ loc: SourceLocation | null | undefined;
144
+ meta?: Meta | null | undefined;
145
+ }
146
+ | null
147
+ | undefined {
136
148
  return fromInternalAssetSymbol(
137
149
  this.#options.projectRoot,
138
150
  this.#value.symbols?.get(exportSymbol),
@@ -144,22 +156,21 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
144
156
  }
145
157
 
146
158
  exportSymbols(): Iterable<ISymbol> {
147
- // $FlowFixMe
159
+ // @ts-expect-error TS2322
148
160
  return this.#value.symbols.keys();
149
161
  }
150
- // $FlowFixMe
162
+ // @ts-expect-error TS2416
151
163
  [Symbol.iterator]() {
152
164
  return this.#value.symbols
153
165
  ? this.#value.symbols[Symbol.iterator]()
154
166
  : EMPTY_ITERATOR;
155
167
  }
156
168
 
157
- // $FlowFixMe
158
169
  [inspect]() {
159
170
  return `MutableAssetSymbols(${
160
171
  this.#value.symbols
161
172
  ? [...this.#value.symbols]
162
- .map(([s, {local}]) => `${s}:${local}`)
173
+ .map(([s, {local}]: [any, any]) => `${s}:${local}`)
163
174
  .join(', ')
164
175
  : null
165
176
  })`;
@@ -176,8 +187,8 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
176
187
  set(
177
188
  exportSymbol: ISymbol,
178
189
  local: ISymbol,
179
- loc: ?SourceLocation,
180
- meta: ?Meta,
190
+ loc?: SourceLocation | null,
191
+ meta?: Meta | null,
181
192
  ) {
182
193
  nullthrows(this.#value.symbols).set(exportSymbol, {
183
194
  local,
@@ -193,19 +204,18 @@ export class MutableAssetSymbols implements IMutableAssetSymbols {
193
204
 
194
205
  let valueToMutableDependencySymbols: WeakMap<
195
206
  Dependency,
196
- MutableDependencySymbols,
207
+ MutableDependencySymbols
197
208
  > = new WeakMap();
198
209
  export class MutableDependencySymbols implements IMutableDependencySymbols {
199
210
  /*::
200
211
  @@iterator(): Iterator<[ISymbol, {|local: ISymbol, loc: ?SourceLocation, isWeak: boolean, meta?: ?Meta|}]> { return ({}: any); }
201
212
  */
213
+ // @ts-expect-error TS2564
202
214
  #value: Dependency;
215
+ // @ts-expect-error TS2564
203
216
  #options: AtlaspackOptions;
204
217
 
205
- constructor(
206
- options: AtlaspackOptions,
207
- dep: Dependency,
208
- ): MutableDependencySymbols {
218
+ constructor(options: AtlaspackOptions, dep: Dependency) {
209
219
  let existing = valueToMutableDependencySymbols.get(dep);
210
220
  if (existing != null) {
211
221
  return existing;
@@ -230,9 +240,15 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
230
240
  return false;
231
241
  }
232
242
 
233
- get(
234
- exportSymbol: ISymbol,
235
- ): ?{|local: ISymbol, loc: ?SourceLocation, isWeak: boolean, meta?: ?Meta|} {
243
+ get(exportSymbol: ISymbol):
244
+ | {
245
+ local: ISymbol;
246
+ loc: SourceLocation | null | undefined;
247
+ isWeak: boolean;
248
+ meta?: Meta | null | undefined;
249
+ }
250
+ | null
251
+ | undefined {
236
252
  return fromInternalDependencySymbol(
237
253
  this.#options.projectRoot,
238
254
  nullthrows(this.#value.symbols).get(exportSymbol),
@@ -244,23 +260,25 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
244
260
  }
245
261
 
246
262
  exportSymbols(): Iterable<ISymbol> {
247
- // $FlowFixMe
263
+ // @ts-expect-error TS2322
248
264
  return this.#value.symbols ? this.#value.symbols.keys() : EMPTY_ITERABLE;
249
265
  }
250
266
 
251
- // $FlowFixMe
267
+ // @ts-expect-error TS2416
252
268
  [Symbol.iterator]() {
253
269
  return this.#value.symbols
254
270
  ? this.#value.symbols[Symbol.iterator]()
255
271
  : EMPTY_ITERATOR;
256
272
  }
257
273
 
258
- // $FlowFixMe
259
274
  [inspect]() {
260
275
  return `MutableDependencySymbols(${
261
276
  this.#value.symbols
262
277
  ? [...this.#value.symbols]
263
- .map(([s, {local, isWeak}]) => `${s}:${local}${isWeak ? '?' : ''}`)
278
+ .map(
279
+ ([s, {local, isWeak}]: [any, any]) =>
280
+ `${s}:${local}${isWeak ? '?' : ''}`,
281
+ )
264
282
  .join(', ')
265
283
  : null
266
284
  })`;
@@ -277,8 +295,8 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
277
295
  set(
278
296
  exportSymbol: ISymbol,
279
297
  local: ISymbol,
280
- loc: ?SourceLocation,
281
- isWeak: ?boolean,
298
+ loc?: SourceLocation | null,
299
+ isWeak?: boolean | null,
282
300
  ) {
283
301
  let symbols = nullthrows(this.#value.symbols);
284
302
  symbols.set(exportSymbol, {
@@ -293,7 +311,17 @@ export class MutableDependencySymbols implements IMutableDependencySymbols {
293
311
  }
294
312
  }
295
313
 
296
- function fromInternalAssetSymbol(projectRoot: string, value) {
314
+ function fromInternalAssetSymbol(
315
+ projectRoot: string,
316
+ value:
317
+ | undefined
318
+ | {
319
+ // @ts-expect-error TS2304
320
+ loc: InternalSourceLocation | null | undefined;
321
+ local: ISymbol;
322
+ meta?: Meta | null | undefined;
323
+ },
324
+ ) {
297
325
  return (
298
326
  value && {
299
327
  local: value.local,
@@ -303,7 +331,18 @@ function fromInternalAssetSymbol(projectRoot: string, value) {
303
331
  );
304
332
  }
305
333
 
306
- function fromInternalDependencySymbol(projectRoot: string, value) {
334
+ function fromInternalDependencySymbol(
335
+ projectRoot: string,
336
+ value:
337
+ | undefined
338
+ | {
339
+ isWeak: boolean;
340
+ // @ts-expect-error TS2304
341
+ loc: InternalSourceLocation | null | undefined;
342
+ local: ISymbol;
343
+ meta?: Meta | null | undefined;
344
+ },
345
+ ) {
307
346
  return (
308
347
  value && {
309
348
  local: value.local,
@@ -1,4 +1,3 @@
1
- // @flow
2
1
  import type {
3
2
  FilePath,
4
3
  Target as ITarget,
@@ -11,6 +10,7 @@ import nullthrows from 'nullthrows';
11
10
  import Environment from './Environment';
12
11
  import {fromProjectPath} from '../projectPath';
13
12
  import {fromInternalSourceLocation} from '../utils';
13
+ import {fromEnvironmentId} from '../EnvironmentManager';
14
14
 
15
15
  const inspect = Symbol.for('nodejs.util.inspect.custom');
16
16
 
@@ -21,10 +21,12 @@ export function targetToInternalTarget(target: ITarget): TargetValue {
21
21
  }
22
22
 
23
23
  export default class Target implements ITarget {
24
- #target /*: TargetValue */;
25
- #options /*: AtlaspackOptions */;
24
+ // @ts-expect-error TS2564
25
+ #target: TargetValue;
26
+ // @ts-expect-error TS2564
27
+ #options: AtlaspackOptions;
26
28
 
27
- constructor(target: TargetValue, options: AtlaspackOptions): Target {
29
+ constructor(target: TargetValue, options: AtlaspackOptions) {
28
30
  let existing = internalTargetToTarget.get(target);
29
31
  if (existing != null) {
30
32
  return existing;
@@ -37,7 +39,7 @@ export default class Target implements ITarget {
37
39
  return this;
38
40
  }
39
41
 
40
- get distEntry(): ?FilePath {
42
+ get distEntry(): FilePath | null | undefined {
41
43
  return this.#target.distEntry;
42
44
  }
43
45
 
@@ -46,7 +48,7 @@ export default class Target implements ITarget {
46
48
  }
47
49
 
48
50
  get env(): IEnvironment {
49
- return new Environment(this.#target.env, this.#options);
51
+ return new Environment(fromEnvironmentId(this.#target.env), this.#options);
50
52
  }
51
53
 
52
54
  get name(): string {
@@ -57,15 +59,15 @@ export default class Target implements ITarget {
57
59
  return this.#target.publicUrl;
58
60
  }
59
61
 
60
- get loc(): ?SourceLocation {
62
+ get loc(): SourceLocation | null | undefined {
61
63
  return fromInternalSourceLocation(
62
64
  this.#options.projectRoot,
63
65
  this.#target.loc,
64
66
  );
65
67
  }
66
68
 
67
- // $FlowFixMe[unsupported-syntax]
68
69
  [inspect](): string {
70
+ // @ts-expect-error TS7053
69
71
  return `Target(${this.name} - ${this.env[inspect]()})`;
70
72
  }
71
73
  }
@@ -1,5 +1,3 @@
1
- // @flow
2
-
3
1
  import {registerSerializableClass} from '@atlaspack/build-cache';
4
2
  import {Graph} from '@atlaspack/graph';
5
3
 
@@ -11,26 +9,30 @@ import BundleGraph from './BundleGraph';
11
9
  import Config from './public/Config';
12
10
  import {RequestGraph} from './RequestTracker';
13
11
 
12
+ // flow-to-ts helpers
13
+ export type Class<T> = new (...args: any[]) => T;
14
+ // /flow-to-ts helpers
15
+
16
+ // @ts-expect-error TS7034
14
17
  let coreRegistered;
15
18
  export function registerCoreWithSerializer() {
19
+ // @ts-expect-error TS7005
16
20
  if (coreRegistered) {
17
21
  return;
18
22
  }
19
- const packageVersion: mixed = packageJson.version;
23
+ const packageVersion: unknown = packageJson.version;
20
24
  if (typeof packageVersion !== 'string') {
21
25
  throw new Error('Expected package version to be a string');
22
26
  }
23
27
 
24
- // $FlowFixMe[incompatible-cast]
25
- for (let [name, ctor] of (Object.entries({
28
+ for (let [name, ctor] of Object.entries({
26
29
  AssetGraph,
27
30
  Config,
28
31
  BundleGraph,
29
32
  Graph,
30
33
  AtlaspackConfig,
31
34
  RequestGraph,
32
- // $FlowFixMe[unclear-type]
33
- }): Array<[string, Class<any>]>)) {
35
+ }) as Array<[string, Class<any>]>) {
34
36
  registerSerializableClass(packageVersion + ':' + name, ctor);
35
37
  }
36
38
  coreRegistered = true;
@@ -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,46 @@ 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
+ };
47
+
48
+ export type AssetGraphRequestResult = {
49
+ assetGraph: AssetGraph;
51
50
  /** Assets added/modified since the last successful build. */
52
- changedAssets: Map<string, Asset>,
51
+ changedAssets: Map<string, Asset>;
53
52
  /** 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
- |};
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
+ };
71
72
 
72
73
  export default function createAssetGraphRequest(
73
74
  requestInput: AssetGraphRequestInput,
@@ -80,9 +81,14 @@ export default function createAssetGraphRequest(
80
81
  await input.api.getPreviousResult<AssetGraphRequestResult>();
81
82
 
82
83
  let builder = new AssetGraphBuilder(input, prevResult);
83
- let assetGraphRequest = await await builder.build();
84
+ let assetGraphRequest = await builder.build();
84
85
 
85
86
  // early break for incremental bundling if production or flag is off;
87
+ assetGraphRequest.assetGraph.setDisableIncrementalBundling(
88
+ !input.options.shouldBundleIncrementally ||
89
+ input.options.mode === 'production',
90
+ );
91
+
86
92
  if (
87
93
  !input.options.shouldBundleIncrementally ||
88
94
  input.options.mode === 'production'
@@ -106,10 +112,10 @@ const typesWithRequests = new Set([
106
112
  export class AssetGraphBuilder {
107
113
  assetGraph: AssetGraph;
108
114
  assetRequests: Array<AssetGroup> = [];
109
- queue: PromiseQueue<mixed>;
115
+ queue: PromiseQueue<unknown>;
110
116
  changedAssets: Map<string, Asset>;
111
117
  changedAssetsPropagation: Set<string>;
112
- prevChangedAssetsPropagation: ?Set<string>;
118
+ prevChangedAssetsPropagation: Set<string> | null | undefined;
113
119
  optionsRef: SharedReference;
114
120
  options: AtlaspackOptions;
115
121
  api: RunAPI<AssetGraphRequestResult>;
@@ -125,7 +131,7 @@ export class AssetGraphBuilder {
125
131
 
126
132
  constructor(
127
133
  {input, api, options}: RunInput,
128
- prevResult: ?AssetGraphRequestResult,
134
+ prevResult?: AssetGraphRequestResult | null,
129
135
  ) {
130
136
  let {
131
137
  entries,
@@ -161,20 +167,30 @@ export class AssetGraphBuilder {
161
167
  this.shouldBuildLazily = shouldBuildLazily ?? false;
162
168
  this.lazyIncludes = lazyIncludes ?? [];
163
169
  this.lazyExcludes = lazyExcludes ?? [];
164
- this.cacheKey =
165
- hashString(
170
+ if (getFeatureFlag('cachePerformanceImprovements')) {
171
+ const key = hashString(
166
172
  `${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
167
173
  options.mode
168
174
  }${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
169
- ) + '-AssetGraph';
175
+ );
176
+ this.cacheKey = `AssetGraph/${ATLASPACK_VERSION}/${options.mode}/${key}`;
177
+ } else {
178
+ this.cacheKey =
179
+ hashString(
180
+ `${ATLASPACK_VERSION}${name}${JSON.stringify(entries) ?? ''}${
181
+ options.mode
182
+ }${options.shouldBuildLazily ? 'lazy' : 'eager'}`,
183
+ ) + '-AssetGraph';
184
+ }
170
185
 
171
186
  this.isSingleChangeRebuild =
172
187
  api
173
188
  .getInvalidSubRequests()
189
+ // @ts-expect-error TS2367
174
190
  .filter((req) => req.requestType === 'asset_request').length === 1;
175
191
  this.queue = new PromiseQueue();
176
192
 
177
- assetGraph.onNodeRemoved = (nodeId) => {
193
+ assetGraph.onNodeRemoved = (nodeId: NodeId) => {
178
194
  this.assetGroupsWithRemovedParents.delete(nodeId);
179
195
 
180
196
  // This needs to mark all connected nodes that doesn't become orphaned
@@ -196,7 +212,7 @@ export class AssetGraphBuilder {
196
212
  }
197
213
 
198
214
  async build(): Promise<AssetGraphRequestResult> {
199
- let errors = [];
215
+ let errors: Array<Error> = [];
200
216
  let rootNodeId = nullthrows(
201
217
  this.assetGraph.rootNodeId,
202
218
  'A root node is required to traverse',
@@ -224,6 +240,7 @@ export class AssetGraphBuilder {
224
240
  for (let childNodeId of this.assetGraph.getNodeIdsConnectedFrom(nodeId)) {
225
241
  let child = nullthrows(this.assetGraph.getNode(childNodeId));
226
242
  if (
243
+ // @ts-expect-error TS2339
227
244
  (!visited.has(childNodeId) || child.hasDeferred) &&
228
245
  this.shouldVisitChild(nodeId, childNodeId)
229
246
  ) {
@@ -310,7 +327,7 @@ export class AssetGraphBuilder {
310
327
  diagnostic: [...errors.values()][0],
311
328
  });
312
329
  }
313
- } catch (e) {
330
+ } catch (e: any) {
314
331
  await dumpGraphToGraphViz(
315
332
  this.assetGraph,
316
333
  'AssetGraph_' + this.name + '_failed',
@@ -428,9 +445,12 @@ export class AssetGraphBuilder {
428
445
  shouldSkipRequest(nodeId: NodeId): boolean {
429
446
  let node = nullthrows(this.assetGraph.getNode(nodeId));
430
447
  return (
448
+ // @ts-expect-error TS2339
431
449
  node.complete === true ||
432
450
  !typesWithRequests.has(node.type) ||
451
+ // @ts-expect-error TS2339
433
452
  (node.correspondingRequest != null &&
453
+ // @ts-expect-error TS2339
434
454
  this.api.canSkipSubrequest(node.correspondingRequest))
435
455
  );
436
456
  }
@@ -459,7 +479,7 @@ export class AssetGraphBuilder {
459
479
  `Can not queue corresponding request of node with type ${node.type}`,
460
480
  );
461
481
  }
462
- return new Promise((resolve) => {
482
+ return new Promise((resolve: (result: Promise<null> | null) => void) => {
463
483
  this.queue.add(() =>
464
484
  promise.then(
465
485
  () => {
@@ -501,6 +521,7 @@ export class AssetGraphBuilder {
501
521
 
502
522
  if (didEntriesChange) {
503
523
  this.assetGraph.safeToIncrementallyBundle = false;
524
+ this.assetGraph.setNeedsBundling();
504
525
  }
505
526
  }
506
527
  }
@@ -515,15 +536,16 @@ export class AssetGraphBuilder {
515
536
 
516
537
  async runPathRequest(input: Dependency) {
517
538
  let request = createPathRequest({dependency: input, name: this.name});
518
- let result = await this.api.runRequest<PathRequestInput, ?AssetGroup>(
519
- request,
520
- {force: true},
521
- );
539
+ let result = await this.api.runRequest<
540
+ PathRequestInput,
541
+ AssetGroup | null | undefined
542
+ >(request, {force: true});
522
543
  this.assetGraph.resolveDependency(input, result, request.id);
523
544
  }
524
545
 
525
546
  async runAssetRequest(input: AssetGroup) {
526
547
  this.assetRequests.push(input);
548
+ // @ts-expect-error TS2345
527
549
  let request = createAssetRequest({
528
550
  ...input,
529
551
  name: this.name,
@@ -538,16 +560,28 @@ export class AssetGraphBuilder {
538
560
 
539
561
  if (assets != null) {
540
562
  for (let asset of assets) {
563
+ // Pass the runtimeAssetRequiringExecutionOnLoad flag from the asset
564
+ // group down to the asset itself, for reading in the packager.
565
+ if (input.runtimeAssetRequiringExecutionOnLoad) {
566
+ asset.meta = {
567
+ ...(asset.meta ?? {}),
568
+ runtimeAssetRequiringExecutionOnLoad:
569
+ input.runtimeAssetRequiringExecutionOnLoad,
570
+ };
571
+ }
572
+
541
573
  if (this.assetGraph.safeToIncrementallyBundle) {
542
574
  let otherAsset = this.assetGraph.getNodeByContentKey(asset.id);
543
575
  if (otherAsset != null) {
544
576
  invariant(otherAsset.type === 'asset');
545
577
  if (!this._areDependenciesEqualForAssets(asset, otherAsset.value)) {
546
578
  this.assetGraph.safeToIncrementallyBundle = false;
579
+ this.assetGraph.setNeedsBundling();
547
580
  }
548
581
  } else {
549
582
  // adding a new entry or dependency
550
583
  this.assetGraph.safeToIncrementallyBundle = false;
584
+ this.assetGraph.setNeedsBundling();
551
585
  }
552
586
  }
553
587
  this.changedAssets.set(asset.id, asset);
@@ -556,6 +590,7 @@ export class AssetGraphBuilder {
556
590
  this.assetGraph.resolveAssetGroup(input, assets, request.id);
557
591
  } else {
558
592
  this.assetGraph.safeToIncrementallyBundle = false;
593
+ this.assetGraph.setNeedsBundling();
559
594
  }
560
595
 
561
596
  this.isSingleChangeRebuild = false;