@atlaspack/core 2.16.2-canary.21 → 2.16.2-canary.211

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 (355) hide show
  1. package/CHANGELOG.md +561 -0
  2. package/dist/AssetGraph.js +591 -0
  3. package/dist/Atlaspack.js +656 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +108 -0
  6. package/dist/BundleGraph.js +1628 -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 +531 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1368 -0
  16. package/dist/SymbolPropagation.js +617 -0
  17. package/dist/TargetDescriptor.schema.js +143 -0
  18. package/dist/Transformation.js +487 -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 +292 -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 +246 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +60 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +490 -0
  63. package/dist/requests/BundleGraphRequest.js +441 -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 +65 -0
  68. package/dist/requests/PathRequest.js +349 -0
  69. package/dist/requests/TargetRequest.js +1310 -0
  70. package/dist/requests/ValidationRequest.js +49 -0
  71. package/dist/requests/WriteBundleRequest.js +254 -0
  72. package/dist/requests/WriteBundlesRequest.js +165 -0
  73. package/dist/requests/asset-graph-diff.js +126 -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 +82 -35
  84. package/lib/AtlaspackConfig.js +15 -3
  85. package/lib/AtlaspackConfig.schema.js +7 -5
  86. package/lib/BundleGraph.js +83 -30
  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 +66 -23
  94. package/lib/ReporterRunner.js +6 -9
  95. package/lib/RequestTracker.js +256 -139
  96. package/lib/SymbolPropagation.js +22 -3
  97. package/lib/TargetDescriptor.schema.js +7 -1
  98. package/lib/Transformation.js +16 -9
  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 +34 -6
  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 +41 -4
  137. package/lib/requests/AssetGraphRequestRust.js +29 -14
  138. package/lib/requests/AssetRequest.js +23 -6
  139. package/lib/requests/AtlaspackBuildRequest.js +6 -2
  140. package/lib/requests/AtlaspackConfigRequest.js +12 -11
  141. package/lib/requests/BundleGraphRequest.js +29 -18
  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 +7 -2
  146. package/lib/requests/PathRequest.js +24 -3
  147. package/lib/requests/TargetRequest.js +120 -56
  148. package/lib/requests/ValidationRequest.js +5 -1
  149. package/lib/requests/WriteBundleRequest.js +39 -11
  150. package/lib/requests/WriteBundlesRequest.js +24 -2
  151. package/lib/requests/asset-graph-diff.js +8 -3
  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 +80 -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 +58 -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 +29 -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 +26 -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} +113 -60
  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} +213 -133
  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} +149 -81
  251. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  252. package/src/{RequestTracker.js → RequestTracker.ts} +558 -336
  253. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +137 -39
  254. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
  255. package/src/{Transformation.js → Transformation.ts} +67 -61
  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} +94 -65
  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} +83 -48
  297. package/src/requests/{AssetGraphRequestRust.js → AssetGraphRequestRust.ts} +36 -29
  298. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  299. package/src/requests/{AtlaspackBuildRequest.js → AtlaspackBuildRequest.ts} +30 -31
  300. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +58 -51
  301. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +66 -57
  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} +21 -21
  306. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  307. package/src/requests/{TargetRequest.js → TargetRequest.ts} +259 -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} +77 -34
  311. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +14 -14
  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} +3 -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} +54 -92
  340. package/test/public/Config.test.ts +104 -0
  341. package/test/requests/{AssetGraphRequestRust.test.js → AssetGraphRequestRust.test.ts} +163 -134
  342. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  343. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  344. package/test/{test-utils.js → test-utils.ts} +4 -11
  345. package/test/{utils.test.js → utils.test.ts} +1 -3
  346. package/tsconfig.json +57 -0
  347. package/tsconfig.tsbuildinfo +1 -0
  348. package/index.d.ts +0 -30
  349. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  350. package/src/atlaspack-v3/jsCallable.js +0 -18
  351. package/src/index.js +0 -13
  352. package/src/types.js +0 -600
  353. package/test/Environment.test.js +0 -119
  354. package/test/PackagerRunner.test.js +0 -27
  355. package/test/PublicEnvironment.test.js +0 -27
package/src/types.ts ADDED
@@ -0,0 +1,647 @@
1
+ import type {ContentKey} from '@atlaspack/graph';
2
+ import type {
3
+ ASTGenerator,
4
+ BuildMode,
5
+ Engines,
6
+ EnvironmentContext,
7
+ EnvMap,
8
+ FilePath,
9
+ Glob,
10
+ LogLevel,
11
+ Meta,
12
+ DependencySpecifier,
13
+ PackageName,
14
+ ReporterEvent,
15
+ SemverRange,
16
+ ServerOptions,
17
+ SourceType,
18
+ Stats,
19
+ TargetSourceMapOptions,
20
+ ConfigResult,
21
+ OutputFormat,
22
+ TargetDescriptor,
23
+ HMROptions,
24
+ DetailedReportOptions,
25
+ Symbol,
26
+ } from '@atlaspack/types';
27
+ import type {SharedReference} from '@atlaspack/workers';
28
+ import type {FileSystem} from '@atlaspack/fs';
29
+ import type {Cache} from '@atlaspack/cache';
30
+ import type {PackageManager} from '@atlaspack/package-manager';
31
+ import type {ProjectPath} from './projectPath';
32
+ import type {Event} from '@parcel/watcher';
33
+ import type {FeatureFlags} from '@atlaspack/feature-flags';
34
+ import type {BackendType} from '@parcel/watcher';
35
+ import type {EnvironmentRef} from './EnvironmentManager';
36
+
37
+ // flow-to-ts helpers
38
+ export type SetComplement<A, B extends A> = A extends B ? never : A;
39
+ export type Diff<T extends U, U extends object> = Pick<
40
+ T,
41
+ SetComplement<keyof T, keyof U>
42
+ >;
43
+ // /flow-to-ts helpers
44
+
45
+ export type AtlaspackPluginNode = {
46
+ packageName: PackageName;
47
+ resolveFrom: ProjectPath;
48
+ keyPath?: string;
49
+ };
50
+ export type ParcelPluginNode = AtlaspackPluginNode;
51
+
52
+ export type PureAtlaspackConfigPipeline = ReadonlyArray<AtlaspackPluginNode>;
53
+ export type ExtendableAtlaspackConfigPipeline = ReadonlyArray<
54
+ AtlaspackPluginNode | '...'
55
+ >;
56
+
57
+ export type ProcessedAtlaspackConfig = {
58
+ resolvers?: PureAtlaspackConfigPipeline;
59
+ transformers?: Partial<Record<Glob, ExtendableAtlaspackConfigPipeline>>;
60
+ bundler: ParcelPluginNode | null | undefined;
61
+ namers?: PureAtlaspackConfigPipeline;
62
+ runtimes?: PureAtlaspackConfigPipeline;
63
+ packagers?: Partial<Record<Glob, ParcelPluginNode>>;
64
+ optimizers?: Partial<Record<Glob, ExtendableAtlaspackConfigPipeline>>;
65
+ compressors?: Partial<Record<Glob, ExtendableAtlaspackConfigPipeline>>;
66
+ reporters?: PureAtlaspackConfigPipeline;
67
+ validators?: Partial<Record<Glob, ExtendableAtlaspackConfigPipeline>>;
68
+ filePath: ProjectPath;
69
+ resolveFrom?: ProjectPath;
70
+ };
71
+
72
+ export type Environment = {
73
+ id: string;
74
+ context: EnvironmentContext;
75
+ engines: Engines;
76
+ includeNodeModules:
77
+ | boolean
78
+ | Array<PackageName>
79
+ | Partial<Record<PackageName, boolean>>;
80
+ outputFormat: OutputFormat;
81
+ sourceType: SourceType;
82
+ isLibrary: boolean;
83
+ shouldOptimize: boolean;
84
+ shouldScopeHoist: boolean;
85
+ sourceMap: TargetSourceMapOptions | null | undefined;
86
+ loc: InternalSourceLocation | null | undefined;
87
+ unstableSingleFileOutput: boolean;
88
+ customEnv: EnvMap | null | undefined;
89
+ };
90
+
91
+ export type InternalSourceLocation = {
92
+ readonly filePath: ProjectPath;
93
+ /** inclusive */
94
+ readonly start: {
95
+ readonly line: number;
96
+ readonly column: number;
97
+ };
98
+ /** exclusive */
99
+ readonly end: {
100
+ readonly line: number;
101
+ readonly column: number;
102
+ };
103
+ };
104
+
105
+ export type Target = {
106
+ distEntry?: FilePath | null | undefined;
107
+ distDir: ProjectPath;
108
+ env: EnvironmentRef;
109
+ name: string;
110
+ publicUrl: string;
111
+ loc?: InternalSourceLocation | null | undefined;
112
+ pipeline?: string;
113
+ source?: FilePath | Array<FilePath>;
114
+ };
115
+
116
+ export const SpecifierType = {
117
+ esm: 0,
118
+ commonjs: 1,
119
+ url: 2,
120
+ custom: 3,
121
+ } as const;
122
+
123
+ export const Priority = {
124
+ sync: 0,
125
+ parallel: 1,
126
+ lazy: 2,
127
+ conditional: 3,
128
+ } as const;
129
+
130
+ // Must match package_json.rs in node-resolver-rs.
131
+ export const ExportsCondition = {
132
+ import: 1 << 0,
133
+ require: 1 << 1,
134
+ module: 1 << 2,
135
+ style: 1 << 12,
136
+ sass: 1 << 13,
137
+ less: 1 << 14,
138
+ } as const;
139
+
140
+ export type Dependency = {
141
+ id: string;
142
+ specifier: DependencySpecifier;
143
+ specifierType: (typeof SpecifierType)[keyof typeof SpecifierType];
144
+ priority: (typeof Priority)[keyof typeof Priority];
145
+ needsStableName: boolean;
146
+ bundleBehavior:
147
+ | (typeof BundleBehavior)[keyof typeof BundleBehavior]
148
+ | null
149
+ | undefined;
150
+ isEntry: boolean;
151
+ isOptional: boolean;
152
+ loc: InternalSourceLocation | null | undefined;
153
+ env: EnvironmentRef;
154
+ packageConditions?: number;
155
+ customPackageConditions?: Array<string>;
156
+ meta: Meta;
157
+ resolverMeta?: Meta | null | undefined;
158
+ resolverPriority?: (typeof Priority)[keyof typeof Priority];
159
+ target: Target | null | undefined;
160
+ sourceAssetId: string | null | undefined;
161
+ sourcePath: ProjectPath | null | undefined;
162
+ sourceAssetType?: string | null | undefined;
163
+ resolveFrom: ProjectPath | null | undefined;
164
+ range: SemverRange | null | undefined;
165
+ symbols:
166
+ | Map<
167
+ Symbol,
168
+ {
169
+ local: Symbol;
170
+ loc: InternalSourceLocation | null | undefined;
171
+ isWeak: boolean;
172
+ meta?: Meta | null | undefined;
173
+ }
174
+ >
175
+ | null
176
+ | undefined;
177
+ pipeline?: string | null | undefined;
178
+ };
179
+
180
+ export const BundleBehavior = {
181
+ inline: 0,
182
+ isolated: 1,
183
+ inlineIsolated: 2,
184
+ } as const;
185
+
186
+ // @ts-expect-error TS2322
187
+ export const BundleBehaviorNames: Array<keyof typeof BundleBehavior> =
188
+ Object.keys(BundleBehavior);
189
+
190
+ export type Asset = {
191
+ id: ContentKey;
192
+ committed: boolean;
193
+ filePath: ProjectPath;
194
+ query: string | null | undefined;
195
+ type: string;
196
+ dependencies: Map<string, Dependency>;
197
+ bundleBehavior:
198
+ | (typeof BundleBehavior)[keyof typeof BundleBehavior]
199
+ | null
200
+ | undefined;
201
+ isBundleSplittable: boolean;
202
+ isSource: boolean;
203
+ env: EnvironmentRef;
204
+ meta: Meta;
205
+ stats: Stats;
206
+ contentKey: string | null | undefined;
207
+ mapKey: string | null | undefined;
208
+ outputHash: string | null | undefined;
209
+ pipeline: string | null | undefined;
210
+ astKey: string | null | undefined;
211
+ astGenerator: ASTGenerator | null | undefined;
212
+ symbols:
213
+ | Map<
214
+ Symbol,
215
+ {
216
+ local: Symbol;
217
+ loc: InternalSourceLocation | null | undefined;
218
+ meta?: Meta | null | undefined;
219
+ }
220
+ >
221
+ | null
222
+ | undefined;
223
+ sideEffects: boolean;
224
+ uniqueKey: string | null | undefined;
225
+ configPath?: ProjectPath;
226
+ plugin: PackageName | null | undefined;
227
+ configKeyPath?: string;
228
+ isLargeBlob?: boolean;
229
+ };
230
+
231
+ export type InternalGlob = ProjectPath;
232
+
233
+ export type InternalFile = {
234
+ readonly filePath: ProjectPath;
235
+ readonly hash?: string;
236
+ };
237
+
238
+ export type FileInvalidation = {
239
+ type: 'file';
240
+ filePath: ProjectPath;
241
+ };
242
+
243
+ export type EnvInvalidation = {
244
+ type: 'env';
245
+ key: string;
246
+ };
247
+
248
+ export type OptionInvalidation = {
249
+ type: 'option';
250
+ key: string;
251
+ };
252
+
253
+ export type RequestInvalidation =
254
+ | FileInvalidation
255
+ | EnvInvalidation
256
+ | OptionInvalidation;
257
+
258
+ export type InternalFileInvalidation = {
259
+ filePath: ProjectPath;
260
+ };
261
+
262
+ export type InternalGlobInvalidation = {
263
+ glob: InternalGlob;
264
+ };
265
+
266
+ export type InternalFileAboveInvalidation = {
267
+ fileName: string;
268
+ aboveFilePath: ProjectPath;
269
+ };
270
+
271
+ export type InternalFileCreateInvalidation =
272
+ | InternalFileInvalidation
273
+ | InternalGlobInvalidation
274
+ | InternalFileAboveInvalidation;
275
+
276
+ export type Invalidations = {
277
+ invalidateOnFileChange: Set<ProjectPath>;
278
+ invalidateOnFileCreate: Array<InternalFileCreateInvalidation>;
279
+ invalidateOnEnvChange: Set<string>;
280
+ invalidateOnOptionChange: Set<string>;
281
+ invalidateOnStartup: boolean;
282
+ invalidateOnBuild: boolean;
283
+ };
284
+
285
+ export type DevDepRequestRef = {
286
+ type: 'ref';
287
+ specifier: DependencySpecifier;
288
+ resolveFrom: ProjectPath;
289
+ hash: string;
290
+ };
291
+
292
+ export type DevDepRequest = {
293
+ specifier: DependencySpecifier;
294
+ resolveFrom: ProjectPath;
295
+ hash: string;
296
+ invalidateOnFileCreate: Array<InternalFileCreateInvalidation>;
297
+ invalidateOnFileChange: Set<ProjectPath>;
298
+ invalidateOnStartup: boolean;
299
+ additionalInvalidations?: Array<{
300
+ specifier: DependencySpecifier;
301
+ resolveFrom: ProjectPath;
302
+ range?: SemverRange | null | undefined;
303
+ }>;
304
+ };
305
+
306
+ declare type GlobPattern = string;
307
+
308
+ export type AtlaspackOptions = {
309
+ entries: Array<ProjectPath>;
310
+ config?: DependencySpecifier;
311
+ defaultConfig?: DependencySpecifier;
312
+ env: EnvMap;
313
+ parcelVersion: string;
314
+ targets:
315
+ | Array<string>
316
+ | {
317
+ readonly [key: string]: TargetDescriptor;
318
+ }
319
+ | null
320
+ | undefined;
321
+ shouldDisableCache: boolean;
322
+ cacheDir: FilePath;
323
+ watchDir: FilePath;
324
+ watchIgnore?: Array<FilePath | GlobPattern>;
325
+ watchBackend?: BackendType;
326
+ mode: BuildMode;
327
+ hmrOptions: HMROptions | null | undefined;
328
+ shouldContentHash: boolean;
329
+ serveOptions: ServerOptions | false;
330
+ shouldBuildLazily: boolean;
331
+ lazyIncludes: RegExp[];
332
+ lazyExcludes: RegExp[];
333
+ shouldBundleIncrementally: boolean;
334
+ shouldAutoInstall: boolean;
335
+ logLevel: LogLevel;
336
+ projectRoot: FilePath;
337
+ shouldProfile: boolean;
338
+ shouldTrace: boolean;
339
+ shouldPatchConsole: boolean;
340
+ detailedReport?: DetailedReportOptions | null | undefined;
341
+ unstableFileInvalidations?: Array<Event>;
342
+ inputFS: FileSystem;
343
+ outputFS: FileSystem;
344
+ cache: Cache;
345
+ packageManager: PackageManager;
346
+ additionalReporters: Array<{
347
+ packageName: DependencySpecifier;
348
+ resolveFrom: ProjectPath;
349
+ }>;
350
+ instanceId: string;
351
+ readonly defaultTargetOptions: {
352
+ readonly shouldOptimize: boolean;
353
+ readonly shouldScopeHoist?: boolean;
354
+ readonly sourceMaps: boolean;
355
+ readonly publicUrl: string;
356
+ readonly distDir?: ProjectPath;
357
+ readonly engines?: Engines;
358
+ readonly outputFormat?: OutputFormat;
359
+ readonly isLibrary?: boolean;
360
+ };
361
+ readonly featureFlags: FeatureFlags;
362
+ };
363
+ export type ParcelOptions = AtlaspackOptions;
364
+
365
+ export type AssetNode = {
366
+ id: ContentKey;
367
+ readonly type: 'asset';
368
+ value: Asset;
369
+ usedSymbols: Set<Symbol>;
370
+ hasDeferred?: boolean;
371
+ usedSymbolsDownDirty: boolean;
372
+ usedSymbolsUpDirty: boolean;
373
+ requested?: boolean;
374
+ };
375
+
376
+ export type DependencyNode = {
377
+ id: ContentKey;
378
+ type: 'dependency';
379
+ value: Dependency;
380
+ complete?: boolean;
381
+ correspondingRequest?: string;
382
+ deferred: boolean;
383
+ /** dependency was deferred (= no used symbols (in immediate parents) & side-effect free) */
384
+ hasDeferred?: boolean;
385
+ usedSymbolsDown: Set<Symbol>;
386
+ /**
387
+ * a requested symbol -> either
388
+ * - if ambiguous (e.g. dependency to asset group with both CSS modules and JS asset): undefined
389
+ * - if external: null
390
+ * - the asset it resolved to, and the potentially renamed export name
391
+ */
392
+ usedSymbolsUp: Map<
393
+ Symbol,
394
+ | {
395
+ asset: ContentKey;
396
+ symbol: Symbol | null | undefined;
397
+ }
398
+ | undefined
399
+ | null
400
+ >;
401
+ /*
402
+ * For the "down" pass, the resolutionAsset needs to be updated.
403
+ * This is set when the AssetGraphBuilder adds/removes/updates nodes.
404
+ */
405
+ usedSymbolsDownDirty: boolean;
406
+ /**
407
+ * In the down pass, `usedSymbolsDown` changed. This needs to be propagated to the resolutionAsset
408
+ * in the up pass.
409
+ */
410
+ usedSymbolsUpDirtyDown: boolean;
411
+ /**
412
+ * In the up pass, `usedSymbolsUp` changed. This needs to be propagated to the sourceAsset in the
413
+ * up pass.
414
+ */
415
+ usedSymbolsUpDirtyUp: boolean;
416
+ /** dependency was excluded (= no used symbols (globally) & side-effect free) */
417
+ excluded: boolean;
418
+ };
419
+
420
+ export type RootNode = {
421
+ id: ContentKey;
422
+ readonly type: 'root';
423
+ value: string | null;
424
+ };
425
+
426
+ export type AssetRequestInput = {
427
+ name?: string; // AssetGraph name, needed so that different graphs can isolated requests since the results are not stored;
428
+ filePath: ProjectPath;
429
+ env: EnvironmentRef;
430
+ isSource?: boolean;
431
+ canDefer?: boolean;
432
+ sideEffects?: boolean;
433
+ runtimeAssetRequiringExecutionOnLoad?: boolean;
434
+ code?: string;
435
+ pipeline?: string | null | undefined;
436
+ optionsRef: SharedReference;
437
+ isURL?: boolean;
438
+ query?: string | null | undefined;
439
+ isSingleChangeRebuild?: boolean;
440
+ };
441
+
442
+ export type AssetRequestResult = Array<Asset>;
443
+
444
+ // Asset group nodes are essentially used as placeholders for the results of an asset request
445
+ export type AssetGroup = Partial<
446
+ Diff<
447
+ AssetRequestInput,
448
+ {
449
+ optionsRef: SharedReference;
450
+ }
451
+ >
452
+ >;
453
+ export type AssetGroupNode = {
454
+ id: ContentKey;
455
+ readonly type: 'asset_group';
456
+ value: AssetGroup;
457
+ correspondingRequest?: string;
458
+ /** this node was deferred (= no used symbols (in immediate parents) & side-effect free) */
459
+ deferred?: boolean;
460
+ hasDeferred?: boolean;
461
+ usedSymbolsDownDirty: boolean;
462
+ };
463
+
464
+ export type TransformationRequest = AssetGroup & {
465
+ invalidateReason: number;
466
+ devDeps: Map<PackageName, string>;
467
+ invalidDevDeps: Array<{
468
+ specifier: DependencySpecifier;
469
+ resolveFrom: ProjectPath;
470
+ }>;
471
+ };
472
+
473
+ export type DepPathRequestNode = {
474
+ id: ContentKey;
475
+ readonly type: 'dep_path_request';
476
+ value: Dependency;
477
+ };
478
+
479
+ export type AssetRequestNode = {
480
+ id: ContentKey;
481
+ readonly type: 'asset_request';
482
+ value: AssetRequestInput;
483
+ };
484
+
485
+ export type EntrySpecifierNode = {
486
+ id: ContentKey;
487
+ readonly type: 'entry_specifier';
488
+ value: ProjectPath;
489
+ correspondingRequest?: string;
490
+ };
491
+
492
+ export type Entry = {
493
+ filePath: ProjectPath;
494
+ packagePath: ProjectPath;
495
+ target?: string;
496
+ loc?: InternalSourceLocation | null | undefined;
497
+ };
498
+
499
+ export type EntryFileNode = {
500
+ id: ContentKey;
501
+ readonly type: 'entry_file';
502
+ value: Entry;
503
+ correspondingRequest?: string;
504
+ };
505
+
506
+ export type AssetGraphNode =
507
+ | AssetGroupNode
508
+ | AssetNode
509
+ | DependencyNode
510
+ | EntrySpecifierNode
511
+ | EntryFileNode
512
+ | RootNode;
513
+
514
+ export type BundleGraphNode =
515
+ | AssetNode
516
+ | DependencyNode
517
+ | EntrySpecifierNode
518
+ | EntryFileNode
519
+ | RootNode
520
+ | BundleGroupNode
521
+ | BundleNode;
522
+
523
+ export type InternalDevDepOptions = {
524
+ specifier: DependencySpecifier;
525
+ resolveFrom: ProjectPath;
526
+ range?: SemverRange | null | undefined;
527
+ additionalInvalidations?: Array<{
528
+ specifier: DependencySpecifier;
529
+ resolveFrom: ProjectPath;
530
+ range?: SemverRange | null | undefined;
531
+ }>;
532
+ };
533
+
534
+ export type Config = {
535
+ id: string;
536
+ isSource: boolean;
537
+ searchPath: ProjectPath;
538
+ env: EnvironmentRef;
539
+ cacheKey: string | null | undefined;
540
+ result: ConfigResult;
541
+ invalidateOnFileChange: Set<ProjectPath>;
542
+ invalidateOnConfigKeyChange: Array<{
543
+ filePath: ProjectPath;
544
+ configKey: string[];
545
+ }>;
546
+ invalidateOnFileCreate: Array<InternalFileCreateInvalidation>;
547
+ invalidateOnEnvChange: Set<string>;
548
+ invalidateOnOptionChange: Set<string>;
549
+ devDeps: Array<InternalDevDepOptions>;
550
+ invalidateOnStartup: boolean;
551
+ invalidateOnBuild: boolean;
552
+ };
553
+
554
+ export type EntryRequest = {
555
+ specifier: DependencySpecifier;
556
+ result?: ProjectPath;
557
+ };
558
+
559
+ export type EntryRequestNode = {
560
+ id: ContentKey;
561
+ readonly type: 'entry_request';
562
+ value: string;
563
+ };
564
+
565
+ export type TargetRequestNode = {
566
+ id: ContentKey;
567
+ readonly type: 'target_request';
568
+ value: ProjectPath;
569
+ };
570
+
571
+ export type CacheEntry = {
572
+ filePath: ProjectPath;
573
+ env: Environment;
574
+ hash: string;
575
+ assets: Array<Asset>;
576
+ // Initial assets, pre-post processing
577
+ initialAssets: Array<Asset> | null | undefined;
578
+ };
579
+
580
+ export type Bundle = {
581
+ id: ContentKey;
582
+ publicId: string | null | undefined;
583
+ hashReference: string;
584
+ type: string;
585
+ env: EnvironmentRef;
586
+ entryAssetIds: Array<ContentKey>;
587
+ mainEntryId: ContentKey | null | undefined;
588
+ needsStableName: boolean | null | undefined;
589
+ bundleBehavior:
590
+ | (typeof BundleBehavior)[keyof typeof BundleBehavior]
591
+ | null
592
+ | undefined;
593
+ isSplittable: boolean | null | undefined;
594
+ isPlaceholder?: boolean;
595
+ target: Target;
596
+ name: string | null | undefined;
597
+ displayName: string | null | undefined;
598
+ pipeline: string | null | undefined;
599
+ manualSharedBundle?: string | null | undefined;
600
+ conditions?: Map<string, string>;
601
+ };
602
+
603
+ export type BundleNode = {
604
+ id: ContentKey;
605
+ readonly type: 'bundle';
606
+ value: Bundle;
607
+ };
608
+
609
+ export type BundleGroup = {
610
+ target: Target;
611
+ entryAssetId: string;
612
+ };
613
+
614
+ export type BundleGroupNode = {
615
+ id: ContentKey;
616
+ readonly type: 'bundle_group';
617
+ value: BundleGroup;
618
+ };
619
+
620
+ export type PackagedBundleInfo = {
621
+ filePath: ProjectPath;
622
+ bundleId: ContentKey;
623
+ type: string;
624
+ stats: Stats;
625
+ };
626
+
627
+ export type TransformationOpts = {
628
+ request: AssetGroup;
629
+ optionsRef: SharedReference;
630
+ configCachePath: string;
631
+ };
632
+
633
+ export type ValidationOpts = {
634
+ requests: AssetGroup[];
635
+ optionsRef: SharedReference;
636
+ configCachePath: string;
637
+ };
638
+
639
+ export type ReportFn = (event: ReporterEvent) => undefined | Promise<undefined>;
640
+
641
+ export type Condition = {
642
+ publicId: string;
643
+ assets: Set<Asset>;
644
+ key: string;
645
+ ifTrueDependency: Dependency;
646
+ ifFalseDependency: Dependency;
647
+ };