@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 strict-local
2
1
  import type {Async} from '@atlaspack/types';
3
2
  import type {SharedReference} from '@atlaspack/workers';
4
3
  import type {StaticRunOpts} from '../RequestTracker';
@@ -12,22 +11,21 @@ import Validation from '../Validation';
12
11
  import createAtlaspackConfigRequest from './AtlaspackConfigRequest';
13
12
  import {requestTypes} from '../RequestTracker';
14
13
 
15
- type ValidationRequest = {|
16
- id: string,
17
- +type: typeof requestTypes.validation_request,
18
- run: (RunOpts<void>) => Async<void>,
19
- input: ValidationRequestInput,
20
- |};
14
+ type ValidationRequest = {
15
+ id: string;
16
+ readonly type: typeof requestTypes.validation_request;
17
+ run: (arg1: RunOpts<undefined>) => Async<void>;
18
+ input: ValidationRequestInput;
19
+ };
21
20
 
22
- type RunOpts<TResult> = {|
23
- input: ValidationRequestInput,
24
- ...StaticRunOpts<TResult>,
25
- |};
21
+ type RunOpts<TResult> = {
22
+ input: ValidationRequestInput;
23
+ } & StaticRunOpts<TResult>;
26
24
 
27
- type ValidationRequestInput = {|
28
- assetRequests: Array<AssetGroup>,
29
- optionsRef: SharedReference,
30
- |};
25
+ type ValidationRequestInput = {
26
+ assetRequests: Array<AssetGroup>;
27
+ optionsRef: SharedReference;
28
+ };
31
29
 
32
30
  export default function createValidationRequest(
33
31
  input: ValidationRequestInput,
@@ -44,17 +42,18 @@ export default function createValidationRequest(
44
42
 
45
43
  let config = new AtlaspackConfig(processedConfig, options);
46
44
  let trackedRequestsDesc = assetRequests.filter((request) => {
45
+ // @ts-expect-error TS2345
47
46
  return config.getValidatorNames(request.filePath).length > 0;
48
47
  });
49
48
 
50
49
  // Schedule validations on workers for all plugins that implement the one-asset-at-a-time "validate" method.
51
50
  let promises = trackedRequestsDesc.map(
52
51
  async (request) =>
53
- ((await farm.createHandle('runValidate'))({
52
+ (await farm.createHandle('runValidate'))({
54
53
  requests: [request],
55
54
  optionsRef: optionsRef,
56
55
  configCachePath: cachePath,
57
- }): void),
56
+ }) as undefined,
58
57
  );
59
58
 
60
59
  // Skip sending validation requests if no validators were configured
@@ -64,10 +63,12 @@ export default function createValidationRequest(
64
63
 
65
64
  // Schedule validations on the main thread for all validation plugins that implement "validateAll".
66
65
  promises.push(
66
+ // @ts-expect-error TS2345
67
67
  new Validation({
68
68
  requests: trackedRequestsDesc,
69
69
  options,
70
70
  config,
71
+ // @ts-expect-error TS2322
71
72
  report,
72
73
  dedicatedThread: true,
73
74
  }).run(),
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {FileSystem, FileOptions} from '@atlaspack/fs';
4
2
  import type {ContentKey} from '@atlaspack/graph';
5
3
  import type {Async, FilePath, Compressor} from '@atlaspack/types';
@@ -40,30 +38,31 @@ import {AtlaspackConfig} from '../AtlaspackConfig';
40
38
  import ThrowableDiagnostic, {errorToDiagnostic} from '@atlaspack/diagnostic';
41
39
  import {PluginTracer, tracer} from '@atlaspack/profiler';
42
40
  import {requestTypes} from '../RequestTracker';
41
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
42
+ import {fromEnvironmentId} from '../EnvironmentManager';
43
43
 
44
44
  const HASH_REF_PREFIX_LEN = HASH_REF_PREFIX.length;
45
45
  const BOUNDARY_LENGTH = HASH_REF_PREFIX.length + 32 - 1;
46
46
 
47
- type WriteBundleRequestInput = {|
48
- bundleGraph: BundleGraph,
49
- bundle: Bundle,
50
- info: BundleInfo,
51
- hashRefToNameHash: Map<string, string>,
52
- |};
47
+ type WriteBundleRequestInput = {
48
+ bundleGraph: BundleGraph;
49
+ bundle: Bundle;
50
+ info: BundleInfo;
51
+ hashRefToNameHash: Map<string, string>;
52
+ };
53
53
 
54
54
  export type WriteBundleRequestResult = PackagedBundleInfo;
55
55
 
56
- type RunInput<TResult> = {|
57
- input: WriteBundleRequestInput,
58
- ...StaticRunOpts<TResult>,
59
- |};
56
+ type RunInput<TResult> = {
57
+ input: WriteBundleRequestInput;
58
+ } & StaticRunOpts<TResult>;
60
59
 
61
- export type WriteBundleRequest = {|
62
- id: ContentKey,
63
- +type: typeof requestTypes.write_bundle_request,
64
- run: (RunInput<PackagedBundleInfo>) => Async<PackagedBundleInfo>,
65
- input: WriteBundleRequestInput,
66
- |};
60
+ export type WriteBundleRequest = {
61
+ id: ContentKey;
62
+ readonly type: typeof requestTypes.write_bundle_request;
63
+ run: (arg1: RunInput<PackagedBundleInfo>) => Async<PackagedBundleInfo>;
64
+ input: WriteBundleRequestInput;
65
+ };
67
66
 
68
67
  /**
69
68
  * Writes a bundle to the dist directory, replacing hash references with the final content hashes.
@@ -83,6 +82,7 @@ export default function createWriteBundleRequest(
83
82
  };
84
83
  }
85
84
 
85
+ // @ts-expect-error TS7031
86
86
  async function run({input, options, api}) {
87
87
  let {bundleGraph, bundle, info, hashRefToNameHash} = input;
88
88
  let {inputFS, outputFS} = options;
@@ -110,7 +110,9 @@ async function run({input, options, api}) {
110
110
  let cacheKeys = info.cacheKeys;
111
111
  let mapKey = cacheKeys.map;
112
112
  let fullPath = fromProjectPath(options.projectRoot, filePath);
113
- if (mapKey && bundle.env.sourceMap && !bundle.env.sourceMap.inline) {
113
+ const env = fromEnvironmentId(bundle.env);
114
+
115
+ if (mapKey && env.sourceMap && !env.sourceMap.inline) {
114
116
  api.invalidateOnFileDelete(
115
117
  toProjectPath(options.projectRoot, fullPath + '.map'),
116
118
  );
@@ -139,12 +141,14 @@ async function run({input, options, api}) {
139
141
  }
140
142
  let size = 0;
141
143
  contentStream = contentStream.pipe(
142
- new TapStream((buf) => {
144
+ // @ts-expect-error TS2554
145
+ new TapStream((buf: Buffer) => {
143
146
  size += buf.length;
144
147
  }),
145
148
  );
146
149
 
147
150
  let configResult = nullthrows(
151
+ // @ts-expect-error TS2347
148
152
  await api.runRequest<null, ConfigAndCachePath>(
149
153
  createAtlaspackConfigRequest(),
150
154
  ),
@@ -167,14 +171,15 @@ async function run({input, options, api}) {
167
171
  api,
168
172
  );
169
173
 
170
- if (
171
- mapKey &&
172
- bundle.env.sourceMap &&
173
- !bundle.env.sourceMap.inline &&
174
- (await options.cache.has(mapKey))
175
- ) {
174
+ const hasSourceMap = getFeatureFlag('cachePerformanceImprovements')
175
+ ? await options.cache.hasLargeBlob(mapKey)
176
+ : await options.cache.has(mapKey);
177
+ if (mapKey && env.sourceMap && !env.sourceMap.inline && hasSourceMap) {
178
+ const mapEntry = getFeatureFlag('cachePerformanceImprovements')
179
+ ? await options.cache.getLargeBlob(mapKey)
180
+ : await options.cache.getBlob(mapKey);
176
181
  await writeFiles(
177
- blobToStream(await options.cache.getBlob(mapKey)),
182
+ blobToStream(mapEntry),
178
183
  info,
179
184
  hashRefToNameHash,
180
185
  options,
@@ -189,6 +194,7 @@ async function run({input, options, api}) {
189
194
 
190
195
  let res = {
191
196
  filePath,
197
+ bundleId: bundle.id,
192
198
  type: info.type,
193
199
  stats: {
194
200
  size,
@@ -201,14 +207,15 @@ async function run({input, options, api}) {
201
207
  }
202
208
 
203
209
  async function writeFiles(
204
- inputStream: stream$Readable,
210
+ // @ts-expect-error TS2503
211
+ inputStream: stream.Readable,
205
212
  info: BundleInfo,
206
213
  hashRefToNameHash: Map<string, string>,
207
214
  options: AtlaspackOptions,
208
215
  config: AtlaspackConfig,
209
216
  outputFS: FileSystem,
210
217
  filePath: ProjectPath,
211
- writeOptions: ?FileOptions,
218
+ writeOptions: FileOptions | null | undefined,
212
219
  devDeps: Map<string, string>,
213
220
  api: RunAPI<PackagedBundleInfo>,
214
221
  ) {
@@ -221,9 +228,10 @@ async function writeFiles(
221
228
  ? inputStream.pipe(replaceStream(hashRefToNameHash))
222
229
  : inputStream;
223
230
 
224
- let promises = [];
231
+ let promises: Array<Promise<undefined>> = [];
225
232
  for (let compressor of compressors) {
226
233
  promises.push(
234
+ // @ts-expect-error TS2345
227
235
  runCompressor(
228
236
  compressor,
229
237
  cloneStream(stream),
@@ -242,11 +250,12 @@ async function writeFiles(
242
250
 
243
251
  async function runCompressor(
244
252
  compressor: LoadedPlugin<Compressor>,
245
- stream: stream$Readable,
253
+ // @ts-expect-error TS2503
254
+ stream: stream.Readable,
246
255
  options: AtlaspackOptions,
247
256
  outputFS: FileSystem,
248
257
  filePath: FilePath,
249
- writeOptions: ?FileOptions,
258
+ writeOptions: FileOptions | null | undefined,
250
259
  devDeps: Map<string, string>,
251
260
  api: RunAPI<PackagedBundleInfo>,
252
261
  ) {
@@ -265,21 +274,26 @@ async function runCompressor(
265
274
  });
266
275
 
267
276
  if (res != null) {
268
- await new Promise((resolve, reject) =>
269
- pipeline(
270
- res.stream,
271
- outputFS.createWriteStream(
272
- filePath + (res.type != null ? '.' + res.type : ''),
273
- writeOptions,
277
+ await new Promise(
278
+ (
279
+ resolve: (result: Promise<undefined> | undefined) => void,
280
+ reject: (error?: any) => void,
281
+ ) =>
282
+ pipeline(
283
+ res.stream,
284
+ outputFS.createWriteStream(
285
+ filePath + (res.type != null ? '.' + res.type : ''),
286
+ writeOptions,
287
+ ),
288
+ (err) => {
289
+ if (err) reject(err);
290
+ // @ts-expect-error TS2794
291
+ else resolve();
292
+ },
274
293
  ),
275
- (err) => {
276
- if (err) reject(err);
277
- else resolve();
278
- },
279
- ),
280
294
  );
281
295
  }
282
- } catch (err) {
296
+ } catch (err: any) {
283
297
  throw new ThrowableDiagnostic({
284
298
  diagnostic: errorToDiagnostic(err, {
285
299
  origin: compressor.name,
@@ -300,11 +314,18 @@ async function runCompressor(
300
314
  }
301
315
  }
302
316
 
303
- function replaceStream(hashRefToNameHash) {
317
+ function replaceStream(hashRefToNameHash: Map<string, string>) {
304
318
  let boundaryStr = Buffer.alloc(0);
305
319
  let replaced = Buffer.alloc(0);
306
320
  return new Transform({
307
- transform(chunk, encoding, cb) {
321
+ transform(
322
+ chunk: Buffer | string,
323
+ encoding: string,
324
+ cb: (
325
+ error?: Error | null | undefined,
326
+ data?: Buffer | string | null | undefined,
327
+ ) => void,
328
+ ) {
308
329
  let str = Buffer.concat([boundaryStr, Buffer.from(chunk)]);
309
330
  let lastMatchI = 0;
310
331
  if (replaced.length < str.byteLength) {
@@ -345,18 +366,25 @@ function replaceStream(hashRefToNameHash) {
345
366
  cb(null, strUpToBoundary);
346
367
  },
347
368
 
348
- flush(cb) {
369
+ flush(
370
+ cb: (
371
+ error?: Error | null | undefined,
372
+ data?: Buffer | string | null | undefined,
373
+ ) => void,
374
+ ) {
349
375
  cb(null, boundaryStr);
350
376
  },
351
377
  });
352
378
  }
353
379
 
354
- function cloneStream(readable) {
380
+ // @ts-expect-error TS2503
381
+ function cloneStream(readable: stream.Readable | stream.Transform) {
355
382
  let res = new Readable();
356
- // $FlowFixMe
357
383
  res._read = () => {};
384
+ // @ts-expect-error TS7006
358
385
  readable.on('data', (chunk) => res.push(chunk));
359
386
  readable.on('end', () => res.push(null));
387
+ // @ts-expect-error TS7006
360
388
  readable.on('error', (err) => res.emit('error', err));
361
389
  return res;
362
390
  }
@@ -1,14 +1,18 @@
1
- // @flow strict-local
2
-
3
1
  import type {ContentKey} from '@atlaspack/graph';
4
2
  import type {Async} from '@atlaspack/types';
5
3
  import {getFeatureFlag} from '@atlaspack/feature-flags';
6
4
  import type {SharedReference} from '@atlaspack/workers';
7
5
  import type {StaticRunOpts} from '../RequestTracker';
8
6
  import {requestTypes} from '../RequestTracker';
9
- import type {PackagedBundleInfo} from '../types';
7
+ import {
8
+ BundleBehavior,
9
+ type PackagedBundleInfo,
10
+ type Bundle,
11
+ type AtlaspackOptions,
12
+ } from '../types';
10
13
  import type BundleGraph from '../BundleGraph';
11
14
  import type {BundleInfo} from '../PackagerRunner';
15
+ import {report} from '../ReporterRunner';
12
16
 
13
17
  import {HASH_REF_PREFIX} from '../constants';
14
18
  import {joinProjectPath} from '../projectPath';
@@ -16,27 +20,49 @@ import nullthrows from 'nullthrows';
16
20
  import {hashString} from '@atlaspack/rust';
17
21
  import {createPackageRequest} from './PackageRequest';
18
22
  import createWriteBundleRequest from './WriteBundleRequest';
23
+ import {debugTools} from '@atlaspack/utils';
19
24
 
20
- type WriteBundlesRequestInput = {|
21
- bundleGraph: BundleGraph,
22
- optionsRef: SharedReference,
23
- |};
25
+ type WriteBundlesRequestInput = {
26
+ bundleGraph: BundleGraph;
27
+ optionsRef: SharedReference;
28
+ };
24
29
 
25
- export type WriteBundlesRequestResult = Map<string, PackagedBundleInfo>;
30
+ export type WriteBundlesRequestResult = {
31
+ bundleInfo: Map<string, PackagedBundleInfo>;
32
+ scopeHoistingStats?: {
33
+ totalAssets: number;
34
+ wrappedAssets: number;
35
+ };
36
+ };
26
37
 
27
- type RunInput<TResult> = {|
28
- input: WriteBundlesRequestInput,
29
- ...StaticRunOpts<TResult>,
30
- |};
38
+ type RunInput<TResult> = {
39
+ input: WriteBundlesRequestInput;
40
+ } & StaticRunOpts<TResult>;
31
41
 
32
- export type WriteBundlesRequest = {|
33
- id: ContentKey,
34
- +type: typeof requestTypes.write_bundles_request,
42
+ export type WriteBundlesRequest = {
43
+ id: ContentKey;
44
+ readonly type: typeof requestTypes.write_bundles_request;
35
45
  run: (
36
- RunInput<WriteBundlesRequestResult>,
37
- ) => Async<WriteBundlesRequestResult>,
38
- input: WriteBundlesRequestInput,
39
- |};
46
+ arg1: RunInput<WriteBundlesRequestResult>,
47
+ ) => Async<WriteBundlesRequestResult>;
48
+ input: WriteBundlesRequestInput;
49
+ };
50
+
51
+ function reportPackagingProgress(
52
+ completeBundles: number,
53
+ totalBundles: number,
54
+ ) {
55
+ if (!getFeatureFlag('cliProgressReportingImprovements')) {
56
+ return;
57
+ }
58
+
59
+ report({
60
+ type: 'buildProgress',
61
+ phase: 'packagingAndOptimizing',
62
+ totalBundles,
63
+ completeBundles,
64
+ });
65
+ }
40
66
 
41
67
  /**
42
68
  * Packages, optimizes, and writes all bundles to the dist directory.
@@ -52,17 +78,22 @@ export default function createWriteBundlesRequest(
52
78
  };
53
79
  }
54
80
 
55
- async function run({input, api, farm, options}) {
81
+ async function run({
82
+ input,
83
+ api,
84
+ farm,
85
+ options,
86
+ }: RunInput<WriteBundlesRequestResult>) {
56
87
  let {bundleGraph, optionsRef} = input;
57
88
  let {ref, dispose} = await farm.createSharedReference(bundleGraph);
58
89
 
59
90
  api.invalidateOnOptionChange('shouldContentHash');
60
91
 
61
92
  let res = new Map();
62
- let bundleInfoMap: {|
63
- [string]: BundleInfo,
64
- |} = {};
65
- let writeEarlyPromises = {};
93
+ let bundleInfoMap: {
94
+ [key: string]: BundleInfo;
95
+ } = {};
96
+ let writeEarlyPromises: Record<string, Promise<PackagedBundleInfo>> = {};
66
97
  let hashRefToNameHash = new Map();
67
98
 
68
99
  // Include inline bundles so that non-inline bundles referenced from inline bundles are written to
@@ -71,7 +102,11 @@ async function run({input, api, farm, options}) {
71
102
  includeInline: getFeatureFlag('inlineBundlesSourceMapFixes'),
72
103
  });
73
104
  const bundles = allBundles
74
- .filter((bundle) => bundle.bundleBehavior !== 'inline')
105
+ .filter(
106
+ (bundle) =>
107
+ bundle.bundleBehavior !== BundleBehavior.inline &&
108
+ bundle.bundleBehavior !== BundleBehavior.inlineIsolated,
109
+ )
75
110
  .filter((bundle) => {
76
111
  // Do not package and write placeholder bundles to disk. We just
77
112
  // need to update the name so other bundles can reference it.
@@ -84,6 +119,7 @@ async function run({input, api, farm, options}) {
84
119
  ).replace(bundle.hashReference, hash);
85
120
  res.set(bundle.id, {
86
121
  filePath: joinProjectPath(bundle.target.distDir, name),
122
+ bundleId: bundle.id,
87
123
  type: bundle.type, // FIXME: this is wrong if the packager changes the type...
88
124
  stats: {
89
125
  time: 0,
@@ -96,14 +132,19 @@ async function run({input, api, farm, options}) {
96
132
  return true;
97
133
  });
98
134
 
135
+ let cachedBundles = new Set(
136
+ bundles.filter((b) => api.canSkipSubrequest(bundleGraph.getHash(b))),
137
+ );
138
+
99
139
  // Package on the main thread if there is only one bundle to package.
100
140
  // This avoids the cost of serializing the bundle graph for single file change builds.
101
141
  let useMainThread =
102
- bundles.length === 1 ||
103
- bundles.filter((b) => !api.canSkipSubrequest(bundleGraph.getHash(b)))
104
- .length === 1;
142
+ bundles.length === 1 || bundles.length - cachedBundles.size <= 1;
105
143
 
106
144
  try {
145
+ let completeBundles = cachedBundles.size;
146
+ reportPackagingProgress(completeBundles, bundles.length);
147
+
107
148
  await Promise.all(
108
149
  bundles.map(async (bundle) => {
109
150
  let request = createPackageRequest({
@@ -116,6 +157,11 @@ async function run({input, api, farm, options}) {
116
157
 
117
158
  let info = await api.runRequest(request);
118
159
 
160
+ if (!cachedBundles.has(bundle)) {
161
+ completeBundles++;
162
+ reportPackagingProgress(completeBundles, bundles.length);
163
+ }
164
+
119
165
  if (!useMainThread) {
120
166
  // Force a refresh of the cache to avoid a race condition
121
167
  // between threaded reads and writes that can result in an LMDB cache miss:
@@ -167,18 +213,42 @@ async function run({input, api, farm, options}) {
167
213
  }),
168
214
  );
169
215
 
170
- api.storeResult(res);
171
- return res;
216
+ let result: WriteBundlesRequestResult = {bundleInfo: res};
217
+
218
+ if (debugTools['scope-hoisting-stats']) {
219
+ // Aggregate scope hoisting stats from all bundles
220
+ let aggregatedScopeHoistingStats = {
221
+ totalAssets: 0,
222
+ wrappedAssets: 0,
223
+ };
224
+
225
+ for (let bundle of bundles) {
226
+ let bundleInfo = bundleInfoMap[bundle.id];
227
+ if (bundleInfo?.scopeHoistingStats) {
228
+ aggregatedScopeHoistingStats.totalAssets +=
229
+ bundleInfo.scopeHoistingStats.totalAssets;
230
+ aggregatedScopeHoistingStats.wrappedAssets +=
231
+ bundleInfo.scopeHoistingStats.wrappedAssets;
232
+ }
233
+ }
234
+
235
+ result.scopeHoistingStats = aggregatedScopeHoistingStats;
236
+ }
237
+
238
+ api.storeResult(result);
239
+ return result;
172
240
  } finally {
173
241
  await dispose();
174
242
  }
175
243
  }
176
244
 
177
245
  function assignComplexNameHashes(
178
- hashRefToNameHash,
179
- bundles,
180
- bundleInfoMap,
181
- options,
246
+ hashRefToNameHash: Map<string, string>,
247
+ bundles: Array<Bundle>,
248
+ bundleInfoMap: {
249
+ [key: string]: BundleInfo;
250
+ },
251
+ options: AtlaspackOptions,
182
252
  ) {
183
253
  for (let bundle of bundles) {
184
254
  if (hashRefToNameHash.get(bundle.hashReference) != null) {
@@ -198,9 +268,11 @@ function assignComplexNameHashes(
198
268
  }
199
269
 
200
270
  function getBundlesIncludedInHash(
201
- bundleId,
202
- bundleInfoMap,
203
- included = new Set(),
271
+ bundleId: ContentKey | string,
272
+ bundleInfoMap: {
273
+ [key: string]: BundleInfo;
274
+ },
275
+ included = new Set<string>(),
204
276
  ) {
205
277
  included.add(bundleId);
206
278
  for (let hashRef of bundleInfoMap[bundleId]?.hashReferences ?? []) {
@@ -1,15 +1,12 @@
1
1
  /* eslint-disable no-console */
2
- // @flow strict-local
3
-
4
- // $FlowFixMe
2
+ // @ts-expect-error missing types
5
3
  import deepClone from 'rfdc/default';
6
- // $FlowFixMe
7
4
  import {diff} from 'jest-diff';
8
5
  import AssetGraph from '../AssetGraph';
9
6
  import type {AssetGraphNode} from '../types';
10
- import {fromProjectPathRelative, toProjectPath} from '../projectPath';
7
+ import {toProjectPath} from '../projectPath';
11
8
 
12
- function filterNode(node) {
9
+ function filterNode(node: any) {
13
10
  let clone = deepClone(node);
14
11
 
15
12
  // Clean up anything you don't want to see in the diff
@@ -35,24 +32,26 @@ function filterNode(node) {
35
32
  return clone;
36
33
  }
37
34
 
35
+ // @ts-expect-error missing return type
38
36
  function compactDeep(
39
- obj: mixed,
37
+ obj: unknown,
40
38
  ignoredPatterns: Array<string> = [],
41
39
  currentPath: string = '$',
42
40
  ) {
43
41
  if (obj instanceof Map) {
44
- const copy = {};
45
- Array.from(obj.entries()).forEach(([k, v]) => {
42
+ const copy: Record<string, any> = {};
43
+ Array.from(obj.entries()).forEach(([k, v]: [any, any]) => {
46
44
  if (v != null) {
47
45
  copy[k] = compactDeep(v, ignoredPatterns, `${currentPath}.${k}`);
48
46
  }
49
47
  });
50
48
  return copy;
51
49
  } else if (Array.isArray(obj)) {
50
+ // @ts-expect-error implicit any
52
51
  return obj.map((v) => compactDeep(v, ignoredPatterns, `${currentPath}[]`));
53
52
  } else if (typeof obj === 'object') {
54
- const copy = {};
55
- Object.entries(obj ?? {}).forEach(([key, value]) => {
53
+ const copy: Record<string, any> = {};
54
+ Object.entries(obj ?? {}).forEach(([key, value]: [any, any]) => {
56
55
  const path = `${currentPath}.${key}`;
57
56
  if (ignoredPatterns.some((pattern) => path.includes(pattern))) {
58
57
  return;
@@ -72,21 +71,26 @@ function compactDeep(
72
71
  }
73
72
  }
74
73
 
75
- function assetGraphDiff(jsAssetGraph: AssetGraph, rustAssetGraph: AssetGraph) {
76
- const getNodes = (graph) => {
77
- let nodes = {};
74
+ function assetGraphDiff(
75
+ jsAssetGraph: AssetGraph,
76
+ rustAssetGraph: AssetGraph,
77
+ projectRoot: string,
78
+ ) {
79
+ const getNodes = (graph: any) => {
80
+ let nodes: Record<string, any> = {};
78
81
 
82
+ // @ts-expect-error implicit any
79
83
  graph.traverse((nodeId) => {
80
84
  let node: AssetGraphNode | null = graph.getNode(nodeId) ?? null;
81
85
  if (!node) return;
82
86
 
83
87
  if (node.type === 'dependency') {
84
- let sourcePath = node.value.sourcePath ?? toProjectPath('', 'entry');
85
- nodes[
86
- `dep:${fromProjectPathRelative(sourcePath)}:${node.value.specifier}`
87
- ] = filterNode(node);
88
+ let sourcePath = node.value.sourcePath
89
+ ? toProjectPath(projectRoot, node.value.sourcePath)
90
+ : toProjectPath(projectRoot, 'entry');
91
+ nodes[`dep:${sourcePath}:${node.value.specifier}`] = filterNode(node);
88
92
  } else if (node.type === 'asset') {
89
- nodes[`asset:${fromProjectPathRelative(node.value.filePath)}`] =
93
+ nodes[`asset:${toProjectPath(projectRoot, node.value.filePath)}`] =
90
94
  filterNode(node);
91
95
  }
92
96
  });
@@ -98,8 +102,8 @@ function assetGraphDiff(jsAssetGraph: AssetGraph, rustAssetGraph: AssetGraph) {
98
102
  const rustNodes = getNodes(rustAssetGraph);
99
103
 
100
104
  const all = new Set([...Object.keys(jsNodes), ...Object.keys(rustNodes)]);
101
- const missing = [];
102
- const extra = [];
105
+ const missing: Array<any | string> = [];
106
+ const extra: Array<any | string> = [];
103
107
 
104
108
  for (const key of all.keys()) {
105
109
  if (process.env.NATIVE_COMPARE !== 'true') {