@atlaspack/core 2.16.2-canary.27 → 2.16.2-canary.270

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/CHANGELOG.md +665 -0
  2. package/dist/AssetGraph.js +591 -0
  3. package/dist/Atlaspack.js +658 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +108 -0
  6. package/dist/BundleGraph.js +1635 -0
  7. package/dist/CommittedAsset.js +142 -0
  8. package/dist/Dependency.js +125 -0
  9. package/dist/Environment.js +132 -0
  10. package/dist/EnvironmentManager.js +108 -0
  11. package/dist/IdentifierRegistry.js +38 -0
  12. package/dist/InternalConfig.js +37 -0
  13. package/dist/PackagerRunner.js +545 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1360 -0
  16. package/dist/SymbolPropagation.js +620 -0
  17. package/dist/TargetDescriptor.schema.js +143 -0
  18. package/dist/Transformation.js +490 -0
  19. package/dist/UncommittedAsset.js +315 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +305 -0
  22. package/dist/assetUtils.js +168 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +70 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +57 -0
  25. package/dist/atlaspack-v3/fs.js +52 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +94 -0
  30. package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
  31. package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
  32. package/dist/atlaspack-v3/worker/compat/index.js +25 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +76 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-logger.js +26 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-options.js +122 -0
  37. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  38. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  39. package/dist/atlaspack-v3/worker/worker.js +297 -0
  40. package/dist/constants.js +17 -0
  41. package/dist/dumpGraphToGraphViz.js +281 -0
  42. package/dist/index.js +62 -0
  43. package/dist/loadAtlaspackPlugin.js +128 -0
  44. package/dist/loadDotEnv.js +41 -0
  45. package/dist/projectPath.js +83 -0
  46. package/dist/public/Asset.js +279 -0
  47. package/dist/public/Bundle.js +224 -0
  48. package/dist/public/BundleGraph.js +359 -0
  49. package/dist/public/BundleGroup.js +53 -0
  50. package/dist/public/Config.js +286 -0
  51. package/dist/public/Dependency.js +138 -0
  52. package/dist/public/Environment.js +278 -0
  53. package/dist/public/MutableBundleGraph.js +277 -0
  54. package/dist/public/PluginOptions.js +80 -0
  55. package/dist/public/Symbols.js +248 -0
  56. package/dist/public/Target.js +69 -0
  57. package/dist/registerCoreWithSerializer.js +38 -0
  58. package/dist/requests/AssetGraphRequest.js +429 -0
  59. package/dist/requests/AssetGraphRequestRust.js +262 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +65 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +445 -0
  64. package/dist/requests/ConfigRequest.js +222 -0
  65. package/dist/requests/DevDepRequest.js +204 -0
  66. package/dist/requests/EntryRequest.js +314 -0
  67. package/dist/requests/PackageRequest.js +62 -0
  68. package/dist/requests/PathRequest.js +349 -0
  69. package/dist/requests/TargetRequest.js +1311 -0
  70. package/dist/requests/ValidationRequest.js +49 -0
  71. package/dist/requests/WriteBundleRequest.js +254 -0
  72. package/dist/requests/WriteBundlesRequest.js +184 -0
  73. package/dist/requests/asset-graph-diff.js +128 -0
  74. package/dist/requests/asset-graph-dot.js +131 -0
  75. package/dist/resolveOptions.js +268 -0
  76. package/dist/rustWorkerThreadDylibHack.js +19 -0
  77. package/dist/serializerCore.browser.js +43 -0
  78. package/dist/summarizeRequest.js +39 -0
  79. package/dist/types.js +31 -0
  80. package/dist/utils.js +172 -0
  81. package/dist/worker.js +123 -0
  82. package/lib/AssetGraph.js +111 -14
  83. package/lib/Atlaspack.js +81 -37
  84. package/lib/AtlaspackConfig.js +15 -3
  85. package/lib/AtlaspackConfig.schema.js +7 -5
  86. package/lib/BundleGraph.js +90 -32
  87. package/lib/CommittedAsset.js +6 -0
  88. package/lib/Dependency.js +8 -2
  89. package/lib/Environment.js +15 -8
  90. package/lib/EnvironmentManager.js +143 -0
  91. package/lib/IdentifierRegistry.js +1 -3
  92. package/lib/InternalConfig.js +3 -2
  93. package/lib/PackagerRunner.js +90 -27
  94. package/lib/ReporterRunner.js +6 -9
  95. package/lib/RequestTracker.js +266 -156
  96. package/lib/SymbolPropagation.js +42 -18
  97. package/lib/TargetDescriptor.schema.js +7 -1
  98. package/lib/Transformation.js +26 -10
  99. package/lib/UncommittedAsset.js +30 -9
  100. package/lib/Validation.js +18 -2
  101. package/lib/applyRuntimes.js +9 -1
  102. package/lib/assetUtils.js +7 -4
  103. package/lib/atlaspack-v3/AtlaspackV3.js +32 -7
  104. package/lib/atlaspack-v3/NapiWorkerPool.js +3 -0
  105. package/lib/atlaspack-v3/fs.js +3 -1
  106. package/lib/atlaspack-v3/index.js +28 -1
  107. package/lib/atlaspack-v3/jsCallable.js +0 -2
  108. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  109. package/lib/atlaspack-v3/worker/compat/bitflags.js +7 -6
  110. package/lib/atlaspack-v3/worker/compat/dependency.js +3 -0
  111. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  112. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +14 -9
  113. package/lib/atlaspack-v3/worker/compat/plugin-config.js +8 -10
  114. package/lib/atlaspack-v3/worker/compat/plugin-options.js +1 -0
  115. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  116. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  117. package/lib/atlaspack-v3/worker/index.js +3 -0
  118. package/lib/atlaspack-v3/worker/worker.js +43 -7
  119. package/lib/constants.js +0 -1
  120. package/lib/dumpGraphToGraphViz.js +71 -16
  121. package/lib/index.js +45 -1
  122. package/lib/loadDotEnv.js +4 -1
  123. package/lib/projectPath.js +5 -0
  124. package/lib/public/Asset.js +21 -11
  125. package/lib/public/Bundle.js +15 -16
  126. package/lib/public/BundleGraph.js +10 -4
  127. package/lib/public/BundleGroup.js +4 -5
  128. package/lib/public/Config.js +118 -17
  129. package/lib/public/Dependency.js +8 -6
  130. package/lib/public/Environment.js +12 -7
  131. package/lib/public/MutableBundleGraph.js +54 -12
  132. package/lib/public/PluginOptions.js +2 -2
  133. package/lib/public/Symbols.js +11 -11
  134. package/lib/public/Target.js +7 -6
  135. package/lib/registerCoreWithSerializer.js +5 -3
  136. package/lib/requests/AssetGraphRequest.js +42 -5
  137. package/lib/requests/AssetGraphRequestRust.js +126 -62
  138. package/lib/requests/AssetRequest.js +23 -6
  139. package/lib/requests/AtlaspackBuildRequest.js +10 -4
  140. package/lib/requests/AtlaspackConfigRequest.js +27 -16
  141. package/lib/requests/BundleGraphRequest.js +34 -19
  142. package/lib/requests/ConfigRequest.js +28 -4
  143. package/lib/requests/DevDepRequest.js +31 -5
  144. package/lib/requests/EntryRequest.js +2 -0
  145. package/lib/requests/PackageRequest.js +2 -1
  146. package/lib/requests/PathRequest.js +24 -3
  147. package/lib/requests/TargetRequest.js +122 -57
  148. package/lib/requests/ValidationRequest.js +5 -1
  149. package/lib/requests/WriteBundleRequest.js +39 -11
  150. package/lib/requests/WriteBundlesRequest.js +51 -4
  151. package/lib/requests/asset-graph-diff.js +12 -7
  152. package/lib/requests/asset-graph-dot.js +1 -7
  153. package/lib/resolveOptions.js +36 -10
  154. package/lib/rustWorkerThreadDylibHack.js +0 -1
  155. package/lib/types/AssetGraph.d.ts +80 -0
  156. package/lib/types/Atlaspack.d.ts +52 -0
  157. package/lib/types/AtlaspackConfig.d.ts +65 -0
  158. package/lib/types/AtlaspackConfig.schema.d.ts +46 -0
  159. package/lib/types/BundleGraph.d.ts +182 -0
  160. package/lib/types/CommittedAsset.d.ts +23 -0
  161. package/lib/types/Dependency.d.ts +44 -0
  162. package/lib/types/Environment.d.ts +11 -0
  163. package/lib/types/EnvironmentManager.d.ts +37 -0
  164. package/lib/types/IdentifierRegistry.d.ts +6 -0
  165. package/lib/types/InternalConfig.d.ts +24 -0
  166. package/lib/types/PackagerRunner.d.ts +85 -0
  167. package/lib/types/ReporterRunner.d.ts +25 -0
  168. package/lib/types/RequestTracker.d.ts +385 -0
  169. package/lib/types/SymbolPropagation.d.ts +11 -0
  170. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  171. package/lib/types/Transformation.d.ts +72 -0
  172. package/lib/types/UncommittedAsset.d.ts +61 -0
  173. package/lib/types/Validation.d.ts +37 -0
  174. package/lib/types/applyRuntimes.d.ts +25 -0
  175. package/lib/types/assetUtils.d.ts +42 -0
  176. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +26 -0
  177. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +12 -0
  178. package/lib/types/atlaspack-v3/fs.d.ts +12 -0
  179. package/lib/types/atlaspack-v3/index.d.ts +5 -0
  180. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  181. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  182. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +15 -0
  183. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  184. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  185. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
  186. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  187. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +37 -0
  188. package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
  189. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +22 -0
  190. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  191. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  192. package/lib/types/atlaspack-v3/worker/worker.d.ts +60 -0
  193. package/lib/types/constants.d.ts +13 -0
  194. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  195. package/lib/types/index.d.ts +8 -0
  196. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  197. package/lib/types/loadDotEnv.d.ts +3 -0
  198. package/lib/types/projectPath.d.ts +19 -0
  199. package/lib/types/public/Asset.d.ts +74 -0
  200. package/lib/types/public/Bundle.d.ts +45 -0
  201. package/lib/types/public/BundleGraph.d.ts +70 -0
  202. package/lib/types/public/BundleGroup.d.ts +12 -0
  203. package/lib/types/public/Config.d.ts +75 -0
  204. package/lib/types/public/Dependency.d.ts +32 -0
  205. package/lib/types/public/Environment.d.ts +34 -0
  206. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  207. package/lib/types/public/PluginOptions.d.ts +25 -0
  208. package/lib/types/public/Symbols.d.ts +81 -0
  209. package/lib/types/public/Target.d.ts +16 -0
  210. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  211. package/lib/types/requests/AssetGraphRequest.d.ts +74 -0
  212. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  213. package/lib/types/requests/AssetRequest.d.ts +16 -0
  214. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  215. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  216. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  217. package/lib/types/requests/ConfigRequest.d.ts +59 -0
  218. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  219. package/lib/types/requests/EntryRequest.d.ts +36 -0
  220. package/lib/types/requests/PackageRequest.d.ts +27 -0
  221. package/lib/types/requests/PathRequest.d.ts +48 -0
  222. package/lib/types/requests/TargetRequest.d.ts +48 -0
  223. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  224. package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
  225. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  226. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  227. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  228. package/lib/types/resolveOptions.d.ts +3 -0
  229. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  230. package/lib/types/serializerCore.browser.d.ts +3 -0
  231. package/lib/types/summarizeRequest.d.ts +10 -0
  232. package/lib/types/types.d.ts +493 -0
  233. package/lib/types/utils.d.ts +23 -0
  234. package/lib/types/worker.d.ts +44 -0
  235. package/lib/types.js +8 -1
  236. package/lib/utils.js +17 -2
  237. package/lib/worker.js +29 -13
  238. package/package.json +24 -34
  239. package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
  240. package/src/{Atlaspack.js → Atlaspack.ts} +114 -61
  241. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +16 -19
  242. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  243. package/src/{BundleGraph.js → BundleGraph.ts} +231 -140
  244. package/src/{CommittedAsset.js → CommittedAsset.ts} +14 -12
  245. package/src/{Dependency.js → Dependency.ts} +59 -42
  246. package/src/{Environment.js → Environment.ts} +24 -15
  247. package/src/EnvironmentManager.ts +154 -0
  248. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  249. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  250. package/src/{PackagerRunner.js → PackagerRunner.ts} +178 -86
  251. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  252. package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
  253. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
  254. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
  255. package/src/{Transformation.js → Transformation.ts} +71 -62
  256. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +57 -36
  257. package/src/{Validation.js → Validation.ts} +32 -17
  258. package/src/{applyRuntimes.js → applyRuntimes.ts} +35 -26
  259. package/src/{assetUtils.js → assetUtils.ts} +47 -35
  260. package/src/atlaspack-v3/AtlaspackV3.ts +122 -0
  261. package/src/atlaspack-v3/{NapiWorkerPool.js → NapiWorkerPool.ts} +10 -5
  262. package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
  263. package/src/atlaspack-v3/{index.js → index.ts} +2 -4
  264. package/src/atlaspack-v3/jsCallable.ts +14 -0
  265. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  266. package/src/atlaspack-v3/worker/compat/{bitflags.js → bitflags.ts} +9 -10
  267. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +12 -12
  268. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  269. package/src/atlaspack-v3/worker/compat/index.ts +9 -0
  270. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +20 -19
  271. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +27 -26
  272. package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
  273. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +4 -5
  274. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  275. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  276. package/src/atlaspack-v3/worker/index.js +2 -1
  277. package/src/atlaspack-v3/worker/{worker.js → worker.ts} +102 -66
  278. package/src/{constants.js → constants.ts} +0 -3
  279. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  280. package/src/index.ts +18 -0
  281. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  282. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  283. package/src/{projectPath.js → projectPath.ts} +20 -9
  284. package/src/public/{Asset.js → Asset.ts} +40 -27
  285. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  286. package/src/public/{BundleGraph.js → BundleGraph.ts} +81 -50
  287. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  288. package/src/public/{Config.js → Config.ts} +171 -33
  289. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  290. package/src/public/{Environment.js → Environment.ts} +28 -17
  291. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  292. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  293. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  294. package/src/public/{Target.js → Target.ts} +10 -8
  295. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  296. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +84 -49
  297. package/src/requests/AssetGraphRequestRust.ts +352 -0
  298. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  299. package/src/requests/{AtlaspackBuildRequest.js → AtlaspackBuildRequest.ts} +46 -32
  300. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  301. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +71 -58
  302. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +71 -50
  303. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  304. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  305. package/src/requests/{PackageRequest.js → PackageRequest.ts} +20 -22
  306. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  307. package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
  308. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  309. package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
  310. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
  311. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  312. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  313. package/src/{resolveOptions.js → resolveOptions.ts} +56 -24
  314. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  315. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  316. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  317. package/src/types.ts +647 -0
  318. package/src/{utils.js → utils.ts} +52 -21
  319. package/src/{worker.js → worker.ts} +49 -41
  320. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
  321. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  322. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  323. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +75 -15
  324. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  325. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  326. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  327. package/test/Environment.test.ts +153 -0
  328. package/test/EnvironmentManager.test.ts +188 -0
  329. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  330. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  331. package/test/PackagerRunner.test.ts +0 -0
  332. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  333. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  334. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  335. package/test/PublicEnvironment.test.ts +49 -0
  336. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  337. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
  338. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  339. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
  340. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  341. package/test/fixtures/custom-targets/package.json +6 -0
  342. package/test/public/Config.test.ts +104 -0
  343. package/test/requests/{AssetGraphRequestRust.test.js → AssetGraphRequestRust.test.ts} +164 -134
  344. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  345. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  346. package/test/{test-utils.js → test-utils.ts} +4 -11
  347. package/test/{utils.test.js → utils.test.ts} +1 -3
  348. package/tsconfig.json +57 -0
  349. package/tsconfig.tsbuildinfo +1 -0
  350. package/index.d.ts +0 -30
  351. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  352. package/src/atlaspack-v3/jsCallable.js +0 -18
  353. package/src/index.js +0 -13
  354. package/src/requests/AssetGraphRequestRust.js +0 -263
  355. package/src/types.js +0 -600
  356. package/test/Environment.test.js +0 -119
  357. package/test/PackagerRunner.test.js +0 -27
  358. package/test/PublicEnvironment.test.js +0 -27
@@ -1,4 +1,3 @@
1
- // @flow
2
1
  import type {
3
2
  Async,
4
3
  Config as IConfig,
@@ -31,51 +30,48 @@ import {requestTypes} from '../RequestTracker';
31
30
  import {fromProjectPath, fromProjectPathRelative} from '../projectPath';
32
31
 
33
32
  export type PluginWithLoadConfig = {
34
- loadConfig?: ({|
35
- config: IConfig,
36
- options: IPluginOptions,
37
- logger: IPluginLogger,
38
- tracer: IPluginTracer,
39
- |}) => Async<mixed>,
40
- ...
33
+ loadConfig?: (arg1: {
34
+ config: IConfig;
35
+ options: IPluginOptions;
36
+ logger: IPluginLogger;
37
+ tracer: IPluginTracer;
38
+ }) => Async<unknown>;
41
39
  };
42
40
 
43
41
  export type PluginWithBundleConfig = {
44
- loadConfig?: ({|
45
- config: IConfig,
46
- options: IPluginOptions,
47
- logger: IPluginLogger,
48
- tracer: IPluginTracer,
49
- |}) => Async<mixed>,
50
- loadBundleConfig?: ({|
51
- bundle: INamedBundle,
52
- bundleGraph: IBundleGraph<INamedBundle>,
53
- config: IConfig,
54
- options: IPluginOptions,
55
- logger: IPluginLogger,
56
- tracer: IPluginTracer,
57
- |}) => Async<mixed>,
58
- ...
42
+ loadConfig?: (arg1: {
43
+ config: IConfig;
44
+ options: IPluginOptions;
45
+ logger: IPluginLogger;
46
+ tracer: IPluginTracer;
47
+ }) => Async<unknown>;
48
+ loadBundleConfig?: (arg1: {
49
+ bundle: INamedBundle;
50
+ bundleGraph: IBundleGraph<INamedBundle>;
51
+ config: IConfig;
52
+ options: IPluginOptions;
53
+ logger: IPluginLogger;
54
+ tracer: IPluginTracer;
55
+ }) => Async<unknown>;
59
56
  };
60
57
 
61
58
  export type ConfigRequest = {
62
- id: string,
63
- invalidateOnFileChange: Set<ProjectPath>,
64
- invalidateOnConfigKeyChange: Array<{|
65
- filePath: ProjectPath,
66
- configKey: string,
67
- |}>,
68
- invalidateOnFileCreate: Array<InternalFileCreateInvalidation>,
69
- invalidateOnEnvChange: Set<string>,
70
- invalidateOnOptionChange: Set<string>,
71
- invalidateOnStartup: boolean,
72
- invalidateOnBuild: boolean,
73
- ...
59
+ id: string;
60
+ invalidateOnFileChange: Set<ProjectPath>;
61
+ invalidateOnConfigKeyChange: Array<{
62
+ filePath: ProjectPath;
63
+ configKey: string[];
64
+ }>;
65
+ invalidateOnFileCreate: Array<InternalFileCreateInvalidation>;
66
+ invalidateOnEnvChange: Set<string>;
67
+ invalidateOnOptionChange: Set<string>;
68
+ invalidateOnStartup: boolean;
69
+ invalidateOnBuild: boolean;
74
70
  };
75
71
 
76
- export type ConfigRequestResult = void;
72
+ export type ConfigRequestResult = undefined;
77
73
 
78
- export async function loadPluginConfig<T: PluginWithLoadConfig>(
74
+ export async function loadPluginConfig<T extends PluginWithLoadConfig>(
79
75
  loadedPlugin: LoadedPlugin<T>,
80
76
  config: Config,
81
77
  options: AtlaspackOptions,
@@ -99,7 +95,7 @@ export async function loadPluginConfig<T: PluginWithLoadConfig>(
99
95
  category: 'loadConfig',
100
96
  }),
101
97
  });
102
- } catch (e) {
98
+ } catch (e: any) {
103
99
  throw new ThrowableDiagnostic({
104
100
  diagnostic: errorToDiagnostic(e, {
105
101
  origin: loadedPlugin.name,
@@ -108,41 +104,66 @@ export async function loadPluginConfig<T: PluginWithLoadConfig>(
108
104
  }
109
105
  }
110
106
 
107
+ /**
108
+ * Return value at a given key path within an object.
109
+ *
110
+ * @example
111
+ * const obj = { a: { b: { c: 'd' } } };
112
+ * getValueAtPath(obj, ['a', 'b', 'c']); // 'd'
113
+ * getValueAtPath(obj, ['a', 'b', 'd']); // undefined
114
+ * getValueAtPath(obj, ['a', 'b']); // { c: 'd' }
115
+ * getValueAtPath(obj, ['a', 'b', 'c', 'd']); // undefined
116
+ */
117
+ export function getValueAtPath(obj: any, key: string[]): any {
118
+ let current = obj;
119
+ for (let part of key) {
120
+ if (current == null) {
121
+ return undefined;
122
+ }
123
+ current = current[part];
124
+ }
125
+ return current;
126
+ }
127
+
111
128
  const configKeyCache = createBuildCache();
112
129
 
113
130
  export async function getConfigKeyContentHash(
114
131
  filePath: ProjectPath,
115
- configKey: string,
132
+ configKey: string[],
116
133
  options: AtlaspackOptions,
117
- ): Async<string> {
118
- let cacheKey = `${fromProjectPathRelative(filePath)}:${configKey}`;
134
+ ): Promise<Async<string>> {
135
+ let cacheKey = `${fromProjectPathRelative(filePath)}:${JSON.stringify(
136
+ configKey,
137
+ )}`;
119
138
  let cachedValue = configKeyCache.get(cacheKey);
120
139
 
121
140
  if (cachedValue) {
141
+ // @ts-expect-error TS2322
122
142
  return cachedValue;
123
143
  }
124
144
 
125
- let conf = await readConfig(
145
+ const conf = await readConfig(
126
146
  options.inputFS,
127
147
  fromProjectPath(options.projectRoot, filePath),
128
148
  );
129
149
 
130
- if (conf == null || conf.config[configKey] == null) {
150
+ const value = getValueAtPath(conf?.config, configKey);
151
+ if (conf == null || value == null) {
131
152
  // This can occur when a config key has been removed entirely during `respondToFSEvents`
132
153
  return '';
133
154
  }
134
155
 
135
- let contentHash =
136
- typeof conf.config[configKey] === 'object'
137
- ? hashObject(conf.config[configKey])
138
- : hashString(JSON.stringify(conf.config[configKey]));
156
+ const contentHash =
157
+ typeof value === 'object'
158
+ ? hashObject(value)
159
+ : hashString(JSON.stringify(value));
139
160
 
140
161
  configKeyCache.set(cacheKey, contentHash);
141
162
 
142
163
  return contentHash;
143
164
  }
144
165
 
145
- export async function runConfigRequest<TResult: RequestResult>(
166
+ export async function runConfigRequest<TResult extends RequestResult>(
146
167
  api: RunAPI<TResult>,
147
168
  configRequest: ConfigRequest,
148
169
  ) {
@@ -169,7 +190,7 @@ export async function runConfigRequest<TResult: RequestResult>(
169
190
  return;
170
191
  }
171
192
 
172
- await api.runRequest<null, void>({
193
+ await api.runRequest<null, undefined>({
173
194
  id: 'config_request:' + configRequest.id,
174
195
  type: requestTypes.config_request,
175
196
  run: async ({api, options}) => {
@@ -240,7 +261,7 @@ export async function getConfigHash(
240
261
  } else if (config.result != null) {
241
262
  try {
242
263
  hash.writeBuffer(serializeRaw(config.result));
243
- } catch (err) {
264
+ } catch (err: any) {
244
265
  throw new ThrowableDiagnostic({
245
266
  diagnostic: {
246
267
  message:
@@ -1,4 +1,3 @@
1
- // @flow
2
1
  import type {
3
2
  DependencySpecifier,
4
3
  SemverRange,
@@ -57,7 +56,7 @@ export async function createDevDependency(
57
56
  // Ensure that the package manager has an entry for this resolution.
58
57
  try {
59
58
  await options.packageManager.resolve(specifier, resolveFromAbsolute);
60
- } catch (err) {
59
+ } catch (err: any) {
61
60
  // ignore
62
61
  }
63
62
 
@@ -103,49 +102,68 @@ export async function createDevDependency(
103
102
  return devDepRequest;
104
103
  }
105
104
 
106
- export type DevDepSpecifier = {|
107
- specifier: DependencySpecifier,
108
- resolveFrom: ProjectPath,
109
- |};
105
+ export type DevDepSpecifier = {
106
+ specifier: DependencySpecifier;
107
+ resolveFrom: ProjectPath;
108
+ };
110
109
 
111
- type DevDepRequests = {|
112
- devDeps: Map<string, string>,
113
- invalidDevDeps: Array<DevDepSpecifier>,
114
- |};
110
+ type DevDepRequests = {
111
+ devDeps: Map<string, string>;
112
+ invalidDevDeps: Array<DevDepSpecifier>;
113
+ };
115
114
 
116
- export async function getDevDepRequests<TResult: RequestResult>(
115
+ export async function getDevDepRequests<TResult extends RequestResult>(
117
116
  api: RunAPI<TResult>,
118
117
  ): Promise<DevDepRequests> {
119
- let previousDevDepRequests: Map<string, DevDepRequestResult> = new Map(
120
- await Promise.all(
118
+ async function getPreviousDevDepRequests() {
119
+ const allDevDepRequests = await Promise.all(
121
120
  api
122
121
  .getSubRequests()
123
122
  .filter((req) => req.requestType === requestTypes.dev_dep_request)
124
- .map(async (req) => [
125
- req.id,
126
- nullthrows(await api.getRequestResult<DevDepRequestResult>(req.id)),
127
- ]),
128
- ),
129
- );
123
+ .map(
124
+ async (
125
+ req,
126
+ ): Promise<[string, DevDepRequestResult | null | undefined]> => [
127
+ req.id,
128
+ await api.getRequestResult<DevDepRequestResult>(req.id),
129
+ ],
130
+ ),
131
+ );
132
+ const nonNullDevDepRequests: Array<Array<string | DevDepRequestResult>> =
133
+ [];
134
+ for (const [id, result] of allDevDepRequests) {
135
+ if (result != null) {
136
+ nonNullDevDepRequests.push([id, result]);
137
+ }
138
+ }
139
+
140
+ // @ts-expect-error TS2769
141
+ return new Map(nonNullDevDepRequests);
142
+ }
143
+
144
+ const previousDevDepRequests = await getPreviousDevDepRequests();
130
145
 
131
146
  return {
132
147
  devDeps: new Map(
133
148
  [...previousDevDepRequests.entries()]
134
- .filter(([id]) => api.canSkipSubrequest(id))
135
- .map(([, req]: [string, DevDepRequestResult]) => [
149
+ // @ts-expect-error TS2769
150
+ .filter(([id]: [any]) => api.canSkipSubrequest(id))
151
+ .map(([, req]: [any, any]) => [
136
152
  `${req.specifier}:${fromProjectPathRelative(req.resolveFrom)}`,
137
153
  req.hash,
138
154
  ]),
139
155
  ),
140
156
  invalidDevDeps: await Promise.all(
141
157
  [...previousDevDepRequests.entries()]
142
- .filter(([id]) => !api.canSkipSubrequest(id))
143
- .flatMap(([, req]: [string, DevDepRequestResult]) => {
158
+ // @ts-expect-error TS2769
159
+ .filter(([id]: [any]) => !api.canSkipSubrequest(id))
160
+ .flatMap(([, req]: [any, any]) => {
144
161
  return [
145
162
  {
146
163
  specifier: req.specifier,
147
164
  resolveFrom: req.resolveFrom,
148
165
  },
166
+ // @ts-expect-error TS7006
149
167
  ...(req.additionalInvalidations ?? []).map((i) => ({
150
168
  specifier: i.specifier,
151
169
  resolveFrom: i.resolveFrom,
@@ -178,22 +196,25 @@ export function invalidateDevDeps(
178
196
  }
179
197
  }
180
198
 
181
- export type DevDepRequestResult = {|
182
- specifier: DependencySpecifier,
183
- resolveFrom: ProjectPath,
184
- hash: string,
185
- additionalInvalidations: void | Array<{|
186
- range?: ?SemverRange,
187
- resolveFrom: ProjectPath,
188
- specifier: DependencySpecifier,
189
- |}>,
190
- |};
199
+ export type DevDepRequestResult = {
200
+ specifier: DependencySpecifier;
201
+ resolveFrom: ProjectPath;
202
+ hash: string;
203
+ additionalInvalidations:
204
+ | undefined
205
+ | Array<{
206
+ range?: SemverRange | null | undefined;
207
+ resolveFrom: ProjectPath;
208
+ specifier: DependencySpecifier;
209
+ }>;
210
+ };
191
211
 
192
212
  const devDepRequests: Map<string, DevDepRequest> = createBuildCache();
193
213
  export function resolveDevDepRequestRef(
194
214
  devDepRequestRef: DevDepRequest | DevDepRequestRef,
195
215
  ): DevDepRequest {
196
216
  const devDepRequest =
217
+ // @ts-expect-error TS2339
197
218
  devDepRequestRef.type === 'ref'
198
219
  ? devDepRequests.get(devDepRequestRef.hash)
199
220
  : devDepRequestRef;
@@ -213,24 +234,28 @@ This is a bug in Atlaspack.`,
213
234
  );
214
235
  }
215
236
 
237
+ // @ts-expect-error TS2339
216
238
  if (devDepRequestRef.type !== 'ref') {
239
+ // @ts-expect-error TS2345
217
240
  devDepRequests.set(devDepRequest.hash, devDepRequest);
218
241
  }
219
242
 
243
+ // @ts-expect-error TS2322
220
244
  return devDepRequest;
221
245
  }
222
246
 
223
- export async function runDevDepRequest<TResult: RequestResult>(
247
+ export async function runDevDepRequest<TResult extends RequestResult>(
224
248
  api: RunAPI<TResult>,
225
249
  devDepRequestRef: DevDepRequest | DevDepRequestRef,
226
250
  ) {
227
- await api.runRequest<null, DevDepRequestResult | void>({
251
+ await api.runRequest<null, DevDepRequestResult | undefined>({
228
252
  id:
229
253
  'dev_dep_request:' +
230
254
  devDepRequestRef.specifier +
231
255
  ':' +
232
256
  devDepRequestRef.hash,
233
257
  type: requestTypes.dev_dep_request,
258
+ // @ts-expect-error TS2322
234
259
  run: ({api}) => {
235
260
  const devDepRequest = resolveDevDepRequestRef(devDepRequestRef);
236
261
 
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {Async, FilePath, PackageJSON, Glob} from '@atlaspack/types';
4
2
  import type {StaticRunOpts} from '../RequestTracker';
5
3
  import type {Entry, InternalFile, AtlaspackOptions} from '../types';
@@ -17,32 +15,31 @@ import ThrowableDiagnostic, {
17
15
  getJSONSourceLocation,
18
16
  } from '@atlaspack/diagnostic';
19
17
  import path from 'path';
20
- import {parse, type Mapping} from '@mischnic/json-sourcemap';
18
+ import {parse, Mapping} from '@mischnic/json-sourcemap';
21
19
  import {requestTypes} from '../RequestTracker';
22
20
  import {
23
- type ProjectPath,
21
+ ProjectPath,
24
22
  fromProjectPath,
25
23
  fromProjectPathRelative,
26
24
  toProjectPath,
27
25
  } from '../projectPath';
28
26
 
29
- type RunOpts<TResult> = {|
30
- input: ProjectPath,
31
- ...StaticRunOpts<TResult>,
32
- |};
27
+ type RunOpts<TResult> = {
28
+ input: ProjectPath;
29
+ } & StaticRunOpts<TResult>;
33
30
 
34
- export type EntryRequest = {|
35
- id: string,
36
- +type: typeof requestTypes.entry_request,
37
- run: (RunOpts<EntryRequestResult>) => Async<EntryRequestResult>,
38
- input: ProjectPath,
39
- |};
31
+ export type EntryRequest = {
32
+ id: string;
33
+ readonly type: typeof requestTypes.entry_request;
34
+ run: (arg1: RunOpts<EntryRequestResult>) => Async<EntryRequestResult>;
35
+ input: ProjectPath;
36
+ };
40
37
 
41
- export type EntryRequestResult = {|
42
- entries: Array<Entry>,
43
- files: Array<InternalFile>,
44
- globs: Array<Glob>,
45
- |};
38
+ export type EntryRequestResult = {
39
+ entries: Array<Entry>;
40
+ files: Array<InternalFile>;
41
+ globs: Array<Glob>;
42
+ };
46
43
 
47
44
  const type = 'entry_request';
48
45
 
@@ -55,6 +52,7 @@ export default function createEntryRequest(input: ProjectPath): EntryRequest {
55
52
  };
56
53
  }
57
54
 
55
+ // @ts-expect-error TS7031
58
56
  async function run({input, api, options}): Promise<EntryRequestResult> {
59
57
  let entryResolver = new EntryResolver(options);
60
58
  let filePath = fromProjectPath(options.projectRoot, input);
@@ -97,7 +95,7 @@ async function assertFile(
97
95
  let stat;
98
96
  try {
99
97
  stat = await fs.stat(source);
100
- } catch (err) {
98
+ } catch (err: any) {
101
99
  let contents = await fs.readFile(pkgFilePath, 'utf8');
102
100
  let alternatives = await findAlternativeFiles(
103
101
  fs,
@@ -161,7 +159,7 @@ export class EntryResolver {
161
159
  let stat;
162
160
  try {
163
161
  stat = await this.options.inputFS.stat(entry);
164
- } catch (err) {
162
+ } catch (err: any) {
165
163
  if (!isGlob(entry)) {
166
164
  throw new ThrowableDiagnostic({
167
165
  diagnostic: {
@@ -191,13 +189,13 @@ export class EntryResolver {
191
189
 
192
190
  if (pkg) {
193
191
  let {filePath} = pkg;
194
- let entries = [];
192
+ let entries: Array<Entry> = [];
195
193
  let files = [
196
194
  {
197
195
  filePath: toProjectPath(this.options.projectRoot, filePath),
198
196
  },
199
197
  ];
200
- let globs = [];
198
+ let globs: Array<Glob> = [];
201
199
 
202
200
  let targetsWithSources = 0;
203
201
  if (pkg.targets) {
@@ -348,23 +346,30 @@ export class EntryResolver {
348
346
  });
349
347
  }
350
348
 
351
- async readPackage(entry: FilePath): Promise<?{
352
- ...PackageJSON,
353
- filePath: FilePath,
354
- map: {|data: mixed, pointers: {|[string]: Mapping|}|},
355
- ...
356
- }> {
349
+ async readPackage(entry: FilePath): Promise<
350
+ | (PackageJSON & {
351
+ filePath: FilePath;
352
+ map: {
353
+ data: unknown;
354
+ pointers: {
355
+ [key: string]: Mapping;
356
+ };
357
+ };
358
+ })
359
+ | null
360
+ | undefined
361
+ > {
357
362
  let content, pkg;
358
363
  let pkgFile = path.join(entry, 'package.json');
359
364
  try {
360
365
  content = await this.options.inputFS.readFile(pkgFile, 'utf8');
361
- } catch (err) {
366
+ } catch (err: any) {
362
367
  return null;
363
368
  }
364
369
 
365
370
  try {
366
371
  pkg = JSON.parse(content);
367
- } catch (err) {
372
+ } catch (err: any) {
368
373
  // TODO: code frame?
369
374
  throw new ThrowableDiagnostic({
370
375
  diagnostic: {
@@ -1,5 +1,3 @@
1
- // @flow strict-local
2
-
3
1
  import type {ContentKey} from '@atlaspack/graph';
4
2
  import type {Async} from '@atlaspack/types';
5
3
  import type {SharedReference} from '@atlaspack/workers';
@@ -16,27 +14,26 @@ import {runConfigRequest} from './ConfigRequest';
16
14
  import {getDevDepRequests, runDevDepRequest} from './DevDepRequest';
17
15
  import createAtlaspackConfigRequest from './AtlaspackConfigRequest';
18
16
 
19
- type PackageRequestInput = {|
20
- bundleGraph: BundleGraph,
21
- bundle: Bundle,
22
- bundleGraphReference: SharedReference,
23
- optionsRef: SharedReference,
24
- useMainThread?: boolean,
25
- |};
17
+ type PackageRequestInput = {
18
+ bundleGraph: BundleGraph;
19
+ bundle: Bundle;
20
+ bundleGraphReference: SharedReference;
21
+ optionsRef: SharedReference;
22
+ useMainThread?: boolean;
23
+ };
26
24
 
27
25
  export type PackageRequestResult = BundleInfo;
28
26
 
29
- type RunInput<TResult> = {|
30
- input: PackageRequestInput,
31
- ...StaticRunOpts<TResult>,
32
- |};
27
+ type RunInput<TResult> = {
28
+ input: PackageRequestInput;
29
+ } & StaticRunOpts<TResult>;
33
30
 
34
- export type PackageRequest = {|
35
- id: ContentKey,
36
- +type: typeof requestTypes.package_request,
37
- run: (RunInput<BundleInfo>) => Async<BundleInfo>,
38
- input: PackageRequestInput,
39
- |};
31
+ export type PackageRequest = {
32
+ id: ContentKey;
33
+ readonly type: typeof requestTypes.package_request;
34
+ run: (arg1: RunInput<BundleInfo>) => Async<BundleInfo>;
35
+ input: PackageRequestInput;
36
+ };
40
37
 
41
38
  export function createPackageRequest(
42
39
  input: PackageRequestInput,
@@ -49,7 +46,7 @@ export function createPackageRequest(
49
46
  };
50
47
  }
51
48
 
52
- async function run({input, api, farm}) {
49
+ async function run({input, api, farm}: RunInput<BundleInfo>) {
53
50
  let {bundleGraphReference, optionsRef, bundle, useMainThread} = input;
54
51
  let runPackage = farm.createHandle('runPackage', useMainThread);
55
52
 
@@ -70,7 +67,7 @@ async function run({input, api, farm}) {
70
67
  previousDevDeps: devDeps,
71
68
  invalidDevDeps,
72
69
  previousInvalidations: api.getInvalidations(),
73
- }): RunPackagerRunnerResult);
70
+ })) as RunPackagerRunnerResult;
74
71
 
75
72
  for (let devDepRequest of devDepRequests) {
76
73
  await runDevDepRequest(api, devDepRequest);
@@ -93,11 +90,12 @@ async function run({input, api, farm}) {
93
90
  api.invalidateOnOptionChange(invalidation.key);
94
91
  break;
95
92
  default:
93
+ // @ts-expect-error TS2339
96
94
  throw new Error(`Unknown invalidation type: ${invalidation.type}`);
97
95
  }
98
96
  }
99
97
 
100
- // $FlowFixMe[cannot-write] time is marked read-only, but this is the exception
98
+ // @ts-expect-error TS2540
101
99
  bundleInfo.time = Date.now() - start;
102
100
 
103
101
  api.storeResult(bundleInfo);