@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,23 +1,53 @@
1
- // @flow strict-local
2
-
3
1
  import assert from 'assert';
4
2
  import nullthrows from 'nullthrows';
5
3
  import RequestTracker, {
6
- type RunAPI,
4
+ RunAPI,
7
5
  cleanUpOrphans,
6
+ runInvalidation,
7
+ getBiggestFSEventsInvalidations,
8
+ invalidateRequestGraphFSEvents,
9
+ requestTypes,
8
10
  } from '../src/RequestTracker';
9
11
  import {Graph} from '@atlaspack/graph';
12
+ import {LMDBLiteCache} from '@atlaspack/cache';
10
13
  import WorkerFarm from '@atlaspack/workers';
11
14
  import {DEFAULT_OPTIONS} from './test-utils';
12
15
  import {FILE_CREATE, FILE_UPDATE, INITIAL_BUILD} from '../src/constants';
13
16
  import {makeDeferredWithPromise} from '@atlaspack/utils';
14
17
  import {toProjectPath} from '../src/projectPath';
15
18
  import {DEFAULT_FEATURE_FLAGS, setFeatureFlags} from '../../feature-flags/src';
16
-
17
- const options = DEFAULT_OPTIONS;
18
- const farm = new WorkerFarm({workerPath: require.resolve('../src/worker')});
19
+ import sinon from 'sinon';
20
+ import type {AtlaspackOptions} from '../src/types';
21
+ import createAtlaspackBuildRequest from '../src/requests/AtlaspackBuildRequest';
22
+ import Atlaspack from '../src/Atlaspack';
23
+ import {MemoryFS, NodeFS} from '@atlaspack/fs';
24
+ import {OverlayFS} from '../../fs/src/OverlayFS';
25
+ import path from 'path';
26
+ import createAssetGraphRequest from '../src/requests/AssetGraphRequest';
27
+
28
+ const options = {
29
+ ...DEFAULT_OPTIONS,
30
+ cache: new LMDBLiteCache(DEFAULT_OPTIONS.cacheDir),
31
+ } as const;
19
32
 
20
33
  describe('RequestTracker', () => {
34
+ let farm: any;
35
+ before(() => {
36
+ farm = new WorkerFarm({workerPath: require.resolve('../src/worker')});
37
+ });
38
+
39
+ beforeEach(async () => {
40
+ await options.cache.ensure();
41
+
42
+ for (const key of options.cache.keys()) {
43
+ await options.cache.getNativeRef().delete(key);
44
+ }
45
+ });
46
+
47
+ after(() => {
48
+ farm.end();
49
+ });
50
+
21
51
  it('should not run requests that have not been invalidated', async () => {
22
52
  let tracker = new RequestTracker({farm, options});
23
53
  await tracker.runRequest({
@@ -67,7 +97,7 @@ describe('RequestTracker', () => {
67
97
  await tracker.runRequest({
68
98
  id: 'abc',
69
99
  type: 7,
70
- run: async ({api}) => {
100
+ run: async ({api}: any) => {
71
101
  await api.runRequest({
72
102
  id: 'xyz',
73
103
  type: 7,
@@ -84,7 +114,7 @@ describe('RequestTracker', () => {
84
114
  assert(
85
115
  tracker
86
116
  .getInvalidRequests()
87
- .map((req) => req.id)
117
+ .map((req: any) => req.id)
88
118
  .includes('abc'),
89
119
  );
90
120
  });
@@ -107,7 +137,7 @@ describe('RequestTracker', () => {
107
137
  assert(
108
138
  tracker
109
139
  .getInvalidRequests()
110
- .map((req) => req.id)
140
+ .map((req: any) => req.id)
111
141
  .includes('abc'),
112
142
  );
113
143
  });
@@ -117,7 +147,7 @@ describe('RequestTracker', () => {
117
147
  await tracker.runRequest({
118
148
  id: 'abc',
119
149
  type: 7,
120
- run: async ({api}) => {
150
+ run: async ({api}: any) => {
121
151
  await api.runRequest({
122
152
  id: 'xyz',
123
153
  type: 7,
@@ -132,7 +162,7 @@ describe('RequestTracker', () => {
132
162
  await tracker.runRequest({
133
163
  id: 'abc',
134
164
  type: 7,
135
- run: async ({api}) => {
165
+ run: async ({api}: any) => {
136
166
  await api.runRequest({
137
167
  id: '123',
138
168
  type: 7,
@@ -150,8 +180,7 @@ describe('RequestTracker', () => {
150
180
  await tracker.runRequest({
151
181
  id: 'abc',
152
182
  type: 7,
153
- // $FlowFixMe string isn't a valid result
154
- run: async ({api}: {api: RunAPI<string | void>, ...}) => {
183
+ run: async ({api}: {api: RunAPI<string | undefined>}) => {
155
184
  let result = await Promise.resolve('hello');
156
185
  api.storeResult(result);
157
186
  },
@@ -166,39 +195,13 @@ describe('RequestTracker', () => {
166
195
  assert(result === 'hello');
167
196
  });
168
197
 
169
- it('should reject all in progress requests when the abort controller aborts', async () => {
170
- let tracker = new RequestTracker({farm, options});
171
- let p = tracker
172
- .runRequest({
173
- id: 'abc',
174
- type: 7,
175
- run: async () => {
176
- await Promise.resolve('hello');
177
- },
178
- input: null,
179
- })
180
- .then(null, () => {
181
- /* do nothing */
182
- });
183
- // $FlowFixMe
184
- tracker.setSignal({aborted: true});
185
- await p;
186
- assert(
187
- tracker
188
- .getInvalidRequests()
189
- .map((req) => req.id)
190
- .includes('abc'),
191
- );
192
- });
193
-
194
198
  it('should write cache to disk and store index', async () => {
195
199
  let tracker = new RequestTracker({farm, options});
196
200
 
197
201
  await tracker.runRequest({
198
202
  id: 'abc',
199
203
  type: 7,
200
- // $FlowFixMe string isn't a valid result
201
- run: async ({api}: {api: RunAPI<string | void>, ...}) => {
204
+ run: async ({api}: {api: RunAPI<string | undefined>}) => {
202
205
  let result = await Promise.resolve();
203
206
  api.storeResult(result);
204
207
  },
@@ -230,8 +233,7 @@ describe('RequestTracker', () => {
230
233
  let requestA = tracker.runRequest({
231
234
  id: 'abc',
232
235
  type: 7,
233
- // $FlowFixMe string isn't a valid result
234
- run: async ({api}: {api: RunAPI<string>, ...}) => {
236
+ run: async ({api}: {api: RunAPI<string>}) => {
235
237
  await lockA.promise;
236
238
  api.storeResult('a');
237
239
  return 'a';
@@ -243,8 +245,7 @@ describe('RequestTracker', () => {
243
245
  let requestB = tracker.runRequest({
244
246
  id: 'abc',
245
247
  type: 7,
246
- // $FlowFixMe string isn't a valid result
247
- run: async ({api}: {api: RunAPI<string>, ...}) => {
248
+ run: async ({api}: {api: RunAPI<string>}) => {
248
249
  calledB = true;
249
250
  await lockB.promise;
250
251
  api.storeResult('b');
@@ -293,8 +294,7 @@ describe('RequestTracker', () => {
293
294
  let requestB = tracker.runRequest({
294
295
  id: 'abc',
295
296
  type: 7,
296
- // $FlowFixMe string isn't a valid result
297
- run: async ({api}: {api: RunAPI<string | void>, ...}) => {
297
+ run: async ({api}: {api: RunAPI<string | undefined>}) => {
298
298
  await lockB.promise;
299
299
  api.storeResult('b');
300
300
  },
@@ -396,8 +396,7 @@ describe('RequestTracker', () => {
396
396
  await tracker.runRequest({
397
397
  id: contentKey,
398
398
  type: 7,
399
- // $FlowFixMe string isn't a valid result
400
- run: async ({api}: {api: RunAPI<string | void>, ...}) => {
399
+ run: async ({api}: {api: RunAPI<string | undefined>}) => {
401
400
  let result = await Promise.resolve('a');
402
401
  api.storeResult(result);
403
402
  },
@@ -410,8 +409,7 @@ describe('RequestTracker', () => {
410
409
  {
411
410
  id: contentKey,
412
411
  type: 7,
413
- // $FlowFixMe string isn't a valid result
414
- run: async ({api}: {api: RunAPI<string | void>, ...}) => {
412
+ run: async ({api}: {api: RunAPI<string | undefined>}) => {
415
413
  let result = await Promise.resolve('b');
416
414
  api.storeResult(result);
417
415
  },
@@ -453,7 +451,7 @@ describe('RequestTracker', () => {
453
451
  });
454
452
 
455
453
  describe('respondToFSEvents', () => {
456
- [true, false].forEach((value) => {
454
+ [true, false].forEach((value: any) => {
457
455
  beforeEach(() => {
458
456
  setFeatureFlags({
459
457
  ...DEFAULT_FEATURE_FLAGS,
@@ -473,8 +471,7 @@ describe('RequestTracker', () => {
473
471
  await tracker.runRequest({
474
472
  id: 'abc',
475
473
  type: 7,
476
- // $FlowFixMe string isn't a valid result
477
- run: async ({api}: {api: RunAPI<string | void>, ...}) => {
474
+ run: async ({api}: {api: RunAPI<string | undefined>}) => {
478
475
  api.invalidateOnFileUpdate(toProjectPath('', 'my-file'));
479
476
  let result = await Promise.resolve('hello');
480
477
  api.storeResult(result);
@@ -482,7 +479,7 @@ describe('RequestTracker', () => {
482
479
  input: null,
483
480
  });
484
481
  const requestId = tracker.graph.getNodeIdByContentKey('abc');
485
- const invalidated = await tracker.respondToFSEvents(
482
+ const {didInvalidate: invalidated} = await tracker.respondToFSEvents(
486
483
  [
487
484
  {
488
485
  type: 'update',
@@ -506,8 +503,7 @@ describe('RequestTracker', () => {
506
503
  await tracker.runRequest({
507
504
  id: 'abc',
508
505
  type: 7,
509
- // $FlowFixMe string isn't a valid result
510
- run: async ({api}: {api: RunAPI<string | void>, ...}) => {
506
+ run: async ({api}: {api: RunAPI<string | undefined>}) => {
511
507
  api.invalidateOnFileCreate({
512
508
  fileName: 'package.json',
513
509
  aboveFilePath: toProjectPath(
@@ -521,7 +517,7 @@ describe('RequestTracker', () => {
521
517
  input: null,
522
518
  });
523
519
  const requestId = tracker.graph.getNodeIdByContentKey('abc');
524
- const invalidated = await tracker.respondToFSEvents(
520
+ const {didInvalidate: invalidated} = await tracker.respondToFSEvents(
525
521
  [
526
522
  {
527
523
  type: 'create',
@@ -562,8 +558,8 @@ root --- node1 --- node2 ----------- orphan1 --- orphan2
562
558
 
563
559
  */
564
560
 
565
- const getNonNullNodes = (graph) =>
566
- graph.nodes.filter((node) => node != null);
561
+ const getNonNullNodes = (graph: any) =>
562
+ graph.nodes.filter((node: any) => node != null);
567
563
 
568
564
  graph.addEdge(root, node1);
569
565
  graph.addEdge(node1, node2);
@@ -584,3 +580,97 @@ root --- node1 --- node2 ----------- orphan1 --- orphan2
584
580
  assert.equal(Array.from(graph.getAllEdges()).length, 3);
585
581
  });
586
582
  });
583
+
584
+ describe('runInvalidation', () => {
585
+ it('calls an invalidationFn and tracks the number of invalidated nodes', async () => {
586
+ const mockRequestTracker = {
587
+ getInvalidNodeCount: sinon.stub(),
588
+ } as const;
589
+
590
+ mockRequestTracker.getInvalidNodeCount.returns(10000);
591
+ const result = await runInvalidation(mockRequestTracker, {
592
+ key: 'fsEvents',
593
+ fn: () => {
594
+ mockRequestTracker.getInvalidNodeCount.returns(30000);
595
+ return {
596
+ biggestInvalidations: [{path: 'my-file', count: 10000}],
597
+ };
598
+ },
599
+ });
600
+
601
+ assert.equal(result.key, 'fsEvents');
602
+ assert.equal(result.count, 20000);
603
+ assert.deepEqual(result.detail, {
604
+ biggestInvalidations: [{path: 'my-file', count: 10000}],
605
+ });
606
+ assert(result.duration > 0, 'Duration was not reported');
607
+ });
608
+ });
609
+
610
+ describe('invalidateRequestGraphFSEvents', () => {
611
+ it('calls requestGraph.respondToFSEvents and returns the biggest invalidations', async () => {
612
+ const requestGraph = {
613
+ respondToFSEvents: sinon.stub(),
614
+ } as const;
615
+
616
+ requestGraph.respondToFSEvents.returns({
617
+ invalidationsByPath: new Map([
618
+ ['file-1', 10],
619
+ ['file-2', 5000],
620
+ ['file-3', 8000],
621
+ ]),
622
+ });
623
+ const options: AtlaspackOptions = {
624
+ unstableFileInvalidations: undefined,
625
+ };
626
+
627
+ const result = await invalidateRequestGraphFSEvents(requestGraph, options, [
628
+ {
629
+ path: 'file-1',
630
+ type: 'create',
631
+ },
632
+ {
633
+ path: 'file-2',
634
+ type: 'update',
635
+ },
636
+ {
637
+ path: 'file-3',
638
+ type: 'delete',
639
+ },
640
+ ]);
641
+
642
+ assert.deepEqual(result.biggestInvalidations, [
643
+ {path: 'file-3', count: 8000},
644
+ {path: 'file-2', count: 5000},
645
+ {path: 'file-1', count: 10},
646
+ ]);
647
+ assert.equal(requestGraph.respondToFSEvents.callCount, 1);
648
+ assert.deepEqual(requestGraph.respondToFSEvents.args[0], [
649
+ [
650
+ {path: 'file-1', type: 'create'},
651
+ {path: 'file-2', type: 'update'},
652
+ {path: 'file-3', type: 'delete'},
653
+ ],
654
+ options,
655
+ 10000,
656
+ true,
657
+ ]);
658
+ });
659
+ });
660
+
661
+ describe('getBiggestFSEventsInvalidations', () => {
662
+ it('returns the paths that invalidated the most nodes', () => {
663
+ const invalidationsByPath = new Map([
664
+ ['file-1', 10],
665
+ ['file-2', 5000],
666
+ ['file-3', 8000],
667
+ ['file-4', 1000],
668
+ ['file-5', 1000],
669
+ ]);
670
+
671
+ assert.deepEqual(getBiggestFSEventsInvalidations(invalidationsByPath, 2), [
672
+ {path: 'file-3', count: 8000},
673
+ {path: 'file-2', count: 5000},
674
+ ]);
675
+ });
676
+ });