@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,15 +1,14 @@
1
- // @flow
2
-
3
1
  import type {ContentKey, NodeId} from '@atlaspack/graph';
4
2
  import type {Meta, Symbol} from '@atlaspack/types';
5
3
  import type {Diagnostic} from '@atlaspack/diagnostic';
4
+ import {getFeatureFlag} from '@atlaspack/feature-flags';
6
5
  import type {
7
6
  AssetNode,
8
7
  DependencyNode,
9
8
  InternalSourceLocation,
10
9
  AtlaspackOptions,
11
10
  } from './types';
12
- import {type default as AssetGraph} from './AssetGraph';
11
+ import {default as AssetGraph} from './AssetGraph';
13
12
 
14
13
  import invariant from 'assert';
15
14
  import nullthrows from 'nullthrows';
@@ -17,7 +16,7 @@ import {setEqual} from '@atlaspack/utils';
17
16
  import logger from '@atlaspack/logger';
18
17
  import {md, convertSourceLocationToHighlight} from '@atlaspack/diagnostic';
19
18
  import {instrument} from '@atlaspack/logger';
20
- import {BundleBehavior, Priority} from './types';
19
+ import {BundleBehavior, Priority, SpecifierType} from './types';
21
20
  import {fromProjectPathRelative, fromProjectPath} from './projectPath';
22
21
 
23
22
  export function propagateSymbols({
@@ -26,13 +25,13 @@ export function propagateSymbols({
26
25
  changedAssetsPropagation,
27
26
  assetGroupsWithRemovedParents,
28
27
  previousErrors,
29
- }: {|
30
- options: AtlaspackOptions,
31
- assetGraph: AssetGraph,
32
- changedAssetsPropagation: Set<string>,
33
- assetGroupsWithRemovedParents: Set<NodeId>,
34
- previousErrors?: ?Map<NodeId, Array<Diagnostic>>,
35
- |}): Map<NodeId, Array<Diagnostic>> {
28
+ }: {
29
+ options: AtlaspackOptions;
30
+ assetGraph: AssetGraph;
31
+ changedAssetsPropagation: Set<string>;
32
+ assetGroupsWithRemovedParents: Set<NodeId>;
33
+ previousErrors?: Map<NodeId, Array<Diagnostic>> | null | undefined;
34
+ }): Map<NodeId, Array<Diagnostic>> {
36
35
  return instrument('propagateSymbols', () => {
37
36
  let changedAssets = new Set(
38
37
  [...changedAssetsPropagation].map((id) =>
@@ -62,11 +61,25 @@ export function propagateSymbols({
62
61
  changedAssets,
63
62
  assetGroupsWithRemovedParents,
64
63
  (assetNode, incomingDeps, outgoingDeps) => {
64
+ if (
65
+ assetNode.value.meta.emptyFileStarReexport &&
66
+ incomingDeps.every((d) => d.value.specifierType === SpecifierType.esm)
67
+ ) {
68
+ assetNode.value.symbols?.delete('*');
69
+ }
70
+
65
71
  // exportSymbol -> identifier
66
- let assetSymbols: ?$ReadOnlyMap<
67
- Symbol,
68
- {|local: Symbol, loc: ?InternalSourceLocation, meta?: ?Meta|},
69
- > = assetNode.value.symbols;
72
+ let assetSymbols:
73
+ | ReadonlyMap<
74
+ Symbol,
75
+ {
76
+ local: Symbol;
77
+ loc: InternalSourceLocation | null | undefined;
78
+ meta?: Meta | null | undefined;
79
+ }
80
+ >
81
+ | null
82
+ | undefined = assetNode.value.symbols;
70
83
  // identifier -> exportSymbol
71
84
  let assetSymbolsInverse;
72
85
  if (assetSymbols) {
@@ -143,8 +156,15 @@ export function propagateSymbols({
143
156
 
144
157
  // Incomding dependency with cleared symbols, add everything
145
158
  if (addAll) {
146
- assetSymbols?.forEach((_, exportSymbol) =>
147
- assetNode.usedSymbols.add(exportSymbol),
159
+ assetSymbols?.forEach(
160
+ (
161
+ _: {
162
+ loc: InternalSourceLocation | null | undefined;
163
+ local: Symbol;
164
+ meta?: Meta | null | undefined;
165
+ },
166
+ exportSymbol: Symbol,
167
+ ) => assetNode.usedSymbols.add(exportSymbol),
148
168
  );
149
169
  }
150
170
 
@@ -153,6 +173,7 @@ export function propagateSymbols({
153
173
  for (let dep of outgoingDeps) {
154
174
  let depUsedSymbolsDownOld = dep.usedSymbolsDown;
155
175
  let depUsedSymbolsDown = new Set();
176
+ // @ts-expect-error TS2322
156
177
  dep.usedSymbolsDown = depUsedSymbolsDown;
157
178
  if (
158
179
  assetNode.value.sideEffects ||
@@ -233,10 +254,10 @@ export function propagateSymbols({
233
254
  );
234
255
 
235
256
  const logFallbackNamespaceInsertion = (
236
- assetNode,
257
+ assetNode: AssetNode,
237
258
  symbol: Symbol,
238
- depNode1,
239
- depNode2,
259
+ depNode1: DependencyNode,
260
+ depNode2: DependencyNode,
240
261
  ) => {
241
262
  if (options.logLevel === 'verbose') {
242
263
  logger.warn({
@@ -260,10 +281,17 @@ export function propagateSymbols({
260
281
  changedDepsUsedSymbolsUpDirtyDown,
261
282
  previousErrors,
262
283
  (assetNode, incomingDeps, outgoingDeps) => {
263
- let assetSymbols: ?$ReadOnlyMap<
264
- Symbol,
265
- {|local: Symbol, loc: ?InternalSourceLocation, meta?: ?Meta|},
266
- > = assetNode.value.symbols;
284
+ let assetSymbols:
285
+ | ReadonlyMap<
286
+ Symbol,
287
+ {
288
+ local: Symbol;
289
+ loc: InternalSourceLocation | null | undefined;
290
+ meta?: Meta | null | undefined;
291
+ }
292
+ >
293
+ | null
294
+ | undefined = assetNode.value.symbols;
267
295
 
268
296
  let assetSymbolsInverse = null;
269
297
  if (assetSymbols) {
@@ -281,7 +309,12 @@ export function propagateSymbols({
281
309
  // the symbols that are reexported (not used in `asset`) -> asset they resolved to
282
310
  let reexportedSymbols = new Map<
283
311
  Symbol,
284
- ?{|asset: ContentKey, symbol: ?Symbol|},
312
+ | {
313
+ asset: ContentKey;
314
+ symbol: Symbol | null | undefined;
315
+ }
316
+ | null
317
+ | undefined
285
318
  >();
286
319
  // the symbols that are reexported (not used in `asset`) -> the corresponding outgoingDep(s)
287
320
  // To generate the diagnostic when there are multiple dependencies with non-statically
@@ -367,7 +400,36 @@ export function propagateSymbols({
367
400
 
368
401
  let errors: Array<Diagnostic> = [];
369
402
 
370
- function usedSymbolsUpAmbiguous(old, current, s, value) {
403
+ function usedSymbolsUpAmbiguous(
404
+ old: Map<
405
+ Symbol,
406
+ | {
407
+ asset: ContentKey;
408
+ symbol: Symbol | null | undefined;
409
+ }
410
+ | null
411
+ | undefined
412
+ >,
413
+ current: Map<
414
+ Symbol,
415
+ | {
416
+ asset: ContentKey;
417
+ symbol: Symbol | null | undefined;
418
+ }
419
+ | null
420
+ | undefined
421
+ >,
422
+ s: Symbol,
423
+ value:
424
+ | {
425
+ asset: ContentKey;
426
+ symbol: Symbol;
427
+ }
428
+ | {
429
+ asset: ContentKey;
430
+ symbol: Symbol | null | undefined;
431
+ },
432
+ ) {
371
433
  if (old.has(s)) {
372
434
  let valueOld = old.get(s);
373
435
  if (
@@ -439,6 +501,7 @@ export function propagateSymbols({
439
501
 
440
502
  errors.push({
441
503
  message: md`${fromProjectPathRelative(
504
+ // @ts-expect-error TS2345
442
505
  resolution.value.filePath,
443
506
  )} does not export '${s}'`,
444
507
  origin: '@atlaspack/core',
@@ -470,20 +533,22 @@ export function propagateSymbols({
470
533
  incomingDep.value.symbols != null &&
471
534
  incomingDep.usedSymbolsUp.size === 0
472
535
  ) {
473
- let assetGroups = assetGraph.getNodeIdsConnectedFrom(
536
+ let connectedNodeIds = assetGraph.getNodeIdsConnectedFrom(
474
537
  assetGraph.getNodeIdByContentKey(incomingDep.id),
475
538
  );
476
- if (assetGroups.length === 1) {
477
- let [assetGroupId] = assetGroups;
478
- let assetGroup = nullthrows(assetGraph.getNode(assetGroupId));
479
- if (
480
- assetGroup.type === 'asset_group' &&
481
- assetGroup.value.sideEffects === false
482
- ) {
483
- incomingDep.excluded = true;
484
- }
485
- } else {
486
- invariant(assetGroups.length === 0);
539
+
540
+ let sideEffectFree = connectedNodeIds.every((nodeId) => {
541
+ let connectedNode = nullthrows(assetGraph.getNode(nodeId));
542
+ // Dependencies should only connect to asset_groups or assets
543
+ invariant(
544
+ connectedNode.type === 'asset' ||
545
+ connectedNode.type === 'asset_group',
546
+ );
547
+ return connectedNode.value.sideEffects === false;
548
+ });
549
+
550
+ if (sideEffectFree) {
551
+ incomingDep.excluded = true;
487
552
  }
488
553
  }
489
554
  }
@@ -496,7 +561,10 @@ export function propagateSymbols({
496
561
  // See https://github.com/parcel-bundler/parcel/pull/8212
497
562
  for (let dep of changedDeps) {
498
563
  dep.usedSymbolsUp = new Map(
499
- [...dep.usedSymbolsUp].sort(([a], [b]) => a.localeCompare(b)),
564
+ // @ts-expect-error TS2345
565
+ [...dep.usedSymbolsUp].sort(([a]: [any], [b]: [any]) =>
566
+ a.localeCompare(b),
567
+ ),
500
568
  );
501
569
  }
502
570
 
@@ -510,8 +578,8 @@ function propagateSymbolsDown(
510
578
  assetGroupsWithRemovedParents: Set<NodeId>,
511
579
  visit: (
512
580
  assetNode: AssetNode,
513
- incoming: $ReadOnlyArray<DependencyNode>,
514
- outgoing: $ReadOnlyArray<DependencyNode>,
581
+ incoming: ReadonlyArray<DependencyNode>,
582
+ outgoing: ReadonlyArray<DependencyNode>,
515
583
  ) => void,
516
584
  ) {
517
585
  if (changedAssets.size === 0 && assetGroupsWithRemovedParents.size === 0) {
@@ -597,11 +665,11 @@ function propagateSymbolsUp(
597
665
  assetGraph: AssetGraph,
598
666
  changedAssets: Set<NodeId>,
599
667
  changedDepsUsedSymbolsUpDirtyDown: Set<ContentKey>,
600
- previousErrors: ?Map<NodeId, Array<Diagnostic>>,
668
+ previousErrors: Map<NodeId, Array<Diagnostic>> | null | undefined,
601
669
  visit: (
602
670
  assetNode: AssetNode,
603
- incoming: $ReadOnlyArray<DependencyNode>,
604
- outgoing: $ReadOnlyArray<DependencyNode>,
671
+ incoming: ReadonlyArray<DependencyNode>,
672
+ outgoing: ReadonlyArray<DependencyNode>,
605
673
  ) => Array<Diagnostic>,
606
674
  ): Map<NodeId, Array<Diagnostic>> {
607
675
  // For graphs in general (so with cyclic dependencies), some nodes will have to be revisited. So
@@ -615,7 +683,8 @@ function propagateSymbolsUp(
615
683
 
616
684
  let errors: Map<NodeId, Array<Diagnostic>> = previousErrors
617
685
  ? // Some nodes might have been removed since the last build
618
- new Map([...previousErrors].filter(([n]) => assetGraph.hasNode(n)))
686
+ // @ts-expect-error TS2769
687
+ new Map([...previousErrors].filter(([n]: [any]) => assetGraph.hasNode(n)))
619
688
  : new Map();
620
689
 
621
690
  let changedDepsUsedSymbolsUpDirtyDownAssets = new Set([
@@ -633,6 +702,7 @@ function propagateSymbolsUp(
633
702
  assetGraph.nodes.length * (1 / 6) * 0.5 <
634
703
  changedDepsUsedSymbolsUpDirtyDownAssets.size;
635
704
 
705
+ // @ts-expect-error TS7034
636
706
  let dirtyDeps;
637
707
  if (runFullPass) {
638
708
  dirtyDeps = new Set<NodeId>();
@@ -641,7 +711,7 @@ function propagateSymbolsUp(
641
711
  'A root node is required to traverse',
642
712
  );
643
713
 
644
- const nodeVisitor = (nodeId) => {
714
+ const nodeVisitor = (nodeId: NodeId) => {
645
715
  let node = nullthrows(assetGraph.getNode(nodeId));
646
716
 
647
717
  if (node.type === 'asset') {
@@ -672,13 +742,16 @@ function propagateSymbolsUp(
672
742
  } else {
673
743
  if (node.type === 'dependency') {
674
744
  if (node.usedSymbolsUpDirtyUp) {
745
+ // @ts-expect-error TS7005
675
746
  dirtyDeps.add(nodeId);
676
747
  } else {
748
+ // @ts-expect-error TS7005
677
749
  dirtyDeps.delete(nodeId);
678
750
  }
679
751
  }
680
752
  }
681
753
  };
754
+ // @ts-expect-error TS2345
682
755
  assetGraph.postOrderDfsFast(nodeVisitor, rootNodeId);
683
756
  }
684
757
 
@@ -721,6 +794,7 @@ function propagateSymbolsUp(
721
794
  } else {
722
795
  let connectedNodes = assetGraph.getNodeIdsConnectedTo(queuedNodeId);
723
796
  if (connectedNodes.length > 0) {
797
+ // @ts-expect-error TS2556
724
798
  queue.add(...connectedNodes);
725
799
  }
726
800
  }
@@ -735,22 +809,46 @@ function getDependencyResolution(
735
809
  ): Array<NodeId> {
736
810
  let depNodeId = graph.getNodeIdByContentKey(depId);
737
811
  let connected = graph.getNodeIdsConnectedFrom(depNodeId);
738
- invariant(connected.length <= 1);
739
- let child = connected[0];
740
- if (child) {
812
+
813
+ let resolvedNodeIds: Array<NodeId> = [];
814
+
815
+ // If any of the resolved nodes is an asset_group, we need to resolve its
816
+ // assets here.
817
+ for (let child of connected) {
818
+ if (!child) {
819
+ continue;
820
+ }
821
+
741
822
  let childNode = nullthrows(graph.getNode(child));
742
823
  if (childNode.type === 'asset_group') {
743
- return graph.getNodeIdsConnectedFrom(child);
824
+ resolvedNodeIds.push(...graph.getNodeIdsConnectedFrom(child));
744
825
  } else {
745
- return [child];
826
+ resolvedNodeIds.push(child);
746
827
  }
747
828
  }
748
- return [];
829
+
830
+ return resolvedNodeIds;
749
831
  }
750
832
 
751
833
  function equalMap<K>(
752
- a: $ReadOnlyMap<K, ?{|asset: ContentKey, symbol: ?Symbol|}>,
753
- b: $ReadOnlyMap<K, ?{|asset: ContentKey, symbol: ?Symbol|}>,
834
+ a: ReadonlyMap<
835
+ K,
836
+ | {
837
+ asset: ContentKey;
838
+ symbol: Symbol | null | undefined;
839
+ }
840
+ | null
841
+ | undefined
842
+ >,
843
+ b: ReadonlyMap<
844
+ K,
845
+ | {
846
+ asset: ContentKey;
847
+ symbol: Symbol | null | undefined;
848
+ }
849
+ | null
850
+ | undefined
851
+ >,
754
852
  ) {
755
853
  if (a.size !== b.size) return false;
756
854
  for (let [k, v] of a) {
@@ -767,14 +865,20 @@ function setPop<T>(set: Set<T>): T {
767
865
  return v;
768
866
  }
769
867
 
770
- function outgoingDependencyNodesFromAsset(assetGraph, assetNode) {
868
+ function outgoingDependencyNodesFromAsset(
869
+ assetGraph: AssetGraph,
870
+ assetNode: NodeId,
871
+ ) {
771
872
  return dependencyNodesFromIds(
772
873
  assetGraph,
773
874
  assetGraph.getNodeIdsConnectedFrom(assetNode),
774
875
  );
775
876
  }
776
877
 
777
- function dependencyNodesFromIds(assetGraph, dependencyIds) {
878
+ function dependencyNodesFromIds(
879
+ assetGraph: AssetGraph,
880
+ dependencyIds: Array<NodeId>,
881
+ ) {
778
882
  return dependencyIds.map((depNodeId) => {
779
883
  let depNode = nullthrows(assetGraph.getNode(depNodeId));
780
884
  invariant(depNode.type === 'dependency');
@@ -782,7 +886,11 @@ function dependencyNodesFromIds(assetGraph, dependencyIds) {
782
886
  });
783
887
  }
784
888
 
785
- function incomingDependencyNodesFromAsset(assetGraph, assetNodeValue) {
889
+ function incomingDependencyNodesFromAsset(
890
+ assetGraph: AssetGraph,
891
+ // @ts-expect-error TS2552
892
+ assetNodeValue: Asset,
893
+ ) {
786
894
  return assetGraph.getIncomingDependencies(assetNodeValue).map((d) => {
787
895
  let n = assetGraph.getNodeByContentKey(d.id);
788
896
  invariant(n && n.type === 'dependency');
@@ -1,4 +1,3 @@
1
- // @flow strict-local
2
1
  import type {SchemaEntity, SchemaObject} from '@atlaspack/utils';
3
2
 
4
3
  export const ENGINES_SCHEMA: SchemaEntity = {
@@ -36,6 +35,7 @@ export const PACKAGE_DESCRIPTOR_SCHEMA: SchemaObject = {
36
35
  'electron-main',
37
36
  'electron-renderer',
38
37
  'service-worker',
38
+ 'tesseract',
39
39
  ],
40
40
  },
41
41
  includeNodeModules: {
@@ -115,6 +115,12 @@ export const PACKAGE_DESCRIPTOR_SCHEMA: SchemaObject = {
115
115
  __unstable_singleFileOutput: {
116
116
  type: 'boolean',
117
117
  },
118
+ env: {
119
+ type: 'object',
120
+ additionalProperties: {
121
+ type: 'string',
122
+ },
123
+ },
118
124
  },
119
125
  additionalProperties: false,
120
126
  };