@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
@@ -4,17 +4,16 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.Environment = void 0;
7
+ // @ts-expect-error TS2724
8
+
7
9
  class Environment {
8
10
  constructor(inner) {
9
11
  // TODO
10
12
  this.id = '';
11
13
  this.includeNodeModules = inner.includeNodeModules;
12
- // $FlowFixMe
13
14
  this.context = inner.context;
14
15
  this.engines = inner.engines;
15
- // $FlowFixMe
16
16
  this.outputFormat = inner.outputFormat;
17
- // $FlowFixMe
18
17
  this.sourceType = inner.sourceType;
19
18
  this.isLibrary = inner.isLibrary;
20
19
  this.shouldOptimize = inner.shouldOptimize;
@@ -22,9 +21,10 @@ class Environment {
22
21
  this.sourceMap = inner.sourceMap;
23
22
  this.loc = inner.loc;
24
23
  this.unstableSingleFileOutput = false;
24
+ this.customEnv = inner.customEnv;
25
25
  }
26
26
  isBrowser() {
27
- return this.context === 'browser' || this.isWorker() || this.isWorklet() || this.context === 'electron-renderer';
27
+ return this.context === 'browser' || this.isWorker() || this.isTesseract() || this.isWorklet() || this.context === 'electron-renderer';
28
28
  }
29
29
  isNode() {
30
30
  return this.context === 'node' || this.isElectron();
@@ -38,19 +38,22 @@ class Environment {
38
38
  isWorklet() {
39
39
  return this.context === 'worklet';
40
40
  }
41
+ isTesseract() {
42
+ return this.context === 'tesseract';
43
+ }
41
44
  isIsolated() {
42
- return this.isWorker() || this.isWorklet();
45
+ return this.isWorker() || this.isTesseract() || this.isWorklet();
43
46
  }
44
47
 
45
48
  // TODO
46
49
  // eslint-disable-next-line no-unused-vars
47
- matchesEngines() {
50
+ matchesEngines(minVersions, defaultValue) {
48
51
  return true;
49
52
  }
50
53
 
51
54
  // TODO
52
55
  // eslint-disable-next-line no-unused-vars
53
- supports() {
56
+ supports(feature, defaultValue) {
54
57
  return true;
55
58
  }
56
59
  }
@@ -69,17 +69,6 @@ Object.keys(_pluginTracer).forEach(function (key) {
69
69
  }
70
70
  });
71
71
  });
72
- var _pluginLogger = require("./plugin-logger");
73
- Object.keys(_pluginLogger).forEach(function (key) {
74
- if (key === "default" || key === "__esModule") return;
75
- if (key in exports && exports[key] === _pluginLogger[key]) return;
76
- Object.defineProperty(exports, key, {
77
- enumerable: true,
78
- get: function () {
79
- return _pluginLogger[key];
80
- }
81
- });
82
- });
83
72
  var _pluginOptions = require("./plugin-options");
84
73
  Object.keys(_pluginOptions).forEach(function (key) {
85
74
  if (key === "default" || key === "__esModule") return;
@@ -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
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+ var _InternalConfig = require("../../../InternalConfig");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
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,30 +6,33 @@ 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;
12
13
  // throw new Error('PluginOptions.env');
13
14
  }
14
-
15
15
  return this.#options.env;
16
16
  }
17
17
  get projectRoot() {
18
18
  if (!('projectRoot' in this.#options)) {
19
19
  throw new Error('PluginOptions.projectRoot');
20
20
  }
21
+ this.used = true;
21
22
  return this.#options.projectRoot;
22
23
  }
23
24
  get packageManager() {
24
25
  if (!('packageManager' in this.#options)) {
25
26
  throw new Error('PluginOptions.packageManager');
26
27
  }
28
+ this.used = true;
27
29
  return this.#options.packageManager;
28
30
  }
29
31
  get mode() {
30
32
  if (!('mode' in this.#options)) {
31
33
  throw new Error('PluginOptions.mode');
32
34
  }
35
+ this.used = true;
33
36
  return this.#options.mode;
34
37
  }
35
38
  get parcelVersion() {
@@ -37,31 +40,35 @@ class PluginOptions {
37
40
  return 'UNKNOWN VERSION';
38
41
  // throw new Error('PluginOptions.parcelVersion');
39
42
  }
40
-
43
+ this.used = true;
41
44
  return this.#options.parcelVersion;
42
45
  }
43
46
  get hmrOptions() {
44
47
  if (!('hmrOptions' in this.#options)) {
45
48
  throw new Error('PluginOptions.hmrOptions');
46
49
  }
50
+ this.used = true;
47
51
  return this.#options.hmrOptions;
48
52
  }
49
53
  get serveOptions() {
50
54
  if (!('serveOptions' in this.#options)) {
51
55
  throw new Error('PluginOptions.serveOptions');
52
56
  }
57
+ this.used = true;
53
58
  return this.#options.serveOptions;
54
59
  }
55
60
  get shouldBuildLazily() {
56
61
  if (!('shouldBuildLazily' in this.#options)) {
57
62
  throw new Error('PluginOptions.shouldBuildLazily');
58
63
  }
64
+ this.used = true;
59
65
  return this.#options.shouldBuildLazily;
60
66
  }
61
67
  get shouldAutoInstall() {
62
68
  if (!('shouldAutoInstall' in this.#options)) {
63
69
  throw new Error('PluginOptions.shouldAutoInstall');
64
70
  }
71
+ this.used = true;
65
72
  return this.#options.shouldAutoInstall;
66
73
  }
67
74
  get logLevel() {
@@ -74,39 +81,46 @@ class PluginOptions {
74
81
  if (!('cacheDir' in this.#options)) {
75
82
  throw new Error('PluginOptions.cacheDir');
76
83
  }
84
+ this.used = true;
77
85
  return this.#options.cacheDir;
78
86
  }
79
87
  get inputFS() {
80
88
  if (!('inputFS' in this.#options)) {
81
89
  throw new Error('PluginOptions.inputFS');
82
90
  }
91
+ this.used = true;
83
92
  return this.#options.inputFS;
84
93
  }
85
94
  get outputFS() {
86
95
  if (!('outputFS' in this.#options)) {
87
96
  throw new Error('PluginOptions.outputFS');
88
97
  }
98
+ this.used = true;
89
99
  return this.#options.outputFS;
90
100
  }
91
101
  get instanceId() {
92
102
  if (!('instanceId' in this.#options)) {
93
103
  throw new Error('PluginOptions.instanceId');
94
104
  }
105
+ this.used = true;
95
106
  return this.#options.instanceId;
96
107
  }
97
108
  get detailedReport() {
98
109
  if (!('detailedReport' in this.#options)) {
99
110
  throw new Error('PluginOptions.detailedReport');
100
111
  }
112
+ this.used = true;
101
113
  return this.#options.detailedReport;
102
114
  }
103
115
  get featureFlags() {
104
116
  if (!('featureFlags' in this.#options)) {
105
117
  throw new Error('PluginOptions.featureFlags');
106
118
  }
119
+ this.used = true;
107
120
  return this.#options.featureFlags;
108
121
  }
109
122
  constructor(options) {
123
+ // @ts-expect-error TS2322
110
124
  this.#options = options;
111
125
  }
112
126
  }
@@ -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,214 @@
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
+ this.originalMethods.processEnv = process.env;
160
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
161
+ const self = this;
162
+ // The following environment variables are allowed to be accessed by transformers
163
+ const allowedVars = new Set(['ATLASPACK_ENABLE_SENTRY',
164
+ // TODO we should also add the other atlaspack env vars here
165
+ 'NODE_V8_COVERAGE', 'VSCODE_INSPECTOR_OPTIONS', 'NODE_INSPECTOR_IPC', 'FORCE_COLOR', 'NO_COLOR', 'TTY']);
166
+
167
+ // Create a proxy that intercepts property access
168
+ process.env = new Proxy(this.originalMethods.processEnv, {
169
+ get(target, property) {
170
+ const context = self.asyncStorage.getStore();
171
+ if (context && typeof property === 'string') {
172
+ // Only record if this is a real environment variable access
173
+ // (not internal properties like 'constructor', 'valueOf', etc.)
174
+ if (!allowedVars.has(property) && (property in target || !property.startsWith('_'))) {
175
+ context.envUsage.vars.add(property);
176
+ }
177
+ }
178
+ return target[property];
179
+ },
180
+ set(target, property, value) {
181
+ const context = self.asyncStorage.getStore();
182
+ if (context && typeof property === 'string') {
183
+ if (!allowedVars.has(property) && property in target) {
184
+ context.envUsage.vars.add(property);
185
+ }
186
+ }
187
+ target[property] = value;
188
+ return true;
189
+ },
190
+ has(target, property) {
191
+ const context = self.asyncStorage.getStore();
192
+ if (context && typeof property === 'string') {
193
+ if (!allowedVars.has(property) && property in target) {
194
+ context.envUsage.vars.add(property);
195
+ }
196
+ }
197
+ return property in target;
198
+ },
199
+ ownKeys(target) {
200
+ const context = self.asyncStorage.getStore();
201
+ if (context) {
202
+ context.envUsage.didEnumerate = true;
203
+ }
204
+ return Object.keys(target);
205
+ }
206
+ });
207
+ }
208
+ }
209
+
210
+ /**
211
+ * Default instance for convenience. Most workers will only need one detector.
212
+ */
213
+ exports.SideEffectDetector = SideEffectDetector;
214
+ const defaultDetector = exports.defaultDetector = new SideEffectDetector();