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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/CHANGELOG.md +1452 -0
  2. package/dist/AssetGraph.js +523 -0
  3. package/dist/Atlaspack.js +701 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1906 -0
  7. package/dist/CommittedAsset.js +142 -0
  8. package/dist/Dependency.js +125 -0
  9. package/dist/Environment.js +132 -0
  10. package/dist/EnvironmentManager.js +108 -0
  11. package/dist/IdentifierRegistry.js +38 -0
  12. package/dist/InternalConfig.js +37 -0
  13. package/dist/PackagerRunner.js +470 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1297 -0
  16. package/dist/SymbolPropagation.js +624 -0
  17. package/dist/TargetDescriptor.schema.js +146 -0
  18. package/dist/Transformation.js +514 -0
  19. package/dist/UncommittedAsset.js +310 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +384 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +83 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +114 -0
  25. package/dist/atlaspack-v3/fs.js +53 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
  30. package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
  31. package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
  32. package/dist/atlaspack-v3/worker/compat/index.js +24 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  37. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  38. package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
  39. package/dist/atlaspack-v3/worker/worker.js +398 -0
  40. package/dist/constants.js +17 -0
  41. package/dist/dumpGraphToGraphViz.js +281 -0
  42. package/dist/index.js +62 -0
  43. package/dist/loadAtlaspackPlugin.js +128 -0
  44. package/dist/loadDotEnv.js +41 -0
  45. package/dist/projectPath.js +83 -0
  46. package/dist/public/Asset.js +279 -0
  47. package/dist/public/Bundle.js +224 -0
  48. package/dist/public/BundleGraph.js +371 -0
  49. package/dist/public/BundleGroup.js +53 -0
  50. package/dist/public/Config.js +286 -0
  51. package/dist/public/Dependency.js +138 -0
  52. package/dist/public/Environment.js +278 -0
  53. package/dist/public/MutableBundleGraph.js +277 -0
  54. package/dist/public/PluginOptions.js +80 -0
  55. package/dist/public/Symbols.js +248 -0
  56. package/dist/public/Target.js +69 -0
  57. package/dist/registerCoreWithSerializer.js +38 -0
  58. package/dist/requests/AssetGraphRequest.js +430 -0
  59. package/dist/requests/AssetGraphRequestRust.js +471 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +98 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +381 -0
  64. package/dist/requests/BundleGraphRequestRust.js +324 -0
  65. package/dist/requests/BundleGraphRequestUtils.js +262 -0
  66. package/dist/requests/ConfigRequest.js +246 -0
  67. package/dist/requests/DevDepRequest.js +204 -0
  68. package/dist/requests/EntryRequest.js +314 -0
  69. package/dist/requests/PackageRequest.js +89 -0
  70. package/dist/requests/PathRequest.js +349 -0
  71. package/dist/requests/TargetRequest.js +1316 -0
  72. package/dist/requests/ValidationRequest.js +49 -0
  73. package/dist/requests/WriteBundleRequest.js +522 -0
  74. package/dist/requests/WriteBundlesRequest.js +190 -0
  75. package/dist/requests/asset-graph-diff.js +128 -0
  76. package/dist/requests/asset-graph-dot.js +131 -0
  77. package/dist/resolveOptions.js +267 -0
  78. package/dist/rustWorkerThreadDylibHack.js +19 -0
  79. package/dist/serializerCore.browser.js +43 -0
  80. package/dist/summarizeRequest.js +39 -0
  81. package/dist/types.js +31 -0
  82. package/dist/utils.js +172 -0
  83. package/dist/worker.js +123 -0
  84. package/lib/AssetGraph.js +53 -15
  85. package/lib/Atlaspack.js +160 -57
  86. package/lib/AtlaspackConfig.js +17 -6
  87. package/lib/AtlaspackConfig.schema.js +16 -5
  88. package/lib/BundleGraph.js +390 -43
  89. package/lib/CommittedAsset.js +8 -2
  90. package/lib/Dependency.js +9 -3
  91. package/lib/Environment.js +16 -10
  92. package/lib/EnvironmentManager.js +143 -0
  93. package/lib/IdentifierRegistry.js +2 -4
  94. package/lib/InternalConfig.js +3 -2
  95. package/lib/PackagerRunner.js +38 -40
  96. package/lib/ReporterRunner.js +8 -12
  97. package/lib/RequestTracker.js +336 -168
  98. package/lib/SymbolPropagation.js +52 -29
  99. package/lib/TargetDescriptor.schema.js +10 -1
  100. package/lib/Transformation.js +68 -19
  101. package/lib/UncommittedAsset.js +23 -13
  102. package/lib/Validation.js +20 -5
  103. package/lib/applyRuntimes.js +98 -7
  104. package/lib/assetUtils.js +16 -6
  105. package/lib/atlaspack-v3/AtlaspackV3.js +58 -15
  106. package/lib/atlaspack-v3/NapiWorkerPool.js +63 -2
  107. package/lib/atlaspack-v3/fs.js +4 -1
  108. package/lib/atlaspack-v3/index.js +28 -1
  109. package/lib/atlaspack-v3/jsCallable.js +0 -2
  110. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  111. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  112. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  113. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  114. package/lib/atlaspack-v3/worker/compat/index.js +0 -11
  115. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +16 -11
  116. package/lib/atlaspack-v3/worker/compat/plugin-config.js +14 -35
  117. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -2
  118. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  119. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  120. package/lib/atlaspack-v3/worker/index.js +3 -0
  121. package/lib/atlaspack-v3/worker/side-effect-detector.js +214 -0
  122. package/lib/atlaspack-v3/worker/worker.js +239 -79
  123. package/lib/constants.js +0 -1
  124. package/lib/dumpGraphToGraphViz.js +72 -17
  125. package/lib/index.js +46 -3
  126. package/lib/loadAtlaspackPlugin.js +2 -3
  127. package/lib/loadDotEnv.js +5 -2
  128. package/lib/projectPath.js +6 -1
  129. package/lib/public/Asset.js +22 -12
  130. package/lib/public/Bundle.js +16 -18
  131. package/lib/public/BundleGraph.js +25 -7
  132. package/lib/public/BundleGroup.js +5 -6
  133. package/lib/public/Config.js +118 -18
  134. package/lib/public/Dependency.js +9 -7
  135. package/lib/public/Environment.js +13 -8
  136. package/lib/public/MutableBundleGraph.js +56 -15
  137. package/lib/public/PluginOptions.js +2 -2
  138. package/lib/public/Symbols.js +12 -12
  139. package/lib/public/Target.js +8 -7
  140. package/lib/registerCoreWithSerializer.js +7 -4
  141. package/lib/requests/AssetGraphRequest.js +60 -27
  142. package/lib/requests/AssetGraphRequestRust.js +314 -82
  143. package/lib/requests/AssetRequest.js +24 -7
  144. package/lib/requests/AtlaspackBuildRequest.js +53 -7
  145. package/lib/requests/AtlaspackConfigRequest.js +29 -19
  146. package/lib/requests/BundleGraphRequest.js +67 -124
  147. package/lib/requests/BundleGraphRequestRust.js +381 -0
  148. package/lib/requests/BundleGraphRequestUtils.js +280 -0
  149. package/lib/requests/ConfigRequest.js +55 -7
  150. package/lib/requests/DevDepRequest.js +32 -6
  151. package/lib/requests/EntryRequest.js +4 -3
  152. package/lib/requests/PackageRequest.js +56 -12
  153. package/lib/requests/PathRequest.js +26 -6
  154. package/lib/requests/TargetRequest.js +129 -60
  155. package/lib/requests/ValidationRequest.js +6 -2
  156. package/lib/requests/WriteBundleRequest.js +336 -18
  157. package/lib/requests/WriteBundlesRequest.js +64 -10
  158. package/lib/requests/asset-graph-diff.js +13 -8
  159. package/lib/requests/asset-graph-dot.js +2 -8
  160. package/lib/resolveOptions.js +35 -10
  161. package/lib/rustWorkerThreadDylibHack.js +0 -1
  162. package/lib/serializerCore.browser.js +1 -2
  163. package/lib/summarizeRequest.js +1 -1
  164. package/lib/types/AssetGraph.d.ts +55 -0
  165. package/lib/types/Atlaspack.d.ts +52 -0
  166. package/lib/types/AtlaspackConfig.d.ts +65 -0
  167. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  168. package/lib/types/BundleGraph.d.ts +232 -0
  169. package/lib/types/CommittedAsset.d.ts +23 -0
  170. package/lib/types/Dependency.d.ts +44 -0
  171. package/lib/types/Environment.d.ts +11 -0
  172. package/lib/types/EnvironmentManager.d.ts +37 -0
  173. package/lib/types/IdentifierRegistry.d.ts +6 -0
  174. package/lib/types/InternalConfig.d.ts +23 -0
  175. package/lib/types/PackagerRunner.d.ts +85 -0
  176. package/lib/types/ReporterRunner.d.ts +25 -0
  177. package/lib/types/RequestTracker.d.ts +385 -0
  178. package/lib/types/SymbolPropagation.d.ts +11 -0
  179. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  180. package/lib/types/Transformation.d.ts +72 -0
  181. package/lib/types/UncommittedAsset.d.ts +61 -0
  182. package/lib/types/Validation.d.ts +37 -0
  183. package/lib/types/applyRuntimes.d.ts +25 -0
  184. package/lib/types/assetUtils.d.ts +42 -0
  185. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +35 -0
  186. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  187. package/lib/types/atlaspack-v3/fs.d.ts +13 -0
  188. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  189. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  190. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  191. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  192. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  193. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  194. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -2
  195. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  196. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  197. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  198. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  199. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  200. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  201. package/lib/types/atlaspack-v3/worker/worker.d.ts +81 -0
  202. package/lib/types/constants.d.ts +13 -0
  203. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  204. package/lib/types/index.d.ts +8 -0
  205. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  206. package/lib/types/loadDotEnv.d.ts +3 -0
  207. package/lib/types/projectPath.d.ts +19 -0
  208. package/lib/types/public/Asset.d.ts +74 -0
  209. package/lib/types/public/Bundle.d.ts +45 -0
  210. package/lib/types/public/BundleGraph.d.ts +72 -0
  211. package/lib/types/public/BundleGroup.d.ts +12 -0
  212. package/lib/types/public/Config.d.ts +75 -0
  213. package/lib/types/public/Dependency.d.ts +32 -0
  214. package/lib/types/public/Environment.d.ts +34 -0
  215. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  216. package/lib/types/public/PluginOptions.d.ts +25 -0
  217. package/lib/types/public/Symbols.d.ts +81 -0
  218. package/lib/types/public/Target.d.ts +16 -0
  219. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  220. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  221. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  222. package/lib/types/requests/AssetRequest.d.ts +16 -0
  223. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  224. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  225. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  226. package/lib/types/requests/BundleGraphRequestRust.d.ts +34 -0
  227. package/lib/types/requests/BundleGraphRequestUtils.d.ts +38 -0
  228. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  229. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  230. package/lib/types/requests/EntryRequest.d.ts +36 -0
  231. package/lib/types/requests/PackageRequest.d.ts +27 -0
  232. package/lib/types/requests/PathRequest.d.ts +48 -0
  233. package/lib/types/requests/TargetRequest.d.ts +48 -0
  234. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  235. package/lib/types/requests/WriteBundleRequest.d.ts +80 -0
  236. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  237. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  238. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  239. package/lib/types/resolveOptions.d.ts +3 -0
  240. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  241. package/lib/types/serializerCore.browser.d.ts +3 -0
  242. package/lib/types/summarizeRequest.d.ts +10 -0
  243. package/lib/types/types.d.ts +496 -0
  244. package/lib/types/utils.d.ts +23 -0
  245. package/lib/types/worker.d.ts +44 -0
  246. package/lib/types.js +8 -1
  247. package/lib/utils.js +18 -3
  248. package/lib/worker.js +32 -15
  249. package/package.json +27 -33
  250. package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
  251. package/src/{Atlaspack.js → Atlaspack.ts} +203 -73
  252. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  253. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  254. package/src/{BundleGraph.js → BundleGraph.ts} +575 -145
  255. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  256. package/src/{Dependency.js → Dependency.ts} +59 -42
  257. package/src/{Environment.js → Environment.ts} +24 -15
  258. package/src/EnvironmentManager.ts +154 -0
  259. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  260. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  261. package/src/{PackagerRunner.js → PackagerRunner.ts} +109 -103
  262. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  263. package/src/{RequestTracker.js → RequestTracker.ts} +672 -347
  264. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +178 -61
  265. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +10 -1
  266. package/src/{Transformation.js → Transformation.ts} +110 -65
  267. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +50 -39
  268. package/src/{Validation.js → Validation.ts} +32 -17
  269. package/src/{applyRuntimes.js → applyRuntimes.ts} +135 -26
  270. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  271. package/src/atlaspack-v3/AtlaspackV3.ts +183 -0
  272. package/src/atlaspack-v3/NapiWorkerPool.ts +129 -0
  273. package/src/atlaspack-v3/{fs.js → fs.ts} +8 -4
  274. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  275. package/src/atlaspack-v3/jsCallable.ts +14 -0
  276. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  277. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  278. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  279. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  280. package/src/atlaspack-v3/worker/compat/index.ts +8 -0
  281. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  282. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  283. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  284. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  285. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  286. package/src/atlaspack-v3/worker/index.js +2 -1
  287. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  288. package/src/atlaspack-v3/worker/worker.ts +548 -0
  289. package/src/{constants.js → constants.ts} +0 -3
  290. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  291. package/src/index.ts +18 -0
  292. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  293. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  294. package/src/{projectPath.js → projectPath.ts} +20 -9
  295. package/src/public/{Asset.js → Asset.ts} +41 -28
  296. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  297. package/src/public/{BundleGraph.js → BundleGraph.ts} +102 -50
  298. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  299. package/src/public/{Config.js → Config.ts} +171 -33
  300. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  301. package/src/public/{Environment.js → Environment.ts} +28 -17
  302. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  303. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  304. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  305. package/src/public/{Target.js → Target.ts} +10 -8
  306. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  307. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +114 -77
  308. package/src/requests/AssetGraphRequestRust.ts +557 -0
  309. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  310. package/src/requests/AtlaspackBuildRequest.ts +168 -0
  311. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  312. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +117 -187
  313. package/src/requests/BundleGraphRequestRust.ts +470 -0
  314. package/src/requests/BundleGraphRequestUtils.ts +323 -0
  315. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  316. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  317. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  318. package/src/requests/{PackageRequest.js → PackageRequest.ts} +52 -25
  319. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  320. package/src/requests/{TargetRequest.js → TargetRequest.ts} +265 -179
  321. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  322. package/src/requests/WriteBundleRequest.ts +734 -0
  323. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +134 -50
  324. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  325. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  326. package/src/{resolveOptions.js → resolveOptions.ts} +55 -23
  327. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  328. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  329. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  330. package/src/types.ts +651 -0
  331. package/src/{utils.js → utils.ts} +52 -21
  332. package/src/{worker.js → worker.ts} +50 -42
  333. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +5 -8
  334. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  335. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  336. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  337. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  338. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  339. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  340. package/test/Environment.test.ts +153 -0
  341. package/test/EnvironmentManager.test.ts +188 -0
  342. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  343. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  344. package/test/PackagerRunner.test.ts +0 -0
  345. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  346. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  347. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  348. package/test/PublicEnvironment.test.ts +49 -0
  349. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  350. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +149 -59
  351. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  352. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +91 -92
  353. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  354. package/test/fixtures/custom-targets/package.json +6 -0
  355. package/test/public/Config.test.ts +104 -0
  356. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  357. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  358. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  359. package/test/requests/WriteBundleRequest.test.ts +602 -0
  360. package/test/{test-utils.js → test-utils.ts} +4 -11
  361. package/test/{utils.test.js → utils.test.ts} +1 -3
  362. package/tsconfig.json +60 -0
  363. package/tsconfig.tsbuildinfo +1 -0
  364. package/index.d.ts +0 -30
  365. package/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
  366. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  367. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  368. package/src/atlaspack-v3/jsCallable.js +0 -18
  369. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  370. package/src/atlaspack-v3/worker/compat/plugin-logger.js +0 -47
  371. package/src/atlaspack-v3/worker/worker.js +0 -362
  372. package/src/index.js +0 -13
  373. package/src/requests/AssetGraphRequestRust.js +0 -263
  374. package/src/requests/AtlaspackBuildRequest.js +0 -111
  375. package/src/requests/WriteBundleRequest.js +0 -362
  376. package/src/types.js +0 -600
  377. package/test/Environment.test.js +0 -119
  378. package/test/PackagerRunner.test.js +0 -27
  379. package/test/PublicEnvironment.test.js +0 -27
  380. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {
4
2
  Blob,
5
3
  FilePath,
@@ -9,7 +7,7 @@ import type {
9
7
  NamedBundle as NamedBundleType,
10
8
  Async,
11
9
  } from '@atlaspack/types';
12
- import type SourceMap from '@parcel/source-map';
10
+ import type SourceMap from '@atlaspack/source-map';
13
11
  import type {
14
12
  Bundle as InternalBundle,
15
13
  Config,
@@ -26,13 +24,12 @@ import type {DevDepSpecifier} from './requests/DevDepRequest';
26
24
 
27
25
  import invariant from 'assert';
28
26
  import {createBuildCache} from '@atlaspack/build-cache';
29
- import {blobToStream, TapStream} from '@atlaspack/utils';
27
+ import {blobToStream, debugTools, TapStream} from '@atlaspack/utils';
30
28
  import {PluginLogger} from '@atlaspack/logger';
31
29
  import ThrowableDiagnostic, {errorToDiagnostic} from '@atlaspack/diagnostic';
32
30
  import {Readable} from 'stream';
33
31
  import nullthrows from 'nullthrows';
34
32
  import path from 'path';
35
- import url from 'url';
36
33
  import {hashString, hashBuffer, Hash} from '@atlaspack/rust';
37
34
 
38
35
  import {NamedBundle, bundleToInternalBundle} from './public/Bundle';
@@ -53,7 +50,7 @@ import {
53
50
  loadPluginConfig,
54
51
  getConfigHash,
55
52
  getConfigRequests,
56
- type PluginWithBundleConfig,
53
+ PluginWithBundleConfig,
57
54
  } from './requests/ConfigRequest';
58
55
  import {
59
56
  createDevDependency,
@@ -62,38 +59,44 @@ import {
62
59
  import {getInvalidationId, getInvalidationHash} from './assetUtils';
63
60
  import {optionsProxy} from './utils';
64
61
  import {invalidateDevDeps} from './requests/DevDepRequest';
62
+ import {computeSourceMapRoot} from './requests/WriteBundleRequest';
65
63
  import {tracer, PluginTracer} from '@atlaspack/profiler';
64
+ import {fromEnvironmentId} from './EnvironmentManager';
66
65
 
67
- type Opts = {|
68
- config: AtlaspackConfig,
69
- options: AtlaspackOptions,
70
- report: ReportFn,
71
- previousDevDeps: Map<string, string>,
72
- previousInvalidations: Array<RequestInvalidation>,
73
- |};
74
-
75
- export type RunPackagerRunnerResult = {|
76
- bundleInfo: BundleInfo,
77
- configRequests: Array<ConfigRequest>,
78
- devDepRequests: Array<DevDepRequest | DevDepRequestRef>,
79
- invalidations: Array<RequestInvalidation>,
80
- |};
81
-
82
- export type BundleInfo = {|
83
- +type: string,
84
- +size: number,
85
- +hash: string,
86
- +hashReferences: Array<string>,
87
- +time?: number,
88
- +cacheKeys: CacheKeyMap,
89
- +isLargeBlob: boolean,
90
- |};
91
-
92
- type CacheKeyMap = {|
93
- content: string,
94
- map: string,
95
- info: string,
96
- |};
66
+ type Opts = {
67
+ config: AtlaspackConfig;
68
+ options: AtlaspackOptions;
69
+ report: ReportFn;
70
+ previousDevDeps: Map<string, string>;
71
+ previousInvalidations: Array<RequestInvalidation>;
72
+ };
73
+
74
+ export type RunPackagerRunnerResult = {
75
+ bundleInfo: BundleInfo;
76
+ configRequests: Array<ConfigRequest>;
77
+ devDepRequests: Array<DevDepRequest | DevDepRequestRef>;
78
+ invalidations: Array<RequestInvalidation>;
79
+ };
80
+
81
+ export type BundleInfo = {
82
+ readonly type: string;
83
+ readonly size: number;
84
+ readonly hash: string;
85
+ readonly hashReferences: Array<string>;
86
+ readonly time?: number;
87
+ readonly cacheKeys: CacheKeyMap;
88
+ readonly isLargeBlob: boolean;
89
+ readonly scopeHoistingStats?: {
90
+ totalAssets: number;
91
+ wrappedAssets: number;
92
+ };
93
+ };
94
+
95
+ type CacheKeyMap = {
96
+ content: string;
97
+ map: string;
98
+ info: string;
99
+ };
97
100
 
98
101
  const BOUNDARY_LENGTH = HASH_REF_PREFIX.length + 32 - 1;
99
102
 
@@ -105,7 +108,9 @@ export default class PackagerRunner {
105
108
  config: AtlaspackConfig;
106
109
  options: AtlaspackOptions;
107
110
  pluginOptions: PluginOptions;
111
+ // @ts-expect-error TS2564
108
112
  distDir: FilePath;
113
+ // @ts-expect-error TS2564
109
114
  distExists: Set<FilePath>;
110
115
  report: ReportFn;
111
116
  previousDevDeps: Map<string, string>;
@@ -175,10 +180,10 @@ export default class PackagerRunner {
175
180
  async loadConfigs(
176
181
  bundleGraph: InternalBundleGraph,
177
182
  bundle: InternalBundle,
178
- ): Promise<{|
179
- configs: Map<string, Config>,
180
- bundleConfigs: Map<string, Config>,
181
- |}> {
183
+ ): Promise<{
184
+ configs: Map<string, Config>;
185
+ bundleConfigs: Map<string, Config>;
186
+ }> {
182
187
  let configs = new Map();
183
188
  let bundleConfigs = new Map();
184
189
 
@@ -218,7 +223,7 @@ export default class PackagerRunner {
218
223
  }
219
224
  }
220
225
 
221
- async loadPluginConfig<T: PluginWithBundleConfig>(
226
+ async loadPluginConfig<T extends PluginWithBundleConfig>(
222
227
  bundleGraph: InternalBundleGraph,
223
228
  bundle: InternalBundle,
224
229
  plugin: LoadedPlugin<T>,
@@ -229,6 +234,7 @@ export default class PackagerRunner {
229
234
  // Only load config for a plugin once per build.
230
235
  let existing = pluginConfigs.get(plugin.name);
231
236
  if (existing != null) {
237
+ // @ts-expect-error TS2345
232
238
  configs.set(plugin.name, existing);
233
239
  } else {
234
240
  if (plugin.plugin.loadConfig != null) {
@@ -288,7 +294,7 @@ export default class PackagerRunner {
288
294
  bundle: InternalBundle,
289
295
  configs: Map<string, Config>,
290
296
  bundleConfigs: Map<string, Config>,
291
- ): Async<?BundleInfo> {
297
+ ): Promise<Async<BundleInfo | null | undefined>> {
292
298
  if (this.options.shouldDisableCache) {
293
299
  return;
294
300
  }
@@ -310,7 +316,7 @@ export default class PackagerRunner {
310
316
  configs: Map<string, Config>,
311
317
  bundleConfigs: Map<string, Config>,
312
318
  ): Promise<BundleInfo> {
313
- let {type, contents, map} = await this.getBundleResult(
319
+ let {type, contents, map, scopeHoistingStats} = await this.getBundleResult(
314
320
  bundle,
315
321
  bundleGraph,
316
322
  configs,
@@ -331,7 +337,13 @@ export default class PackagerRunner {
331
337
  info: PackagerRunner.getInfoKey(cacheKey),
332
338
  };
333
339
 
334
- return this.writeToCache(cacheKeys, type, contents, map);
340
+ let cachedResult = await this.writeToCache(cacheKeys, type, contents, map);
341
+
342
+ if (debugTools['scope-hoisting-stats']) {
343
+ return {...cachedResult, scopeHoistingStats};
344
+ }
345
+
346
+ return cachedResult;
335
347
  }
336
348
 
337
349
  async getBundleResult(
@@ -339,11 +351,12 @@ export default class PackagerRunner {
339
351
  bundleGraph: InternalBundleGraph,
340
352
  configs: Map<string, Config>,
341
353
  bundleConfigs: Map<string, Config>,
342
- ): Promise<{|
343
- type: string,
344
- contents: Blob,
345
- map: ?string,
346
- |}> {
354
+ ): Promise<{
355
+ type: string;
356
+ contents: Blob;
357
+ map: string | null | undefined;
358
+ scopeHoistingStats?: BundleResult['scopeHoistingStats'];
359
+ }> {
347
360
  let packaged = await this.package(
348
361
  bundle,
349
362
  bundleGraph,
@@ -367,11 +380,20 @@ export default class PackagerRunner {
367
380
  type: res.type ?? type,
368
381
  contents: res.contents,
369
382
  map,
383
+ scopeHoistingStats: packaged.scopeHoistingStats,
370
384
  };
371
385
  }
372
386
 
373
- getSourceMapReference(bundle: NamedBundle, map: ?SourceMap): Async<?string> {
374
- if (map && bundle.env.sourceMap && bundle.bundleBehavior !== 'inline') {
387
+ getSourceMapReference(
388
+ bundle: NamedBundle,
389
+ map?: SourceMap | null,
390
+ ): Async<string | null | undefined> {
391
+ if (
392
+ map &&
393
+ bundle.env.sourceMap &&
394
+ bundle.bundleBehavior !== 'inline' &&
395
+ bundle.bundleBehavior !== 'inlineIsolated'
396
+ ) {
375
397
  if (bundle.env.sourceMap && bundle.env.sourceMap.inline) {
376
398
  return this.generateSourceMap(bundleToInternalBundle(bundle), map);
377
399
  } else {
@@ -421,24 +443,26 @@ export default class PackagerRunner {
421
443
  bundle: BundleType,
422
444
  bundleGraph: BundleGraphType<NamedBundleType>,
423
445
  ) => {
424
- if (bundle.bundleBehavior !== 'inline') {
446
+ if (
447
+ bundle.bundleBehavior !== 'inline' &&
448
+ bundle.bundleBehavior !== 'inlineIsolated'
449
+ ) {
425
450
  throw new Error(
426
451
  'Bundle is not inline and unable to retrieve contents',
427
452
  );
428
453
  }
429
454
 
430
- let res = await this.getBundleResult(
455
+ let {contents} = await this.getBundleResult(
431
456
  bundleToInternalBundle(bundle),
432
- // $FlowFixMe
433
457
  bundleGraphToInternalBundleGraph(bundleGraph),
434
458
  configs,
435
459
  bundleConfigs,
436
460
  );
437
461
 
438
- return {contents: res.contents};
462
+ return {contents};
439
463
  },
440
464
  });
441
- } catch (e) {
465
+ } catch (e: any) {
442
466
  throw new ThrowableDiagnostic({
443
467
  diagnostic: errorToDiagnostic(e, {
444
468
  origin: name,
@@ -469,7 +493,7 @@ export default class PackagerRunner {
469
493
  internalBundleGraph: InternalBundleGraph,
470
494
  type: string,
471
495
  contents: Blob,
472
- map?: ?SourceMap,
496
+ map: SourceMap | null | undefined,
473
497
  configs: Map<string, Config>,
474
498
  bundleConfigs: Map<string, Config>,
475
499
  ): Promise<BundleResult> {
@@ -532,7 +556,7 @@ export default class PackagerRunner {
532
556
  optimized.type = next.type ?? optimized.type;
533
557
  optimized.contents = next.contents;
534
558
  optimized.map = next.map;
535
- } catch (e) {
559
+ } catch (e: any) {
536
560
  throw new ThrowableDiagnostic({
537
561
  diagnostic: errorToDiagnostic(e, {
538
562
  origin: optimizer.name,
@@ -565,53 +589,24 @@ export default class PackagerRunner {
565
589
  bundle: InternalBundle,
566
590
  map: SourceMap,
567
591
  ): Promise<string> {
568
- // sourceRoot should be a relative path between outDir and rootDir for node.js targets
592
+ let sourceRoot = computeSourceMapRoot(bundle, this.options);
593
+ let inlineSources = sourceRoot === undefined;
594
+
569
595
  let filePath = joinProjectPath(
570
596
  bundle.target.distDir,
571
597
  nullthrows(bundle.name),
572
598
  );
573
599
  let fullPath = fromProjectPath(this.options.projectRoot, filePath);
574
- let sourceRoot: string = path.relative(
575
- path.dirname(fullPath),
576
- this.options.projectRoot,
577
- );
578
- let inlineSources = false;
579
-
580
- if (bundle.target) {
581
- if (
582
- bundle.env.sourceMap &&
583
- bundle.env.sourceMap.sourceRoot !== undefined
584
- ) {
585
- sourceRoot = bundle.env.sourceMap.sourceRoot;
586
- } else if (
587
- this.options.serveOptions &&
588
- bundle.target.env.context === 'browser'
589
- ) {
590
- sourceRoot = '/__parcel_source_root';
591
- }
592
-
593
- if (
594
- bundle.env.sourceMap &&
595
- bundle.env.sourceMap.inlineSources !== undefined
596
- ) {
597
- inlineSources = bundle.env.sourceMap.inlineSources;
598
- } else if (bundle.target.env.context !== 'node') {
599
- // inlining should only happen in production for browser targets by default
600
- inlineSources = this.options.mode === 'production';
601
- }
602
- }
603
-
604
600
  let mapFilename = fullPath + '.map';
605
- let isInlineMap = bundle.env.sourceMap && bundle.env.sourceMap.inline;
601
+
602
+ const bundleEnv = fromEnvironmentId(bundle.env);
603
+ let isInlineMap = bundleEnv.sourceMap && bundleEnv.sourceMap.inline;
606
604
 
607
605
  let stringified = await map.stringify({
608
606
  file: path.basename(mapFilename),
609
- // $FlowFixMe
610
607
  fs: this.options.inputFS,
611
608
  rootDir: this.options.projectRoot,
612
- sourceRoot: !inlineSources
613
- ? url.format(url.parse(sourceRoot + '/'))
614
- : undefined,
609
+ sourceRoot,
615
610
  inlineSources,
616
611
  format: isInlineMap ? 'inline' : 'string',
617
612
  });
@@ -627,7 +622,7 @@ export default class PackagerRunner {
627
622
  bundleConfigs: Map<string, Config>,
628
623
  invalidations: Array<RequestInvalidation>,
629
624
  ): Promise<string> {
630
- let configResults = {};
625
+ let configResults: Record<string, any> = {};
631
626
  for (let [pluginName, config] of configs) {
632
627
  if (config) {
633
628
  configResults[pluginName] = await getConfigHash(
@@ -637,7 +632,7 @@ export default class PackagerRunner {
637
632
  );
638
633
  }
639
634
  }
640
- let globalInfoResults = {};
635
+ let globalInfoResults: Record<string, any> = {};
641
636
  for (let [pluginName, config] of bundleConfigs) {
642
637
  if (config) {
643
638
  globalInfoResults[pluginName] = await getConfigHash(
@@ -692,10 +687,14 @@ export default class PackagerRunner {
692
687
  return devDepHashes;
693
688
  }
694
689
 
695
- async readFromCache(cacheKey: string): Promise<?{|
696
- contents: Readable,
697
- map: ?Readable,
698
- |}> {
690
+ async readFromCache(cacheKey: string): Promise<
691
+ | {
692
+ contents: Readable;
693
+ map: Readable | null | undefined;
694
+ }
695
+ | null
696
+ | undefined
697
+ > {
699
698
  let contentKey = PackagerRunner.getContentKey(cacheKey);
700
699
  let mapKey = PackagerRunner.getMapKey(cacheKey);
701
700
 
@@ -722,22 +721,25 @@ export default class PackagerRunner {
722
721
  cacheKeys: CacheKeyMap,
723
722
  type: string,
724
723
  contents: Blob,
725
- map: ?string,
724
+ map?: string | null,
726
725
  ): Promise<BundleInfo> {
727
726
  let size = 0;
728
727
  let hash;
729
- let hashReferences = [];
728
+ // @ts-expect-error TS2702
729
+ let hashReferences: RegExp.matchResult | Array<string> = [];
730
730
  let isLargeBlob = false;
731
731
 
732
732
  // TODO: don't replace hash references in binary files??
733
733
  if (contents instanceof Readable) {
734
734
  isLargeBlob = true;
735
+
735
736
  let boundaryStr = '';
736
737
  let h = new Hash();
737
738
  await this.options.cache.setStream(
738
739
  cacheKeys.content,
739
740
  blobToStream(contents).pipe(
740
- new TapStream((buf) => {
741
+ // @ts-expect-error TS2554
742
+ new TapStream((buf: Buffer) => {
741
743
  let str = boundaryStr + buf.toString();
742
744
  hashReferences = hashReferences.concat(
743
745
  str.match(HASH_REF_REGEX) ?? [],
@@ -754,17 +756,20 @@ export default class PackagerRunner {
754
756
  size = buffer.byteLength;
755
757
  hash = hashBuffer(buffer);
756
758
  hashReferences = contents.match(HASH_REF_REGEX) ?? [];
759
+
757
760
  await this.options.cache.setBlob(cacheKeys.content, buffer);
758
761
  } else {
759
762
  size = contents.length;
760
763
  hash = hashBuffer(contents);
761
764
  hashReferences = contents.toString().match(HASH_REF_REGEX) ?? [];
765
+
762
766
  await this.options.cache.setBlob(cacheKeys.content, contents);
763
767
  }
764
768
 
765
769
  if (map != null) {
766
770
  await this.options.cache.setBlob(cacheKeys.map, map);
767
771
  }
772
+
768
773
  let info = {
769
774
  type,
770
775
  size,
@@ -773,6 +778,7 @@ export default class PackagerRunner {
773
778
  cacheKeys,
774
779
  isLargeBlob,
775
780
  };
781
+
776
782
  await this.options.cache.set(cacheKeys.info, info);
777
783
  return info;
778
784
  }
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {ReporterEvent, Reporter} from '@atlaspack/types';
4
2
  import type {WorkerApi} from '@atlaspack/workers';
5
3
  import type {Bundle as InternalBundle, AtlaspackOptions} from './types';
@@ -23,11 +21,11 @@ import BundleGraph from './BundleGraph';
23
21
  import {tracer, PluginTracer} from '@atlaspack/profiler';
24
22
  import {anyToDiagnostic} from '@atlaspack/diagnostic';
25
23
 
26
- type Opts = {|
27
- options: AtlaspackOptions,
28
- reporters: Array<LoadedPlugin<Reporter>>,
29
- workerFarm: WorkerFarm,
30
- |};
24
+ type Opts = {
25
+ options: AtlaspackOptions;
26
+ reporters: Array<LoadedPlugin<Reporter>>;
27
+ workerFarm: WorkerFarm;
28
+ };
31
29
 
32
30
  const instances: Set<ReporterRunner> = new Set();
33
31
 
@@ -58,24 +56,21 @@ export default class ReporterRunner {
58
56
  }
59
57
  }
60
58
 
61
- eventHandler: (ReporterEvent) => void = (event): void => {
59
+ eventHandler: (arg1: ReporterEvent) => void = (event): void => {
62
60
  if (
63
61
  event.type === 'buildProgress' &&
64
62
  (event.phase === 'optimizing' || event.phase === 'packaging') &&
65
63
  !(event.bundle instanceof NamedBundle)
66
64
  ) {
67
- // $FlowFixMe[prop-missing]
65
+ // @ts-expect-error TS2339
68
66
  let bundleGraphRef = event.bundleGraphRef;
69
- // $FlowFixMe[incompatible-exact]
67
+ // @ts-expect-error TS2739
70
68
  let bundle: InternalBundle = event.bundle;
71
69
  // Convert any internal bundles back to their public equivalents as reporting
72
70
  // is public api
73
- let bundleGraph = this.workerFarm.workerApi.getSharedReference(
74
- // $FlowFixMe
75
- bundleGraphRef,
76
- );
71
+ let bundleGraph =
72
+ this.workerFarm.workerApi.getSharedReference(bundleGraphRef);
77
73
  invariant(bundleGraph instanceof BundleGraph);
78
- // $FlowFixMe[incompatible-call]
79
74
  this.report({
80
75
  ...event,
81
76
  bundle: NamedBundle.get(bundle, bundleGraph, this.options),
@@ -88,11 +83,12 @@ export default class ReporterRunner {
88
83
 
89
84
  async report(unsanitisedEvent: ReporterEvent) {
90
85
  let event: ReporterEvent = unsanitisedEvent;
86
+ // @ts-expect-error TS2339
91
87
  if (event.diagnostics) {
92
88
  // Sanitise input before passing to reporters
93
- // $FlowFixMe too complex to narrow down by type
94
89
  event = {
95
90
  ...event,
91
+ // @ts-expect-error TS2322
96
92
  diagnostics: anyToDiagnostic(event.diagnostics),
97
93
  };
98
94
  }
@@ -105,7 +101,6 @@ export default class ReporterRunner {
105
101
  measurement = tracer.createMeasurement(reporter.name, 'reporter');
106
102
  }
107
103
  await reporter.plugin.report({
108
- // $FlowFixMe
109
104
  event,
110
105
  options: this.pluginOptions,
111
106
  logger: new PluginLogger({origin: reporter.name}),
@@ -114,7 +109,7 @@ export default class ReporterRunner {
114
109
  category: 'reporter',
115
110
  }),
116
111
  });
117
- } catch (reportError) {
112
+ } catch (reportError: any) {
118
113
  if (event.type !== 'buildSuccess') {
119
114
  // This will be captured by consumers
120
115
  INTERNAL_ORIGINAL_CONSOLE.error(reportError);