@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,398 @@
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 __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
36
+ if (kind === "m") throw new TypeError("Private method is not writable");
37
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
38
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
39
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
40
+ };
41
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
42
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
43
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
44
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
45
+ };
46
+ var __importDefault = (this && this.__importDefault) || function (mod) {
47
+ return (mod && mod.__esModule) ? mod : { "default": mod };
48
+ };
49
+ var _AtlaspackWorker_resolvers, _AtlaspackWorker_transformers, _AtlaspackWorker_fs, _AtlaspackWorker_packageManager, _AtlaspackWorker_options, _AtlaspackWorker_sideEffectDetector;
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.AtlaspackWorker = void 0;
52
+ /* eslint-disable import/first */
53
+ const side_effect_detector_1 = require("./side-effect-detector");
54
+ // Install side effect detection patches BEFORE importing any modules that use fs
55
+ const sideEffectDetector = new side_effect_detector_1.SideEffectDetector();
56
+ sideEffectDetector.install();
57
+ const assert_1 = __importDefault(require("assert"));
58
+ const napi = __importStar(require("@atlaspack/rust"));
59
+ const fs_1 = require("@atlaspack/fs");
60
+ const package_manager_1 = require("@atlaspack/package-manager");
61
+ const worker_threads_1 = require("worker_threads");
62
+ const logger_1 = __importDefault(require("@atlaspack/logger"));
63
+ const module = __importStar(require("module"));
64
+ const jsCallable_1 = require("../jsCallable");
65
+ const logger_2 = require("@atlaspack/logger");
66
+ const compat_1 = require("./compat");
67
+ const CONFIG = Symbol.for('parcel-plugin-config');
68
+ class AtlaspackWorker {
69
+ constructor() {
70
+ _AtlaspackWorker_resolvers.set(this, void 0);
71
+ _AtlaspackWorker_transformers.set(this, void 0);
72
+ _AtlaspackWorker_fs.set(this, void 0);
73
+ _AtlaspackWorker_packageManager.set(this, void 0);
74
+ _AtlaspackWorker_options.set(this, void 0);
75
+ _AtlaspackWorker_sideEffectDetector.set(this, void 0);
76
+ this.loadPlugin = (0, jsCallable_1.jsCallable)(async ({ kind, specifier, resolveFrom, options }) => {
77
+ // Use packageManager.require() instead of dynamic import() to support TypeScript plugins
78
+ let resolvedModule = await __classPrivateFieldGet(this, _AtlaspackWorker_packageManager, "f").require(specifier, resolveFrom, { shouldAutoInstall: false });
79
+ let instance = undefined;
80
+ // Check for CommonJS export (module.exports = new Plugin(...))
81
+ if (resolvedModule[CONFIG]) {
82
+ instance = resolvedModule[CONFIG];
83
+ }
84
+ else if (resolvedModule.default && resolvedModule.default[CONFIG]) {
85
+ // ESM default export
86
+ instance = resolvedModule.default[CONFIG];
87
+ }
88
+ else if (resolvedModule.default &&
89
+ resolvedModule.default.default &&
90
+ resolvedModule.default.default[CONFIG]) {
91
+ // Double-wrapped default export
92
+ instance = resolvedModule.default.default[CONFIG];
93
+ }
94
+ else {
95
+ throw new Error(`Plugin could not be resolved\n\t${kind}\n\t${resolveFrom}\n\t${specifier}`);
96
+ }
97
+ if (__classPrivateFieldGet(this, _AtlaspackWorker_options, "f") == null) {
98
+ __classPrivateFieldSet(this, _AtlaspackWorker_options, {
99
+ ...options,
100
+ inputFS: __classPrivateFieldGet(this, _AtlaspackWorker_fs, "f"),
101
+ outputFS: __classPrivateFieldGet(this, _AtlaspackWorker_fs, "f"),
102
+ packageManager: __classPrivateFieldGet(this, _AtlaspackWorker_packageManager, "f"),
103
+ shouldAutoInstall: false,
104
+ }, "f");
105
+ }
106
+ // Set feature flags in the worker process
107
+ let featureFlagsModule = await __classPrivateFieldGet(this, _AtlaspackWorker_packageManager, "f").require('@atlaspack/feature-flags', __filename, { shouldAutoInstall: false });
108
+ featureFlagsModule.setFeatureFlags(options.featureFlags);
109
+ switch (kind) {
110
+ case 'resolver':
111
+ __classPrivateFieldGet(this, _AtlaspackWorker_resolvers, "f").set(specifier, { resolver: instance });
112
+ break;
113
+ case 'transformer': {
114
+ return this.initializeTransformer(instance, specifier);
115
+ }
116
+ }
117
+ });
118
+ this.runResolverResolve = (0, jsCallable_1.jsCallable)(async ({ key, dependency: napiDependency, specifier, pipeline }) => {
119
+ const state = __classPrivateFieldGet(this, _AtlaspackWorker_resolvers, "f").get(key);
120
+ if (!state) {
121
+ throw new Error(`Resolver not found: ${key}`);
122
+ }
123
+ const env = new compat_1.Environment(napiDependency.env);
124
+ const dependency = new compat_1.Dependency(napiDependency, env);
125
+ const defaultOptions = {
126
+ logger: new logger_2.PluginLogger({ origin: key }),
127
+ tracer: new compat_1.PluginTracer(),
128
+ options: new compat_1.PluginOptions(this.options),
129
+ };
130
+ if (!('config' in state)) {
131
+ // @ts-expect-error TS2345
132
+ state.config = await state.resolver.loadConfig?.({
133
+ config: new compat_1.PluginConfig({
134
+ env: napiDependency.env,
135
+ plugin: key,
136
+ isSource: true,
137
+ searchPath: 'index',
138
+ }, this.options),
139
+ ...defaultOptions,
140
+ });
141
+ }
142
+ // @ts-expect-error TS2345
143
+ const result = await state.resolver.resolve({
144
+ specifier,
145
+ dependency,
146
+ pipeline,
147
+ config: state.config,
148
+ ...defaultOptions,
149
+ });
150
+ if (!result) {
151
+ return {
152
+ invalidations: [],
153
+ resolution: { type: 'unresolved' },
154
+ };
155
+ }
156
+ if (result.isExcluded) {
157
+ return {
158
+ invalidations: [],
159
+ resolution: { type: 'excluded' },
160
+ };
161
+ }
162
+ // A resolver may return a result without filePath to indicate it didn't
163
+ // resolve the dependency (equivalent to returning null). The JS-side
164
+ // PathRequest treats this as "try the next resolver".
165
+ if (!result.filePath) {
166
+ return {
167
+ invalidations: [],
168
+ resolution: { type: 'unresolved' },
169
+ };
170
+ }
171
+ return {
172
+ invalidations: [],
173
+ resolution: {
174
+ type: 'resolved',
175
+ filePath: result.filePath,
176
+ canDefer: result.canDefer || false,
177
+ sideEffects: result.sideEffects ?? true,
178
+ code: result.code ?? undefined,
179
+ meta: result.meta || undefined,
180
+ pipeline: result.pipeline || undefined,
181
+ priority: compat_1.dependencyPriorityMap.intoNullable(result.priority),
182
+ query: result.query && result.query.toString(),
183
+ },
184
+ };
185
+ });
186
+ this.runTransformerTransform = (0, jsCallable_1.jsCallable)(async ({ key, asset: innerAsset }, contents, map) => {
187
+ const instance = __classPrivateFieldGet(this, _AtlaspackWorker_transformers, "f").get(key);
188
+ if (!instance) {
189
+ throw new Error(`Transformer not found: ${key}`);
190
+ }
191
+ let { transformer, config, allowedEnv = new Set() } = instance;
192
+ let cacheBailouts = [];
193
+ const resolveFunc = (from, to) => {
194
+ let customRequire = module.createRequire(from);
195
+ let resolvedPath = customRequire.resolve(to);
196
+ // Tranformer not cacheable due to use of the resolve function
197
+ cacheBailouts.push(`resolve(${from}, ${to})`);
198
+ return Promise.resolve(resolvedPath);
199
+ };
200
+ const env = new compat_1.Environment(innerAsset.env);
201
+ let mutableAsset = new compat_1.MutableAsset(innerAsset,
202
+ // @ts-expect-error TS2345
203
+ contents, env, __classPrivateFieldGet(this, _AtlaspackWorker_fs, "f"), map, this.options.projectRoot);
204
+ const pluginOptions = new compat_1.PluginOptions(this.options);
205
+ const defaultOptions = {
206
+ logger: new logger_2.PluginLogger({ origin: key }),
207
+ tracer: new compat_1.PluginTracer(),
208
+ options: pluginOptions,
209
+ };
210
+ if (transformer.loadConfig) {
211
+ if (config != null) {
212
+ throw new Error(`Transformer (${key}) should not implement 'setup' and 'loadConfig'`);
213
+ }
214
+ // @ts-expect-error TS2345
215
+ config = await transformer.loadConfig({
216
+ config: new compat_1.PluginConfig({
217
+ plugin: key,
218
+ isSource: innerAsset.isSource,
219
+ searchPath: innerAsset.filePath,
220
+ env,
221
+ }, this.options),
222
+ ...defaultOptions,
223
+ });
224
+ // Transformer uses the deprecated loadConfig API, so mark as not
225
+ // cachable
226
+ cacheBailouts.push(`Transformer.loadConfig`);
227
+ }
228
+ if (transformer.parse) {
229
+ const ast = await transformer.parse({
230
+ // @ts-expect-error TS2322
231
+ asset: mutableAsset,
232
+ config,
233
+ resolve: resolveFunc,
234
+ ...defaultOptions,
235
+ });
236
+ if (ast) {
237
+ mutableAsset.setAST(ast);
238
+ }
239
+ cacheBailouts.push(`Transformer.parse`);
240
+ }
241
+ const [result, sideEffects] = await __classPrivateFieldGet(this, _AtlaspackWorker_sideEffectDetector, "f").monitorSideEffects(key, () => transformer.transform({
242
+ // @ts-expect-error TS2322
243
+ asset: mutableAsset,
244
+ config,
245
+ resolve: resolveFunc,
246
+ ...defaultOptions,
247
+ }));
248
+ if (sideEffects.envUsage.didEnumerate) {
249
+ cacheBailouts.push(`Env access: enumeration of process.env`);
250
+ }
251
+ for (let variable of sideEffects.envUsage.vars) {
252
+ if (variable in allowedEnv) {
253
+ continue;
254
+ }
255
+ cacheBailouts.push(`Env access: ${variable}`);
256
+ }
257
+ for (let { method, path } of sideEffects.fsUsage) {
258
+ cacheBailouts.push(`FS usage: ${method}(${path})`);
259
+ }
260
+ (0, assert_1.default)(result.length === 1, '[V3] Unimplemented: Multiple asset return from Node transformer');
261
+ (0, assert_1.default)(result[0] === mutableAsset, '[V3] Unimplemented: New asset returned from Node transformer');
262
+ if (transformer.generate) {
263
+ const ast = await mutableAsset.getAST();
264
+ if (ast) {
265
+ const output = await transformer.generate({
266
+ // @ts-expect-error TS2322
267
+ asset: mutableAsset,
268
+ ast,
269
+ ...defaultOptions,
270
+ });
271
+ if (typeof output.content === 'string') {
272
+ mutableAsset.setCode(output.content);
273
+ }
274
+ else if (output.content instanceof Buffer) {
275
+ mutableAsset.setBuffer(output.content);
276
+ }
277
+ else {
278
+ // @ts-expect-error TS2345
279
+ mutableAsset.setStream(output.content);
280
+ }
281
+ if (output.map) {
282
+ mutableAsset.setMap(output.map);
283
+ }
284
+ }
285
+ }
286
+ let assetBuffer = await mutableAsset.getBuffer();
287
+ // If the asset has no code, we set the buffer to null, which we can
288
+ // detect in Rust, to avoid passing back an empty buffer, which we can't.
289
+ if (assetBuffer.length === 0) {
290
+ assetBuffer = null;
291
+ }
292
+ if (pluginOptions.used) {
293
+ // Plugin options accessed, so not cachable
294
+ cacheBailouts.push(`Plugin options accessed`);
295
+ }
296
+ return [
297
+ {
298
+ id: mutableAsset.id,
299
+ bundleBehavior: compat_1.bundleBehaviorMap.intoNullable(mutableAsset.bundleBehavior),
300
+ code: [],
301
+ filePath: mutableAsset.filePath,
302
+ isBundleSplittable: mutableAsset.isBundleSplittable,
303
+ isSource: mutableAsset.isSource,
304
+ meta: mutableAsset.meta,
305
+ pipeline: mutableAsset.pipeline,
306
+ // Query should be undefined if it's empty
307
+ query: mutableAsset.query.toString() || undefined,
308
+ sideEffects: mutableAsset.sideEffects,
309
+ symbols: mutableAsset.symbols.intoNapi(),
310
+ type: mutableAsset.type,
311
+ uniqueKey: mutableAsset.uniqueKey,
312
+ },
313
+ assetBuffer,
314
+ // Only send back the map if it has changed
315
+ mutableAsset.isMapDirty
316
+ ? // @ts-expect-error TS2533
317
+ JSON.stringify((await mutableAsset.getMap()).toVLQ())
318
+ : '',
319
+ // Limit to first 10 bailouts
320
+ cacheBailouts.slice(0, 10),
321
+ ];
322
+ });
323
+ __classPrivateFieldSet(this, _AtlaspackWorker_resolvers, new Map(), "f");
324
+ __classPrivateFieldSet(this, _AtlaspackWorker_transformers, new Map(), "f");
325
+ __classPrivateFieldSet(this, _AtlaspackWorker_fs, new fs_1.NodeFS(), "f");
326
+ __classPrivateFieldSet(this, _AtlaspackWorker_packageManager, new package_manager_1.NodePackageManager(__classPrivateFieldGet(this, _AtlaspackWorker_fs, "f"), '/'), "f");
327
+ __classPrivateFieldSet(this, _AtlaspackWorker_sideEffectDetector, sideEffectDetector, "f"); // Use the global detector that was installed before imports
328
+ }
329
+ clearState() {
330
+ __classPrivateFieldGet(this, _AtlaspackWorker_resolvers, "f").clear();
331
+ __classPrivateFieldGet(this, _AtlaspackWorker_transformers, "f").clear();
332
+ __classPrivateFieldSet(this, _AtlaspackWorker_options, undefined, "f");
333
+ }
334
+ get options() {
335
+ if (__classPrivateFieldGet(this, _AtlaspackWorker_options, "f") == null) {
336
+ throw new Error('Plugin options have not been initialized');
337
+ }
338
+ return __classPrivateFieldGet(this, _AtlaspackWorker_options, "f");
339
+ }
340
+ async initializeTransformer(instance, specifier) {
341
+ let transformer = instance;
342
+ let setup, config, allowedEnv;
343
+ let packageManager = new package_manager_1.NodePackageManager(__classPrivateFieldGet(this, _AtlaspackWorker_fs, "f"), this.options.projectRoot);
344
+ if (transformer.setup) {
345
+ let setupResult = await transformer.setup({
346
+ logger: new logger_2.PluginLogger({ origin: specifier }),
347
+ options: new compat_1.PluginOptions({
348
+ ...this.options,
349
+ shouldAutoInstall: false,
350
+ inputFS: __classPrivateFieldGet(this, _AtlaspackWorker_fs, "f"),
351
+ outputFS: __classPrivateFieldGet(this, _AtlaspackWorker_fs, "f"),
352
+ packageManager,
353
+ }),
354
+ config: new compat_1.PluginConfig({
355
+ plugin: specifier,
356
+ searchPath: 'index',
357
+ // Consider project setup config as source
358
+ isSource: true,
359
+ }, this.options),
360
+ });
361
+ config = setupResult?.config;
362
+ allowedEnv = Object.fromEntries(setupResult?.env?.map((env) => [env, process.env[env]]) || []);
363
+ // Always add the following env vars to the cache key
364
+ allowedEnv['NODE_ENV'] = process.env['NODE_ENV'];
365
+ setup = {
366
+ conditions: setupResult?.conditions,
367
+ config,
368
+ env: allowedEnv,
369
+ disableCache: setupResult?.disableCache,
370
+ };
371
+ }
372
+ __classPrivateFieldGet(this, _AtlaspackWorker_transformers, "f").set(specifier, {
373
+ transformer,
374
+ config,
375
+ packageManager,
376
+ allowedEnv,
377
+ });
378
+ return setup;
379
+ }
380
+ }
381
+ exports.AtlaspackWorker = AtlaspackWorker;
382
+ _AtlaspackWorker_resolvers = new WeakMap(), _AtlaspackWorker_transformers = new WeakMap(), _AtlaspackWorker_fs = new WeakMap(), _AtlaspackWorker_packageManager = new WeakMap(), _AtlaspackWorker_options = new WeakMap(), _AtlaspackWorker_sideEffectDetector = new WeakMap();
383
+ // Forward all logger events from this worker thread to the main thread so
384
+ // they are re-emitted into the main-thread logger and reach reporters.
385
+ logger_1.default.onLog((event) => {
386
+ worker_threads_1.parentPort?.postMessage({ type: 'logEvent', event });
387
+ });
388
+ // Create napi worker and send it back to main thread
389
+ const worker = new AtlaspackWorker();
390
+ const napiWorker = napi.newNodejsWorker(worker);
391
+ worker_threads_1.parentPort?.postMessage(napiWorker);
392
+ worker_threads_1.parentPort?.setMaxListeners(worker_threads_1.parentPort.getMaxListeners() + 1);
393
+ worker_threads_1.parentPort?.addListener('message', (message) => {
394
+ if (message === 'clearState') {
395
+ worker.clearState();
396
+ worker_threads_1.parentPort?.postMessage('stateCleared');
397
+ }
398
+ });
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERROR = exports.STARTUP = exports.OPTION_CHANGE = exports.ENV_CHANGE = exports.FILE_DELETE = exports.FILE_UPDATE = exports.FILE_CREATE = exports.INITIAL_BUILD = exports.VALID = exports.HASH_REF_REGEX = exports.HASH_REF_HASH_LEN = exports.HASH_REF_PREFIX = exports.ATLASPACK_VERSION = void 0;
4
+ const package_json_1 = require("../package.json");
5
+ exports.ATLASPACK_VERSION = package_json_1.version;
6
+ exports.HASH_REF_PREFIX = 'HASH_REF_';
7
+ exports.HASH_REF_HASH_LEN = 16;
8
+ exports.HASH_REF_REGEX = new RegExp(`${exports.HASH_REF_PREFIX}\\w{${exports.HASH_REF_HASH_LEN}}`, 'g');
9
+ exports.VALID = 0;
10
+ exports.INITIAL_BUILD = 1 << 0;
11
+ exports.FILE_CREATE = 1 << 1;
12
+ exports.FILE_UPDATE = 1 << 2;
13
+ exports.FILE_DELETE = 1 << 3;
14
+ exports.ENV_CHANGE = 1 << 4;
15
+ exports.OPTION_CHANGE = 1 << 5;
16
+ exports.STARTUP = 1 << 6;
17
+ exports.ERROR = 1 << 7;