@atlaspack/core 2.16.2-canary.48 → 2.16.2-canary.481

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (380) hide show
  1. package/CHANGELOG.md +1324 -0
  2. package/dist/AssetGraph.js +523 -0
  3. package/dist/Atlaspack.js +701 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1906 -0
  7. package/dist/CommittedAsset.js +142 -0
  8. package/dist/Dependency.js +125 -0
  9. package/dist/Environment.js +132 -0
  10. package/dist/EnvironmentManager.js +108 -0
  11. package/dist/IdentifierRegistry.js +38 -0
  12. package/dist/InternalConfig.js +37 -0
  13. package/dist/PackagerRunner.js +470 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1297 -0
  16. package/dist/SymbolPropagation.js +624 -0
  17. package/dist/TargetDescriptor.schema.js +146 -0
  18. package/dist/Transformation.js +514 -0
  19. package/dist/UncommittedAsset.js +310 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +384 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +83 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +114 -0
  25. package/dist/atlaspack-v3/fs.js +53 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
  30. package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
  31. package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
  32. package/dist/atlaspack-v3/worker/compat/index.js +24 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  37. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  38. package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
  39. package/dist/atlaspack-v3/worker/worker.js +398 -0
  40. package/dist/constants.js +17 -0
  41. package/dist/dumpGraphToGraphViz.js +281 -0
  42. package/dist/index.js +62 -0
  43. package/dist/loadAtlaspackPlugin.js +128 -0
  44. package/dist/loadDotEnv.js +41 -0
  45. package/dist/projectPath.js +83 -0
  46. package/dist/public/Asset.js +279 -0
  47. package/dist/public/Bundle.js +224 -0
  48. package/dist/public/BundleGraph.js +371 -0
  49. package/dist/public/BundleGroup.js +53 -0
  50. package/dist/public/Config.js +286 -0
  51. package/dist/public/Dependency.js +138 -0
  52. package/dist/public/Environment.js +278 -0
  53. package/dist/public/MutableBundleGraph.js +277 -0
  54. package/dist/public/PluginOptions.js +80 -0
  55. package/dist/public/Symbols.js +248 -0
  56. package/dist/public/Target.js +69 -0
  57. package/dist/registerCoreWithSerializer.js +38 -0
  58. package/dist/requests/AssetGraphRequest.js +430 -0
  59. package/dist/requests/AssetGraphRequestRust.js +471 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +98 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +381 -0
  64. package/dist/requests/BundleGraphRequestRust.js +324 -0
  65. package/dist/requests/BundleGraphRequestUtils.js +262 -0
  66. package/dist/requests/ConfigRequest.js +246 -0
  67. package/dist/requests/DevDepRequest.js +204 -0
  68. package/dist/requests/EntryRequest.js +314 -0
  69. package/dist/requests/PackageRequest.js +89 -0
  70. package/dist/requests/PathRequest.js +349 -0
  71. package/dist/requests/TargetRequest.js +1316 -0
  72. package/dist/requests/ValidationRequest.js +49 -0
  73. package/dist/requests/WriteBundleRequest.js +522 -0
  74. package/dist/requests/WriteBundlesRequest.js +190 -0
  75. package/dist/requests/asset-graph-diff.js +128 -0
  76. package/dist/requests/asset-graph-dot.js +131 -0
  77. package/dist/resolveOptions.js +267 -0
  78. package/dist/rustWorkerThreadDylibHack.js +19 -0
  79. package/dist/serializerCore.browser.js +43 -0
  80. package/dist/summarizeRequest.js +39 -0
  81. package/dist/types.js +31 -0
  82. package/dist/utils.js +172 -0
  83. package/dist/worker.js +123 -0
  84. package/lib/AssetGraph.js +53 -15
  85. package/lib/Atlaspack.js +140 -56
  86. package/lib/AtlaspackConfig.js +17 -6
  87. package/lib/AtlaspackConfig.schema.js +16 -5
  88. package/lib/BundleGraph.js +390 -43
  89. package/lib/CommittedAsset.js +8 -2
  90. package/lib/Dependency.js +9 -3
  91. package/lib/Environment.js +16 -10
  92. package/lib/EnvironmentManager.js +143 -0
  93. package/lib/IdentifierRegistry.js +2 -4
  94. package/lib/InternalConfig.js +3 -2
  95. package/lib/PackagerRunner.js +46 -82
  96. package/lib/ReporterRunner.js +8 -12
  97. package/lib/RequestTracker.js +191 -152
  98. package/lib/SymbolPropagation.js +52 -29
  99. package/lib/TargetDescriptor.schema.js +10 -1
  100. package/lib/Transformation.js +68 -19
  101. package/lib/UncommittedAsset.js +17 -24
  102. package/lib/Validation.js +20 -5
  103. package/lib/applyRuntimes.js +98 -7
  104. package/lib/assetUtils.js +16 -6
  105. package/lib/atlaspack-v3/AtlaspackV3.js +58 -15
  106. package/lib/atlaspack-v3/NapiWorkerPool.js +63 -2
  107. package/lib/atlaspack-v3/fs.js +4 -1
  108. package/lib/atlaspack-v3/index.js +28 -1
  109. package/lib/atlaspack-v3/jsCallable.js +0 -2
  110. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  111. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  112. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  113. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  114. package/lib/atlaspack-v3/worker/compat/index.js +0 -11
  115. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +16 -11
  116. package/lib/atlaspack-v3/worker/compat/plugin-config.js +14 -35
  117. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -2
  118. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  119. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  120. package/lib/atlaspack-v3/worker/index.js +3 -0
  121. package/lib/atlaspack-v3/worker/side-effect-detector.js +214 -0
  122. package/lib/atlaspack-v3/worker/worker.js +231 -79
  123. package/lib/constants.js +0 -1
  124. package/lib/dumpGraphToGraphViz.js +72 -17
  125. package/lib/index.js +46 -3
  126. package/lib/loadAtlaspackPlugin.js +2 -3
  127. package/lib/loadDotEnv.js +5 -2
  128. package/lib/projectPath.js +6 -1
  129. package/lib/public/Asset.js +22 -12
  130. package/lib/public/Bundle.js +16 -18
  131. package/lib/public/BundleGraph.js +27 -25
  132. package/lib/public/BundleGroup.js +5 -6
  133. package/lib/public/Config.js +118 -18
  134. package/lib/public/Dependency.js +9 -7
  135. package/lib/public/Environment.js +13 -8
  136. package/lib/public/MutableBundleGraph.js +56 -15
  137. package/lib/public/PluginOptions.js +2 -2
  138. package/lib/public/Symbols.js +12 -12
  139. package/lib/public/Target.js +8 -7
  140. package/lib/registerCoreWithSerializer.js +7 -4
  141. package/lib/requests/AssetGraphRequest.js +61 -40
  142. package/lib/requests/AssetGraphRequestRust.js +314 -82
  143. package/lib/requests/AssetRequest.js +24 -7
  144. package/lib/requests/AtlaspackBuildRequest.js +53 -7
  145. package/lib/requests/AtlaspackConfigRequest.js +29 -19
  146. package/lib/requests/BundleGraphRequest.js +61 -130
  147. package/lib/requests/BundleGraphRequestRust.js +381 -0
  148. package/lib/requests/BundleGraphRequestUtils.js +280 -0
  149. package/lib/requests/ConfigRequest.js +55 -7
  150. package/lib/requests/DevDepRequest.js +32 -6
  151. package/lib/requests/EntryRequest.js +4 -3
  152. package/lib/requests/PackageRequest.js +56 -12
  153. package/lib/requests/PathRequest.js +26 -6
  154. package/lib/requests/TargetRequest.js +129 -60
  155. package/lib/requests/ValidationRequest.js +6 -2
  156. package/lib/requests/WriteBundleRequest.js +329 -20
  157. package/lib/requests/WriteBundlesRequest.js +64 -10
  158. package/lib/requests/asset-graph-diff.js +13 -8
  159. package/lib/requests/asset-graph-dot.js +2 -8
  160. package/lib/resolveOptions.js +37 -14
  161. package/lib/rustWorkerThreadDylibHack.js +0 -1
  162. package/lib/serializerCore.browser.js +1 -2
  163. package/lib/summarizeRequest.js +1 -1
  164. package/lib/types/AssetGraph.d.ts +55 -0
  165. package/lib/types/Atlaspack.d.ts +52 -0
  166. package/lib/types/AtlaspackConfig.d.ts +65 -0
  167. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  168. package/lib/types/BundleGraph.d.ts +232 -0
  169. package/lib/types/CommittedAsset.d.ts +23 -0
  170. package/lib/types/Dependency.d.ts +44 -0
  171. package/lib/types/Environment.d.ts +11 -0
  172. package/lib/types/EnvironmentManager.d.ts +37 -0
  173. package/lib/types/IdentifierRegistry.d.ts +6 -0
  174. package/lib/types/InternalConfig.d.ts +23 -0
  175. package/lib/types/PackagerRunner.d.ts +85 -0
  176. package/lib/types/ReporterRunner.d.ts +25 -0
  177. package/lib/types/RequestTracker.d.ts +385 -0
  178. package/lib/types/SymbolPropagation.d.ts +11 -0
  179. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  180. package/lib/types/Transformation.d.ts +72 -0
  181. package/lib/types/UncommittedAsset.d.ts +61 -0
  182. package/lib/types/Validation.d.ts +37 -0
  183. package/lib/types/applyRuntimes.d.ts +25 -0
  184. package/lib/types/assetUtils.d.ts +42 -0
  185. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +35 -0
  186. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  187. package/lib/types/atlaspack-v3/fs.d.ts +13 -0
  188. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  189. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  190. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  191. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  192. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  193. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  194. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -2
  195. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  196. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  197. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  198. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  199. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  200. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  201. package/lib/types/atlaspack-v3/worker/worker.d.ts +81 -0
  202. package/lib/types/constants.d.ts +13 -0
  203. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  204. package/lib/types/index.d.ts +8 -0
  205. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  206. package/lib/types/loadDotEnv.d.ts +3 -0
  207. package/lib/types/projectPath.d.ts +19 -0
  208. package/lib/types/public/Asset.d.ts +74 -0
  209. package/lib/types/public/Bundle.d.ts +45 -0
  210. package/lib/types/public/BundleGraph.d.ts +72 -0
  211. package/lib/types/public/BundleGroup.d.ts +12 -0
  212. package/lib/types/public/Config.d.ts +75 -0
  213. package/lib/types/public/Dependency.d.ts +32 -0
  214. package/lib/types/public/Environment.d.ts +34 -0
  215. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  216. package/lib/types/public/PluginOptions.d.ts +25 -0
  217. package/lib/types/public/Symbols.d.ts +81 -0
  218. package/lib/types/public/Target.d.ts +16 -0
  219. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  220. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  221. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  222. package/lib/types/requests/AssetRequest.d.ts +16 -0
  223. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  224. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  225. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  226. package/lib/types/requests/BundleGraphRequestRust.d.ts +34 -0
  227. package/lib/types/requests/BundleGraphRequestUtils.d.ts +38 -0
  228. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  229. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  230. package/lib/types/requests/EntryRequest.d.ts +36 -0
  231. package/lib/types/requests/PackageRequest.d.ts +27 -0
  232. package/lib/types/requests/PathRequest.d.ts +48 -0
  233. package/lib/types/requests/TargetRequest.d.ts +48 -0
  234. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  235. package/lib/types/requests/WriteBundleRequest.d.ts +80 -0
  236. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  237. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  238. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  239. package/lib/types/resolveOptions.d.ts +3 -0
  240. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  241. package/lib/types/serializerCore.browser.d.ts +3 -0
  242. package/lib/types/summarizeRequest.d.ts +10 -0
  243. package/lib/types/types.d.ts +496 -0
  244. package/lib/types/utils.d.ts +23 -0
  245. package/lib/types/worker.d.ts +44 -0
  246. package/lib/types.js +8 -1
  247. package/lib/utils.js +18 -3
  248. package/lib/worker.js +32 -15
  249. package/package.json +26 -36
  250. package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
  251. package/src/{Atlaspack.js → Atlaspack.ts} +181 -72
  252. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  253. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  254. package/src/{BundleGraph.js → BundleGraph.ts} +575 -145
  255. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  256. package/src/{Dependency.js → Dependency.ts} +59 -42
  257. package/src/{Environment.js → Environment.ts} +24 -15
  258. package/src/EnvironmentManager.ts +154 -0
  259. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  260. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  261. package/src/{PackagerRunner.js → PackagerRunner.ts} +114 -159
  262. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  263. package/src/{RequestTracker.js → RequestTracker.ts} +444 -355
  264. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +178 -61
  265. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +10 -1
  266. package/src/{Transformation.js → Transformation.ts} +110 -65
  267. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +45 -49
  268. package/src/{Validation.js → Validation.ts} +32 -17
  269. package/src/{applyRuntimes.js → applyRuntimes.ts} +135 -26
  270. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  271. package/src/atlaspack-v3/AtlaspackV3.ts +183 -0
  272. package/src/atlaspack-v3/NapiWorkerPool.ts +129 -0
  273. package/src/atlaspack-v3/{fs.js → fs.ts} +8 -4
  274. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  275. package/src/atlaspack-v3/jsCallable.ts +14 -0
  276. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  277. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  278. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  279. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  280. package/src/atlaspack-v3/worker/compat/index.ts +8 -0
  281. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  282. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  283. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  284. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  285. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  286. package/src/atlaspack-v3/worker/index.js +2 -1
  287. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  288. package/src/atlaspack-v3/worker/worker.ts +548 -0
  289. package/src/{constants.js → constants.ts} +0 -3
  290. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  291. package/src/index.ts +18 -0
  292. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  293. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  294. package/src/{projectPath.js → projectPath.ts} +20 -9
  295. package/src/public/{Asset.js → Asset.ts} +41 -28
  296. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  297. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  298. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  299. package/src/public/{Config.js → Config.ts} +171 -33
  300. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  301. package/src/public/{Environment.js → Environment.ts} +28 -17
  302. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  303. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  304. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  305. package/src/public/{Target.js → Target.ts} +10 -8
  306. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  307. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +117 -90
  308. package/src/requests/AssetGraphRequestRust.ts +557 -0
  309. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  310. package/src/requests/AtlaspackBuildRequest.ts +168 -0
  311. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  312. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +119 -199
  313. package/src/requests/BundleGraphRequestRust.ts +470 -0
  314. package/src/requests/BundleGraphRequestUtils.ts +323 -0
  315. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  316. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  317. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  318. package/src/requests/{PackageRequest.js → PackageRequest.ts} +52 -25
  319. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  320. package/src/requests/{TargetRequest.js → TargetRequest.ts} +265 -179
  321. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  322. package/src/requests/WriteBundleRequest.ts +734 -0
  323. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +134 -50
  324. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  325. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  326. package/src/{resolveOptions.js → resolveOptions.ts} +57 -27
  327. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  328. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  329. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  330. package/src/types.ts +651 -0
  331. package/src/{utils.js → utils.ts} +52 -21
  332. package/src/{worker.js → worker.ts} +50 -42
  333. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +5 -8
  334. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  335. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  336. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  337. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  338. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  339. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  340. package/test/Environment.test.ts +153 -0
  341. package/test/EnvironmentManager.test.ts +188 -0
  342. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  343. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  344. package/test/PackagerRunner.test.ts +0 -0
  345. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  346. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  347. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  348. package/test/PublicEnvironment.test.ts +49 -0
  349. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  350. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +136 -58
  351. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  352. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +91 -92
  353. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  354. package/test/fixtures/custom-targets/package.json +6 -0
  355. package/test/public/Config.test.ts +104 -0
  356. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  357. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  358. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  359. package/test/requests/WriteBundleRequest.test.ts +602 -0
  360. package/test/{test-utils.js → test-utils.ts} +3 -4
  361. package/test/{utils.test.js → utils.test.ts} +1 -3
  362. package/tsconfig.json +60 -0
  363. package/tsconfig.tsbuildinfo +1 -0
  364. package/index.d.ts +0 -30
  365. package/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
  366. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  367. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  368. package/src/atlaspack-v3/jsCallable.js +0 -18
  369. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  370. package/src/atlaspack-v3/worker/compat/plugin-logger.js +0 -47
  371. package/src/atlaspack-v3/worker/worker.js +0 -369
  372. package/src/index.js +0 -13
  373. package/src/requests/AssetGraphRequestRust.js +0 -263
  374. package/src/requests/AtlaspackBuildRequest.js +0 -111
  375. package/src/requests/WriteBundleRequest.js +0 -369
  376. package/src/types.js +0 -600
  377. package/test/Environment.test.js +0 -119
  378. package/test/PackagerRunner.test.js +0 -27
  379. package/test/PublicEnvironment.test.js +0 -27
  380. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -1,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,59 @@ 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
+ /** Length of the hash suffix in output filenames (e.g. .runtime.13dc01ac.js). */
26
+ const NAME_HASH_DISPLAY_LEN = 8;
24
27
 
25
- export type WriteBundlesRequestResult = Map<string, PackagedBundleInfo>;
28
+ /** Use at most NAME_HASH_DISPLAY_LEN chars for the name hash so filenames stay short. */
29
+ function nameHashForFilename(hash: string): string {
30
+ return hash.length <= NAME_HASH_DISPLAY_LEN
31
+ ? hash
32
+ : hash.slice(-NAME_HASH_DISPLAY_LEN);
33
+ }
26
34
 
27
- type RunInput<TResult> = {|
28
- input: WriteBundlesRequestInput,
29
- ...StaticRunOpts<TResult>,
30
- |};
35
+ type WriteBundlesRequestInput = {
36
+ bundleGraph: BundleGraph;
37
+ optionsRef: SharedReference;
38
+ };
31
39
 
32
- export type WriteBundlesRequest = {|
33
- id: ContentKey,
34
- +type: typeof requestTypes.write_bundles_request,
40
+ export type WriteBundlesRequestResult = {
41
+ bundleInfo: Map<string, PackagedBundleInfo>;
42
+ scopeHoistingStats?: {
43
+ totalAssets: number;
44
+ wrappedAssets: number;
45
+ };
46
+ };
47
+
48
+ type RunInput<TResult> = {
49
+ input: WriteBundlesRequestInput;
50
+ } & StaticRunOpts<TResult>;
51
+
52
+ export type WriteBundlesRequest = {
53
+ id: ContentKey;
54
+ readonly type: typeof requestTypes.write_bundles_request;
35
55
  run: (
36
- RunInput<WriteBundlesRequestResult>,
37
- ) => Async<WriteBundlesRequestResult>,
38
- input: WriteBundlesRequestInput,
39
- |};
56
+ arg1: RunInput<WriteBundlesRequestResult>,
57
+ ) => Async<WriteBundlesRequestResult>;
58
+ input: WriteBundlesRequestInput;
59
+ };
60
+
61
+ function reportPackagingProgress(
62
+ completeBundles: number,
63
+ totalBundles: number,
64
+ ) {
65
+ if (!getFeatureFlag('cliProgressReportingImprovements')) {
66
+ return;
67
+ }
68
+
69
+ report({
70
+ type: 'buildProgress',
71
+ phase: 'packagingAndOptimizing',
72
+ totalBundles,
73
+ completeBundles,
74
+ });
75
+ }
40
76
 
41
77
  /**
42
78
  * Packages, optimizes, and writes all bundles to the dist directory.
@@ -52,17 +88,22 @@ export default function createWriteBundlesRequest(
52
88
  };
53
89
  }
54
90
 
55
- async function run({input, api, farm, options}) {
91
+ async function run({
92
+ input,
93
+ api,
94
+ farm,
95
+ options,
96
+ }: RunInput<WriteBundlesRequestResult>) {
56
97
  let {bundleGraph, optionsRef} = input;
57
98
  let {ref, dispose} = await farm.createSharedReference(bundleGraph);
58
99
 
59
100
  api.invalidateOnOptionChange('shouldContentHash');
60
101
 
61
102
  let res = new Map();
62
- let bundleInfoMap: {|
63
- [string]: BundleInfo,
64
- |} = {};
65
- let writeEarlyPromises = {};
103
+ let bundleInfoMap: {
104
+ [key: string]: BundleInfo;
105
+ } = {};
106
+ let writeEarlyPromises: Record<string, Promise<PackagedBundleInfo>> = {};
66
107
  let hashRefToNameHash = new Map();
67
108
 
68
109
  // Include inline bundles so that non-inline bundles referenced from inline bundles are written to
@@ -71,19 +112,24 @@ async function run({input, api, farm, options}) {
71
112
  includeInline: getFeatureFlag('inlineBundlesSourceMapFixes'),
72
113
  });
73
114
  const bundles = allBundles
74
- .filter((bundle) => bundle.bundleBehavior !== 'inline')
115
+ .filter(
116
+ (bundle) =>
117
+ bundle.bundleBehavior !== BundleBehavior.inline &&
118
+ bundle.bundleBehavior !== BundleBehavior.inlineIsolated,
119
+ )
75
120
  .filter((bundle) => {
76
121
  // Do not package and write placeholder bundles to disk. We just
77
122
  // need to update the name so other bundles can reference it.
78
123
  if (bundle.isPlaceholder) {
79
- let hash = bundle.id.slice(-8);
80
- hashRefToNameHash.set(bundle.hashReference, hash);
124
+ const nameHash = nameHashForFilename(bundle.id);
125
+ hashRefToNameHash.set(bundle.hashReference, nameHash);
81
126
  let name = nullthrows(
82
127
  bundle.name,
83
128
  `Expected ${bundle.type} bundle to have a name`,
84
- ).replace(bundle.hashReference, hash);
129
+ ).replace(bundle.hashReference, nameHash);
85
130
  res.set(bundle.id, {
86
131
  filePath: joinProjectPath(bundle.target.distDir, name),
132
+ bundleId: bundle.id,
87
133
  type: bundle.type, // FIXME: this is wrong if the packager changes the type...
88
134
  stats: {
89
135
  time: 0,
@@ -96,14 +142,19 @@ async function run({input, api, farm, options}) {
96
142
  return true;
97
143
  });
98
144
 
145
+ let cachedBundles = new Set(
146
+ bundles.filter((b) => api.canSkipSubrequest(bundleGraph.getHash(b))),
147
+ );
148
+
99
149
  // Package on the main thread if there is only one bundle to package.
100
150
  // This avoids the cost of serializing the bundle graph for single file change builds.
101
151
  let useMainThread =
102
- bundles.length === 1 ||
103
- bundles.filter((b) => !api.canSkipSubrequest(bundleGraph.getHash(b)))
104
- .length === 1;
152
+ bundles.length === 1 || bundles.length - cachedBundles.size <= 1;
105
153
 
106
154
  try {
155
+ let completeBundles = cachedBundles.size;
156
+ reportPackagingProgress(completeBundles, bundles.length);
157
+
107
158
  await Promise.all(
108
159
  bundles.map(async (bundle) => {
109
160
  let request = createPackageRequest({
@@ -116,6 +167,11 @@ async function run({input, api, farm, options}) {
116
167
 
117
168
  let info = await api.runRequest(request);
118
169
 
170
+ if (!cachedBundles.has(bundle)) {
171
+ completeBundles++;
172
+ reportPackagingProgress(completeBundles, bundles.length);
173
+ }
174
+
119
175
  if (!useMainThread) {
120
176
  // Force a refresh of the cache to avoid a race condition
121
177
  // between threaded reads and writes that can result in an LMDB cache miss:
@@ -132,9 +188,9 @@ async function run({input, api, farm, options}) {
132
188
  if (!info.hashReferences.length) {
133
189
  hashRefToNameHash.set(
134
190
  bundle.hashReference,
135
- options.shouldContentHash
136
- ? info.hash.slice(-8)
137
- : bundle.id.slice(-8),
191
+ nameHashForFilename(
192
+ options.shouldContentHash ? info.hash : bundle.id,
193
+ ),
138
194
  );
139
195
  let writeBundleRequest = createWriteBundleRequest({
140
196
  bundle,
@@ -167,18 +223,42 @@ async function run({input, api, farm, options}) {
167
223
  }),
168
224
  );
169
225
 
170
- api.storeResult(res);
171
- return res;
226
+ let result: WriteBundlesRequestResult = {bundleInfo: res};
227
+
228
+ if (debugTools['scope-hoisting-stats']) {
229
+ // Aggregate scope hoisting stats from all bundles
230
+ let aggregatedScopeHoistingStats = {
231
+ totalAssets: 0,
232
+ wrappedAssets: 0,
233
+ };
234
+
235
+ for (let bundle of bundles) {
236
+ let bundleInfo = bundleInfoMap[bundle.id];
237
+ if (bundleInfo?.scopeHoistingStats) {
238
+ aggregatedScopeHoistingStats.totalAssets +=
239
+ bundleInfo.scopeHoistingStats.totalAssets;
240
+ aggregatedScopeHoistingStats.wrappedAssets +=
241
+ bundleInfo.scopeHoistingStats.wrappedAssets;
242
+ }
243
+ }
244
+
245
+ result.scopeHoistingStats = aggregatedScopeHoistingStats;
246
+ }
247
+
248
+ api.storeResult(result);
249
+ return result;
172
250
  } finally {
173
251
  await dispose();
174
252
  }
175
253
  }
176
254
 
177
255
  function assignComplexNameHashes(
178
- hashRefToNameHash,
179
- bundles,
180
- bundleInfoMap,
181
- options,
256
+ hashRefToNameHash: Map<string, string>,
257
+ bundles: Array<Bundle>,
258
+ bundleInfoMap: {
259
+ [key: string]: BundleInfo;
260
+ },
261
+ options: AtlaspackOptions,
182
262
  ) {
183
263
  for (let bundle of bundles) {
184
264
  if (hashRefToNameHash.get(bundle.hashReference) != null) {
@@ -186,21 +266,25 @@ function assignComplexNameHashes(
186
266
  }
187
267
  hashRefToNameHash.set(
188
268
  bundle.hashReference,
189
- options.shouldContentHash
190
- ? hashString(
191
- [...getBundlesIncludedInHash(bundle.id, bundleInfoMap)]
192
- .map((bundleId) => bundleInfoMap[bundleId].hash)
193
- .join(':'),
194
- ).slice(-8)
195
- : bundle.id.slice(-8),
269
+ nameHashForFilename(
270
+ options.shouldContentHash
271
+ ? hashString(
272
+ [...getBundlesIncludedInHash(bundle.id, bundleInfoMap)]
273
+ .map((bundleId) => bundleInfoMap[bundleId].hash)
274
+ .join(':'),
275
+ )
276
+ : bundle.id,
277
+ ),
196
278
  );
197
279
  }
198
280
  }
199
281
 
200
282
  function getBundlesIncludedInHash(
201
- bundleId,
202
- bundleInfoMap,
203
- included = new Set(),
283
+ bundleId: ContentKey | string,
284
+ bundleInfoMap: {
285
+ [key: string]: BundleInfo;
286
+ },
287
+ included = new Set<string>(),
204
288
  ) {
205
289
  included.add(bundleId);
206
290
  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') {
@@ -1,13 +1,11 @@
1
- // @flow
2
1
  import path from 'path';
3
2
 
4
3
  import type {AssetGraphNode} from '../types';
5
4
  import AssetGraph from '../AssetGraph';
6
5
 
7
6
  export type AssetGraphToDotOptions = {
8
- style?: boolean,
9
- sort?: boolean,
10
- ...
7
+ style?: boolean;
8
+ sort?: boolean;
11
9
  };
12
10
 
13
11
  /** @description Renders AssetGraph into GraphViz Dot format */
@@ -15,8 +13,10 @@ export function assetGraphToDot(
15
13
  assetGraph: AssetGraph,
16
14
  {sort = false, style = true}: AssetGraphToDotOptions = {},
17
15
  ): string {
18
- const edges = [];
19
- const nodeStyles: {[key: string]: string} = {};
16
+ const edges: Array<string> = [];
17
+ const nodeStyles: {
18
+ [key: string]: string;
19
+ } = {};
20
20
 
21
21
  assetGraph.traverse((nodeId) => {
22
22
  let node: AssetGraphNode | null = assetGraph.getNode(nodeId) ?? null;
@@ -43,7 +43,6 @@ export function assetGraphToDot(
43
43
  }
44
44
  });
45
45
 
46
- // $FlowFixMe
47
46
  const nodeStylesList: Array<[string, string]> = Object.entries(nodeStyles);
48
47
  if (sort) {
49
48
  edges.sort();
@@ -53,7 +52,7 @@ export function assetGraphToDot(
53
52
  let digraph = `digraph {\n\tnode [shape=rectangle]\n`;
54
53
  if (style) {
55
54
  digraph += nodeStylesList
56
- .map(([node, style]) => `\t"${node}" [${style}]\n`)
55
+ .map(([node, style]: [any, any]) => `\t"${node}" [${style}]\n`)
57
56
  .join('');
58
57
  }
59
58
  digraph += edges.map((v) => `\t${v}\n`).join('');
@@ -94,18 +93,15 @@ function fromCwd(input: string): string {
94
93
 
95
94
  function getNodeName(node: AssetGraphNode): string {
96
95
  if (node.type === 'asset_group') {
97
- // $FlowFixMe
96
+ // @ts-expect-error TS2345
98
97
  return [`asset_group`, node.id, fromCwd(node.value.filePath)].join('\\n');
99
98
  } else if (node.type === 'asset') {
100
- // $FlowFixMe
101
99
  return [`asset`, node.id, fromCwd(node.value.filePath)].join('\\n');
102
100
  } else if (node.type === 'dependency') {
103
101
  return [`dependency`, node.id, node.value.specifier].join('\\n');
104
102
  } else if (node.type === 'entry_specifier') {
105
- // $FlowFixMe
106
103
  return [`entry_specifier`, node.value].join('\\n');
107
104
  } else if (node.type === 'entry_file') {
108
- // $FlowFixMe
109
105
  return [`entry_file`, fromCwd(node.value.filePath)].join('\\n');
110
106
  }
111
107
  return 'ROOT';
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {
4
2
  FilePath,
5
3
  InitialAtlaspackOptions,
@@ -93,6 +91,29 @@ export default async function resolveOptions(
93
91
  entries = [path.resolve(inputCwd, initialOptions.entries)];
94
92
  }
95
93
 
94
+ // When allowExplicitTargetEntries is enabled and no entries are provided,
95
+ // automatically derive entries from target sources
96
+ if (
97
+ getFeatureFlag('allowExplicitTargetEntries') &&
98
+ initialOptions.targets &&
99
+ !Array.isArray(initialOptions.targets) &&
100
+ entries.length === 0
101
+ ) {
102
+ const targetSources = new Set<string>();
103
+
104
+ for (const [, target] of Object.entries(initialOptions.targets)) {
105
+ if (target.source) {
106
+ const sources = Array.isArray(target.source)
107
+ ? target.source
108
+ : [target.source];
109
+ for (const source of sources) {
110
+ targetSources.add(source);
111
+ }
112
+ }
113
+ }
114
+ entries = Array.from(targetSources);
115
+ }
116
+
96
117
  let shouldMakeEntryReferFolder = false;
97
118
  if (entries.length === 1 && !isGlob(entries[0])) {
98
119
  let [entry] = entries;
@@ -103,20 +124,29 @@ export default async function resolveOptions(
103
124
  }
104
125
  }
105
126
 
106
- // getRootDir treats the input as files, so getRootDir(["/home/user/myproject"]) returns "/home/user".
107
- // Instead we need to make the the entry refer to some file inside the specified folders if entries refers to the directory.
108
- let entryRoot = getRootDir(
109
- shouldMakeEntryReferFolder ? [path.join(entries[0], 'index')] : entries,
110
- );
111
- let projectRootFile =
112
- (await resolveConfig(
113
- inputFS,
114
- path.join(entryRoot, 'index'),
115
- [...LOCK_FILE_NAMES, '.git', '.hg'],
116
- path.parse(entryRoot).root,
117
- )) || path.join(inputCwd, 'index'); // ? Should this just be rootDir
118
-
119
- let projectRoot = path.dirname(projectRootFile);
127
+ let projectRoot;
128
+ if (initialOptions.projectRoot) {
129
+ // Use explicitly provided projectRoot
130
+ if (!path.isAbsolute(initialOptions.projectRoot)) {
131
+ throw new Error('Specified project root must be an absolute path');
132
+ }
133
+ projectRoot = initialOptions.projectRoot;
134
+ } else {
135
+ // getRootDir treats the input as files, so getRootDir(["/home/user/myproject"]) returns "/home/user".
136
+ // Instead we need to make the the entry refer to some file inside the specified folders if entries refers to the directory.
137
+ let entryRoot = getRootDir(
138
+ shouldMakeEntryReferFolder ? [path.join(entries[0], 'index')] : entries,
139
+ );
140
+ let projectRootFile =
141
+ (await resolveConfig(
142
+ inputFS,
143
+ path.join(entryRoot, 'index'),
144
+ [...LOCK_FILE_NAMES, '.git', '.hg'],
145
+ path.parse(entryRoot).root,
146
+ )) || path.join(inputCwd, 'index'); // ? Should this just be rootDir
147
+
148
+ projectRoot = path.dirname(projectRootFile);
149
+ }
120
150
 
121
151
  const gitRoot = await findGitRepositoryRoot(inputFS, projectRoot);
122
152
  if (inputFS instanceof NodeVCSAwareFS) {
@@ -151,12 +181,11 @@ export default async function resolveOptions(
151
181
  return initialOptions.cache;
152
182
  }
153
183
 
154
- const needsRustLmdbCache = getFeatureFlag('atlaspackV3');
184
+ const needsRustLmdbCache =
185
+ getFeatureFlag('atlaspackV3') || getFeatureFlag('nativePackager');
155
186
 
156
- if (!getFeatureFlag('cachePerformanceImprovements')) {
157
- if (!needsRustLmdbCache && !(outputFS instanceof NodeFS)) {
158
- return new FSCache(outputFS, cacheDir);
159
- }
187
+ if (!needsRustLmdbCache && !(outputFS instanceof NodeFS)) {
188
+ return new FSCache(outputFS, cacheDir);
160
189
  }
161
190
 
162
191
  return new LMDBLiteCache(cacheDir);
@@ -239,6 +268,7 @@ export default async function resolveOptions(
239
268
  : false,
240
269
  shouldDisableCache: initialOptions.shouldDisableCache ?? false,
241
270
  shouldProfile: initialOptions.shouldProfile ?? false,
271
+ nativeProfiler: initialOptions.nativeProfiler,
242
272
  shouldTrace: initialOptions.shouldTrace ?? false,
243
273
  cacheDir,
244
274
  watchDir,
@@ -283,7 +313,7 @@ export default async function resolveOptions(
283
313
  function getRelativeConfigSpecifier(
284
314
  fs: FileSystem,
285
315
  projectRoot: FilePath,
286
- specifier: ?DependencySpecifier,
316
+ specifier?: DependencySpecifier | null,
287
317
  ) {
288
318
  if (specifier == null) {
289
319
  return undefined;
@@ -299,11 +329,11 @@ function getRelativeConfigSpecifier(
299
329
  }
300
330
 
301
331
  function determinePort(
302
- initialServerOptions: InitialServerOptions | false | void,
303
- portInEnv: string | void,
332
+ initialServerOptions?: InitialServerOptions | false,
333
+ portInEnv?: string,
304
334
  defaultPort: number = 1234,
305
335
  ): number {
306
- function parsePort(port: string): number | void {
336
+ function parsePort(port: string): number | undefined {
307
337
  let parsedPort = Number(port);
308
338
 
309
339
  // return undefined if port number defined in .env is not valid integer
@@ -315,7 +345,7 @@ function determinePort(
315
345
 
316
346
  if (!initialServerOptions) {
317
347
  return typeof portInEnv !== 'undefined'
318
- ? parsePort(portInEnv) ?? defaultPort
348
+ ? (parsePort(portInEnv) ?? defaultPort)
319
349
  : defaultPort;
320
350
  }
321
351
 
@@ -325,6 +355,6 @@ function determinePort(
325
355
  }
326
356
 
327
357
  return typeof portInEnv !== 'undefined'
328
- ? parsePort(portInEnv) ?? defaultPort
358
+ ? (parsePort(portInEnv) ?? defaultPort)
329
359
  : defaultPort;
330
360
  }
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  /**
4
2
  * This is a workaround for https://github.com/rust-lang/rust/issues/91979
5
3
  * when running atlaspack with parcel bindings, it is possible that the parcel
@@ -10,9 +8,8 @@
10
8
  */
11
9
  export function loadRustWorkerThreadDylibHack() {
12
10
  try {
13
- // $FlowFixMe
14
11
  require('@parcel/rust'); // eslint-disable-line
15
- } catch (err) {
12
+ } catch (err: any) {
16
13
  /* ignore */
17
14
  }
18
15
  }
@@ -1,9 +1,8 @@
1
- // @flow
2
1
  import {Buffer} from 'buffer';
3
2
  import * as msgpackr from 'msgpackr';
4
3
 
5
4
  let encoder = new msgpackr.Encoder({structuredClone: true});
6
5
 
7
- export let serializeRaw: (any) => Buffer = (v) =>
6
+ export let serializeRaw: (arg1?: any) => Buffer = (v) =>
8
7
  Buffer.from(encoder.encode(v));
9
- export let deserializeRaw: (Buffer) => any = (v) => encoder.decode(v);
8
+ export let deserializeRaw: (arg1: Buffer) => any = (v) => encoder.decode(v);
@@ -1,4 +1,3 @@
1
- // @flow strict-local
2
1
  import type {Blob, FilePath} from '@atlaspack/types';
3
2
  import type {FileSystem} from '@atlaspack/fs';
4
3
 
@@ -10,8 +9,15 @@ const BUFFER_LIMIT = 5000000; // 5mb
10
9
 
11
10
  export default async function summarizeRequest(
12
11
  fs: FileSystem,
13
- req: {|filePath: FilePath, code?: string|},
14
- ): Promise<{|content: Blob, size: number, isSource: boolean|}> {
12
+ req: {
13
+ filePath: FilePath;
14
+ code?: string;
15
+ },
16
+ ): Promise<{
17
+ content: Blob;
18
+ size: number;
19
+ isSource: boolean;
20
+ }> {
15
21
  let {content, size} = await summarizeDiskRequest(fs, req);
16
22
  let isSource = isFilePathSource(fs, req.filePath);
17
23
  return {content, size, isSource};
@@ -23,8 +29,14 @@ function isFilePathSource(fs: FileSystem, filePath: FilePath) {
23
29
 
24
30
  async function summarizeDiskRequest(
25
31
  fs: FileSystem,
26
- req: {|filePath: FilePath, code?: string|},
27
- ): Promise<{|content: Blob, size: number|}> {
32
+ req: {
33
+ filePath: FilePath;
34
+ code?: string;
35
+ },
36
+ ): Promise<{
37
+ content: Blob;
38
+ size: number;
39
+ }> {
28
40
  let code = req.code;
29
41
  let content: Blob;
30
42
  let size: number;