@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
@@ -12,6 +12,8 @@ function _featureFlags() {
12
12
  return data;
13
13
  }
14
14
  var _RequestTracker = require("../RequestTracker");
15
+ var _types = require("../types");
16
+ var _ReporterRunner = require("../ReporterRunner");
15
17
  var _constants = require("../constants");
16
18
  var _projectPath = require("../projectPath");
17
19
  function _nullthrows() {
@@ -30,7 +32,26 @@ function _rust() {
30
32
  }
31
33
  var _PackageRequest = require("./PackageRequest");
32
34
  var _WriteBundleRequest = _interopRequireDefault(require("./WriteBundleRequest"));
35
+ function _utils() {
36
+ const data = require("@atlaspack/utils");
37
+ _utils = function () {
38
+ return data;
39
+ };
40
+ return data;
41
+ }
33
42
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
+ function reportPackagingProgress(completeBundles, totalBundles) {
44
+ if (!(0, _featureFlags().getFeatureFlag)('cliProgressReportingImprovements')) {
45
+ return;
46
+ }
47
+ (0, _ReporterRunner.report)({
48
+ type: 'buildProgress',
49
+ phase: 'packagingAndOptimizing',
50
+ totalBundles,
51
+ completeBundles
52
+ });
53
+ }
54
+
34
55
  /**
35
56
  * Packages, optimizes, and writes all bundles to the dist directory.
36
57
  */
@@ -67,7 +88,7 @@ async function run({
67
88
  const allBundles = bundleGraph.getBundles({
68
89
  includeInline: (0, _featureFlags().getFeatureFlag)('inlineBundlesSourceMapFixes')
69
90
  });
70
- const bundles = allBundles.filter(bundle => bundle.bundleBehavior !== 'inline').filter(bundle => {
91
+ const bundles = allBundles.filter(bundle => bundle.bundleBehavior !== _types.BundleBehavior.inline && bundle.bundleBehavior !== _types.BundleBehavior.inlineIsolated).filter(bundle => {
71
92
  // Do not package and write placeholder bundles to disk. We just
72
93
  // need to update the name so other bundles can reference it.
73
94
  if (bundle.isPlaceholder) {
@@ -76,6 +97,7 @@ async function run({
76
97
  let name = (0, _nullthrows().default)(bundle.name, `Expected ${bundle.type} bundle to have a name`).replace(bundle.hashReference, hash);
77
98
  res.set(bundle.id, {
78
99
  filePath: (0, _projectPath.joinProjectPath)(bundle.target.distDir, name),
100
+ bundleId: bundle.id,
79
101
  type: bundle.type,
80
102
  // FIXME: this is wrong if the packager changes the type...
81
103
  stats: {
@@ -87,11 +109,14 @@ async function run({
87
109
  }
88
110
  return true;
89
111
  });
112
+ let cachedBundles = new Set(bundles.filter(b => api.canSkipSubrequest(bundleGraph.getHash(b))));
90
113
 
91
114
  // Package on the main thread if there is only one bundle to package.
92
115
  // This avoids the cost of serializing the bundle graph for single file change builds.
93
- let useMainThread = bundles.length === 1 || bundles.filter(b => !api.canSkipSubrequest(bundleGraph.getHash(b))).length === 1;
116
+ let useMainThread = bundles.length === 1 || bundles.length - cachedBundles.size <= 1;
94
117
  try {
118
+ let completeBundles = cachedBundles.size;
119
+ reportPackagingProgress(completeBundles, bundles.length);
95
120
  await Promise.all(bundles.map(async bundle => {
96
121
  let request = (0, _PackageRequest.createPackageRequest)({
97
122
  bundle,
@@ -101,6 +126,10 @@ async function run({
101
126
  useMainThread
102
127
  });
103
128
  let info = await api.runRequest(request);
129
+ if (!cachedBundles.has(bundle)) {
130
+ completeBundles++;
131
+ reportPackagingProgress(completeBundles, bundles.length);
132
+ }
104
133
  if (!useMainThread) {
105
134
  // Force a refresh of the cache to avoid a race condition
106
135
  // between threaded reads and writes that can result in an LMDB cache miss:
@@ -137,8 +166,26 @@ async function run({
137
166
  }));
138
167
  return promise.then(r => res.set(bundle.id, r));
139
168
  }));
140
- api.storeResult(res);
141
- return res;
169
+ let result = {
170
+ bundleInfo: res
171
+ };
172
+ if (_utils().debugTools['scope-hoisting-stats']) {
173
+ // Aggregate scope hoisting stats from all bundles
174
+ let aggregatedScopeHoistingStats = {
175
+ totalAssets: 0,
176
+ wrappedAssets: 0
177
+ };
178
+ for (let bundle of bundles) {
179
+ let bundleInfo = bundleInfoMap[bundle.id];
180
+ if (bundleInfo !== null && bundleInfo !== void 0 && bundleInfo.scopeHoistingStats) {
181
+ aggregatedScopeHoistingStats.totalAssets += bundleInfo.scopeHoistingStats.totalAssets;
182
+ aggregatedScopeHoistingStats.wrappedAssets += bundleInfo.scopeHoistingStats.wrappedAssets;
183
+ }
184
+ }
185
+ result.scopeHoistingStats = aggregatedScopeHoistingStats;
186
+ }
187
+ api.storeResult(result);
188
+ return result;
142
189
  } finally {
143
190
  await dispose();
144
191
  }
@@ -14,11 +14,11 @@ function _jestDiff() {
14
14
  };
15
15
  return data;
16
16
  }
17
- var _AssetGraph = _interopRequireDefault(require("../AssetGraph"));
18
17
  var _projectPath = require("../projectPath");
19
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
- /* eslint-disable no-console */ // $FlowFixMe
21
- // $FlowFixMe
19
+ /* eslint-disable no-console */
20
+ // @ts-expect-error missing types
21
+
22
22
  function filterNode(node) {
23
23
  let clone = (0, _default().default)(node);
24
24
 
@@ -43,6 +43,8 @@ function filterNode(node) {
43
43
  delete clone.value.dependencies;
44
44
  return clone;
45
45
  }
46
+
47
+ // @ts-expect-error missing return type
46
48
  function compactDeep(obj, ignoredPatterns = [], currentPath = '$') {
47
49
  if (obj instanceof Map) {
48
50
  const copy = {};
@@ -53,6 +55,7 @@ function compactDeep(obj, ignoredPatterns = [], currentPath = '$') {
53
55
  });
54
56
  return copy;
55
57
  } else if (Array.isArray(obj)) {
58
+ // @ts-expect-error implicit any
56
59
  return obj.map(v => compactDeep(v, ignoredPatterns, `${currentPath}[]`));
57
60
  } else if (typeof obj === 'object') {
58
61
  const copy = {};
@@ -74,17 +77,19 @@ function compactDeep(obj, ignoredPatterns = [], currentPath = '$') {
74
77
  return obj;
75
78
  }
76
79
  }
77
- function assetGraphDiff(jsAssetGraph, rustAssetGraph) {
80
+ function assetGraphDiff(jsAssetGraph, rustAssetGraph, projectRoot) {
78
81
  const getNodes = graph => {
79
82
  let nodes = {};
83
+
84
+ // @ts-expect-error implicit any
80
85
  graph.traverse(nodeId => {
81
86
  let node = graph.getNode(nodeId) ?? null;
82
87
  if (!node) return;
83
88
  if (node.type === 'dependency') {
84
- let sourcePath = node.value.sourcePath ?? (0, _projectPath.toProjectPath)('', 'entry');
85
- nodes[`dep:${(0, _projectPath.fromProjectPathRelative)(sourcePath)}:${node.value.specifier}`] = filterNode(node);
89
+ let sourcePath = node.value.sourcePath ? (0, _projectPath.toProjectPath)(projectRoot, node.value.sourcePath) : (0, _projectPath.toProjectPath)(projectRoot, 'entry');
90
+ nodes[`dep:${sourcePath}:${node.value.specifier}`] = filterNode(node);
86
91
  } else if (node.type === 'asset') {
87
- nodes[`asset:${(0, _projectPath.fromProjectPathRelative)(node.value.filePath)}`] = filterNode(node);
92
+ nodes[`asset:${(0, _projectPath.toProjectPath)(projectRoot, node.value.filePath)}`] = filterNode(node);
88
93
  }
89
94
  });
90
95
  return nodes;
@@ -13,7 +13,6 @@ function _path() {
13
13
  };
14
14
  return data;
15
15
  }
16
- var _AssetGraph = _interopRequireDefault(require("../AssetGraph"));
17
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
17
  /** @description Renders AssetGraph into GraphViz Dot format */
19
18
  function assetGraphToDot(assetGraph, {
@@ -41,8 +40,6 @@ function assetGraphToDot(assetGraph, {
41
40
  edges.push(entry);
42
41
  }
43
42
  });
44
-
45
- // $FlowFixMe
46
43
  const nodeStylesList = Object.entries(nodeStyles);
47
44
  if (sort) {
48
45
  edges.sort();
@@ -83,18 +80,15 @@ function fromCwd(input) {
83
80
  }
84
81
  function getNodeName(node) {
85
82
  if (node.type === 'asset_group') {
86
- // $FlowFixMe
83
+ // @ts-expect-error TS2345
87
84
  return [`asset_group`, node.id, fromCwd(node.value.filePath)].join('\\n');
88
85
  } else if (node.type === 'asset') {
89
- // $FlowFixMe
90
86
  return [`asset`, node.id, fromCwd(node.value.filePath)].join('\\n');
91
87
  } else if (node.type === 'dependency') {
92
88
  return [`dependency`, node.id, node.value.specifier].join('\\n');
93
89
  } else if (node.type === 'entry_specifier') {
94
- // $FlowFixMe
95
90
  return [`entry_specifier`, node.value].join('\\n');
96
91
  } else if (node.type === 'entry_file') {
97
- // $FlowFixMe
98
92
  return [`entry_file`, fromCwd(node.value.filePath)].join('\\n');
99
93
  }
100
94
  return 'ROOT';
@@ -106,6 +106,21 @@ async function resolveOptions(initialOptions) {
106
106
  } else {
107
107
  entries = [_path().default.resolve(inputCwd, initialOptions.entries)];
108
108
  }
109
+
110
+ // When allowExplicitTargetEntries is enabled and no entries are provided,
111
+ // automatically derive entries from target sources
112
+ if ((0, _featureFlags().getFeatureFlag)('allowExplicitTargetEntries') && initialOptions.targets && !Array.isArray(initialOptions.targets) && entries.length === 0) {
113
+ const targetSources = new Set();
114
+ for (const [, target] of Object.entries(initialOptions.targets)) {
115
+ if (target.source) {
116
+ const sources = Array.isArray(target.source) ? target.source : [target.source];
117
+ for (const source of sources) {
118
+ targetSources.add(source);
119
+ }
120
+ }
121
+ }
122
+ entries = Array.from(targetSources);
123
+ }
109
124
  let shouldMakeEntryReferFolder = false;
110
125
  if (entries.length === 1 && !(0, _utils().isGlob)(entries[0])) {
111
126
  let [entry] = entries;
@@ -115,13 +130,21 @@ async function resolveOptions(initialOptions) {
115
130
  // ignore failing stat call
116
131
  }
117
132
  }
133
+ let projectRoot;
134
+ if (initialOptions.projectRoot) {
135
+ // Use explicitly provided projectRoot
136
+ if (!_path().default.isAbsolute(initialOptions.projectRoot)) {
137
+ throw new Error('Specified project root must be an absolute path');
138
+ }
139
+ projectRoot = initialOptions.projectRoot;
140
+ } else {
141
+ // getRootDir treats the input as files, so getRootDir(["/home/user/myproject"]) returns "/home/user".
142
+ // Instead we need to make the the entry refer to some file inside the specified folders if entries refers to the directory.
143
+ let entryRoot = (0, _utils().getRootDir)(shouldMakeEntryReferFolder ? [_path().default.join(entries[0], 'index')] : entries);
144
+ let projectRootFile = (await (0, _utils().resolveConfig)(inputFS, _path().default.join(entryRoot, 'index'), [...LOCK_FILE_NAMES, '.git', '.hg'], _path().default.parse(entryRoot).root)) || _path().default.join(inputCwd, 'index'); // ? Should this just be rootDir
118
145
 
119
- // getRootDir treats the input as files, so getRootDir(["/home/user/myproject"]) returns "/home/user".
120
- // Instead we need to make the the entry refer to some file inside the specified folders if entries refers to the directory.
121
- let entryRoot = (0, _utils().getRootDir)(shouldMakeEntryReferFolder ? [_path().default.join(entries[0], 'index')] : entries);
122
- let projectRootFile = (await (0, _utils().resolveConfig)(inputFS, _path().default.join(entryRoot, 'index'), [...LOCK_FILE_NAMES, '.git', '.hg'], _path().default.parse(entryRoot).root)) || _path().default.join(inputCwd, 'index'); // ? Should this just be rootDir
123
-
124
- let projectRoot = _path().default.dirname(projectRootFile);
146
+ projectRoot = _path().default.dirname(projectRootFile);
147
+ }
125
148
  const gitRoot = await findGitRepositoryRoot(inputFS, projectRoot);
126
149
  if (inputFS instanceof _fs().NodeVCSAwareFS) {
127
150
  inputFS.setGitRepoPath(gitRoot);
@@ -139,16 +162,19 @@ async function resolveOptions(initialOptions) {
139
162
  // where symlinked dependencies outside the project root need to trigger HMR
140
163
  // updates. Default to the project root if not provided.
141
164
  let watchDir = initialOptions.watchDir != null ? _path().default.resolve(initialOptions.watchDir) : projectRoot;
142
- let cache = function createCache() {
165
+ function createCache() {
143
166
  if (initialOptions.cache) {
144
167
  return initialOptions.cache;
145
168
  }
146
169
  const needsRustLmdbCache = (0, _featureFlags().getFeatureFlag)('atlaspackV3');
147
- if (!needsRustLmdbCache && !(outputFS instanceof _fs().NodeFS)) {
148
- return new (_cache().FSCache)(outputFS, cacheDir);
170
+ if (!(0, _featureFlags().getFeatureFlag)('cachePerformanceImprovements')) {
171
+ if (!needsRustLmdbCache && !(outputFS instanceof _fs().NodeFS)) {
172
+ return new (_cache().FSCache)(outputFS, cacheDir);
173
+ }
149
174
  }
150
175
  return new (_cache().LMDBLiteCache)(cacheDir);
151
- }();
176
+ }
177
+ let cache = createCache();
152
178
  let mode = initialOptions.mode ?? 'development';
153
179
  let shouldOptimize = (initialOptions === null || initialOptions === void 0 || (_initialOptions$defau = initialOptions.defaultTargetOptions) === null || _initialOptions$defau === void 0 ? void 0 : _initialOptions$defau.shouldOptimize) ?? mode === 'production';
154
180
  let publicUrl = (initialOptions === null || initialOptions === void 0 || (_initialOptions$defau2 = initialOptions.defaultTargetOptions) === null || _initialOptions$defau2 === void 0 ? void 0 : _initialOptions$defau2.publicUrl) ?? '/';
@@ -14,7 +14,6 @@ exports.loadRustWorkerThreadDylibHack = loadRustWorkerThreadDylibHack;
14
14
  */
15
15
  function loadRustWorkerThreadDylibHack() {
16
16
  try {
17
- // $FlowFixMe
18
17
  require('@parcel/rust'); // eslint-disable-line
19
18
  } catch (err) {
20
19
  /* ignore */
@@ -0,0 +1,80 @@
1
+ import type { GraphVisitor } from '@atlaspack/types';
2
+ import type { ContentGraphOpts, ContentKey, NodeId, SerializedContentGraph } from '@atlaspack/graph';
3
+ import type { Asset, AssetGraphNode, AssetGroup, AssetGroupNode, AssetNode, Dependency, DependencyNode, Entry, EntryFileNode, EntrySpecifierNode, Environment, Target } from './types';
4
+ import { ContentGraph } from '@atlaspack/graph';
5
+ import { ProjectPath } from './projectPath';
6
+ type InitOpts = {
7
+ entries?: Array<ProjectPath>;
8
+ targets?: Array<Target>;
9
+ assetGroups?: Array<AssetGroup>;
10
+ };
11
+ type AssetGraphOpts = ContentGraphOpts<AssetGraphNode> & {
12
+ bundlingVersion?: number;
13
+ disableIncrementalBundling?: boolean;
14
+ hash?: string | null | undefined;
15
+ };
16
+ type SerializedAssetGraph = SerializedContentGraph<AssetGraphNode> & {
17
+ bundlingVersion: number;
18
+ disableIncrementalBundling: boolean;
19
+ hash?: string | null | undefined;
20
+ };
21
+ export declare function nodeFromDep(dep: Dependency): DependencyNode;
22
+ export declare function nodeFromAssetGroup(assetGroup: AssetGroup): AssetGroupNode;
23
+ export declare function nodeFromAsset(asset: Asset): AssetNode;
24
+ export declare function nodeFromEntrySpecifier(entry: ProjectPath): EntrySpecifierNode;
25
+ export declare function nodeFromEntryFile(entry: Entry): EntryFileNode;
26
+ export default class AssetGraph extends ContentGraph<AssetGraphNode> {
27
+ #private;
28
+ onNodeRemoved: ((nodeId: NodeId) => unknown) | null | undefined;
29
+ hash: string | null | undefined;
30
+ envCache: Map<string, Environment>;
31
+ /**
32
+ * @deprecated
33
+ */
34
+ safeToIncrementallyBundle: boolean;
35
+ undeferredDependencies: Set<Dependency>;
36
+ constructor(opts?: AssetGraphOpts | null);
37
+ static deserialize(opts: AssetGraphOpts): AssetGraph;
38
+ serialize(): SerializedAssetGraph;
39
+ /**
40
+ * Force incremental bundling to be disabled.
41
+ */
42
+ setDisableIncrementalBundling(disable: boolean): void;
43
+ testing_getDisableIncrementalBundling(): boolean;
44
+ /**
45
+ * Make sure this asset graph is marked as needing a full bundling pass.
46
+ */
47
+ setNeedsBundling(): void;
48
+ /**
49
+ * Get the current bundling version.
50
+ *
51
+ * Each bundle pass should keep this version around. Whenever an asset graph has a new version,
52
+ * bundling should be re-run.
53
+ */
54
+ getBundlingVersion(): number;
55
+ /**
56
+ * If the `bundlingVersion` has not changed since the last bundling pass,
57
+ * we can incrementally bundle, which will not require a full bundling pass
58
+ * but just update assets into the bundle graph output.
59
+ */
60
+ canIncrementallyBundle(lastVersion: number): boolean;
61
+ normalizeEnvironment(input: Asset | Dependency | AssetGroup): void;
62
+ setRootConnections({ entries, assetGroups }: InitOpts): void;
63
+ addNode(node: AssetGraphNode): NodeId;
64
+ removeNode(nodeId: NodeId): void;
65
+ resolveEntry(entry: ProjectPath, resolved: Array<Entry>, correspondingRequest: ContentKey): void;
66
+ resolveTargets(entry: Entry, targets: Array<Target>, correspondingRequest: string): void;
67
+ resolveDependency(dependency: Dependency, assetGroup: AssetGroup | null | undefined, correspondingRequest: string): void;
68
+ shouldVisitChild(nodeId: NodeId, childNodeId: NodeId): boolean;
69
+ markParentsWithHasDeferred(nodeId: NodeId): void;
70
+ unmarkParentsWithHasDeferred(nodeId: NodeId): void;
71
+ shouldDeferDependency(dependency: Dependency, sideEffects: boolean | null | undefined, canDefer: boolean): boolean;
72
+ resolveAssetGroup(assetGroup: AssetGroup, assets: Array<Asset>, correspondingRequest: ContentKey): void;
73
+ resolveAsset(assetNode: AssetNode, dependentAssets: Array<Asset>): void;
74
+ getIncomingDependencies(asset: Asset): Array<Dependency>;
75
+ traverseAssets<TContext>(visit: GraphVisitor<Asset, TContext>, startNodeId?: NodeId | null): TContext | null | undefined;
76
+ getEntryAssetGroupNodes(): Array<AssetGroupNode>;
77
+ getEntryAssets(): Array<Asset>;
78
+ getHash(): string;
79
+ }
80
+ export {};
@@ -0,0 +1,52 @@
1
+ import type { Asset, AsyncSubscription, BuildEvent, BuildSuccessEvent, InitialAtlaspackOptions, AtlaspackTransformOptions, AtlaspackResolveOptions, AtlaspackResolveResult } from '@atlaspack/types';
2
+ import type { AtlaspackOptions } from './types';
3
+ import type { FarmOptions } from '@atlaspack/workers';
4
+ import type { Diagnostic } from '@atlaspack/diagnostic';
5
+ import ThrowableDiagnostic from '@atlaspack/diagnostic';
6
+ import WorkerFarm from '@atlaspack/workers';
7
+ import { AtlaspackV3 } from './atlaspack-v3';
8
+ import type { AssetGraphRequestResult } from './requests/AssetGraphRequest';
9
+ export declare const INTERNAL_TRANSFORM: symbol;
10
+ export declare const INTERNAL_RESOLVE: symbol;
11
+ export declare let WORKER_PATH: string;
12
+ export default class Atlaspack {
13
+ #private;
14
+ rustAtlaspack: AtlaspackV3 | null | undefined;
15
+ isProfiling: boolean;
16
+ constructor(options: InitialAtlaspackOptions);
17
+ _init(): Promise<void>;
18
+ run(): Promise<BuildSuccessEvent>;
19
+ _end(): Promise<void>;
20
+ writeRequestTrackerToCache(): Promise<void>;
21
+ _startNextBuild(): Promise<BuildEvent | null | undefined>;
22
+ watch(cb?: (err?: Error | null | undefined, buildEvent?: BuildEvent) => unknown): Promise<AsyncSubscription>;
23
+ _build({ signal, startTime, }?: {
24
+ signal?: AbortSignal;
25
+ startTime?: number;
26
+ }): Promise<BuildEvent>;
27
+ _getWatcherSubscription(): Promise<AsyncSubscription>;
28
+ _getResolvedAtlaspackOptions(): AtlaspackOptions;
29
+ startProfiling(): Promise<void>;
30
+ stopProfiling(): Promise<void>;
31
+ takeHeapSnapshot(): Promise<void>;
32
+ /**
33
+ * Must be called between builds otherwise there is global state that will
34
+ * break things unexpectedly.
35
+ */
36
+ clearBuildCaches(): Promise<void>;
37
+ unstable_invalidate(): Promise<void>;
38
+ /**
39
+ * Build the asset graph
40
+ */
41
+ unstable_buildAssetGraph(writeToCache?: boolean): Promise<AssetGraphRequestResult>;
42
+ /**
43
+ * Copy the cache to a new directory and compact it.
44
+ */
45
+ unstable_compactCache(): Promise<void>;
46
+ unstable_transform(options: AtlaspackTransformOptions): Promise<Array<Asset>>;
47
+ unstable_resolve(request: AtlaspackResolveOptions): Promise<AtlaspackResolveResult | null | undefined>;
48
+ }
49
+ export declare class BuildError extends ThrowableDiagnostic {
50
+ constructor(diagnostic: Array<Diagnostic> | Diagnostic);
51
+ }
52
+ export declare function createWorkerFarm(options?: Partial<FarmOptions>): WorkerFarm;
@@ -0,0 +1,65 @@
1
+ import type { Glob, Transformer, Resolver, Bundler, Namer, Runtime, PackageName, Optimizer, Compressor, Packager, Reporter, Semver, Validator, FilePath } from '@atlaspack/types';
2
+ import type { ProcessedAtlaspackConfig, AtlaspackPluginNode, PureAtlaspackConfigPipeline, ExtendableAtlaspackConfigPipeline, AtlaspackOptions } from './types';
3
+ import ThrowableDiagnostic from '@atlaspack/diagnostic';
4
+ import { ProjectPath } from './projectPath';
5
+ type GlobMap<T> = Partial<Record<Glob, T>>;
6
+ type SerializedAtlaspackConfig = {
7
+ $$raw: boolean;
8
+ config: ProcessedAtlaspackConfig;
9
+ options: AtlaspackOptions;
10
+ };
11
+ export type LoadedPlugin<T> = {
12
+ name: string;
13
+ version: Semver;
14
+ plugin: T;
15
+ resolveFrom: ProjectPath;
16
+ keyPath?: string;
17
+ };
18
+ export declare class AtlaspackConfig {
19
+ options: AtlaspackOptions;
20
+ filePath: ProjectPath;
21
+ resolvers: PureAtlaspackConfigPipeline;
22
+ transformers: GlobMap<ExtendableAtlaspackConfigPipeline>;
23
+ bundler: AtlaspackPluginNode | null | undefined;
24
+ namers: PureAtlaspackConfigPipeline;
25
+ runtimes: PureAtlaspackConfigPipeline;
26
+ packagers: GlobMap<AtlaspackPluginNode>;
27
+ validators: GlobMap<ExtendableAtlaspackConfigPipeline>;
28
+ optimizers: GlobMap<ExtendableAtlaspackConfigPipeline>;
29
+ compressors: GlobMap<ExtendableAtlaspackConfigPipeline>;
30
+ reporters: PureAtlaspackConfigPipeline;
31
+ pluginCache: Map<PackageName, any>;
32
+ regexCache: Map<string, RegExp>;
33
+ constructor(config: ProcessedAtlaspackConfig, options: AtlaspackOptions);
34
+ static deserialize(serialized: SerializedAtlaspackConfig): AtlaspackConfig;
35
+ getConfig(): ProcessedAtlaspackConfig;
36
+ serialize(): SerializedAtlaspackConfig;
37
+ _loadPlugin<T>(node: AtlaspackPluginNode): Promise<{
38
+ plugin: T;
39
+ version: Semver;
40
+ resolveFrom: ProjectPath;
41
+ }>;
42
+ loadPlugin<T>(node: AtlaspackPluginNode): Promise<LoadedPlugin<T>>;
43
+ invalidatePlugin(packageName: PackageName): void;
44
+ loadPlugins<T>(plugins: PureAtlaspackConfigPipeline): Promise<Array<LoadedPlugin<T>>>;
45
+ getResolvers(): Promise<Array<LoadedPlugin<Resolver<unknown>>>>;
46
+ _getValidatorNodes(filePath: ProjectPath): ReadonlyArray<AtlaspackPluginNode>;
47
+ getValidatorNames(filePath: ProjectPath): Array<string>;
48
+ getValidators(filePath: ProjectPath): Promise<Array<LoadedPlugin<Validator>>>;
49
+ getNamedPipelines(): ReadonlyArray<string>;
50
+ getTransformers(filePath: ProjectPath, pipeline?: string | null, allowEmpty?: boolean): Promise<Array<LoadedPlugin<Transformer<unknown>>>>;
51
+ getBundler(): Promise<LoadedPlugin<Bundler<unknown>>>;
52
+ getNamers(): Promise<Array<LoadedPlugin<Namer<unknown>>>>;
53
+ getRuntimes(): Promise<Array<LoadedPlugin<Runtime<unknown>>>>;
54
+ getPackager(filePath: FilePath): Promise<LoadedPlugin<Packager<unknown, unknown>>>;
55
+ _getOptimizerNodes(filePath: FilePath, pipeline?: string | null): PureAtlaspackConfigPipeline;
56
+ getOptimizerNames(filePath: FilePath, pipeline?: string | null): Array<string>;
57
+ getOptimizers(filePath: FilePath, pipeline?: string | null): Promise<Array<LoadedPlugin<Optimizer<unknown, unknown>>>>;
58
+ getCompressors(filePath: FilePath): Promise<Array<LoadedPlugin<Compressor>>>;
59
+ getReporters(): Promise<Array<LoadedPlugin<Reporter>>>;
60
+ isGlobMatch(projectPath: ProjectPath, pattern: Glob, pipeline?: string | null): boolean;
61
+ matchGlobMap<T>(filePath: ProjectPath, globMap: Partial<Record<Glob, T>>): T | null | undefined;
62
+ matchGlobMapPipelines(filePath: ProjectPath, globMap: Partial<Record<Glob, ExtendableAtlaspackConfigPipeline>>, pipeline?: string | null): PureAtlaspackConfigPipeline;
63
+ missingPluginError(plugins: GlobMap<ExtendableAtlaspackConfigPipeline> | GlobMap<AtlaspackPluginNode> | PureAtlaspackConfigPipeline, message: string, key: string): Promise<ThrowableDiagnostic>;
64
+ }
65
+ export {};
@@ -0,0 +1,46 @@
1
+ import type { PackageName } from '@atlaspack/types';
2
+ import type { SchemaEntity } from '@atlaspack/utils';
3
+ export declare function validatePackageName(pkg: PackageName | null | undefined, pluginType: string, key: string): void;
4
+ declare const _default: {
5
+ type: string;
6
+ properties: {
7
+ $schema: {
8
+ type: string;
9
+ };
10
+ extends: {
11
+ oneOf: ({
12
+ type: string;
13
+ __validate: (val: string) => void;
14
+ items?: undefined;
15
+ } | {
16
+ type: string;
17
+ items: {
18
+ type: string;
19
+ __validate: (val: string) => void;
20
+ };
21
+ __validate?: undefined;
22
+ })[];
23
+ };
24
+ bundler: {
25
+ type: string;
26
+ __validate: (arg1: string) => void;
27
+ };
28
+ resolvers: SchemaEntity;
29
+ transformers: SchemaEntity;
30
+ validators: SchemaEntity;
31
+ namers: SchemaEntity;
32
+ packagers: SchemaEntity;
33
+ optimizers: SchemaEntity;
34
+ compressors: SchemaEntity;
35
+ reporters: SchemaEntity;
36
+ runtimes: SchemaEntity;
37
+ filePath: {
38
+ type: string;
39
+ };
40
+ resolveFrom: {
41
+ type: string;
42
+ };
43
+ };
44
+ additionalProperties: boolean;
45
+ };
46
+ export default _default;