@atlaspack/core 2.16.2-canary.33 → 2.16.2-canary.330

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 (360) hide show
  1. package/CHANGELOG.md +835 -0
  2. package/dist/AssetGraph.js +591 -0
  3. package/dist/Atlaspack.js +663 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1740 -0
  7. package/dist/CommittedAsset.js +142 -0
  8. package/dist/Dependency.js +125 -0
  9. package/dist/Environment.js +132 -0
  10. package/dist/EnvironmentManager.js +108 -0
  11. package/dist/IdentifierRegistry.js +38 -0
  12. package/dist/InternalConfig.js +37 -0
  13. package/dist/PackagerRunner.js +545 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1360 -0
  16. package/dist/SymbolPropagation.js +620 -0
  17. package/dist/TargetDescriptor.schema.js +143 -0
  18. package/dist/Transformation.js +491 -0
  19. package/dist/UncommittedAsset.js +315 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +383 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +63 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +61 -0
  25. package/dist/atlaspack-v3/fs.js +52 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +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 +25 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +76 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-logger.js +26 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-options.js +122 -0
  37. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  38. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  39. package/dist/atlaspack-v3/worker/worker.js +307 -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 +439 -0
  59. package/dist/requests/AssetGraphRequestRust.js +273 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +65 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +447 -0
  64. package/dist/requests/ConfigRequest.js +222 -0
  65. package/dist/requests/DevDepRequest.js +204 -0
  66. package/dist/requests/EntryRequest.js +314 -0
  67. package/dist/requests/PackageRequest.js +62 -0
  68. package/dist/requests/PathRequest.js +349 -0
  69. package/dist/requests/TargetRequest.js +1311 -0
  70. package/dist/requests/ValidationRequest.js +49 -0
  71. package/dist/requests/WriteBundleRequest.js +254 -0
  72. package/dist/requests/WriteBundlesRequest.js +184 -0
  73. package/dist/requests/asset-graph-diff.js +128 -0
  74. package/dist/requests/asset-graph-dot.js +131 -0
  75. package/dist/resolveOptions.js +269 -0
  76. package/dist/rustWorkerThreadDylibHack.js +19 -0
  77. package/dist/serializerCore.browser.js +43 -0
  78. package/dist/summarizeRequest.js +39 -0
  79. package/dist/types.js +31 -0
  80. package/dist/utils.js +172 -0
  81. package/dist/worker.js +123 -0
  82. package/lib/AssetGraph.js +111 -14
  83. package/lib/Atlaspack.js +87 -38
  84. package/lib/AtlaspackConfig.js +15 -3
  85. package/lib/AtlaspackConfig.schema.js +16 -5
  86. package/lib/BundleGraph.js +197 -32
  87. package/lib/CommittedAsset.js +7 -1
  88. package/lib/Dependency.js +8 -2
  89. package/lib/Environment.js +15 -8
  90. package/lib/EnvironmentManager.js +143 -0
  91. package/lib/IdentifierRegistry.js +1 -3
  92. package/lib/InternalConfig.js +3 -2
  93. package/lib/PackagerRunner.js +90 -27
  94. package/lib/ReporterRunner.js +6 -9
  95. package/lib/RequestTracker.js +266 -156
  96. package/lib/SymbolPropagation.js +42 -18
  97. package/lib/TargetDescriptor.schema.js +7 -1
  98. package/lib/Transformation.js +35 -14
  99. package/lib/UncommittedAsset.js +33 -12
  100. package/lib/Validation.js +18 -2
  101. package/lib/applyRuntimes.js +96 -4
  102. package/lib/assetUtils.js +15 -5
  103. package/lib/atlaspack-v3/AtlaspackV3.js +32 -14
  104. package/lib/atlaspack-v3/NapiWorkerPool.js +7 -1
  105. package/lib/atlaspack-v3/fs.js +3 -1
  106. package/lib/atlaspack-v3/index.js +28 -1
  107. package/lib/atlaspack-v3/jsCallable.js +0 -2
  108. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  109. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  110. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  111. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  112. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +15 -10
  113. package/lib/atlaspack-v3/worker/compat/plugin-config.js +8 -10
  114. package/lib/atlaspack-v3/worker/compat/plugin-options.js +1 -0
  115. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  116. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  117. package/lib/atlaspack-v3/worker/index.js +3 -0
  118. package/lib/atlaspack-v3/worker/worker.js +60 -12
  119. package/lib/constants.js +0 -1
  120. package/lib/dumpGraphToGraphViz.js +71 -16
  121. package/lib/index.js +45 -1
  122. package/lib/loadDotEnv.js +4 -1
  123. package/lib/projectPath.js +5 -0
  124. package/lib/public/Asset.js +21 -11
  125. package/lib/public/Bundle.js +15 -16
  126. package/lib/public/BundleGraph.js +25 -22
  127. package/lib/public/BundleGroup.js +4 -5
  128. package/lib/public/Config.js +118 -17
  129. package/lib/public/Dependency.js +8 -6
  130. package/lib/public/Environment.js +12 -7
  131. package/lib/public/MutableBundleGraph.js +54 -12
  132. package/lib/public/PluginOptions.js +2 -2
  133. package/lib/public/Symbols.js +11 -11
  134. package/lib/public/Target.js +7 -6
  135. package/lib/registerCoreWithSerializer.js +5 -3
  136. package/lib/requests/AssetGraphRequest.js +74 -27
  137. package/lib/requests/AssetGraphRequestRust.js +140 -64
  138. package/lib/requests/AssetRequest.js +23 -6
  139. package/lib/requests/AtlaspackBuildRequest.js +10 -4
  140. package/lib/requests/AtlaspackConfigRequest.js +27 -16
  141. package/lib/requests/BundleGraphRequest.js +40 -23
  142. package/lib/requests/ConfigRequest.js +28 -4
  143. package/lib/requests/DevDepRequest.js +31 -5
  144. package/lib/requests/EntryRequest.js +2 -0
  145. package/lib/requests/PackageRequest.js +2 -1
  146. package/lib/requests/PathRequest.js +24 -3
  147. package/lib/requests/TargetRequest.js +122 -57
  148. package/lib/requests/ValidationRequest.js +5 -1
  149. package/lib/requests/WriteBundleRequest.js +39 -11
  150. package/lib/requests/WriteBundlesRequest.js +51 -4
  151. package/lib/requests/asset-graph-diff.js +12 -7
  152. package/lib/requests/asset-graph-dot.js +1 -7
  153. package/lib/resolveOptions.js +37 -10
  154. package/lib/rustWorkerThreadDylibHack.js +0 -1
  155. package/lib/types/AssetGraph.d.ts +80 -0
  156. package/lib/types/Atlaspack.d.ts +52 -0
  157. package/lib/types/AtlaspackConfig.d.ts +65 -0
  158. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  159. package/lib/types/BundleGraph.d.ts +184 -0
  160. package/lib/types/CommittedAsset.d.ts +23 -0
  161. package/lib/types/Dependency.d.ts +44 -0
  162. package/lib/types/Environment.d.ts +11 -0
  163. package/lib/types/EnvironmentManager.d.ts +37 -0
  164. package/lib/types/IdentifierRegistry.d.ts +6 -0
  165. package/lib/types/InternalConfig.d.ts +24 -0
  166. package/lib/types/PackagerRunner.d.ts +85 -0
  167. package/lib/types/ReporterRunner.d.ts +25 -0
  168. package/lib/types/RequestTracker.d.ts +385 -0
  169. package/lib/types/SymbolPropagation.d.ts +11 -0
  170. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  171. package/lib/types/Transformation.d.ts +72 -0
  172. package/lib/types/UncommittedAsset.d.ts +61 -0
  173. package/lib/types/Validation.d.ts +37 -0
  174. package/lib/types/applyRuntimes.d.ts +25 -0
  175. package/lib/types/assetUtils.d.ts +42 -0
  176. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +26 -0
  177. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +12 -0
  178. package/lib/types/atlaspack-v3/fs.d.ts +12 -0
  179. package/lib/types/atlaspack-v3/index.d.ts +5 -0
  180. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  181. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  182. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  183. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  184. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  185. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
  186. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  187. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +37 -0
  188. package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
  189. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +22 -0
  190. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  191. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  192. package/lib/types/atlaspack-v3/worker/worker.d.ts +60 -0
  193. package/lib/types/constants.d.ts +13 -0
  194. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  195. package/lib/types/index.d.ts +8 -0
  196. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  197. package/lib/types/loadDotEnv.d.ts +3 -0
  198. package/lib/types/projectPath.d.ts +19 -0
  199. package/lib/types/public/Asset.d.ts +74 -0
  200. package/lib/types/public/Bundle.d.ts +45 -0
  201. package/lib/types/public/BundleGraph.d.ts +72 -0
  202. package/lib/types/public/BundleGroup.d.ts +12 -0
  203. package/lib/types/public/Config.d.ts +75 -0
  204. package/lib/types/public/Dependency.d.ts +32 -0
  205. package/lib/types/public/Environment.d.ts +34 -0
  206. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  207. package/lib/types/public/PluginOptions.d.ts +25 -0
  208. package/lib/types/public/Symbols.d.ts +81 -0
  209. package/lib/types/public/Target.d.ts +16 -0
  210. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  211. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  212. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  213. package/lib/types/requests/AssetRequest.d.ts +16 -0
  214. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  215. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  216. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  217. package/lib/types/requests/ConfigRequest.d.ts +59 -0
  218. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  219. package/lib/types/requests/EntryRequest.d.ts +36 -0
  220. package/lib/types/requests/PackageRequest.d.ts +27 -0
  221. package/lib/types/requests/PathRequest.d.ts +48 -0
  222. package/lib/types/requests/TargetRequest.d.ts +48 -0
  223. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  224. package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
  225. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  226. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  227. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  228. package/lib/types/resolveOptions.d.ts +3 -0
  229. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  230. package/lib/types/serializerCore.browser.d.ts +3 -0
  231. package/lib/types/summarizeRequest.d.ts +10 -0
  232. package/lib/types/types.d.ts +495 -0
  233. package/lib/types/utils.d.ts +23 -0
  234. package/lib/types/worker.d.ts +44 -0
  235. package/lib/types.js +8 -1
  236. package/lib/utils.js +17 -2
  237. package/lib/worker.js +30 -14
  238. package/package.json +25 -35
  239. package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
  240. package/src/{Atlaspack.js → Atlaspack.ts} +121 -63
  241. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  242. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  243. package/src/{BundleGraph.js → BundleGraph.ts} +383 -140
  244. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  245. package/src/{Dependency.js → Dependency.ts} +59 -42
  246. package/src/{Environment.js → Environment.ts} +24 -15
  247. package/src/EnvironmentManager.ts +154 -0
  248. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  249. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  250. package/src/{PackagerRunner.js → PackagerRunner.ts} +179 -87
  251. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  252. package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
  253. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
  254. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
  255. package/src/{Transformation.js → Transformation.ts} +74 -64
  256. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +60 -39
  257. package/src/{Validation.js → Validation.ts} +32 -17
  258. package/src/{applyRuntimes.js → applyRuntimes.ts} +133 -26
  259. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  260. package/src/atlaspack-v3/AtlaspackV3.ts +111 -0
  261. package/src/atlaspack-v3/{NapiWorkerPool.js → NapiWorkerPool.ts} +15 -6
  262. package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
  263. package/src/atlaspack-v3/{index.js → index.ts} +2 -4
  264. package/src/atlaspack-v3/jsCallable.ts +14 -0
  265. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  266. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  267. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  268. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  269. package/src/atlaspack-v3/worker/compat/index.ts +9 -0
  270. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  271. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +27 -26
  272. package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
  273. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +4 -5
  274. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  275. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  276. package/src/atlaspack-v3/worker/index.js +2 -1
  277. package/src/atlaspack-v3/worker/{worker.js → worker.ts} +124 -71
  278. package/src/{constants.js → constants.ts} +0 -3
  279. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  280. package/src/index.ts +18 -0
  281. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  282. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  283. package/src/{projectPath.js → projectPath.ts} +20 -9
  284. package/src/public/{Asset.js → Asset.ts} +41 -28
  285. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  286. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  287. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  288. package/src/public/{Config.js → Config.ts} +171 -33
  289. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  290. package/src/public/{Environment.js → Environment.ts} +28 -17
  291. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  292. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  293. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  294. package/src/public/{Target.js → Target.ts} +10 -8
  295. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  296. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +129 -80
  297. package/src/requests/AssetGraphRequestRust.ts +364 -0
  298. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  299. package/src/requests/{AtlaspackBuildRequest.js → AtlaspackBuildRequest.ts} +46 -32
  300. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  301. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +93 -76
  302. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +71 -50
  303. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  304. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  305. package/src/requests/{PackageRequest.js → PackageRequest.ts} +20 -22
  306. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  307. package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
  308. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  309. package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
  310. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
  311. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  312. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  313. package/src/{resolveOptions.js → resolveOptions.ts} +57 -24
  314. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  315. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  316. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  317. package/src/types.ts +650 -0
  318. package/src/{utils.js → utils.ts} +52 -21
  319. package/src/{worker.js → worker.ts} +50 -42
  320. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
  321. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  322. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  323. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  324. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  325. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  326. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  327. package/test/Environment.test.ts +153 -0
  328. package/test/EnvironmentManager.test.ts +188 -0
  329. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  330. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  331. package/test/PackagerRunner.test.ts +0 -0
  332. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  333. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  334. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  335. package/test/PublicEnvironment.test.ts +49 -0
  336. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  337. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
  338. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  339. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
  340. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  341. package/test/fixtures/custom-targets/package.json +6 -0
  342. package/test/public/Config.test.ts +104 -0
  343. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  344. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  345. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  346. package/test/{test-utils.js → test-utils.ts} +4 -11
  347. package/test/{utils.test.js → utils.test.ts} +1 -3
  348. package/tsconfig.json +60 -0
  349. package/tsconfig.tsbuildinfo +1 -0
  350. package/index.d.ts +0 -30
  351. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  352. package/src/atlaspack-v3/jsCallable.js +0 -18
  353. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  354. package/src/index.js +0 -13
  355. package/src/requests/AssetGraphRequestRust.js +0 -263
  356. package/src/types.js +0 -600
  357. package/test/Environment.test.js +0 -119
  358. package/test/PackagerRunner.test.js +0 -27
  359. package/test/PublicEnvironment.test.js +0 -27
  360. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -1,4 +1,3 @@
1
- // @flow strict-local
2
1
  import type {
3
2
  Asset,
4
3
  AsyncSubscription,
@@ -44,20 +43,21 @@ import createPathRequest from './requests/PathRequest';
44
43
  import {createEnvironment} from './Environment';
45
44
  import {createDependency} from './Dependency';
46
45
  import {Disposable} from '@atlaspack/events';
47
- import {init as initSourcemaps} from '@parcel/source-map';
46
+ import {init as initSourcemaps} from '@atlaspack/source-map';
48
47
  import {LMDBLiteCache} from '@atlaspack/cache';
49
48
  import {
49
+ // @ts-expect-error TS2305
50
50
  init as initRust,
51
51
  initializeMonitoring,
52
52
  closeMonitoring,
53
- type Lmdb,
53
+ Lmdb,
54
54
  } from '@atlaspack/rust';
55
55
  import {
56
56
  fromProjectPath,
57
57
  toProjectPath,
58
58
  fromProjectPathRelative,
59
59
  } from './projectPath';
60
- import {tracer} from '@atlaspack/profiler';
60
+ import {tracer, NativeProfiler} from '@atlaspack/profiler';
61
61
  import {setFeatureFlags, DEFAULT_FEATURE_FLAGS} from '@atlaspack/feature-flags';
62
62
  import {AtlaspackV3, FileSystemV3} from './atlaspack-v3';
63
63
  import createAssetGraphRequestJS from './requests/AssetGraphRequest';
@@ -69,39 +69,53 @@ registerCoreWithSerializer();
69
69
 
70
70
  export const INTERNAL_TRANSFORM: symbol = Symbol('internal_transform');
71
71
  export const INTERNAL_RESOLVE: symbol = Symbol('internal_resolve');
72
- export const WORKER_PATH: string = path.join(__dirname, 'worker.js');
72
+ export let WORKER_PATH: string = path.join(__dirname, 'worker.js');
73
+ if (__filename.endsWith('.ts')) {
74
+ WORKER_PATH = path.join(__dirname, 'worker.ts');
75
+ }
73
76
 
74
77
  export default class Atlaspack {
75
- #requestTracker /*: RequestTracker*/;
76
- #config /*: AtlaspackConfig*/;
77
- #farm /*: WorkerFarm*/;
78
- #initialized /*: boolean*/ = false;
79
- #disposable /*: Disposable */;
80
- #initialOptions /*: InitialAtlaspackOptions */;
81
- #reporterRunner /*: ReporterRunner*/;
82
- #resolvedOptions /*: ?AtlaspackOptions*/ = null;
83
- #optionsRef /*: SharedReference */;
84
- #watchAbortController /*: AbortController*/;
85
- #watchQueue /*: PromiseQueue<?BuildEvent>*/ = new PromiseQueue<?BuildEvent>({
78
+ // @ts-expect-error TS2564
79
+ #requestTracker: RequestTracker;
80
+ // @ts-expect-error TS2564
81
+ #config: AtlaspackConfig;
82
+ // @ts-expect-error TS2564
83
+ #farm: WorkerFarm;
84
+ #initialized: boolean = false;
85
+ // @ts-expect-error TS2564
86
+ #disposable: Disposable;
87
+ #initialOptions: InitialAtlaspackOptions;
88
+ // @ts-expect-error TS2564
89
+ #reporterRunner: ReporterRunner;
90
+ #resolvedOptions: AtlaspackOptions | null | undefined = null;
91
+ // @ts-expect-error TS2564
92
+ #optionsRef: SharedReference;
93
+ // @ts-expect-error TS2564
94
+ #watchAbortController: AbortController;
95
+ #watchQueue: PromiseQueue<BuildEvent | null | undefined> = new PromiseQueue<
96
+ BuildEvent | null | undefined
97
+ >({
86
98
  maxConcurrent: 1,
87
99
  });
88
- #watchEvents /*: ValueEmitter<
89
- | {|
90
- +error: Error,
91
- +buildEvent?: void,
92
- |}
93
- | {|
94
- +buildEvent: BuildEvent,
95
- +error?: void,
96
- |},
97
- > */;
98
- #watcherSubscription /*: ?AsyncSubscription*/;
99
- #watcherCount /*: number*/ = 0;
100
- #requestedAssetIds /*: Set<string>*/ = new Set();
101
-
102
- rustAtlaspack: AtlaspackV3 | null | void;
103
-
104
- isProfiling /*: boolean */;
100
+ // @ts-expect-error TS2564
101
+ #watchEvents: ValueEmitter<
102
+ | {
103
+ readonly error: Error;
104
+ readonly buildEvent?: undefined;
105
+ }
106
+ | {
107
+ readonly buildEvent: BuildEvent;
108
+ readonly error?: undefined;
109
+ }
110
+ >;
111
+ #watcherSubscription: AsyncSubscription | null | undefined;
112
+ #watcherCount: number = 0;
113
+ #requestedAssetIds: Set<string> = new Set();
114
+
115
+ rustAtlaspack: AtlaspackV3 | null | undefined;
116
+
117
+ // @ts-expect-error TS2564
118
+ isProfiling: boolean;
105
119
 
106
120
  constructor(options: InitialAtlaspackOptions) {
107
121
  this.#initialOptions = options;
@@ -115,7 +129,7 @@ export default class Atlaspack {
115
129
  const featureFlags = {
116
130
  ...DEFAULT_FEATURE_FLAGS,
117
131
  ...this.#initialOptions.featureFlags,
118
- };
132
+ } as const;
119
133
  setFeatureFlags(featureFlags);
120
134
 
121
135
  loadRustWorkerThreadDylibHack();
@@ -138,7 +152,7 @@ export default class Atlaspack {
138
152
  process.off('exit', onExit);
139
153
  onExit();
140
154
  });
141
- } catch (e) {
155
+ } catch (e: any) {
142
156
  // Fallthrough
143
157
  // eslint-disable-next-line no-console
144
158
  console.warn(e);
@@ -161,7 +175,6 @@ export default class Atlaspack {
161
175
 
162
176
  const lmdb: Lmdb = resolvedOptions.cache.getNativeRef();
163
177
 
164
- // $FlowFixMe
165
178
  const version = require('../package.json').version;
166
179
  await lmdb.put('current_session_version', Buffer.from(version));
167
180
 
@@ -174,20 +187,26 @@ export default class Atlaspack {
174
187
 
175
188
  rustAtlaspack = await AtlaspackV3.create({
176
189
  ...options,
190
+ // @ts-expect-error TS2353
177
191
  corePath: path.join(__dirname, '..'),
178
192
  threads,
179
193
  entries: Array.isArray(entries)
180
194
  ? entries
181
195
  : entries == null
182
- ? undefined
183
- : [entries],
196
+ ? undefined
197
+ : [entries],
184
198
  env: resolvedOptions.env,
185
199
  fs: inputFS && new FileSystemV3(inputFS),
186
- // $FlowFixMe ProjectPath is a string
187
200
  defaultTargetOptions: resolvedOptions.defaultTargetOptions,
201
+ serveOptions: resolvedOptions.serveOptions,
188
202
  lmdb,
203
+ featureFlags: resolvedOptions.featureFlags,
204
+ });
205
+ this.#disposable.add(() => {
206
+ rustAtlaspack.end();
189
207
  });
190
208
  }
209
+ // @ts-expect-error TS2454
191
210
  this.rustAtlaspack = rustAtlaspack;
192
211
 
193
212
  let {config} = await loadAtlaspackConfig(resolvedOptions);
@@ -238,6 +257,7 @@ export default class Atlaspack {
238
257
  this.#requestTracker = await RequestTracker.init({
239
258
  farm: this.#farm,
240
259
  options: resolvedOptions,
260
+ // @ts-expect-error TS2454
241
261
  rustAtlaspack,
242
262
  });
243
263
 
@@ -279,7 +299,7 @@ export default class Atlaspack {
279
299
 
280
300
  try {
281
301
  await this.#requestTracker.writeToCache(abortController.signal);
282
- } catch (err) {
302
+ } catch (err: any) {
283
303
  if (!abortController.signal.aborted) {
284
304
  // We expect abort errors if we interrupt the cache write
285
305
  throw err;
@@ -290,7 +310,7 @@ export default class Atlaspack {
290
310
  }
291
311
  }
292
312
 
293
- async _startNextBuild(): Promise<?BuildEvent> {
313
+ async _startNextBuild(): Promise<BuildEvent | null | undefined> {
294
314
  this.#watchAbortController = new AbortController();
295
315
  await this.clearBuildCaches();
296
316
 
@@ -304,7 +324,7 @@ export default class Atlaspack {
304
324
  });
305
325
 
306
326
  return buildEvent;
307
- } catch (err) {
327
+ } catch (err: any) {
308
328
  // Ignore BuildAbortErrors and only emit critical errors.
309
329
  if (!(err instanceof BuildAbortError)) {
310
330
  throw err;
@@ -316,12 +336,13 @@ export default class Atlaspack {
316
336
  }
317
337
 
318
338
  async watch(
319
- cb?: (err: ?Error, buildEvent?: BuildEvent) => mixed,
339
+ cb?: (err?: Error | null | undefined, buildEvent?: BuildEvent) => unknown,
320
340
  ): Promise<AsyncSubscription> {
321
341
  if (!this.#initialized) {
322
342
  await this._init();
323
343
  }
324
344
 
345
+ // @ts-expect-error TS7034
325
346
  let watchEventsDisposable;
326
347
  if (cb) {
327
348
  watchEventsDisposable = this.#watchEvents.addListener(
@@ -341,8 +362,10 @@ export default class Atlaspack {
341
362
 
342
363
  this.#watcherCount++;
343
364
 
365
+ // @ts-expect-error TS7034
344
366
  let unsubscribePromise;
345
367
  const unsubscribe = async () => {
368
+ // @ts-expect-error TS7005
346
369
  if (watchEventsDisposable) {
347
370
  watchEventsDisposable.dispose();
348
371
  }
@@ -360,10 +383,12 @@ export default class Atlaspack {
360
383
 
361
384
  return {
362
385
  unsubscribe() {
386
+ // @ts-expect-error TS7005
363
387
  if (unsubscribePromise == null) {
364
388
  unsubscribePromise = unsubscribe();
365
389
  }
366
390
 
391
+ // @ts-expect-error TS7005
367
392
  return unsubscribePromise;
368
393
  },
369
394
  };
@@ -372,20 +397,28 @@ export default class Atlaspack {
372
397
  async _build({
373
398
  signal,
374
399
  startTime = Date.now(),
375
- }: {|
376
- signal?: AbortSignal,
377
- startTime?: number,
378
- |} = {
400
+ }: {
401
+ signal?: AbortSignal;
402
+ startTime?: number;
403
+ } = {
379
404
  /*::...null*/
380
405
  }): Promise<BuildEvent> {
381
- this.#requestTracker.setSignal(signal);
382
406
  let options = nullthrows(this.#resolvedOptions);
383
407
  try {
384
408
  if (options.shouldProfile) {
385
409
  await this.startProfiling();
386
410
  }
411
+ if (options.nativeProfiler) {
412
+ const nativeProfiler = new NativeProfiler();
413
+ await nativeProfiler.startProfiling(options.nativeProfiler);
414
+ }
387
415
  if (options.shouldTrace) {
388
416
  tracer.enable();
417
+ // We need to ensure the tracer is disabled when Atlaspack is disposed as it is a module level object.
418
+ // While rare (except for tests), if another instance is created later it should not have tracing enabled.
419
+ this.#disposable.add(() => {
420
+ tracer.disable();
421
+ });
389
422
  }
390
423
  await this.#reporterRunner.report({
391
424
  type: 'buildStart',
@@ -399,13 +432,18 @@ export default class Atlaspack {
399
432
  signal,
400
433
  });
401
434
 
402
- let {bundleGraph, bundleInfo, changedAssets, assetRequests} =
403
- await this.#requestTracker.runRequest(request, {force: true});
435
+ let {
436
+ bundleGraph,
437
+ bundleInfo,
438
+ changedAssets,
439
+ assetRequests,
440
+ scopeHoistingStats,
441
+ } = await this.#requestTracker.runRequest(request, {force: true});
404
442
 
405
443
  this.#requestedAssetIds.clear();
406
444
 
407
445
  await dumpGraphToGraphViz(
408
- // $FlowFixMe
446
+ // @ts-expect-error TS2345
409
447
  this.#requestTracker.graph,
410
448
  'RequestGraph',
411
449
  requestGraphEdgeTypes,
@@ -414,14 +452,20 @@ export default class Atlaspack {
414
452
  let event = {
415
453
  type: 'buildSuccess',
416
454
  changedAssets: new Map(
417
- Array.from(changedAssets).map(([id, asset]) => [
455
+ Array.from(changedAssets).map(([id, asset]: [any, any]) => [
418
456
  id,
419
457
  assetFromValue(asset, options),
420
458
  ]),
421
459
  ),
422
460
  bundleGraph: new BundleGraph<IPackagedBundle>(
423
461
  bundleGraph,
424
- (bundle, bundleGraph, options) =>
462
+ (
463
+ // @ts-expect-error TS2304
464
+ bundle: Bundle,
465
+ // @ts-expect-error TS2314
466
+ bundleGraph: BundleGraph,
467
+ options: AtlaspackOptions,
468
+ ) =>
425
469
  PackagedBundle.getWithInfo(
426
470
  bundle,
427
471
  bundleGraph,
@@ -431,6 +475,7 @@ export default class Atlaspack {
431
475
  options,
432
476
  ),
433
477
  buildTime: Date.now() - startTime,
478
+ // @ts-expect-error TS7006
434
479
  requestBundle: async (bundle) => {
435
480
  let bundleNode = bundleGraph._graph.getNodeByContentKey(bundle.id);
436
481
  invariant(bundleNode?.type === 'bundle', 'Bundle does not exist');
@@ -444,6 +489,7 @@ export default class Atlaspack {
444
489
  buildTime: 0,
445
490
  requestBundle: event.requestBundle,
446
491
  unstable_requestStats: {},
492
+ scopeHoistingStats: event.scopeHoistingStats,
447
493
  };
448
494
  }
449
495
 
@@ -461,17 +507,22 @@ export default class Atlaspack {
461
507
 
462
508
  let results = await this.#watchQueue.run();
463
509
  let result = results.filter(Boolean).pop();
510
+ // @ts-expect-error TS18049
464
511
  if (result.type === 'buildFailure') {
512
+ // @ts-expect-error TS18049
465
513
  throw new BuildError(result.diagnostics);
466
514
  }
467
515
 
468
516
  return result;
469
517
  },
470
518
  unstable_requestStats: this.#requestTracker.flushStats(),
519
+ scopeHoistingStats,
471
520
  };
472
521
 
522
+ // @ts-expect-error TS2345
473
523
  await this.#reporterRunner.report(event);
474
524
  await this.#requestTracker.runRequest(
525
+ // @ts-expect-error TS2345
475
526
  createValidationRequest({optionsRef: this.#optionsRef, assetRequests}),
476
527
  {force: assetRequests.length > 0},
477
528
  );
@@ -480,8 +531,9 @@ export default class Atlaspack {
480
531
  throw this.#reporterRunner.errors;
481
532
  }
482
533
 
534
+ // @ts-expect-error TS2322
483
535
  return event;
484
- } catch (e) {
536
+ } catch (e: any) {
485
537
  if (e instanceof BuildAbortError) {
486
538
  throw e;
487
539
  }
@@ -493,7 +545,9 @@ export default class Atlaspack {
493
545
  unstable_requestStats: this.#requestTracker.flushStats(),
494
546
  };
495
547
 
548
+ // @ts-expect-error TS2345
496
549
  await this.#reporterRunner.report(event);
550
+ // @ts-expect-error TS2322
497
551
  return event;
498
552
  } finally {
499
553
  if (this.isProfiling) {
@@ -533,10 +587,11 @@ export default class Atlaspack {
533
587
  nativeInvalid = await this.rustAtlaspack.respondToFsEvents(events);
534
588
  }
535
589
 
536
- let isInvalid = await this.#requestTracker.respondToFSEvents(
537
- events,
538
- Number.POSITIVE_INFINITY,
539
- );
590
+ let {didInvalidate: isInvalid} =
591
+ await this.#requestTracker.respondToFSEvents(
592
+ events,
593
+ Number.POSITIVE_INFINITY,
594
+ );
540
595
 
541
596
  if (
542
597
  (nativeInvalid || isInvalid) &&
@@ -620,13 +675,15 @@ export default class Atlaspack {
620
675
  lazyIncludes: [],
621
676
  lazyExcludes: [],
622
677
  requestedAssetIds: this.#requestedAssetIds,
623
- };
678
+ } as const;
624
679
 
625
680
  const start = Date.now();
626
681
  const result = await this.#requestTracker.runRequest(
627
682
  this.rustAtlaspack != null
628
- ? createAssetGraphRequestRust(this.rustAtlaspack)(input)
629
- : createAssetGraphRequestJS(input),
683
+ ? // @ts-expect-error TS2345
684
+ createAssetGraphRequestRust(this.rustAtlaspack)(input)
685
+ : // @ts-expect-error TS2345
686
+ createAssetGraphRequestJS(input),
630
687
  {force: true},
631
688
  );
632
689
 
@@ -694,7 +751,7 @@ export default class Atlaspack {
694
751
 
695
752
  async unstable_resolve(
696
753
  request: AtlaspackResolveOptions,
697
- ): Promise<?AtlaspackResolveResult> {
754
+ ): Promise<AtlaspackResolveResult | null | undefined> {
698
755
  if (!this.#initialized) {
699
756
  await this._init();
700
757
  }
@@ -733,6 +790,7 @@ export default class Atlaspack {
733
790
  }
734
791
 
735
792
  return {
793
+ // @ts-expect-error TS2322
736
794
  filePath: fromProjectPath(projectRoot, res.filePath),
737
795
  code: res.code,
738
796
  query: res.query,
@@ -749,7 +807,7 @@ export class BuildError extends ThrowableDiagnostic {
749
807
  }
750
808
 
751
809
  export function createWorkerFarm(
752
- options: $Shape<FarmOptions> = {},
810
+ options: Partial<FarmOptions> = {},
753
811
  ): WorkerFarm {
754
812
  return new WorkerFarm({
755
813
  ...options,
@@ -1,19 +1,14 @@
1
- // @flow strict-local
2
1
  import type {PackageName} from '@atlaspack/types';
3
2
  import type {SchemaEntity} from '@atlaspack/utils';
4
3
 
5
4
  // Parcel validates plugin package names due to:
6
- //
7
5
  // * https://github.com/parcel-bundler/parcel/issues/3397#issuecomment-521353931
8
- //
9
6
  // Ultimately:
10
- //
11
7
  // * We do not care about package names
12
8
  // * Validation makes interop between parcel/atlaspack confusing.
13
- //
14
9
  export function validatePackageName(
15
10
  // eslint-disable-next-line no-unused-vars
16
- pkg: ?PackageName,
11
+ pkg: PackageName | null | undefined,
17
12
  // eslint-disable-next-line no-unused-vars
18
13
  pluginType: string,
19
14
  // eslint-disable-next-line no-unused-vars
@@ -27,7 +22,7 @@ const validatePluginName = (pluginType: string, key: string) => {
27
22
 
28
23
  try {
29
24
  validatePackageName(val, pluginType, key);
30
- } catch (e) {
25
+ } catch (e: any) {
31
26
  return e.message;
32
27
  }
33
28
  };
@@ -39,7 +34,7 @@ const validateExtends = (val: string): void => {
39
34
 
40
35
  try {
41
36
  validatePackageName(val, 'config', 'extends');
42
- } catch (e) {
37
+ } catch (e: any) {
43
38
  return e.message;
44
39
  }
45
40
  };
@@ -96,20 +91,31 @@ export default {
96
91
  },
97
92
  bundler: {
98
93
  type: 'string',
99
- __validate: (validatePluginName('bundler', 'bundler'): (string) => void),
94
+ __validate: validatePluginName('bundler', 'bundler') as (
95
+ arg1: string,
96
+ ) => void,
100
97
  },
101
- resolvers: (pipelineSchema('resolver', 'resolvers'): SchemaEntity),
102
- transformers: (mapPipelineSchema(
98
+ resolvers: pipelineSchema('resolver', 'resolvers') as SchemaEntity,
99
+ transformers: mapPipelineSchema(
103
100
  'transformer',
104
101
  'transformers',
105
- ): SchemaEntity),
106
- validators: (mapPipelineSchema('validator', 'validators'): SchemaEntity),
107
- namers: (pipelineSchema('namer', 'namers'): SchemaEntity),
108
- packagers: (mapStringSchema('packager', 'packagers'): SchemaEntity),
109
- optimizers: (mapPipelineSchema('optimizer', 'optimizers'): SchemaEntity),
110
- compressors: (mapPipelineSchema('compressor', 'compressors'): SchemaEntity),
111
- reporters: (pipelineSchema('reporter', 'reporters'): SchemaEntity),
112
- runtimes: (pipelineSchema('runtime', 'runtimes'): SchemaEntity),
102
+ ) as SchemaEntity,
103
+ validators: mapPipelineSchema('validator', 'validators') as SchemaEntity,
104
+ namers: pipelineSchema('namer', 'namers') as SchemaEntity,
105
+ packagers: mapStringSchema('packager', 'packagers') as SchemaEntity,
106
+ optimizers: mapPipelineSchema('optimizer', 'optimizers') as SchemaEntity,
107
+ compressors: mapPipelineSchema('compressor', 'compressors') as SchemaEntity,
108
+ reporters: pipelineSchema('reporter', 'reporters') as SchemaEntity,
109
+ runtimes: pipelineSchema('runtime', 'runtimes') as SchemaEntity,
110
+ // This isn't currently supported in V2, however we need to allow it to
111
+ // parse as even V3 builds need the AtlaspackConfigRequest
112
+ unstable_alias: {
113
+ type: 'object',
114
+ properties: {},
115
+ additionalProperties: {
116
+ type: 'string',
117
+ },
118
+ },
113
119
  filePath: {
114
120
  type: 'string',
115
121
  },