@atlaspack/core 2.16.2-canary.37 → 2.16.2-canary.371

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 (367) hide show
  1. package/CHANGELOG.md +941 -0
  2. package/dist/AssetGraph.js +591 -0
  3. package/dist/Atlaspack.js +666 -0
  4. package/dist/AtlaspackConfig.js +324 -0
  5. package/dist/AtlaspackConfig.schema.js +117 -0
  6. package/dist/BundleGraph.js +1740 -0
  7. package/dist/CommittedAsset.js +142 -0
  8. package/dist/Dependency.js +125 -0
  9. package/dist/Environment.js +132 -0
  10. package/dist/EnvironmentManager.js +108 -0
  11. package/dist/IdentifierRegistry.js +38 -0
  12. package/dist/InternalConfig.js +37 -0
  13. package/dist/PackagerRunner.js +545 -0
  14. package/dist/ReporterRunner.js +151 -0
  15. package/dist/RequestTracker.js +1360 -0
  16. package/dist/SymbolPropagation.js +620 -0
  17. package/dist/TargetDescriptor.schema.js +143 -0
  18. package/dist/Transformation.js +514 -0
  19. package/dist/UncommittedAsset.js +315 -0
  20. package/dist/Validation.js +196 -0
  21. package/dist/applyRuntimes.js +383 -0
  22. package/dist/assetUtils.js +169 -0
  23. package/dist/atlaspack-v3/AtlaspackV3.js +74 -0
  24. package/dist/atlaspack-v3/NapiWorkerPool.js +81 -0
  25. package/dist/atlaspack-v3/fs.js +52 -0
  26. package/dist/atlaspack-v3/index.js +25 -0
  27. package/dist/atlaspack-v3/jsCallable.js +16 -0
  28. package/dist/atlaspack-v3/worker/compat/asset-symbols.js +190 -0
  29. package/dist/atlaspack-v3/worker/compat/bitflags.js +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 +25 -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-logger.js +26 -0
  36. package/dist/atlaspack-v3/worker/compat/plugin-options.js +137 -0
  37. package/dist/atlaspack-v3/worker/compat/plugin-tracer.js +10 -0
  38. package/dist/atlaspack-v3/worker/compat/target.js +14 -0
  39. package/dist/atlaspack-v3/worker/side-effect-detector.js +243 -0
  40. package/dist/atlaspack-v3/worker/worker.js +381 -0
  41. package/dist/constants.js +17 -0
  42. package/dist/dumpGraphToGraphViz.js +281 -0
  43. package/dist/index.js +62 -0
  44. package/dist/loadAtlaspackPlugin.js +128 -0
  45. package/dist/loadDotEnv.js +41 -0
  46. package/dist/projectPath.js +83 -0
  47. package/dist/public/Asset.js +279 -0
  48. package/dist/public/Bundle.js +224 -0
  49. package/dist/public/BundleGraph.js +371 -0
  50. package/dist/public/BundleGroup.js +53 -0
  51. package/dist/public/Config.js +286 -0
  52. package/dist/public/Dependency.js +138 -0
  53. package/dist/public/Environment.js +278 -0
  54. package/dist/public/MutableBundleGraph.js +277 -0
  55. package/dist/public/PluginOptions.js +80 -0
  56. package/dist/public/Symbols.js +248 -0
  57. package/dist/public/Target.js +69 -0
  58. package/dist/registerCoreWithSerializer.js +38 -0
  59. package/dist/requests/AssetGraphRequest.js +439 -0
  60. package/dist/requests/AssetGraphRequestRust.js +273 -0
  61. package/dist/requests/AssetRequest.js +130 -0
  62. package/dist/requests/AtlaspackBuildRequest.js +92 -0
  63. package/dist/requests/AtlaspackConfigRequest.js +493 -0
  64. package/dist/requests/BundleGraphRequest.js +447 -0
  65. package/dist/requests/ConfigRequest.js +246 -0
  66. package/dist/requests/DevDepRequest.js +204 -0
  67. package/dist/requests/EntryRequest.js +314 -0
  68. package/dist/requests/PackageRequest.js +72 -0
  69. package/dist/requests/PathRequest.js +349 -0
  70. package/dist/requests/TargetRequest.js +1311 -0
  71. package/dist/requests/ValidationRequest.js +49 -0
  72. package/dist/requests/WriteBundleRequest.js +254 -0
  73. package/dist/requests/WriteBundlesRequest.js +184 -0
  74. package/dist/requests/asset-graph-diff.js +128 -0
  75. package/dist/requests/asset-graph-dot.js +131 -0
  76. package/dist/resolveOptions.js +269 -0
  77. package/dist/rustWorkerThreadDylibHack.js +19 -0
  78. package/dist/serializerCore.browser.js +43 -0
  79. package/dist/summarizeRequest.js +39 -0
  80. package/dist/types.js +31 -0
  81. package/dist/utils.js +172 -0
  82. package/dist/worker.js +123 -0
  83. package/lib/AssetGraph.js +111 -14
  84. package/lib/Atlaspack.js +94 -41
  85. package/lib/AtlaspackConfig.js +15 -3
  86. package/lib/AtlaspackConfig.schema.js +16 -5
  87. package/lib/BundleGraph.js +197 -32
  88. package/lib/CommittedAsset.js +7 -1
  89. package/lib/Dependency.js +8 -2
  90. package/lib/Environment.js +15 -8
  91. package/lib/EnvironmentManager.js +143 -0
  92. package/lib/IdentifierRegistry.js +1 -3
  93. package/lib/InternalConfig.js +3 -2
  94. package/lib/PackagerRunner.js +90 -27
  95. package/lib/ReporterRunner.js +6 -9
  96. package/lib/RequestTracker.js +266 -156
  97. package/lib/SymbolPropagation.js +42 -18
  98. package/lib/TargetDescriptor.schema.js +7 -1
  99. package/lib/Transformation.js +66 -15
  100. package/lib/UncommittedAsset.js +33 -12
  101. package/lib/Validation.js +18 -2
  102. package/lib/applyRuntimes.js +96 -4
  103. package/lib/assetUtils.js +15 -5
  104. package/lib/atlaspack-v3/AtlaspackV3.js +52 -14
  105. package/lib/atlaspack-v3/NapiWorkerPool.js +28 -1
  106. package/lib/atlaspack-v3/fs.js +3 -1
  107. package/lib/atlaspack-v3/index.js +28 -1
  108. package/lib/atlaspack-v3/jsCallable.js +0 -2
  109. package/lib/atlaspack-v3/worker/compat/asset-symbols.js +7 -4
  110. package/lib/atlaspack-v3/worker/compat/bitflags.js +31 -25
  111. package/lib/atlaspack-v3/worker/compat/dependency.js +4 -1
  112. package/lib/atlaspack-v3/worker/compat/environment.js +10 -7
  113. package/lib/atlaspack-v3/worker/compat/mutable-asset.js +15 -10
  114. package/lib/atlaspack-v3/worker/compat/plugin-config.js +13 -34
  115. package/lib/atlaspack-v3/worker/compat/plugin-options.js +16 -0
  116. package/lib/atlaspack-v3/worker/compat/plugin-tracer.js +3 -0
  117. package/lib/atlaspack-v3/worker/compat/target.js +2 -0
  118. package/lib/atlaspack-v3/worker/index.js +3 -0
  119. package/lib/atlaspack-v3/worker/side-effect-detector.js +215 -0
  120. package/lib/atlaspack-v3/worker/worker.js +199 -71
  121. package/lib/constants.js +0 -1
  122. package/lib/dumpGraphToGraphViz.js +71 -16
  123. package/lib/index.js +45 -1
  124. package/lib/loadDotEnv.js +4 -1
  125. package/lib/projectPath.js +5 -0
  126. package/lib/public/Asset.js +21 -11
  127. package/lib/public/Bundle.js +15 -16
  128. package/lib/public/BundleGraph.js +25 -22
  129. package/lib/public/BundleGroup.js +4 -5
  130. package/lib/public/Config.js +118 -17
  131. package/lib/public/Dependency.js +8 -6
  132. package/lib/public/Environment.js +12 -7
  133. package/lib/public/MutableBundleGraph.js +54 -12
  134. package/lib/public/PluginOptions.js +2 -2
  135. package/lib/public/Symbols.js +11 -11
  136. package/lib/public/Target.js +7 -6
  137. package/lib/registerCoreWithSerializer.js +5 -3
  138. package/lib/requests/AssetGraphRequest.js +74 -27
  139. package/lib/requests/AssetGraphRequestRust.js +140 -64
  140. package/lib/requests/AssetRequest.js +23 -6
  141. package/lib/requests/AtlaspackBuildRequest.js +43 -4
  142. package/lib/requests/AtlaspackConfigRequest.js +27 -16
  143. package/lib/requests/BundleGraphRequest.js +41 -24
  144. package/lib/requests/ConfigRequest.js +53 -4
  145. package/lib/requests/DevDepRequest.js +31 -5
  146. package/lib/requests/EntryRequest.js +2 -0
  147. package/lib/requests/PackageRequest.js +16 -2
  148. package/lib/requests/PathRequest.js +24 -3
  149. package/lib/requests/TargetRequest.js +122 -57
  150. package/lib/requests/ValidationRequest.js +5 -1
  151. package/lib/requests/WriteBundleRequest.js +39 -11
  152. package/lib/requests/WriteBundlesRequest.js +51 -4
  153. package/lib/requests/asset-graph-diff.js +12 -7
  154. package/lib/requests/asset-graph-dot.js +1 -7
  155. package/lib/resolveOptions.js +38 -11
  156. package/lib/rustWorkerThreadDylibHack.js +0 -1
  157. package/lib/types/AssetGraph.d.ts +80 -0
  158. package/lib/types/Atlaspack.d.ts +52 -0
  159. package/lib/types/AtlaspackConfig.d.ts +65 -0
  160. package/lib/types/AtlaspackConfig.schema.d.ts +53 -0
  161. package/lib/types/BundleGraph.d.ts +184 -0
  162. package/lib/types/CommittedAsset.d.ts +23 -0
  163. package/lib/types/Dependency.d.ts +44 -0
  164. package/lib/types/Environment.d.ts +11 -0
  165. package/lib/types/EnvironmentManager.d.ts +37 -0
  166. package/lib/types/IdentifierRegistry.d.ts +6 -0
  167. package/lib/types/InternalConfig.d.ts +23 -0
  168. package/lib/types/PackagerRunner.d.ts +85 -0
  169. package/lib/types/ReporterRunner.d.ts +25 -0
  170. package/lib/types/RequestTracker.d.ts +385 -0
  171. package/lib/types/SymbolPropagation.d.ts +11 -0
  172. package/lib/types/TargetDescriptor.schema.d.ts +5 -0
  173. package/lib/types/Transformation.d.ts +72 -0
  174. package/lib/types/UncommittedAsset.d.ts +61 -0
  175. package/lib/types/Validation.d.ts +37 -0
  176. package/lib/types/applyRuntimes.d.ts +25 -0
  177. package/lib/types/assetUtils.d.ts +42 -0
  178. package/lib/types/atlaspack-v3/AtlaspackV3.d.ts +34 -0
  179. package/lib/types/atlaspack-v3/NapiWorkerPool.d.ts +13 -0
  180. package/lib/types/atlaspack-v3/fs.d.ts +12 -0
  181. package/lib/types/atlaspack-v3/index.d.ts +6 -0
  182. package/lib/types/atlaspack-v3/jsCallable.d.ts +1 -0
  183. package/lib/types/atlaspack-v3/worker/compat/asset-symbols.d.ts +51 -0
  184. package/lib/types/atlaspack-v3/worker/compat/bitflags.d.ts +14 -0
  185. package/lib/types/atlaspack-v3/worker/compat/dependency.d.ts +25 -0
  186. package/lib/types/atlaspack-v3/worker/compat/environment.d.ts +27 -0
  187. package/{src/atlaspack-v3/worker/compat/index.js → lib/types/atlaspack-v3/worker/compat/index.d.ts} +0 -1
  188. package/lib/types/atlaspack-v3/worker/compat/mutable-asset.d.ts +49 -0
  189. package/lib/types/atlaspack-v3/worker/compat/plugin-config.d.ts +29 -0
  190. package/lib/types/atlaspack-v3/worker/compat/plugin-logger.d.ts +9 -0
  191. package/lib/types/atlaspack-v3/worker/compat/plugin-options.d.ts +23 -0
  192. package/lib/types/atlaspack-v3/worker/compat/plugin-tracer.d.ts +5 -0
  193. package/lib/types/atlaspack-v3/worker/compat/target.d.ts +11 -0
  194. package/lib/types/atlaspack-v3/worker/side-effect-detector.d.ts +76 -0
  195. package/lib/types/atlaspack-v3/worker/worker.d.ts +80 -0
  196. package/lib/types/constants.d.ts +13 -0
  197. package/lib/types/dumpGraphToGraphViz.d.ts +10 -0
  198. package/lib/types/index.d.ts +8 -0
  199. package/lib/types/loadAtlaspackPlugin.d.ts +8 -0
  200. package/lib/types/loadDotEnv.d.ts +3 -0
  201. package/lib/types/projectPath.d.ts +19 -0
  202. package/lib/types/public/Asset.d.ts +74 -0
  203. package/lib/types/public/Bundle.d.ts +45 -0
  204. package/lib/types/public/BundleGraph.d.ts +72 -0
  205. package/lib/types/public/BundleGroup.d.ts +12 -0
  206. package/lib/types/public/Config.d.ts +75 -0
  207. package/lib/types/public/Dependency.d.ts +32 -0
  208. package/lib/types/public/Environment.d.ts +34 -0
  209. package/lib/types/public/MutableBundleGraph.d.ts +26 -0
  210. package/lib/types/public/PluginOptions.d.ts +25 -0
  211. package/lib/types/public/Symbols.d.ts +81 -0
  212. package/lib/types/public/Target.d.ts +16 -0
  213. package/lib/types/registerCoreWithSerializer.d.ts +2 -0
  214. package/lib/types/requests/AssetGraphRequest.d.ts +76 -0
  215. package/lib/types/requests/AssetGraphRequestRust.d.ts +21 -0
  216. package/lib/types/requests/AssetRequest.d.ts +16 -0
  217. package/lib/types/requests/AtlaspackBuildRequest.d.ts +33 -0
  218. package/lib/types/requests/AtlaspackConfigRequest.d.ts +45 -0
  219. package/lib/types/requests/BundleGraphRequest.d.ts +28 -0
  220. package/lib/types/requests/ConfigRequest.d.ts +67 -0
  221. package/lib/types/requests/DevDepRequest.d.ts +30 -0
  222. package/lib/types/requests/EntryRequest.d.ts +36 -0
  223. package/lib/types/requests/PackageRequest.d.ts +27 -0
  224. package/lib/types/requests/PathRequest.d.ts +48 -0
  225. package/lib/types/requests/TargetRequest.d.ts +48 -0
  226. package/lib/types/requests/ValidationRequest.d.ts +20 -0
  227. package/lib/types/requests/WriteBundleRequest.d.ts +28 -0
  228. package/lib/types/requests/WriteBundlesRequest.d.ts +32 -0
  229. package/lib/types/requests/asset-graph-diff.d.ts +1 -0
  230. package/lib/types/requests/asset-graph-dot.d.ts +9 -0
  231. package/lib/types/resolveOptions.d.ts +3 -0
  232. package/lib/types/rustWorkerThreadDylibHack.d.ts +9 -0
  233. package/lib/types/serializerCore.browser.d.ts +3 -0
  234. package/lib/types/summarizeRequest.d.ts +10 -0
  235. package/lib/types/types.d.ts +495 -0
  236. package/lib/types/utils.d.ts +23 -0
  237. package/lib/types/worker.d.ts +44 -0
  238. package/lib/types.js +8 -1
  239. package/lib/utils.js +17 -2
  240. package/lib/worker.js +30 -14
  241. package/package.json +25 -35
  242. package/src/{AssetGraph.js → AssetGraph.ts} +156 -52
  243. package/src/{Atlaspack.js → Atlaspack.ts} +134 -67
  244. package/src/{AtlaspackConfig.schema.js → AtlaspackConfig.schema.ts} +25 -19
  245. package/src/{AtlaspackConfig.js → AtlaspackConfig.ts} +78 -54
  246. package/src/{BundleGraph.js → BundleGraph.ts} +383 -140
  247. package/src/{CommittedAsset.js → CommittedAsset.ts} +15 -13
  248. package/src/{Dependency.js → Dependency.ts} +59 -42
  249. package/src/{Environment.js → Environment.ts} +24 -15
  250. package/src/EnvironmentManager.ts +154 -0
  251. package/src/{IdentifierRegistry.js → IdentifierRegistry.ts} +1 -4
  252. package/src/{InternalConfig.js → InternalConfig.ts} +22 -23
  253. package/src/{PackagerRunner.js → PackagerRunner.ts} +179 -87
  254. package/src/{ReporterRunner.js → ReporterRunner.ts} +13 -18
  255. package/src/{RequestTracker.js → RequestTracker.ts} +572 -357
  256. package/src/{SymbolPropagation.js → SymbolPropagation.ts} +165 -57
  257. package/src/{TargetDescriptor.schema.js → TargetDescriptor.schema.ts} +7 -1
  258. package/src/{Transformation.js → Transformation.ts} +110 -65
  259. package/src/{UncommittedAsset.js → UncommittedAsset.ts} +60 -39
  260. package/src/{Validation.js → Validation.ts} +32 -17
  261. package/src/{applyRuntimes.js → applyRuntimes.ts} +133 -26
  262. package/src/{assetUtils.js → assetUtils.ts} +49 -36
  263. package/src/atlaspack-v3/AtlaspackV3.ts +143 -0
  264. package/src/atlaspack-v3/NapiWorkerPool.ts +91 -0
  265. package/src/atlaspack-v3/{fs.js → fs.ts} +3 -4
  266. package/src/atlaspack-v3/{index.js → index.ts} +3 -4
  267. package/src/atlaspack-v3/jsCallable.ts +14 -0
  268. package/src/atlaspack-v3/worker/compat/{asset-symbols.js → asset-symbols.ts} +40 -30
  269. package/src/atlaspack-v3/worker/compat/bitflags.ts +102 -0
  270. package/src/atlaspack-v3/worker/compat/{dependency.js → dependency.ts} +13 -13
  271. package/src/atlaspack-v3/worker/compat/{environment.js → environment.ts} +13 -9
  272. package/src/atlaspack-v3/worker/compat/index.ts +9 -0
  273. package/src/atlaspack-v3/worker/compat/{mutable-asset.js → mutable-asset.ts} +21 -20
  274. package/src/atlaspack-v3/worker/compat/{plugin-config.js → plugin-config.ts} +25 -56
  275. package/src/atlaspack-v3/worker/compat/{plugin-logger.js → plugin-logger.ts} +0 -2
  276. package/src/atlaspack-v3/worker/compat/{plugin-options.js → plugin-options.ts} +19 -5
  277. package/src/atlaspack-v3/worker/compat/{plugin-tracer.js → plugin-tracer.ts} +2 -2
  278. package/src/atlaspack-v3/worker/compat/{target.js → target.ts} +3 -4
  279. package/src/atlaspack-v3/worker/index.js +2 -1
  280. package/src/atlaspack-v3/worker/side-effect-detector.ts +298 -0
  281. package/src/atlaspack-v3/worker/worker.ts +531 -0
  282. package/src/{constants.js → constants.ts} +0 -3
  283. package/src/{dumpGraphToGraphViz.js → dumpGraphToGraphViz.ts} +73 -28
  284. package/src/index.ts +18 -0
  285. package/src/{loadAtlaspackPlugin.js → loadAtlaspackPlugin.ts} +8 -9
  286. package/src/{loadDotEnv.js → loadDotEnv.ts} +2 -2
  287. package/src/{projectPath.js → projectPath.ts} +20 -9
  288. package/src/public/{Asset.js → Asset.ts} +41 -28
  289. package/src/public/{Bundle.js → Bundle.ts} +28 -29
  290. package/src/public/{BundleGraph.js → BundleGraph.ts} +103 -68
  291. package/src/public/{BundleGroup.js → BundleGroup.ts} +7 -10
  292. package/src/public/{Config.js → Config.ts} +171 -33
  293. package/src/public/{Dependency.js → Dependency.ts} +20 -17
  294. package/src/public/{Environment.js → Environment.ts} +28 -17
  295. package/src/public/{MutableBundleGraph.js → MutableBundleGraph.ts} +55 -24
  296. package/src/public/{PluginOptions.js → PluginOptions.ts} +6 -6
  297. package/src/public/{Symbols.js → Symbols.ts} +75 -36
  298. package/src/public/{Target.js → Target.ts} +10 -8
  299. package/src/{registerCoreWithSerializer.js → registerCoreWithSerializer.ts} +9 -7
  300. package/src/requests/{AssetGraphRequest.js → AssetGraphRequest.ts} +129 -80
  301. package/src/requests/AssetGraphRequestRust.ts +364 -0
  302. package/src/requests/{AssetRequest.js → AssetRequest.ts} +24 -18
  303. package/src/requests/AtlaspackBuildRequest.ts +163 -0
  304. package/src/requests/{AtlaspackConfigRequest.js → AtlaspackConfigRequest.ts} +72 -58
  305. package/src/requests/{BundleGraphRequest.js → BundleGraphRequest.ts} +97 -79
  306. package/src/requests/{ConfigRequest.js → ConfigRequest.ts} +110 -50
  307. package/src/requests/{DevDepRequest.js → DevDepRequest.ts} +60 -35
  308. package/src/requests/{EntryRequest.js → EntryRequest.ts} +36 -31
  309. package/src/requests/{PackageRequest.js → PackageRequest.ts} +34 -22
  310. package/src/requests/{PathRequest.js → PathRequest.ts} +47 -37
  311. package/src/requests/{TargetRequest.js → TargetRequest.ts} +260 -179
  312. package/src/requests/{ValidationRequest.js → ValidationRequest.ts} +18 -17
  313. package/src/requests/{WriteBundleRequest.js → WriteBundleRequest.ts} +77 -49
  314. package/src/requests/{WriteBundlesRequest.js → WriteBundlesRequest.ts} +109 -37
  315. package/src/requests/{asset-graph-diff.js → asset-graph-diff.ts} +25 -21
  316. package/src/requests/{asset-graph-dot.js → asset-graph-dot.ts} +8 -12
  317. package/src/{resolveOptions.js → resolveOptions.ts} +59 -25
  318. package/src/{rustWorkerThreadDylibHack.js → rustWorkerThreadDylibHack.ts} +1 -4
  319. package/src/{serializerCore.browser.js → serializerCore.browser.ts} +2 -3
  320. package/src/{summarizeRequest.js → summarizeRequest.ts} +17 -5
  321. package/src/types.ts +650 -0
  322. package/src/{utils.js → utils.ts} +52 -21
  323. package/src/{worker.js → worker.ts} +50 -42
  324. package/test/{AssetGraph.test.js → AssetGraph.test.ts} +37 -8
  325. package/test/{Atlaspack.test.js → Atlaspack.test.ts} +5 -10
  326. package/test/{AtlaspackConfig.test.js → AtlaspackConfig.test.ts} +0 -5
  327. package/test/{AtlaspackConfigRequest.test.js → AtlaspackConfigRequest.test.ts} +76 -16
  328. package/test/{BundleGraph.test.js → BundleGraph.test.ts} +8 -13
  329. package/test/{Dependency.test.js → Dependency.test.ts} +2 -3
  330. package/test/{EntryRequest.test.js → EntryRequest.test.ts} +1 -6
  331. package/test/Environment.test.ts +153 -0
  332. package/test/EnvironmentManager.test.ts +188 -0
  333. package/test/{IdentifierRegistry.test.js → IdentifierRegistry.test.ts} +2 -4
  334. package/test/{InternalAsset.test.js → InternalAsset.test.ts} +2 -7
  335. package/test/PackagerRunner.test.ts +0 -0
  336. package/test/{PublicAsset.test.js → PublicAsset.test.ts} +2 -7
  337. package/test/{PublicBundle.test.js → PublicBundle.test.ts} +1 -2
  338. package/test/{PublicDependency.test.js → PublicDependency.test.ts} +0 -2
  339. package/test/PublicEnvironment.test.ts +49 -0
  340. package/test/{PublicMutableBundleGraph.test.js → PublicMutableBundleGraph.test.ts} +6 -11
  341. package/test/{RequestTracker.test.js → RequestTracker.test.ts} +314 -59
  342. package/test/{SymbolPropagation.test.js → SymbolPropagation.test.ts} +124 -74
  343. package/test/{TargetRequest.test.js → TargetRequest.test.ts} +66 -92
  344. package/test/fixtures/config-with-reporters/.parcelrc +7 -0
  345. package/test/fixtures/custom-targets/package.json +6 -0
  346. package/test/public/Config.test.ts +104 -0
  347. package/test/requests/AssetGraphRequestRust.test.ts +443 -0
  348. package/test/requests/{ConfigRequest.test.js → ConfigRequest.test.ts} +202 -13
  349. package/test/requests/{DevDepRequest.test.js → DevDepRequest.test.ts} +0 -2
  350. package/test/{test-utils.js → test-utils.ts} +4 -11
  351. package/test/{utils.test.js → utils.test.ts} +1 -3
  352. package/tsconfig.json +60 -0
  353. package/tsconfig.tsbuildinfo +1 -0
  354. package/index.d.ts +0 -30
  355. package/src/atlaspack-v3/AtlaspackV3.js +0 -87
  356. package/src/atlaspack-v3/NapiWorkerPool.js +0 -53
  357. package/src/atlaspack-v3/jsCallable.js +0 -18
  358. package/src/atlaspack-v3/worker/compat/bitflags.js +0 -100
  359. package/src/atlaspack-v3/worker/worker.js +0 -362
  360. package/src/index.js +0 -13
  361. package/src/requests/AssetGraphRequestRust.js +0 -263
  362. package/src/requests/AtlaspackBuildRequest.js +0 -111
  363. package/src/types.js +0 -600
  364. package/test/Environment.test.js +0 -119
  365. package/test/PackagerRunner.test.js +0 -27
  366. package/test/PublicEnvironment.test.js +0 -27
  367. package/test/requests/AssetGraphRequestRust.test.js +0 -411
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.MutableAsset = void 0;
7
7
  function _sourceMap() {
8
- const data = _interopRequireDefault(require("@parcel/source-map"));
8
+ const data = _interopRequireDefault(require("@atlaspack/source-map"));
9
9
  _sourceMap = function () {
10
10
  return data;
11
11
  };
@@ -20,10 +20,14 @@ function _stream() {
20
20
  }
21
21
  var _bitflags = require("./bitflags");
22
22
  var _assetSymbols = require("./asset-symbols");
23
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
23
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24
+ // @ts-expect-error TS2694
25
+
26
26
  class MutableAsset {
27
+ // @ts-expect-error TS2564
28
+
29
+ // @ts-expect-error TS2416
30
+
27
31
  #astDirty;
28
32
  #ast;
29
33
  #contents;
@@ -34,6 +38,8 @@ class MutableAsset {
34
38
  get astGenerator() {
35
39
  throw new Error('get MutableAsset.astGenerator');
36
40
  }
41
+
42
+ // @ts-expect-error TS1051
37
43
  set astGenerator(value) {
38
44
  throw new Error('set MutableAsset.astGenerator');
39
45
  }
@@ -106,7 +112,6 @@ class MutableAsset {
106
112
  // Only create the source map if it is requested
107
113
  if (!this.#sourceMap && this.#map && typeof this.#map === 'string') {
108
114
  let sourceMap = new (_sourceMap().default)(this.#projectRoot);
109
- // $FlowFixMe Flow is dumb
110
115
  sourceMap.addVLQMap(JSON.parse(this.#map));
111
116
  this.#sourceMap = sourceMap;
112
117
  }
@@ -126,32 +131,32 @@ class MutableAsset {
126
131
  }
127
132
 
128
133
  // eslint-disable-next-line no-unused-vars
129
- addDependency() {
134
+ addDependency(options) {
130
135
  throw new Error('MutableAsset.addDependency()');
131
136
  }
132
137
 
133
138
  // eslint-disable-next-line no-unused-vars
134
- addURLDependency() {
139
+ addURLDependency(url, opts) {
135
140
  throw new Error('MutableAsset.addURLDependency()');
136
141
  }
137
142
 
138
143
  // eslint-disable-next-line no-unused-vars
139
- setEnvironment() {
144
+ setEnvironment(opts) {
140
145
  throw new Error('MutableAsset.setEnvironment()');
141
146
  }
142
147
 
143
148
  // eslint-disable-next-line no-unused-vars
144
- invalidateOnFileChange() {
149
+ invalidateOnFileChange(invalidation) {
145
150
  // TODO: Forward invalidations to Rust
146
151
  }
147
152
 
148
153
  // eslint-disable-next-line no-unused-vars
149
- invalidateOnFileCreate() {
154
+ invalidateOnFileCreate(invalidation) {
150
155
  // TODO: Forward invalidations to Rust
151
156
  }
152
157
 
153
158
  // eslint-disable-next-line no-unused-vars
154
- invalidateOnEnvChange() {
159
+ invalidateOnEnvChange(invalidation) {
155
160
  // TODO: Forward invalidations to Rust
156
161
  }
157
162
  invalidateOnStartup() {
@@ -5,56 +5,35 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.PluginConfig = void 0;
7
7
  var _Config = _interopRequireDefault(require("../../../public/Config"));
8
+ var _InternalConfig = require("../../../InternalConfig");
8
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
10
  class PluginConfig {
10
- #projectRoot;
11
11
  #inner;
12
- constructor({
13
- env,
14
- isSource,
15
- searchPath,
16
- projectRoot,
17
- fs,
18
- packageManager
19
- }) {
20
- this.env = env;
21
- this.isSource = isSource;
22
- this.searchPath = searchPath;
23
- this.#inner = new _Config.default(
24
- // $FlowFixMe
25
- {
26
- invalidateOnConfigKeyChange: [],
27
- invalidateOnFileCreate: [],
28
- invalidateOnFileChange: new Set(),
29
- devDeps: [],
30
- // $FlowFixMe
31
- searchPath: searchPath.replace(projectRoot + '/', '')
32
- },
33
- // $FlowFixMe
34
- {
35
- projectRoot,
36
- inputFS: fs,
37
- outputFS: fs,
38
- packageManager
39
- });
12
+ constructor(configOpts, options) {
13
+ let internalConfig = (0, _InternalConfig.createConfig)(configOpts);
14
+ this.isSource = internalConfig.isSource;
15
+ this.searchPath = internalConfig.searchPath;
16
+ // @ts-expect-error TS2564
17
+ this.env = internalConfig.env;
18
+ this.#inner = new _Config.default(internalConfig, options);
40
19
  }
41
20
 
42
21
  // eslint-disable-next-line no-unused-vars
43
- invalidateOnFileChange() {}
22
+ invalidateOnFileChange(filePath) {}
44
23
 
45
24
  // eslint-disable-next-line no-unused-vars
46
- invalidateOnFileCreate() {}
25
+ invalidateOnFileCreate(invalidations) {}
47
26
 
48
27
  // eslint-disable-next-line no-unused-vars
49
- invalidateOnEnvChange() {}
28
+ invalidateOnEnvChange(invalidation) {}
50
29
  invalidateOnStartup() {}
51
30
  invalidateOnBuild() {}
52
31
 
53
32
  // eslint-disable-next-line no-unused-vars
54
- addDevDependency() {}
33
+ addDevDependency(options) {}
55
34
 
56
35
  // eslint-disable-next-line no-unused-vars
57
- setCacheKey() {}
36
+ setCacheKey(key) {}
58
37
  getConfig(
59
38
  // eslint-disable-next-line no-unused-vars
60
39
  filePaths,
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.PluginOptions = void 0;
7
7
  class PluginOptions {
8
8
  #options;
9
+ used = false;
9
10
  get env() {
10
11
  if (!('env' in this.#options)) {
11
12
  return process.env;
@@ -18,18 +19,21 @@ class PluginOptions {
18
19
  if (!('projectRoot' in this.#options)) {
19
20
  throw new Error('PluginOptions.projectRoot');
20
21
  }
22
+ this.used = true;
21
23
  return this.#options.projectRoot;
22
24
  }
23
25
  get packageManager() {
24
26
  if (!('packageManager' in this.#options)) {
25
27
  throw new Error('PluginOptions.packageManager');
26
28
  }
29
+ this.used = true;
27
30
  return this.#options.packageManager;
28
31
  }
29
32
  get mode() {
30
33
  if (!('mode' in this.#options)) {
31
34
  throw new Error('PluginOptions.mode');
32
35
  }
36
+ this.used = true;
33
37
  return this.#options.mode;
34
38
  }
35
39
  get parcelVersion() {
@@ -38,30 +42,35 @@ class PluginOptions {
38
42
  // throw new Error('PluginOptions.parcelVersion');
39
43
  }
40
44
 
45
+ this.used = true;
41
46
  return this.#options.parcelVersion;
42
47
  }
43
48
  get hmrOptions() {
44
49
  if (!('hmrOptions' in this.#options)) {
45
50
  throw new Error('PluginOptions.hmrOptions');
46
51
  }
52
+ this.used = true;
47
53
  return this.#options.hmrOptions;
48
54
  }
49
55
  get serveOptions() {
50
56
  if (!('serveOptions' in this.#options)) {
51
57
  throw new Error('PluginOptions.serveOptions');
52
58
  }
59
+ this.used = true;
53
60
  return this.#options.serveOptions;
54
61
  }
55
62
  get shouldBuildLazily() {
56
63
  if (!('shouldBuildLazily' in this.#options)) {
57
64
  throw new Error('PluginOptions.shouldBuildLazily');
58
65
  }
66
+ this.used = true;
59
67
  return this.#options.shouldBuildLazily;
60
68
  }
61
69
  get shouldAutoInstall() {
62
70
  if (!('shouldAutoInstall' in this.#options)) {
63
71
  throw new Error('PluginOptions.shouldAutoInstall');
64
72
  }
73
+ this.used = true;
65
74
  return this.#options.shouldAutoInstall;
66
75
  }
67
76
  get logLevel() {
@@ -74,39 +83,46 @@ class PluginOptions {
74
83
  if (!('cacheDir' in this.#options)) {
75
84
  throw new Error('PluginOptions.cacheDir');
76
85
  }
86
+ this.used = true;
77
87
  return this.#options.cacheDir;
78
88
  }
79
89
  get inputFS() {
80
90
  if (!('inputFS' in this.#options)) {
81
91
  throw new Error('PluginOptions.inputFS');
82
92
  }
93
+ this.used = true;
83
94
  return this.#options.inputFS;
84
95
  }
85
96
  get outputFS() {
86
97
  if (!('outputFS' in this.#options)) {
87
98
  throw new Error('PluginOptions.outputFS');
88
99
  }
100
+ this.used = true;
89
101
  return this.#options.outputFS;
90
102
  }
91
103
  get instanceId() {
92
104
  if (!('instanceId' in this.#options)) {
93
105
  throw new Error('PluginOptions.instanceId');
94
106
  }
107
+ this.used = true;
95
108
  return this.#options.instanceId;
96
109
  }
97
110
  get detailedReport() {
98
111
  if (!('detailedReport' in this.#options)) {
99
112
  throw new Error('PluginOptions.detailedReport');
100
113
  }
114
+ this.used = true;
101
115
  return this.#options.detailedReport;
102
116
  }
103
117
  get featureFlags() {
104
118
  if (!('featureFlags' in this.#options)) {
105
119
  throw new Error('PluginOptions.featureFlags');
106
120
  }
121
+ this.used = true;
107
122
  return this.#options.featureFlags;
108
123
  }
109
124
  constructor(options) {
125
+ // @ts-expect-error TS2322
110
126
  this.#options = options;
111
127
  }
112
128
  }
@@ -5,6 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.PluginTracer = void 0;
7
7
  class PluginTracer {
8
+ // @ts-expect-error TS2564
9
+
10
+ // @ts-expect-error TS2416
8
11
  createMeasurement() {
9
12
  throw new Error('PluginTracer.createMeasurement');
10
13
  }
@@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Target = void 0;
7
+ // @ts-expect-error TS2305
8
+
7
9
  class Target {
8
10
  constructor(inner, env) {
9
11
  this.distDir = inner.distDir;
@@ -1,3 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ if (process.env.ATLASPACK_SOURCES === 'true' || process.env.ATLASPACK_BUILD_ENV === 'test' || process.env.ATLASPACK_SELF_BUILD) {
4
+ require('@atlaspack/babel-register');
5
+ }
3
6
  require('./worker');
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultDetector = exports.SideEffectDetector = void 0;
7
+ function _async_hooks() {
8
+ const data = require("async_hooks");
9
+ _async_hooks = function () {
10
+ return data;
11
+ };
12
+ return data;
13
+ }
14
+ /**
15
+ * Side effect detector using AsyncLocalStorage to track filesystem and environment variable
16
+ * access across concurrent async operations in a Node.js worker thread.
17
+ *
18
+ * Usage:
19
+ * const detector = new SideEffectDetector();
20
+ * detector.install();
21
+ *
22
+ * const [result, sideEffects] = await detector.monitorSideEffects(async () => {
23
+ * return await someOperation();
24
+ * });
25
+ *
26
+ * console.log(sideEffects.fsUsage); // Array of filesystem accesses
27
+ * console.log(sideEffects.envUsage); // Array of environment variable accesses
28
+ */
29
+ class SideEffectDetector {
30
+ constructor() {
31
+ this.asyncStorage = new (_async_hooks().AsyncLocalStorage)();
32
+ this.patchesInstalled = false;
33
+ this.originalMethods = {};
34
+ }
35
+
36
+ /**
37
+ * Install global patches for filesystem and environment variable monitoring.
38
+ * This should be called once when the worker starts up.
39
+ */
40
+ install() {
41
+ if (this.patchesInstalled) {
42
+ return;
43
+ }
44
+ this._patchFilesystem();
45
+ this._patchProcessEnv();
46
+ this.patchesInstalled = true;
47
+ }
48
+
49
+ /**
50
+ * Monitor side effects for an async operation.
51
+ *
52
+ * @param {Function} fn - Async function to monitor
53
+ * @param {Object} options - Optional configuration
54
+ * @param {string} options.label - Optional label for debugging
55
+ * @returns {Promise<[any, SideEffects]>} Tuple of [result, sideEffects]
56
+ */
57
+ monitorSideEffects(packageName, fn) {
58
+ if (!this.patchesInstalled) {
59
+ throw new Error('SideEffectDetector: install() must be called before monitorSideEffects()');
60
+ }
61
+ const context = {
62
+ fsUsage: [],
63
+ envUsage: {
64
+ vars: new Set(),
65
+ didEnumerate: false
66
+ },
67
+ packageName: packageName
68
+ };
69
+ return this.asyncStorage.run(context, async () => {
70
+ const result = await fn();
71
+ return [result, context];
72
+ });
73
+ }
74
+
75
+ /**
76
+ * Get the current monitoring context, if any.
77
+ * Useful for debugging or custom instrumentation.
78
+ *
79
+ * @returns {Object|null} Current context or null if not monitoring
80
+ */
81
+ getCurrentContext() {
82
+ return this.asyncStorage.getStore() || null;
83
+ }
84
+
85
+ /**
86
+ * Check if currently monitoring side effects.
87
+ *
88
+ * @returns {boolean}
89
+ */
90
+ isMonitoring() {
91
+ return this.asyncStorage.getStore() !== undefined;
92
+ }
93
+
94
+ /**
95
+ * Patch filesystem methods to record access.
96
+ * @private
97
+ */
98
+ _patchFilesystem() {
99
+ // Inline require this to avoid babel transformer issue
100
+ const fs = require('fs');
101
+ const methodsToPatch = [
102
+ // Sync methods
103
+ 'readFileSync', 'writeFileSync', 'appendFileSync', 'existsSync', 'statSync', 'lstatSync', 'readdirSync', 'mkdirSync', 'rmdirSync', 'unlinkSync', 'copyFileSync', 'renameSync', 'chmodSync', 'chownSync',
104
+ // Async methods
105
+ 'readFile', 'writeFile', 'appendFile', 'stat', 'lstat', 'readdir', 'mkdir', 'rmdir', 'unlink', 'copyFile', 'rename', 'chmod', 'chown'];
106
+ methodsToPatch.forEach(method => {
107
+ if (typeof fs[method] === 'function') {
108
+ this.originalMethods[method] = fs[method];
109
+ const self = this;
110
+
111
+ // @ts-expect-error Dynamic method patching
112
+ fs[method] = function (path, ...args) {
113
+ // Record filesystem access in current context
114
+ const context = self.asyncStorage.getStore();
115
+ if (context) {
116
+ context.fsUsage.push({
117
+ method,
118
+ path: typeof path === 'string' ? path : path === null || path === void 0 ? void 0 : path.toString()
119
+ });
120
+ }
121
+ return self.originalMethods[method].call(this, path, ...args);
122
+ };
123
+ }
124
+ });
125
+
126
+ // Handle fs.promises methods
127
+ if (fs.promises) {
128
+ const promiseMethodsToPatch = ['readFile', 'writeFile', 'appendFile', 'stat', 'lstat', 'readdir', 'mkdir', 'rmdir', 'unlink', 'copyFile', 'rename', 'chmod', 'chown'];
129
+ const promises = fs.promises;
130
+ promiseMethodsToPatch.forEach(method => {
131
+ if (typeof promises[method] === 'function') {
132
+ const originalKey = `promises_${method}`;
133
+ this.originalMethods[originalKey] = promises[method];
134
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
135
+ const self = this;
136
+ promises[method] = function (path, ...args) {
137
+ const context = self.asyncStorage.getStore();
138
+ if (context) {
139
+ context.fsUsage.push({
140
+ method: `promises.${method}`,
141
+ path: typeof path === 'string' ? path : String(path)
142
+ });
143
+ }
144
+ return self.originalMethods[originalKey].call(this, path, ...args);
145
+ };
146
+ }
147
+ });
148
+ }
149
+ }
150
+
151
+ /**
152
+ * Patch process.env to record environment variable access.
153
+ * @private
154
+ */
155
+ _patchProcessEnv() {
156
+ if (this.originalMethods.processEnv) {
157
+ return; // Already patched
158
+ }
159
+
160
+ this.originalMethods.processEnv = process.env;
161
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
162
+ const self = this;
163
+ // The following environment variables are allowed to be accessed by transformers
164
+ const allowedVars = new Set(['ATLASPACK_ENABLE_SENTRY',
165
+ // TODO we should also add the other atlaspack env vars here
166
+ 'NODE_V8_COVERAGE', 'VSCODE_INSPECTOR_OPTIONS', 'NODE_INSPECTOR_IPC', 'FORCE_COLOR', 'NO_COLOR', 'TTY']);
167
+
168
+ // Create a proxy that intercepts property access
169
+ process.env = new Proxy(this.originalMethods.processEnv, {
170
+ get(target, property) {
171
+ const context = self.asyncStorage.getStore();
172
+ if (context && typeof property === 'string') {
173
+ // Only record if this is a real environment variable access
174
+ // (not internal properties like 'constructor', 'valueOf', etc.)
175
+ if (!allowedVars.has(property) && (property in target || !property.startsWith('_'))) {
176
+ context.envUsage.vars.add(property);
177
+ }
178
+ }
179
+ return target[property];
180
+ },
181
+ set(target, property, value) {
182
+ const context = self.asyncStorage.getStore();
183
+ if (context && typeof property === 'string') {
184
+ if (!allowedVars.has(property) && property in target) {
185
+ context.envUsage.vars.add(property);
186
+ }
187
+ }
188
+ target[property] = value;
189
+ return true;
190
+ },
191
+ has(target, property) {
192
+ const context = self.asyncStorage.getStore();
193
+ if (context && typeof property === 'string') {
194
+ if (!allowedVars.has(property) && property in target) {
195
+ context.envUsage.vars.add(property);
196
+ }
197
+ }
198
+ return property in target;
199
+ },
200
+ ownKeys(target) {
201
+ const context = self.asyncStorage.getStore();
202
+ if (context) {
203
+ context.envUsage.didEnumerate = true;
204
+ }
205
+ return Object.keys(target);
206
+ }
207
+ });
208
+ }
209
+ }
210
+
211
+ /**
212
+ * Default instance for convenience. Most workers will only need one detector.
213
+ */
214
+ exports.SideEffectDetector = SideEffectDetector;
215
+ const defaultDetector = exports.defaultDetector = new SideEffectDetector();