@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,72 @@
1
+ import type { GenerateOutput, Transformer, TransformerResult, PackageName, SemverRange } from '@atlaspack/types';
2
+ import type { WorkerApi } from '@atlaspack/workers';
3
+ import type { Asset as AssetValue, TransformationRequest, Config, DevDepRequest, AtlaspackOptions, InternalDevDepOptions, Invalidations, DevDepRequestRef } from './types';
4
+ import type { LoadedPlugin } from './AtlaspackConfig';
5
+ import { Diagnostic } from '@atlaspack/diagnostic';
6
+ import { AtlaspackConfig } from './AtlaspackConfig';
7
+ import { ResolverRunner } from './requests/PathRequest';
8
+ import UncommittedAsset from './UncommittedAsset';
9
+ import PluginOptions from './public/PluginOptions';
10
+ import { ConfigRequest } from './requests/ConfigRequest';
11
+ import { ProjectPath } from './projectPath';
12
+ type GenerateFunc = (input: UncommittedAsset) => Promise<GenerateOutput>;
13
+ type PostProcessFunc = (arg1: Array<UncommittedAsset>) => Promise<Array<UncommittedAsset> | null>;
14
+ export type TransformationOpts = {
15
+ options: AtlaspackOptions;
16
+ config: AtlaspackConfig;
17
+ request: TransformationRequest;
18
+ workerApi: WorkerApi;
19
+ };
20
+ export type TransformationResult = {
21
+ assets?: Array<AssetValue>;
22
+ error?: Array<Diagnostic>;
23
+ configRequests: Array<ConfigRequest>;
24
+ invalidations: Invalidations;
25
+ devDepRequests: Array<DevDepRequest | DevDepRequestRef>;
26
+ };
27
+ export default class Transformation {
28
+ request: TransformationRequest;
29
+ configs: Map<string, Config>;
30
+ devDepRequests: Map<string, DevDepRequest | DevDepRequestRef>;
31
+ pluginDevDeps: Array<InternalDevDepOptions>;
32
+ options: AtlaspackOptions;
33
+ pluginOptions: PluginOptions;
34
+ workerApi: WorkerApi;
35
+ atlaspackConfig: AtlaspackConfig;
36
+ invalidations: Invalidations;
37
+ resolverRunner: ResolverRunner;
38
+ constructor({ request, options, config, workerApi }: TransformationOpts);
39
+ run(): Promise<TransformationResult>;
40
+ loadAsset(): Promise<UncommittedAsset>;
41
+ runPipelines(pipeline: Pipeline, initialAsset: UncommittedAsset): Promise<Array<UncommittedAsset>>;
42
+ addDevDependency(opts: InternalDevDepOptions): Promise<void>;
43
+ runPipeline(pipeline: Pipeline, initialAsset: UncommittedAsset): Promise<Array<UncommittedAsset>>;
44
+ loadPipeline(filePath: ProjectPath, isSource: boolean, pipeline?: string | null): Promise<Pipeline>;
45
+ loadNextPipeline({ filePath, isSource, newType, newPipeline, currentPipeline, }: {
46
+ filePath: ProjectPath;
47
+ isSource: boolean;
48
+ newType: string;
49
+ newPipeline: string | null | undefined;
50
+ currentPipeline: Pipeline;
51
+ }): Promise<Pipeline | null | undefined>;
52
+ loadTransformerConfig(transformer: LoadedPlugin<Transformer<unknown>>, isSource: boolean): Promise<Config | null | undefined>;
53
+ runTransformer(pipeline: Pipeline, asset: UncommittedAsset, transformer: Transformer<unknown>, transformerName: string, preloadedConfig: Config | null | undefined, configKeyPath: string | null | undefined, atlaspackConfig: AtlaspackConfig): Promise<ReadonlyArray<TransformerResult | UncommittedAsset>>;
54
+ }
55
+ type Pipeline = {
56
+ id: string;
57
+ transformers: Array<TransformerWithNameAndConfig>;
58
+ options: AtlaspackOptions;
59
+ pluginOptions: PluginOptions;
60
+ workerApi: WorkerApi;
61
+ postProcess?: PostProcessFunc;
62
+ generate?: GenerateFunc;
63
+ };
64
+ type TransformerWithNameAndConfig = {
65
+ name: PackageName;
66
+ plugin: Transformer<unknown>;
67
+ config: Config | null | undefined;
68
+ configKeyPath?: string;
69
+ resolveFrom: ProjectPath;
70
+ range?: SemverRange | null | undefined;
71
+ };
72
+ export {};
@@ -0,0 +1,61 @@
1
+ import type { AST, Blob, DependencyOptions, FileCreateInvalidation, GenerateOutput, PackageName, TransformerResult } from '@atlaspack/types';
2
+ import type { Asset, Dependency, AtlaspackOptions, Invalidations } from './types';
3
+ import { Readable } from 'stream';
4
+ import SourceMap from '@atlaspack/source-map';
5
+ import { ProjectPath } from './projectPath';
6
+ type UncommittedAssetOptions = {
7
+ value: Asset;
8
+ options: AtlaspackOptions;
9
+ content?: Blob | null | undefined;
10
+ mapBuffer?: Buffer | null | undefined;
11
+ ast?: AST | null | undefined;
12
+ isASTDirty?: boolean | null | undefined;
13
+ code?: string | null | undefined;
14
+ invalidations?: Invalidations;
15
+ };
16
+ export default class UncommittedAsset {
17
+ value: Asset;
18
+ options: AtlaspackOptions;
19
+ content: Blob | Promise<Buffer> | null | undefined;
20
+ mapBuffer: Buffer | null | undefined;
21
+ sourceContent: string | null | undefined;
22
+ map: SourceMap | null | undefined;
23
+ ast: AST | null | undefined;
24
+ isASTDirty: boolean;
25
+ code: string | null | undefined;
26
+ invalidations: Invalidations;
27
+ generate: (() => Promise<GenerateOutput>) | null | undefined;
28
+ constructor({ value, options, content, mapBuffer, ast, isASTDirty, code, invalidations, }: UncommittedAssetOptions);
29
+ commit(): Promise<void>;
30
+ commitContent(contentKey: string): Promise<{
31
+ size: number;
32
+ hash: string;
33
+ }>;
34
+ getCode(): Promise<string>;
35
+ getBuffer(): Promise<Buffer>;
36
+ getStream(): Readable;
37
+ setCode(code: string): void;
38
+ setBuffer(buffer: Buffer): void;
39
+ /**
40
+ * @deprecated This has been broken on any cache other than FSCache for a long time.
41
+ */
42
+ setStream(stream: Readable): void;
43
+ loadExistingSourcemap(): Promise<SourceMap | null | undefined>;
44
+ getMapBuffer(): Promise<Buffer | null | undefined>;
45
+ getMap(): Promise<SourceMap | null | undefined>;
46
+ setMap(map?: SourceMap | null): void;
47
+ getAST(): Promise<AST | null | undefined>;
48
+ setAST(ast: AST): void;
49
+ clearAST(): void;
50
+ getCacheKey(key: string): string;
51
+ addDependency(opts: DependencyOptions): string;
52
+ invalidateOnFileChange(filePath: ProjectPath): void;
53
+ invalidateOnFileCreate(invalidation: FileCreateInvalidation): void;
54
+ invalidateOnEnvChange(key: string): void;
55
+ invalidateOnBuild(): void;
56
+ invalidateOnStartup(): void;
57
+ getDependencies(): Array<Dependency>;
58
+ createChildAsset(result: TransformerResult, plugin: PackageName, configPath: ProjectPath, configKeyPath?: string): UncommittedAsset;
59
+ updateId(): void;
60
+ }
61
+ export {};
@@ -0,0 +1,37 @@
1
+ import type { WorkerApi } from '@atlaspack/workers';
2
+ import type { AssetGroup, AtlaspackOptions, ReportFn } from './types';
3
+ import type { Validator, ValidateResult } from '@atlaspack/types';
4
+ import { AtlaspackConfig } from './AtlaspackConfig';
5
+ import UncommittedAsset from './UncommittedAsset';
6
+ export type ValidationOpts = {
7
+ config: AtlaspackConfig;
8
+ /**
9
+ * If true, this Validation instance will run all validators that implement the single-threaded "validateAll" method.
10
+ * If falsy, it will run validators that implement the one-asset-at-a-time "validate" method.
11
+ */
12
+ dedicatedThread?: boolean;
13
+ options: AtlaspackOptions;
14
+ requests: AssetGroup[];
15
+ report: ReportFn;
16
+ workerApi?: WorkerApi;
17
+ };
18
+ export default class Validation {
19
+ allAssets: {
20
+ [validatorName: string]: UncommittedAsset[];
21
+ };
22
+ allValidators: {
23
+ [validatorName: string]: Validator;
24
+ };
25
+ dedicatedThread: boolean;
26
+ impactfulOptions: Partial<AtlaspackOptions>;
27
+ options: AtlaspackOptions;
28
+ atlaspackConfig: AtlaspackConfig;
29
+ report: ReportFn;
30
+ requests: AssetGroup[];
31
+ workerApi: WorkerApi | null | undefined;
32
+ constructor({ config, dedicatedThread, options, requests, report, workerApi, }: ValidationOpts);
33
+ run(): Promise<void>;
34
+ buildAssetsAndValidators(): Promise<void>;
35
+ handleResults(validatorResults: Array<ValidateResult | null | undefined>): void;
36
+ loadAsset(request: AssetGroup): Promise<UncommittedAsset>;
37
+ }
@@ -0,0 +1,25 @@
1
+ import type { SharedReference } from '@atlaspack/workers';
2
+ import type { Asset, Config, DevDepRequest, AtlaspackOptions, DevDepRequestRef } from './types';
3
+ import type { AtlaspackConfig } from './AtlaspackConfig';
4
+ import type PluginOptions from './public/PluginOptions';
5
+ import type { RequestResult, RunAPI } from './RequestTracker';
6
+ import InternalBundleGraph from './BundleGraph';
7
+ /**
8
+ * The applyRuntimes function is responsible for generating all the runtimes
9
+ * (assets created during the build that don't actually exist on disk) and then
10
+ * linking them into the bundle graph.
11
+ *
12
+ * Introduction of manifest bundles: https://github.com/parcel-bundler/parcel/pull/8837
13
+ * Introduction of reverse topology: https://github.com/parcel-bundler/parcel/pull/8981
14
+ */
15
+ export default function applyRuntimes<TResult extends RequestResult>({ bundleGraph, config, options, pluginOptions, api, optionsRef, previousDevDeps, devDepRequests, configs, }: {
16
+ bundleGraph: InternalBundleGraph;
17
+ config: AtlaspackConfig;
18
+ options: AtlaspackOptions;
19
+ optionsRef: SharedReference;
20
+ pluginOptions: PluginOptions;
21
+ api: RunAPI<TResult>;
22
+ previousDevDeps: Map<string, string>;
23
+ devDepRequests: Map<string, DevDepRequest | DevDepRequestRef>;
24
+ configs: Map<string, Config>;
25
+ }): Promise<Map<string, Asset>>;
@@ -0,0 +1,42 @@
1
+ import type { ASTGenerator, BundleBehavior, FilePath, GenerateOutput, Meta, PackageName, Stats, SourceLocation } from '@atlaspack/types';
2
+ import type { Asset, RequestInvalidation, Dependency, AtlaspackOptions } from './types';
3
+ import CommittedAsset from './CommittedAsset';
4
+ import UncommittedAsset from './UncommittedAsset';
5
+ import { ProjectPath } from './projectPath';
6
+ import type { EnvironmentRef } from './EnvironmentManager';
7
+ export type AssetOptions = {
8
+ id?: string;
9
+ committed?: boolean;
10
+ code: string | undefined | null;
11
+ filePath: ProjectPath;
12
+ query?: string | null | undefined;
13
+ type: string;
14
+ contentKey?: string | null | undefined;
15
+ mapKey?: string | null | undefined;
16
+ astKey?: string | null | undefined;
17
+ astGenerator?: ASTGenerator | null | undefined;
18
+ dependencies?: Map<string, Dependency>;
19
+ bundleBehavior?: BundleBehavior | null | undefined;
20
+ isBundleSplittable?: boolean | null | undefined;
21
+ isSource: boolean;
22
+ env: EnvironmentRef;
23
+ meta?: Meta;
24
+ outputHash?: string | null | undefined;
25
+ pipeline?: string | null | undefined;
26
+ stats: Stats;
27
+ symbols?: Map<symbol, {
28
+ local: symbol;
29
+ loc: SourceLocation | null | undefined;
30
+ meta?: Meta | null | undefined;
31
+ }> | null | undefined;
32
+ sideEffects?: boolean;
33
+ uniqueKey?: string | null | undefined;
34
+ plugin?: PackageName;
35
+ configPath?: ProjectPath;
36
+ configKeyPath?: string;
37
+ };
38
+ export declare function createAssetIdFromOptions(options: AssetOptions): string;
39
+ export declare function createAsset(projectRoot: FilePath, options: AssetOptions): Asset;
40
+ export declare function generateFromAST(asset: CommittedAsset | UncommittedAsset): Promise<GenerateOutput>;
41
+ export declare function getInvalidationId(invalidation: RequestInvalidation): string;
42
+ export declare function getInvalidationHash(invalidations: Array<RequestInvalidation>, options: AtlaspackOptions): Promise<string>;
@@ -0,0 +1,35 @@
1
+ import { AtlaspackNapi, Lmdb, AtlaspackNapiOptions, CacheStats, PackageOptions } from '@atlaspack/rust';
2
+ import { Diagnostic } from '@atlaspack/diagnostic';
3
+ import type { Event } from '@parcel/watcher';
4
+ import type { NapiWorkerPool as INapiWorkerPool } from '@atlaspack/types';
5
+ import type BundleGraph from '../BundleGraph';
6
+ import { RunPackagerRunnerResult } from '../PackagerRunner';
7
+ export type AtlaspackV3Options = {
8
+ fs?: AtlaspackNapiOptions['fs'];
9
+ packageManager?: AtlaspackNapiOptions['packageManager'];
10
+ threads?: number;
11
+ /**
12
+ * A reference to LMDB lite's rust object
13
+ */
14
+ lmdb: Lmdb;
15
+ featureFlags?: {
16
+ [key: string]: string | boolean;
17
+ };
18
+ napiWorkerPool?: INapiWorkerPool;
19
+ } & AtlaspackNapiOptions['options'];
20
+ export declare class AtlaspackV3 {
21
+ _atlaspack_napi: AtlaspackNapi;
22
+ _napiWorkerPool: INapiWorkerPool;
23
+ _isDefaultNapiWorkerPool: boolean;
24
+ constructor(atlaspack_napi: AtlaspackNapi, napiWorkerPool: INapiWorkerPool, isDefaultNapiWorkerPool: boolean);
25
+ static create({ fs, packageManager, threads, lmdb, napiWorkerPool, ...options }: AtlaspackV3Options): Promise<AtlaspackV3>;
26
+ end(): void;
27
+ buildAssetGraph(progressCallback?: (eventJson: string) => void): Promise<any>;
28
+ buildBundleGraph(progressCallback?: (eventJson: string) => void): Promise<any>;
29
+ build(progressCallback: (eventJson: string) => void): Promise<any>;
30
+ loadBundleGraph(bundleGraph: BundleGraph): Promise<void>;
31
+ updateBundleGraph(bundleGraph: BundleGraph, changedAssetIds: string[]): Promise<void>;
32
+ package(bundleId: string, options?: PackageOptions): Promise<[RunPackagerRunnerResult, Diagnostic | null]>;
33
+ respondToFsEvents(events: Array<Event>): Promise<boolean>;
34
+ completeCacheSession(): Promise<CacheStats>;
35
+ }
@@ -0,0 +1,13 @@
1
+ import type { NapiWorkerPool as INapiWorkerPool } from '@atlaspack/types';
2
+ import type { Transferable } from '@atlaspack/rust';
3
+ export type NapiWorkerPoolOptions = {
4
+ workerCount?: number;
5
+ };
6
+ export declare class NapiWorkerPool implements INapiWorkerPool {
7
+ #private;
8
+ constructor({ workerCount }?: NapiWorkerPoolOptions);
9
+ clearAllWorkerState(): Promise<void[]>;
10
+ workerCount(): number;
11
+ getWorkers(): Promise<Array<Transferable>>;
12
+ shutdown(): void;
13
+ }
@@ -0,0 +1,13 @@
1
+ import type { FileSystem, JsCallable } from '@atlaspack/rust';
2
+ import type { Encoding, FilePath, FileSystem as IFileSystem } from '@atlaspack/types';
3
+ export declare class FileSystemV3 implements FileSystem {
4
+ #private;
5
+ constructor(fs: IFileSystem);
6
+ canonicalize: JsCallable<[FilePath], FilePath>;
7
+ createDirectory: JsCallable<[FilePath], Promise<undefined>>;
8
+ cwd: JsCallable<[], FilePath>;
9
+ isFile: JsCallable<[FilePath], boolean>;
10
+ isDir: JsCallable<[FilePath], boolean>;
11
+ readFile: JsCallable<[FilePath, Encoding], string>;
12
+ writeFile: JsCallable<[FilePath, number[]], Promise<void>>;
13
+ }
@@ -0,0 +1,6 @@
1
+ export { FileSystemV3 } from './fs';
2
+ export { AtlaspackV3 } from './AtlaspackV3';
3
+ export { NapiWorkerPool } from './NapiWorkerPool';
4
+ export * from './AtlaspackV3';
5
+ export * from './NapiWorkerPool';
6
+ export type { CacheStats } from '@atlaspack/rust';
@@ -0,0 +1 @@
1
+ export declare function jsCallable<Args extends ReadonlyArray<unknown>, Return>(fn: (...rest: Args) => Return | Promise<Return>): (...rest: Args) => Promise<Return>;
@@ -0,0 +1,51 @@
1
+ import type { Symbol as NapiSymbol } from '@atlaspack/rust';
2
+ import type { AssetSymbols as IAssetSymbols, MutableAssetSymbols as IMutableAssetSymbols, MutableDependencySymbols as IMutableDependencySymbols, Symbol, SourceLocation, Meta } from '@atlaspack/types';
3
+ export declare class MutableDependencySymbols implements IMutableDependencySymbols {
4
+ #private;
5
+ get isCleared(): boolean;
6
+ constructor(inner: NapiSymbol[] | null | undefined | null);
7
+ ensure(): void;
8
+ get(exportSymbol: Symbol): DependencyAssetSymbol | null | undefined;
9
+ hasExportSymbol(exportSymbol: Symbol): boolean;
10
+ hasLocalSymbol(local: Symbol): boolean;
11
+ exportSymbols(): Iterable<Symbol>;
12
+ set(exportSymbol: Symbol, local: Symbol, loc?: SourceLocation | null, isWeak?: boolean | null): void;
13
+ delete(exportSymbol: Symbol): void;
14
+ [Symbol.iterator](): MapIterator<DependencyAssetSymbol>;
15
+ }
16
+ export declare class AssetSymbols implements IAssetSymbols {
17
+ #private;
18
+ get isCleared(): boolean;
19
+ constructor(inner: NapiSymbol[] | null | undefined | null);
20
+ get(exportSymbol: Symbol): AssetSymbol | null | undefined;
21
+ hasExportSymbol(exportSymbol: Symbol): boolean;
22
+ hasLocalSymbol(local: Symbol): boolean;
23
+ exportSymbols(): Iterable<Symbol>;
24
+ intoNapi(): NapiSymbol[];
25
+ [Symbol.iterator](): MapIterator<AssetSymbol>;
26
+ }
27
+ export declare class MutableAssetSymbols implements IMutableAssetSymbols {
28
+ #private;
29
+ get isCleared(): boolean;
30
+ constructor(inner: NapiSymbol[] | null | undefined | null);
31
+ intoNapi(): NapiSymbol[];
32
+ ensure(): void;
33
+ set(exportSymbol: Symbol, local: Symbol, loc?: SourceLocation | null, meta?: Meta | null): void;
34
+ get(exportSymbol: Symbol): AssetSymbol | null | undefined;
35
+ hasExportSymbol(exportSymbol: Symbol): boolean;
36
+ hasLocalSymbol(local: Symbol): boolean;
37
+ exportSymbols(): Iterable<Symbol>;
38
+ delete(exportSymbol: Symbol): void;
39
+ [Symbol.iterator](): MapIterator<AssetSymbol>;
40
+ }
41
+ export type AssetSymbol = {
42
+ local: Symbol;
43
+ loc: SourceLocation | null | undefined;
44
+ meta?: Meta | null | undefined;
45
+ };
46
+ export type DependencyAssetSymbol = {
47
+ local: Symbol;
48
+ loc: SourceLocation | null | undefined;
49
+ meta?: Meta | null | undefined;
50
+ isWeak: boolean;
51
+ };
@@ -0,0 +1,14 @@
1
+ import type { BundleBehavior, DependencyPriority, SpecifierType } from '@atlaspack/types';
2
+ export declare class BitFlags<K> {
3
+ #private;
4
+ constructor(source: Partial<Record<K, number>>);
5
+ into(key: K): number;
6
+ intoNullable(key?: K | null): number | null | undefined;
7
+ from(key: number): K;
8
+ fromNullable(key?: number | null): K | null | undefined;
9
+ toArray(keys: number): K[];
10
+ }
11
+ export declare const bundleBehaviorMap: BitFlags<BundleBehavior>;
12
+ export declare const dependencyPriorityMap: BitFlags<DependencyPriority>;
13
+ export declare const packageConditionsMap: BitFlags<string>;
14
+ export declare const specifierTypeMap: BitFlags<SpecifierType>;
@@ -0,0 +1,25 @@
1
+ import type { Dependency as NapiDependency } from '@atlaspack/rust';
2
+ import type { Dependency as IDependency, DependencySpecifier, SpecifierType, DependencyPriority, BundleBehavior, SourceLocation, Environment as IEnvironment, Meta, Target as ITarget, FilePath, SemverRange, MutableDependencySymbols as IMutableDependencySymbols } from '@atlaspack/types';
3
+ export declare class Dependency implements IDependency {
4
+ env: IEnvironment;
5
+ meta: Meta;
6
+ target: ITarget | null | undefined;
7
+ symbols: IMutableDependencySymbols;
8
+ specifier: DependencySpecifier;
9
+ specifierType: SpecifierType;
10
+ priority: DependencyPriority;
11
+ bundleBehavior: BundleBehavior | null | undefined;
12
+ needsStableName: boolean;
13
+ isOptional: boolean;
14
+ isEntry: boolean;
15
+ loc: SourceLocation | null | undefined;
16
+ packageConditions: Array<string> | null | undefined;
17
+ sourceAssetId: string | null | undefined;
18
+ sourcePath: FilePath | null | undefined;
19
+ sourceAssetType: string | null | undefined;
20
+ resolveFrom: FilePath | null | undefined;
21
+ range: SemverRange | null | undefined;
22
+ pipeline: string | null | undefined;
23
+ get id(): string;
24
+ constructor(inner: NapiDependency, env: IEnvironment);
25
+ }
@@ -0,0 +1,27 @@
1
+ import type { Environment as NapiEnvironment } from '@atlaspack/rust';
2
+ import type { Environment as IEnvironment, EnvironmentContext, Engines, PackageName, OutputFormat, SourceType, TargetSourceMapOptions, SourceLocation, VersionMap, EnvironmentFeature, EnvMap } from '@atlaspack/types';
3
+ export declare class Environment implements IEnvironment {
4
+ id: string;
5
+ includeNodeModules: boolean | Array<PackageName> | Partial<Record<PackageName, boolean>>;
6
+ context: EnvironmentContext;
7
+ engines: Engines;
8
+ outputFormat: OutputFormat;
9
+ sourceType: SourceType;
10
+ isLibrary: boolean;
11
+ shouldOptimize: boolean;
12
+ shouldScopeHoist: boolean;
13
+ sourceMap: TargetSourceMapOptions | null | undefined;
14
+ loc: SourceLocation | null | undefined;
15
+ unstableSingleFileOutput: boolean;
16
+ customEnv: EnvMap | null | undefined;
17
+ constructor(inner: NapiEnvironment);
18
+ isBrowser(): boolean;
19
+ isNode(): boolean;
20
+ isElectron(): boolean;
21
+ isWorker(): boolean;
22
+ isWorklet(): boolean;
23
+ isTesseract(): boolean;
24
+ isIsolated(): boolean;
25
+ matchesEngines(minVersions: VersionMap, defaultValue?: boolean): boolean;
26
+ supports(feature: EnvironmentFeature, defaultValue?: boolean): boolean;
27
+ }
@@ -1,10 +1,8 @@
1
- // @flow
2
1
  export * from './bitflags';
3
2
  export * from './dependency';
4
3
  export * from './environment';
5
4
  export * from './target';
6
5
  export * from './plugin-config';
7
6
  export * from './plugin-tracer';
8
- export * from './plugin-logger';
9
7
  export * from './plugin-options';
10
8
  export * from './mutable-asset';
@@ -0,0 +1,49 @@
1
+ import SourceMap from '@atlaspack/source-map';
2
+ import * as napi from '@atlaspack/rust';
3
+ import { Readable } from 'stream';
4
+ import type { MutableAsset as IMutableAsset, Stats, FileSystem, FilePath, Environment, Meta, BundleBehavior, ASTGenerator, AST, Dependency, DependencyOptions, FileCreateInvalidation, EnvironmentOptions } from '@atlaspack/types';
5
+ import { MutableAssetSymbols } from './asset-symbols';
6
+ export type InnerAsset = napi.Asset;
7
+ export declare class MutableAsset implements IMutableAsset {
8
+ #private;
9
+ bundleBehavior: BundleBehavior | null | undefined;
10
+ env: Environment;
11
+ filePath: FilePath;
12
+ fs: FileSystem;
13
+ id: string;
14
+ isBundleSplittable: boolean;
15
+ isMapDirty: boolean;
16
+ isSource: boolean;
17
+ meta: Meta;
18
+ pipeline: string | null | undefined;
19
+ query: URLSearchParams;
20
+ sideEffects: boolean;
21
+ stats: Stats;
22
+ symbols: MutableAssetSymbols;
23
+ type: string;
24
+ uniqueKey: string | null | undefined;
25
+ get astGenerator(): ASTGenerator | null | undefined;
26
+ set astGenerator(value?: ASTGenerator | null);
27
+ constructor(asset: InnerAsset, contents: Buffer, env: Environment, fs: FileSystem, map: string | null | undefined, projectRoot: string);
28
+ getAST(): Promise<AST | null | undefined>;
29
+ setAST(ast: AST): void;
30
+ isASTDirty(): boolean;
31
+ getCode(): Promise<string>;
32
+ setCode(code: string): void;
33
+ getBuffer(): Promise<Buffer>;
34
+ setBuffer(buf: Buffer): void;
35
+ getStream(): Readable;
36
+ setStream(stream: Readable): void;
37
+ getMap(): Promise<SourceMap | null | undefined>;
38
+ setMap(sourceMap?: SourceMap | null): void;
39
+ getMapBuffer(): Promise<Buffer | null | undefined>;
40
+ getDependencies(): ReadonlyArray<Dependency>;
41
+ addDependency(options: DependencyOptions): string;
42
+ addURLDependency(url: string, opts: Partial<DependencyOptions>): string;
43
+ setEnvironment(opts: EnvironmentOptions): void;
44
+ invalidateOnFileChange(invalidation: FilePath): void;
45
+ invalidateOnFileCreate(invalidation: FileCreateInvalidation): void;
46
+ invalidateOnEnvChange(invalidation: string): void;
47
+ invalidateOnStartup(): void;
48
+ invalidateOnBuild(): void;
49
+ }
@@ -0,0 +1,29 @@
1
+ import type { Config as IPluginConfig, DevDepOptions, FilePath, Environment, FileCreateInvalidation, ConfigResultWithFilePath, PackageJSON } from '@atlaspack/types';
2
+ import { type ConfigOpts } from '../../../InternalConfig';
3
+ export declare class PluginConfig implements IPluginConfig {
4
+ #private;
5
+ isSource: boolean;
6
+ searchPath: FilePath;
7
+ env: Environment;
8
+ constructor(configOpts: ConfigOpts, options: any);
9
+ invalidateOnFileChange(filePath: FilePath): void;
10
+ invalidateOnFileCreate(invalidations: FileCreateInvalidation): void;
11
+ invalidateOnEnvChange(invalidation: string): void;
12
+ invalidateOnStartup(): void;
13
+ invalidateOnBuild(): void;
14
+ addDevDependency(options: DevDepOptions): void;
15
+ setCacheKey(key: string): void;
16
+ getConfig<T>(filePaths: Array<FilePath>, options?: {
17
+ packageKey?: string;
18
+ parse?: boolean;
19
+ exclude?: boolean;
20
+ }): Promise<ConfigResultWithFilePath<T> | null | undefined>;
21
+ getConfigFrom<T>(searchPath: FilePath, filePaths: Array<FilePath>, options?: {
22
+ packageKey?: string;
23
+ parse?: boolean;
24
+ exclude?: boolean;
25
+ } | {
26
+ readTracking?: boolean;
27
+ }): Promise<ConfigResultWithFilePath<T> | null | undefined>;
28
+ getPackage(): Promise<PackageJSON | null | undefined>;
29
+ }
@@ -0,0 +1,23 @@
1
+ import type { PluginOptions as IPluginOptions, LogLevel, FileSystem, PackageManager, EnvMap, FilePath, HMROptions, ServerOptions, DetailedReportOptions, BuildMode } from '@atlaspack/types';
2
+ import type { FeatureFlags } from '@atlaspack/feature-flags';
3
+ export declare class PluginOptions implements IPluginOptions {
4
+ #private;
5
+ used: boolean;
6
+ get env(): EnvMap;
7
+ get projectRoot(): FilePath;
8
+ get packageManager(): PackageManager;
9
+ get mode(): BuildMode;
10
+ get parcelVersion(): string;
11
+ get hmrOptions(): HMROptions | null | undefined;
12
+ get serveOptions(): ServerOptions | false;
13
+ get shouldBuildLazily(): boolean;
14
+ get shouldAutoInstall(): boolean;
15
+ get logLevel(): LogLevel;
16
+ get cacheDir(): string;
17
+ get inputFS(): FileSystem;
18
+ get outputFS(): FileSystem;
19
+ get instanceId(): string;
20
+ get detailedReport(): DetailedReportOptions | null | undefined;
21
+ get featureFlags(): FeatureFlags;
22
+ constructor(options: Partial<IPluginOptions>);
23
+ }
@@ -0,0 +1,5 @@
1
+ import type { PluginTracer as IPluginTracer } from '@atlaspack/types';
2
+ export declare class PluginTracer implements IPluginTracer {
3
+ enabled: false;
4
+ createMeasurement(): void;
5
+ }
@@ -0,0 +1,11 @@
1
+ import type { Target as NapiTarget } from '@atlaspack/rust';
2
+ import type { Target as ITarget, FilePath, Environment, SourceLocation } from '@atlaspack/types';
3
+ export declare class Target implements ITarget {
4
+ distEntry: FilePath | null | undefined;
5
+ distDir: FilePath;
6
+ env: Environment;
7
+ name: string;
8
+ publicUrl: string;
9
+ loc: SourceLocation | null | undefined;
10
+ constructor(inner: NapiTarget, env: Environment);
11
+ }
@@ -0,0 +1,76 @@
1
+ import type { Async } from '@atlaspack/types';
2
+ export interface FsUsage {
3
+ method: string;
4
+ path?: string;
5
+ }
6
+ export interface EnvUsage {
7
+ vars: Set<string>;
8
+ didEnumerate: boolean;
9
+ }
10
+ export interface SideEffects {
11
+ fsUsage: FsUsage[];
12
+ envUsage: EnvUsage;
13
+ packageName: string;
14
+ }
15
+ /**
16
+ * Side effect detector using AsyncLocalStorage to track filesystem and environment variable
17
+ * access across concurrent async operations in a Node.js worker thread.
18
+ *
19
+ * Usage:
20
+ * const detector = new SideEffectDetector();
21
+ * detector.install();
22
+ *
23
+ * const [result, sideEffects] = await detector.monitorSideEffects(async () => {
24
+ * return await someOperation();
25
+ * });
26
+ *
27
+ * console.log(sideEffects.fsUsage); // Array of filesystem accesses
28
+ * console.log(sideEffects.envUsage); // Array of environment variable accesses
29
+ */
30
+ export declare class SideEffectDetector {
31
+ private asyncStorage;
32
+ private patchesInstalled;
33
+ private originalMethods;
34
+ constructor();
35
+ /**
36
+ * Install global patches for filesystem and environment variable monitoring.
37
+ * This should be called once when the worker starts up.
38
+ */
39
+ install(): void;
40
+ /**
41
+ * Monitor side effects for an async operation.
42
+ *
43
+ * @param {Function} fn - Async function to monitor
44
+ * @param {Object} options - Optional configuration
45
+ * @param {string} options.label - Optional label for debugging
46
+ * @returns {Promise<[any, SideEffects]>} Tuple of [result, sideEffects]
47
+ */
48
+ monitorSideEffects<T>(packageName: string, fn: () => Async<T>): Async<[T, SideEffects]>;
49
+ /**
50
+ * Get the current monitoring context, if any.
51
+ * Useful for debugging or custom instrumentation.
52
+ *
53
+ * @returns {Object|null} Current context or null if not monitoring
54
+ */
55
+ getCurrentContext(): SideEffects | null;
56
+ /**
57
+ * Check if currently monitoring side effects.
58
+ *
59
+ * @returns {boolean}
60
+ */
61
+ isMonitoring(): boolean;
62
+ /**
63
+ * Patch filesystem methods to record access.
64
+ * @private
65
+ */
66
+ private _patchFilesystem;
67
+ /**
68
+ * Patch process.env to record environment variable access.
69
+ * @private
70
+ */
71
+ private _patchProcessEnv;
72
+ }
73
+ /**
74
+ * Default instance for convenience. Most workers will only need one detector.
75
+ */
76
+ export declare const defaultDetector: SideEffectDetector;