@atlaspack/core 2.16.2-canary.48 → 2.16.2-canary.481

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 (380) hide show
  1. package/CHANGELOG.md +1324 -0
  2. package/dist/AssetGraph.js +523 -0
  3. package/dist/Atlaspack.js +701 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1906 -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 +470 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1297 -0
  16. package/dist/SymbolPropagation.js +624 -0
  17. package/dist/TargetDescriptor.schema.js +146 -0
  18. package/dist/Transformation.js +514 -0
  19. package/dist/UncommittedAsset.js +310 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +384 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +83 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +114 -0
  25. package/dist/atlaspack-v3/fs.js +53 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +98 -0
  30. package/dist/atlaspack-v3/worker/compat/dependency.js +43 -0
  31. package/dist/atlaspack-v3/worker/compat/environment.js +57 -0
  32. package/dist/atlaspack-v3/worker/compat/index.js +24 -0
  33. package/dist/atlaspack-v3/worker/compat/mutable-asset.js +152 -0
  34. package/dist/atlaspack-v3/worker/compat/plugin-config.js +64 -0
  35. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  37. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  38. package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
  39. package/dist/atlaspack-v3/worker/worker.js +398 -0
  40. package/dist/constants.js +17 -0
  41. package/dist/dumpGraphToGraphViz.js +281 -0
  42. package/dist/index.js +62 -0
  43. package/dist/loadAtlaspackPlugin.js +128 -0
  44. package/dist/loadDotEnv.js +41 -0
  45. package/dist/projectPath.js +83 -0
  46. package/dist/public/Asset.js +279 -0
  47. package/dist/public/Bundle.js +224 -0
  48. package/dist/public/BundleGraph.js +371 -0
  49. package/dist/public/BundleGroup.js +53 -0
  50. package/dist/public/Config.js +286 -0
  51. package/dist/public/Dependency.js +138 -0
  52. package/dist/public/Environment.js +278 -0
  53. package/dist/public/MutableBundleGraph.js +277 -0
  54. package/dist/public/PluginOptions.js +80 -0
  55. package/dist/public/Symbols.js +248 -0
  56. package/dist/public/Target.js +69 -0
  57. package/dist/registerCoreWithSerializer.js +38 -0
  58. package/dist/requests/AssetGraphRequest.js +430 -0
  59. package/dist/requests/AssetGraphRequestRust.js +471 -0
  60. package/dist/requests/AssetRequest.js +130 -0
  61. package/dist/requests/AtlaspackBuildRequest.js +98 -0
  62. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  63. package/dist/requests/BundleGraphRequest.js +381 -0
  64. package/dist/requests/BundleGraphRequestRust.js +324 -0
  65. package/dist/requests/BundleGraphRequestUtils.js +262 -0
  66. package/dist/requests/ConfigRequest.js +246 -0
  67. package/dist/requests/DevDepRequest.js +204 -0
  68. package/dist/requests/EntryRequest.js +314 -0
  69. package/dist/requests/PackageRequest.js +89 -0
  70. package/dist/requests/PathRequest.js +349 -0
  71. package/dist/requests/TargetRequest.js +1316 -0
  72. package/dist/requests/ValidationRequest.js +49 -0
  73. package/dist/requests/WriteBundleRequest.js +522 -0
  74. package/dist/requests/WriteBundlesRequest.js +190 -0
  75. package/dist/requests/asset-graph-diff.js +128 -0
  76. package/dist/requests/asset-graph-dot.js +131 -0
  77. package/dist/resolveOptions.js +267 -0
  78. package/dist/rustWorkerThreadDylibHack.js +19 -0
  79. package/dist/serializerCore.browser.js +43 -0
  80. package/dist/summarizeRequest.js +39 -0
  81. package/dist/types.js +31 -0
  82. package/dist/utils.js +172 -0
  83. package/dist/worker.js +123 -0
  84. package/lib/AssetGraph.js +53 -15
  85. package/lib/Atlaspack.js +140 -56
  86. package/lib/AtlaspackConfig.js +17 -6
  87. package/lib/AtlaspackConfig.schema.js +16 -5
  88. package/lib/BundleGraph.js +390 -43
  89. package/lib/CommittedAsset.js +8 -2
  90. package/lib/Dependency.js +9 -3
  91. package/lib/Environment.js +16 -10
  92. package/lib/EnvironmentManager.js +143 -0
  93. package/lib/IdentifierRegistry.js +2 -4
  94. package/lib/InternalConfig.js +3 -2
  95. package/lib/PackagerRunner.js +46 -82
  96. package/lib/ReporterRunner.js +8 -12
  97. package/lib/RequestTracker.js +191 -152
  98. package/lib/SymbolPropagation.js +52 -29
  99. package/lib/TargetDescriptor.schema.js +10 -1
  100. package/lib/Transformation.js +68 -19
  101. package/lib/UncommittedAsset.js +17 -24
  102. package/lib/Validation.js +20 -5
  103. package/lib/applyRuntimes.js +98 -7
  104. package/lib/assetUtils.js +16 -6
  105. package/lib/atlaspack-v3/AtlaspackV3.js +58 -15
  106. package/lib/atlaspack-v3/NapiWorkerPool.js +63 -2
  107. package/lib/atlaspack-v3/fs.js +4 -1
  108. package/lib/atlaspack-v3/index.js +28 -1
  109. package/lib/atlaspack-v3/jsCallable.js +0 -2
  110. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  111. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  112. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  113. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  114. package/lib/atlaspack-v3/worker/compat/index.js +0 -11
  115. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +16 -11
  116. package/lib/atlaspack-v3/worker/compat/plugin-config.js +14 -35
  117. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -2
  118. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  119. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  120. package/lib/atlaspack-v3/worker/index.js +3 -0
  121. package/lib/atlaspack-v3/worker/side-effect-detector.js +214 -0
  122. package/lib/atlaspack-v3/worker/worker.js +231 -79
  123. package/lib/constants.js +0 -1
  124. package/lib/dumpGraphToGraphViz.js +72 -17
  125. package/lib/index.js +46 -3
  126. package/lib/loadAtlaspackPlugin.js +2 -3
  127. package/lib/loadDotEnv.js +5 -2
  128. package/lib/projectPath.js +6 -1
  129. package/lib/public/Asset.js +22 -12
  130. package/lib/public/Bundle.js +16 -18
  131. package/lib/public/BundleGraph.js +27 -25
  132. package/lib/public/BundleGroup.js +5 -6
  133. package/lib/public/Config.js +118 -18
  134. package/lib/public/Dependency.js +9 -7
  135. package/lib/public/Environment.js +13 -8
  136. package/lib/public/MutableBundleGraph.js +56 -15
  137. package/lib/public/PluginOptions.js +2 -2
  138. package/lib/public/Symbols.js +12 -12
  139. package/lib/public/Target.js +8 -7
  140. package/lib/registerCoreWithSerializer.js +7 -4
  141. package/lib/requests/AssetGraphRequest.js +61 -40
  142. package/lib/requests/AssetGraphRequestRust.js +314 -82
  143. package/lib/requests/AssetRequest.js +24 -7
  144. package/lib/requests/AtlaspackBuildRequest.js +53 -7
  145. package/lib/requests/AtlaspackConfigRequest.js +29 -19
  146. package/lib/requests/BundleGraphRequest.js +61 -130
  147. package/lib/requests/BundleGraphRequestRust.js +381 -0
  148. package/lib/requests/BundleGraphRequestUtils.js +280 -0
  149. package/lib/requests/ConfigRequest.js +55 -7
  150. package/lib/requests/DevDepRequest.js +32 -6
  151. package/lib/requests/EntryRequest.js +4 -3
  152. package/lib/requests/PackageRequest.js +56 -12
  153. package/lib/requests/PathRequest.js +26 -6
  154. package/lib/requests/TargetRequest.js +129 -60
  155. package/lib/requests/ValidationRequest.js +6 -2
  156. package/lib/requests/WriteBundleRequest.js +329 -20
  157. package/lib/requests/WriteBundlesRequest.js +64 -10
  158. package/lib/requests/asset-graph-diff.js +13 -8
  159. package/lib/requests/asset-graph-dot.js +2 -8
  160. package/lib/resolveOptions.js +37 -14
  161. package/lib/rustWorkerThreadDylibHack.js +0 -1
  162. package/lib/serializerCore.browser.js +1 -2
  163. package/lib/summarizeRequest.js +1 -1
  164. package/lib/types/AssetGraph.d.ts +55 -0
  165. package/lib/types/Atlaspack.d.ts +52 -0
  166. package/lib/types/AtlaspackConfig.d.ts +65 -0
  167. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  168. package/lib/types/BundleGraph.d.ts +232 -0
  169. package/lib/types/CommittedAsset.d.ts +23 -0
  170. package/lib/types/Dependency.d.ts +44 -0
  171. package/lib/types/Environment.d.ts +11 -0
  172. package/lib/types/EnvironmentManager.d.ts +37 -0
  173. package/lib/types/IdentifierRegistry.d.ts +6 -0
  174. package/lib/types/InternalConfig.d.ts +23 -0
  175. package/lib/types/PackagerRunner.d.ts +85 -0
  176. package/lib/types/ReporterRunner.d.ts +25 -0
  177. package/lib/types/RequestTracker.d.ts +385 -0
  178. package/lib/types/SymbolPropagation.d.ts +11 -0
  179. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  180. package/lib/types/Transformation.d.ts +72 -0
  181. package/lib/types/UncommittedAsset.d.ts +61 -0
  182. package/lib/types/Validation.d.ts +37 -0
  183. package/lib/types/applyRuntimes.d.ts +25 -0
  184. package/lib/types/assetUtils.d.ts +42 -0
  185. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +35 -0
  186. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  187. package/lib/types/atlaspack-v3/fs.d.ts +13 -0
  188. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  189. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  190. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  191. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  192. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  193. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  194. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -2
  195. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  196. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  197. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  198. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  199. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  200. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  201. package/lib/types/atlaspack-v3/worker/worker.d.ts +81 -0
  202. package/lib/types/constants.d.ts +13 -0
  203. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  204. package/lib/types/index.d.ts +8 -0
  205. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  206. package/lib/types/loadDotEnv.d.ts +3 -0
  207. package/lib/types/projectPath.d.ts +19 -0
  208. package/lib/types/public/Asset.d.ts +74 -0
  209. package/lib/types/public/Bundle.d.ts +45 -0
  210. package/lib/types/public/BundleGraph.d.ts +72 -0
  211. package/lib/types/public/BundleGroup.d.ts +12 -0
  212. package/lib/types/public/Config.d.ts +75 -0
  213. package/lib/types/public/Dependency.d.ts +32 -0
  214. package/lib/types/public/Environment.d.ts +34 -0
  215. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  216. package/lib/types/public/PluginOptions.d.ts +25 -0
  217. package/lib/types/public/Symbols.d.ts +81 -0
  218. package/lib/types/public/Target.d.ts +16 -0
  219. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  220. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  221. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  222. package/lib/types/requests/AssetRequest.d.ts +16 -0
  223. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  224. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  225. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  226. package/lib/types/requests/BundleGraphRequestRust.d.ts +34 -0
  227. package/lib/types/requests/BundleGraphRequestUtils.d.ts +38 -0
  228. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  229. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  230. package/lib/types/requests/EntryRequest.d.ts +36 -0
  231. package/lib/types/requests/PackageRequest.d.ts +27 -0
  232. package/lib/types/requests/PathRequest.d.ts +48 -0
  233. package/lib/types/requests/TargetRequest.d.ts +48 -0
  234. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  235. package/lib/types/requests/WriteBundleRequest.d.ts +80 -0
  236. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  237. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  238. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  239. package/lib/types/resolveOptions.d.ts +3 -0
  240. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  241. package/lib/types/serializerCore.browser.d.ts +3 -0
  242. package/lib/types/summarizeRequest.d.ts +10 -0
  243. package/lib/types/types.d.ts +496 -0
  244. package/lib/types/utils.d.ts +23 -0
  245. package/lib/types/worker.d.ts +44 -0
  246. package/lib/types.js +8 -1
  247. package/lib/utils.js +18 -3
  248. package/lib/worker.js +32 -15
  249. package/package.json +26 -36
  250. package/src/{AssetGraph.js → AssetGraph.ts} +87 -51
  251. package/src/{Atlaspack.js → Atlaspack.ts} +181 -72
  252. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  253. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  254. package/src/{BundleGraph.js → BundleGraph.ts} +575 -145
  255. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  256. package/src/{Dependency.js → Dependency.ts} +59 -42
  257. package/src/{Environment.js → Environment.ts} +24 -15
  258. package/src/EnvironmentManager.ts +154 -0
  259. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  260. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  261. package/src/{PackagerRunner.js → PackagerRunner.ts} +114 -159
  262. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  263. package/src/{RequestTracker.js → RequestTracker.ts} +444 -355
  264. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +178 -61
  265. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +10 -1
  266. package/src/{Transformation.js → Transformation.ts} +110 -65
  267. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +45 -49
  268. package/src/{Validation.js → Validation.ts} +32 -17
  269. package/src/{applyRuntimes.js → applyRuntimes.ts} +135 -26
  270. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  271. package/src/atlaspack-v3/AtlaspackV3.ts +183 -0
  272. package/src/atlaspack-v3/NapiWorkerPool.ts +129 -0
  273. package/src/atlaspack-v3/{fs.js → fs.ts} +8 -4
  274. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  275. package/src/atlaspack-v3/jsCallable.ts +14 -0
  276. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  277. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  278. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  279. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  280. package/src/atlaspack-v3/worker/compat/index.ts +8 -0
  281. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  282. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  283. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  284. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  285. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  286. package/src/atlaspack-v3/worker/index.js +2 -1
  287. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  288. package/src/atlaspack-v3/worker/worker.ts +548 -0
  289. package/src/{constants.js → constants.ts} +0 -3
  290. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  291. package/src/index.ts +18 -0
  292. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  293. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  294. package/src/{projectPath.js → projectPath.ts} +20 -9
  295. package/src/public/{Asset.js → Asset.ts} +41 -28
  296. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  297. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  298. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  299. package/src/public/{Config.js → Config.ts} +171 -33
  300. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  301. package/src/public/{Environment.js → Environment.ts} +28 -17
  302. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  303. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  304. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  305. package/src/public/{Target.js → Target.ts} +10 -8
  306. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  307. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +117 -90
  308. package/src/requests/AssetGraphRequestRust.ts +557 -0
  309. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  310. package/src/requests/AtlaspackBuildRequest.ts +168 -0
  311. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  312. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +119 -199
  313. package/src/requests/BundleGraphRequestRust.ts +470 -0
  314. package/src/requests/BundleGraphRequestUtils.ts +323 -0
  315. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  316. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  317. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  318. package/src/requests/{PackageRequest.js → PackageRequest.ts} +52 -25
  319. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  320. package/src/requests/{TargetRequest.js → TargetRequest.ts} +265 -179
  321. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  322. package/src/requests/WriteBundleRequest.ts +734 -0
  323. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +134 -50
  324. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  325. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  326. package/src/{resolveOptions.js → resolveOptions.ts} +57 -27
  327. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  328. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  329. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  330. package/src/types.ts +651 -0
  331. package/src/{utils.js → utils.ts} +52 -21
  332. package/src/{worker.js → worker.ts} +50 -42
  333. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +5 -8
  334. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  335. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  336. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  337. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  338. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  339. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  340. package/test/Environment.test.ts +153 -0
  341. package/test/EnvironmentManager.test.ts +188 -0
  342. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  343. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  344. package/test/PackagerRunner.test.ts +0 -0
  345. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  346. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  347. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  348. package/test/PublicEnvironment.test.ts +49 -0
  349. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  350. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +136 -58
  351. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  352. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +91 -92
  353. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  354. package/test/fixtures/custom-targets/package.json +6 -0
  355. package/test/public/Config.test.ts +104 -0
  356. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  357. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  358. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  359. package/test/requests/WriteBundleRequest.test.ts +602 -0
  360. package/test/{test-utils.js → test-utils.ts} +3 -4
  361. package/test/{utils.test.js → utils.test.ts} +1 -3
  362. package/tsconfig.json +60 -0
  363. package/tsconfig.tsbuildinfo +1 -0
  364. package/index.d.ts +0 -30
  365. package/lib/atlaspack-v3/worker/compat/plugin-logger.js +0 -29
  366. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  367. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  368. package/src/atlaspack-v3/jsCallable.js +0 -18
  369. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  370. package/src/atlaspack-v3/worker/compat/plugin-logger.js +0 -47
  371. package/src/atlaspack-v3/worker/worker.js +0 -369
  372. package/src/index.js +0 -13
  373. package/src/requests/AssetGraphRequestRust.js +0 -263
  374. package/src/requests/AtlaspackBuildRequest.js +0 -111
  375. package/src/requests/WriteBundleRequest.js +0 -369
  376. package/src/types.js +0 -600
  377. package/test/Environment.test.js +0 -119
  378. package/test/PackagerRunner.test.js +0 -27
  379. package/test/PublicEnvironment.test.js +0 -27
  380. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -0,0 +1,310 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ const stream_1 = require("stream");
8
+ const source_map_1 = __importDefault(require("@atlaspack/source-map"));
9
+ const build_cache_1 = require("@atlaspack/build-cache");
10
+ const utils_1 = require("@atlaspack/utils");
11
+ const rust_1 = require("@atlaspack/rust");
12
+ const Dependency_1 = require("./Dependency");
13
+ const Environment_1 = require("./Environment");
14
+ const constants_1 = require("./constants");
15
+ const assetUtils_1 = require("./assetUtils");
16
+ const types_1 = require("./types");
17
+ const utils_2 = require("./utils");
18
+ const projectPath_1 = require("./projectPath");
19
+ const EnvironmentManager_1 = require("./EnvironmentManager");
20
+ class UncommittedAsset {
21
+ constructor({ value, options, content, mapBuffer, ast, isASTDirty, code, invalidations, }) {
22
+ this.value = value;
23
+ this.options = options;
24
+ this.content = content;
25
+ this.mapBuffer = mapBuffer;
26
+ this.ast = ast;
27
+ this.isASTDirty = isASTDirty || false;
28
+ this.code = code;
29
+ this.invalidations = invalidations || (0, utils_2.createInvalidations)();
30
+ }
31
+ /*
32
+ * Prepares the asset for being serialized to the cache by committing its
33
+ * content and map of the asset to the cache.
34
+ */
35
+ async commit() {
36
+ // If there is a dirty AST, clear out any old content and map as these
37
+ // must be regenerated later and shouldn't be committed.
38
+ if (this.ast != null && this.isASTDirty) {
39
+ this.content = null;
40
+ this.mapBuffer = null;
41
+ }
42
+ let size = 0;
43
+ let outputHash = '';
44
+ let contentKey = this.content == null ? null : this.getCacheKey('content');
45
+ let mapKey = this.mapBuffer == null ? null : this.getCacheKey('map');
46
+ let astKey = this.ast == null ? null : this.getCacheKey('ast');
47
+ // Since we can only read from the stream once, compute the content length
48
+ // and hash while it's being written to the cache.
49
+ await Promise.all([
50
+ contentKey != null &&
51
+ this.commitContent(contentKey).then((s) => ((size = s.size), (outputHash = s.hash))),
52
+ this.mapBuffer != null &&
53
+ mapKey != null &&
54
+ this.options.cache.setBlob(mapKey, this.mapBuffer),
55
+ astKey != null &&
56
+ this.options.cache.setBlob(astKey, (0, build_cache_1.serializeRaw)(this.ast)),
57
+ ]);
58
+ this.value.contentKey = contentKey;
59
+ this.value.mapKey = mapKey;
60
+ this.value.astKey = astKey;
61
+ this.value.outputHash = outputHash;
62
+ if (this.content != null) {
63
+ this.value.stats.size = size;
64
+ }
65
+ this.value.isLargeBlob = this.content instanceof stream_1.Readable;
66
+ this.value.committed = true;
67
+ }
68
+ async commitContent(contentKey) {
69
+ let content = await this.content;
70
+ if (content == null) {
71
+ return { size: 0, hash: '' };
72
+ }
73
+ let size = 0;
74
+ if (content instanceof stream_1.Readable) {
75
+ let hash = new rust_1.Hash();
76
+ await this.options.cache.setStream(contentKey, content.pipe(
77
+ // @ts-expect-error TS2554
78
+ new utils_1.TapStream((buf) => {
79
+ hash.writeBuffer(buf);
80
+ size += buf.length;
81
+ })));
82
+ return { size, hash: hash.finish() };
83
+ }
84
+ let hash;
85
+ if (typeof content === 'string') {
86
+ hash = (0, rust_1.hashString)(content);
87
+ size = Buffer.byteLength(content);
88
+ }
89
+ else {
90
+ hash = (0, rust_1.hashBuffer)(content);
91
+ size = content.length;
92
+ }
93
+ // Maybe we should just store this in a file instead of LMDB
94
+ await this.options.cache.setBlob(contentKey, content);
95
+ return { size, hash };
96
+ }
97
+ async getCode() {
98
+ if (this.ast != null && this.isASTDirty) {
99
+ throw new Error('Cannot call getCode() on an asset with a dirty AST. For transformers, implement canReuseAST() and check asset.isASTDirty.');
100
+ }
101
+ let content = await this.content;
102
+ if (typeof content === 'string' || content instanceof Buffer) {
103
+ return content.toString();
104
+ }
105
+ else if (content != null) {
106
+ // @ts-expect-error TS2345
107
+ this.content = (0, utils_1.bufferStream)(content);
108
+ return (await this.content).toString();
109
+ }
110
+ (0, assert_1.default)(false, 'Internal error: missing content');
111
+ }
112
+ async getBuffer() {
113
+ let content = await this.content;
114
+ if (content == null) {
115
+ return Buffer.alloc(0);
116
+ }
117
+ else if (content instanceof Buffer) {
118
+ return content;
119
+ }
120
+ else if (typeof content === 'string') {
121
+ return Buffer.from(content);
122
+ }
123
+ // @ts-expect-error TS2345
124
+ this.content = (0, utils_1.bufferStream)(content);
125
+ return this.content;
126
+ }
127
+ getStream() {
128
+ if (this.content instanceof stream_1.Readable) {
129
+ // Remove content if it's a stream, as it should not be reused.
130
+ let content = this.content;
131
+ this.content = null;
132
+ return content;
133
+ }
134
+ if (this.content instanceof Promise) {
135
+ return (0, utils_1.streamFromPromise)(this.content);
136
+ }
137
+ return (0, utils_1.blobToStream)(this.content ?? Buffer.alloc(0));
138
+ }
139
+ setCode(code) {
140
+ this.content = code;
141
+ this.clearAST();
142
+ }
143
+ setBuffer(buffer) {
144
+ this.content = buffer;
145
+ this.clearAST();
146
+ }
147
+ /**
148
+ * @deprecated This has been broken on any cache other than FSCache for a long time.
149
+ */
150
+ setStream(stream) {
151
+ this.content = stream;
152
+ this.clearAST();
153
+ }
154
+ async loadExistingSourcemap() {
155
+ if (this.map) {
156
+ return this.map;
157
+ }
158
+ let code = await this.getCode();
159
+ let map = await (0, utils_1.loadSourceMap)((0, projectPath_1.fromProjectPath)(this.options.projectRoot, this.value.filePath), code, {
160
+ fs: this.options.inputFS,
161
+ projectRoot: this.options.projectRoot,
162
+ });
163
+ if (map) {
164
+ this.map = map;
165
+ this.mapBuffer = source_map_1.default.safeToBuffer(map);
166
+ this.setCode(code.replace(utils_1.SOURCEMAP_RE, ''));
167
+ }
168
+ return this.map;
169
+ }
170
+ getMapBuffer() {
171
+ return Promise.resolve(this.mapBuffer);
172
+ }
173
+ async getMap() {
174
+ if (this.map == null) {
175
+ let mapBuffer = this.mapBuffer ?? (await this.getMapBuffer());
176
+ if (mapBuffer) {
177
+ // Get sourcemap from flatbuffer
178
+ this.map = new source_map_1.default(this.options.projectRoot, mapBuffer);
179
+ }
180
+ }
181
+ return this.map;
182
+ }
183
+ setMap(map) {
184
+ // If we have sourceContent available, it means this asset is source code without
185
+ // a previous source map. Ensure that the map set by the transformer has the original
186
+ // source content available.
187
+ if (map != null && this.sourceContent != null) {
188
+ map.setSourceContent((0, projectPath_1.fromProjectPath)(this.options.projectRoot, this.value.filePath), this.sourceContent);
189
+ this.sourceContent = null;
190
+ }
191
+ this.map = map;
192
+ this.mapBuffer = this.map?.toBuffer();
193
+ }
194
+ getAST() {
195
+ return Promise.resolve(this.ast);
196
+ }
197
+ setAST(ast) {
198
+ this.ast = ast;
199
+ this.isASTDirty = true;
200
+ this.value.astGenerator = {
201
+ type: ast.type,
202
+ version: ast.version,
203
+ };
204
+ }
205
+ clearAST() {
206
+ this.ast = null;
207
+ this.isASTDirty = false;
208
+ this.value.astGenerator = null;
209
+ }
210
+ getCacheKey(key) {
211
+ return (0, rust_1.hashString)(constants_1.ATLASPACK_VERSION + key + this.value.id);
212
+ }
213
+ addDependency(opts) {
214
+ // eslint-disable-next-line no-unused-vars
215
+ let { env, symbols, ...rest } = opts;
216
+ let dep = (0, Dependency_1.createDependency)(this.options.projectRoot, {
217
+ ...rest,
218
+ // @ts-expect-error TS2322
219
+ symbols,
220
+ env: (0, Environment_1.mergeEnvironments)(this.options.projectRoot, (0, EnvironmentManager_1.fromEnvironmentId)(this.value.env), env),
221
+ sourceAssetId: this.value.id,
222
+ sourcePath: (0, projectPath_1.fromProjectPath)(this.options.projectRoot, this.value.filePath),
223
+ });
224
+ let existing = this.value.dependencies.get(dep.id);
225
+ if (existing) {
226
+ (0, Dependency_1.mergeDependencies)(existing, dep);
227
+ }
228
+ else {
229
+ this.value.dependencies.set(dep.id, dep);
230
+ }
231
+ return dep.id;
232
+ }
233
+ invalidateOnFileChange(filePath) {
234
+ this.invalidations.invalidateOnFileChange.add(filePath);
235
+ }
236
+ invalidateOnFileCreate(invalidation) {
237
+ this.invalidations.invalidateOnFileCreate.push((0, utils_2.invalidateOnFileCreateToInternal)(this.options.projectRoot, invalidation));
238
+ }
239
+ invalidateOnEnvChange(key) {
240
+ this.invalidations.invalidateOnEnvChange.add(key);
241
+ }
242
+ invalidateOnBuild() {
243
+ this.invalidations.invalidateOnBuild = true;
244
+ }
245
+ invalidateOnStartup() {
246
+ this.invalidations.invalidateOnStartup = true;
247
+ }
248
+ getDependencies() {
249
+ return Array.from(this.value.dependencies.values());
250
+ }
251
+ createChildAsset(result, plugin, configPath, configKeyPath) {
252
+ let content = result.content ?? null;
253
+ let asset = new UncommittedAsset({
254
+ value: (0, assetUtils_1.createAsset)(this.options.projectRoot, {
255
+ code: this.code,
256
+ filePath: this.value.filePath,
257
+ type: result.type,
258
+ bundleBehavior: result.bundleBehavior ??
259
+ (this.value.bundleBehavior == null
260
+ ? null
261
+ : types_1.BundleBehaviorNames[this.value.bundleBehavior]),
262
+ isBundleSplittable: result.isBundleSplittable ?? this.value.isBundleSplittable,
263
+ isSource: this.value.isSource,
264
+ env: (0, Environment_1.mergeEnvironments)(this.options.projectRoot, (0, EnvironmentManager_1.fromEnvironmentId)(this.value.env), result.env),
265
+ dependencies: this.value.type === result.type
266
+ ? new Map(this.value.dependencies)
267
+ : new Map(),
268
+ meta: {
269
+ ...this.value.meta,
270
+ ...result.meta,
271
+ },
272
+ pipeline: result.pipeline ??
273
+ (this.value.type === result.type ? this.value.pipeline : null),
274
+ stats: {
275
+ time: 0,
276
+ size: this.value.stats.size,
277
+ },
278
+ // @ts-expect-error TS2322
279
+ symbols: result.symbols,
280
+ sideEffects: result.sideEffects ?? this.value.sideEffects,
281
+ uniqueKey: result.uniqueKey,
282
+ astGenerator: result.ast
283
+ ? { type: result.ast.type, version: result.ast.version }
284
+ : null,
285
+ plugin,
286
+ configPath,
287
+ configKeyPath,
288
+ }),
289
+ options: this.options,
290
+ content,
291
+ ast: result.ast,
292
+ isASTDirty: result.ast === this.ast ? this.isASTDirty : true,
293
+ mapBuffer: source_map_1.default.safeToBuffer(result.map),
294
+ code: this.code,
295
+ invalidations: this.invalidations,
296
+ });
297
+ let dependencies = result.dependencies;
298
+ if (dependencies) {
299
+ for (let dep of dependencies) {
300
+ asset.addDependency(dep);
301
+ }
302
+ }
303
+ return asset;
304
+ }
305
+ updateId() {
306
+ // @ts-expect-error TS2345
307
+ this.value.id = (0, assetUtils_1.createAssetIdFromOptions)(this.value);
308
+ }
309
+ }
310
+ exports.default = UncommittedAsset;
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const path_1 = __importDefault(require("path"));
40
+ const utils_1 = require("@atlaspack/utils");
41
+ const logger_1 = __importStar(require("@atlaspack/logger"));
42
+ const diagnostic_1 = __importStar(require("@atlaspack/diagnostic"));
43
+ const UncommittedAsset_1 = __importDefault(require("./UncommittedAsset"));
44
+ const assetUtils_1 = require("./assetUtils");
45
+ const Asset_1 = require("./public/Asset");
46
+ const PluginOptions_1 = __importDefault(require("./public/PluginOptions"));
47
+ const summarizeRequest_1 = __importDefault(require("./summarizeRequest"));
48
+ const projectPath_1 = require("./projectPath");
49
+ const profiler_1 = require("@atlaspack/profiler");
50
+ class Validation {
51
+ constructor({ config, dedicatedThread, options, requests, report, workerApi, }) {
52
+ this.allAssets = {};
53
+ this.allValidators = {};
54
+ this.dedicatedThread = dedicatedThread ?? false;
55
+ this.options = options;
56
+ this.atlaspackConfig = config;
57
+ this.report = report;
58
+ this.requests = requests;
59
+ this.workerApi = workerApi;
60
+ }
61
+ async run() {
62
+ let pluginOptions = new PluginOptions_1.default(this.options);
63
+ await this.buildAssetsAndValidators();
64
+ await Promise.all(Object.keys(this.allValidators).map(async (validatorName) => {
65
+ let assets = this.allAssets[validatorName];
66
+ if (assets) {
67
+ let plugin = this.allValidators[validatorName];
68
+ let validatorLogger = new logger_1.PluginLogger({ origin: validatorName });
69
+ let validatorTracer = new profiler_1.PluginTracer({
70
+ origin: validatorName,
71
+ category: 'validator',
72
+ });
73
+ let validatorResults = [];
74
+ try {
75
+ // If the plugin supports the single-threading validateAll method, pass all assets to it.
76
+ // @ts-expect-error TS2339
77
+ if (plugin.validateAll && this.dedicatedThread) {
78
+ // @ts-expect-error TS2339
79
+ validatorResults = await plugin.validateAll({
80
+ assets: assets.map((asset) => new Asset_1.Asset(asset)),
81
+ options: pluginOptions,
82
+ logger: validatorLogger,
83
+ tracer: validatorTracer,
84
+ resolveConfigWithPath: (configNames, assetFilePath) => (0, utils_1.resolveConfig)(this.options.inputFS, assetFilePath, configNames, this.options.projectRoot),
85
+ });
86
+ }
87
+ // Otherwise, pass the assets one-at-a-time
88
+ // @ts-expect-error TS2339
89
+ else if (plugin.validate && !this.dedicatedThread) {
90
+ await Promise.all(assets.map(async (input) => {
91
+ let config = null;
92
+ let publicAsset = new Asset_1.Asset(input);
93
+ // @ts-expect-error TS2339
94
+ if (plugin.getConfig) {
95
+ // @ts-expect-error TS2339
96
+ config = await plugin.getConfig({
97
+ asset: publicAsset,
98
+ options: pluginOptions,
99
+ logger: validatorLogger,
100
+ tracer: validatorTracer,
101
+ resolveConfig: (configNames) => (0, utils_1.resolveConfig)(this.options.inputFS, publicAsset.filePath, configNames, this.options.projectRoot),
102
+ });
103
+ }
104
+ // @ts-expect-error TS2339
105
+ let validatorResult = await plugin.validate({
106
+ asset: publicAsset,
107
+ options: pluginOptions,
108
+ config,
109
+ logger: validatorLogger,
110
+ tracer: validatorTracer,
111
+ });
112
+ validatorResults.push(validatorResult);
113
+ }));
114
+ }
115
+ this.handleResults(validatorResults);
116
+ }
117
+ catch (e) {
118
+ throw new diagnostic_1.default({
119
+ diagnostic: (0, diagnostic_1.errorToDiagnostic)(e, {
120
+ origin: validatorName,
121
+ }),
122
+ });
123
+ }
124
+ }
125
+ }));
126
+ }
127
+ async buildAssetsAndValidators() {
128
+ // Figure out what validators need to be run, and group the assets by the relevant validators.
129
+ await Promise.all(this.requests.map(async (request) => {
130
+ this.report({
131
+ type: 'validation',
132
+ // @ts-expect-error TS2322
133
+ filePath: (0, projectPath_1.fromProjectPath)(this.options.projectRoot, request.filePath),
134
+ });
135
+ let asset = await this.loadAsset(request);
136
+ let validators = await this.atlaspackConfig.getValidators(
137
+ // @ts-expect-error TS2345
138
+ request.filePath);
139
+ for (let validator of validators) {
140
+ this.allValidators[validator.name] = validator.plugin;
141
+ if (this.allAssets[validator.name]) {
142
+ this.allAssets[validator.name].push(asset);
143
+ }
144
+ else {
145
+ this.allAssets[validator.name] = [asset];
146
+ }
147
+ }
148
+ }));
149
+ }
150
+ handleResults(validatorResults) {
151
+ let warnings = [];
152
+ let errors = [];
153
+ validatorResults.forEach((result) => {
154
+ if (result) {
155
+ warnings.push(...result.warnings);
156
+ errors.push(...result.errors);
157
+ }
158
+ });
159
+ if (errors.length > 0) {
160
+ throw new diagnostic_1.default({
161
+ diagnostic: errors,
162
+ });
163
+ }
164
+ if (warnings.length > 0) {
165
+ logger_1.default.warn(warnings);
166
+ }
167
+ }
168
+ async loadAsset(request) {
169
+ let { filePath, env, code, sideEffects, query } = request;
170
+ let { content, size, isSource } = await (0, summarizeRequest_1.default)(this.options.inputFS, {
171
+ // @ts-expect-error TS2322
172
+ filePath: (0, projectPath_1.fromProjectPath)(this.options.projectRoot, request.filePath),
173
+ });
174
+ return new UncommittedAsset_1.default({
175
+ value: (0, assetUtils_1.createAsset)(this.options.projectRoot, {
176
+ code,
177
+ // @ts-expect-error TS2322
178
+ filePath: filePath,
179
+ isSource,
180
+ // @ts-expect-error TS2345
181
+ type: path_1.default.extname((0, projectPath_1.fromProjectPathRelative)(filePath)).slice(1),
182
+ query,
183
+ // @ts-expect-error TS2322
184
+ env: env,
185
+ stats: {
186
+ time: 0,
187
+ size,
188
+ },
189
+ sideEffects: sideEffects,
190
+ }),
191
+ options: this.options,
192
+ content,
193
+ });
194
+ }
195
+ }
196
+ exports.default = Validation;