@wyw-in-js/transform 1.1.0 → 2.0.0-alpha.1

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 (801) hide show
  1. package/esm/cache.js +433 -289
  2. package/esm/cache.js.map +1 -1
  3. package/esm/debug/fileReporter.js +171 -134
  4. package/esm/debug/fileReporter.js.map +1 -1
  5. package/esm/eval/broker.js +2275 -0
  6. package/esm/eval/broker.js.map +1 -0
  7. package/esm/eval/lru.js +36 -0
  8. package/esm/eval/lru.js.map +1 -0
  9. package/esm/eval/prepareModuleOnDemand.js +21 -0
  10. package/esm/eval/prepareModuleOnDemand.js.map +1 -0
  11. package/esm/eval/protocol.js +2 -0
  12. package/esm/eval/protocol.js.map +1 -0
  13. package/esm/eval/runner.js +1878 -0
  14. package/esm/eval/runner.js.map +1 -0
  15. package/esm/eval/serialize.js +333 -0
  16. package/esm/eval/serialize.js.map +1 -0
  17. package/esm/eval/writeQueue.js +81 -0
  18. package/esm/eval/writeQueue.js.map +1 -0
  19. package/esm/evaluators/index.js +11 -12
  20. package/esm/evaluators/index.js.map +1 -1
  21. package/esm/index.js +25 -29
  22. package/esm/index.js.map +1 -1
  23. package/esm/module.js +923 -520
  24. package/esm/module.js.map +1 -1
  25. package/esm/shaker.js +14 -80
  26. package/esm/shaker.js.map +1 -1
  27. package/esm/transform/BaseEntrypoint.js +162 -164
  28. package/esm/transform/BaseEntrypoint.js.map +1 -1
  29. package/esm/transform/Entrypoint.helpers.js +96 -253
  30. package/esm/transform/Entrypoint.helpers.js.map +1 -1
  31. package/esm/transform/Entrypoint.js +336 -270
  32. package/esm/transform/Entrypoint.js.map +1 -1
  33. package/esm/transform/Entrypoint.types.js +1 -1
  34. package/esm/transform/Entrypoint.types.js.map +1 -1
  35. package/esm/transform/EvaluatedEntrypoint.js +10 -4
  36. package/esm/transform/EvaluatedEntrypoint.js.map +1 -1
  37. package/esm/transform/actions/AbortError.js +6 -6
  38. package/esm/transform/actions/AbortError.js.map +1 -1
  39. package/esm/transform/actions/BaseAction.js +140 -136
  40. package/esm/transform/actions/BaseAction.js.map +1 -1
  41. package/esm/transform/actions/UnprocessedEntrypointError.js +6 -6
  42. package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -1
  43. package/esm/transform/actions/actionRunner.js +63 -66
  44. package/esm/transform/actions/actionRunner.js.map +1 -1
  45. package/esm/transform/actions/types.js +1 -1
  46. package/esm/transform/actions/types.js.map +1 -1
  47. package/esm/transform/barrelManifest.types.js +2 -0
  48. package/esm/transform/barrelManifest.types.js.map +1 -0
  49. package/esm/transform/generators/baseProcessingHandlers.js +15 -17
  50. package/esm/transform/generators/baseProcessingHandlers.js.map +1 -1
  51. package/esm/transform/generators/collect.js +27 -55
  52. package/esm/transform/generators/collect.js.map +1 -1
  53. package/esm/transform/generators/createStylisPreprocessor.js +353 -321
  54. package/esm/transform/generators/createStylisPreprocessor.js.map +1 -1
  55. package/esm/transform/generators/evalFile.js +48 -47
  56. package/esm/transform/generators/evalFile.js.map +1 -1
  57. package/esm/transform/generators/extract.js +78 -90
  58. package/esm/transform/generators/extract.js.map +1 -1
  59. package/esm/transform/generators/getExports.js +57 -74
  60. package/esm/transform/generators/getExports.js.map +1 -1
  61. package/esm/transform/generators/index.js +11 -11
  62. package/esm/transform/generators/index.js.map +1 -1
  63. package/esm/transform/generators/processEntrypoint.js +93 -67
  64. package/esm/transform/generators/processEntrypoint.js.map +1 -1
  65. package/esm/transform/generators/processImports.js +102 -67
  66. package/esm/transform/generators/processImports.js.map +1 -1
  67. package/esm/transform/generators/resolveImports.js +212 -197
  68. package/esm/transform/generators/resolveImports.js.map +1 -1
  69. package/esm/transform/generators/resolveStaticOxcValues/cache.js +182 -0
  70. package/esm/transform/generators/resolveStaticOxcValues/cache.js.map +1 -0
  71. package/esm/transform/generators/resolveStaticOxcValues/candidateResolver.js +146 -0
  72. package/esm/transform/generators/resolveStaticOxcValues/candidateResolver.js.map +1 -0
  73. package/esm/transform/generators/resolveStaticOxcValues/dependencies.js +33 -0
  74. package/esm/transform/generators/resolveStaticOxcValues/dependencies.js.map +1 -0
  75. package/esm/transform/generators/resolveStaticOxcValues/environment.js +29 -0
  76. package/esm/transform/generators/resolveStaticOxcValues/environment.js.map +1 -0
  77. package/esm/transform/generators/resolveStaticOxcValues/exportResolver.js +351 -0
  78. package/esm/transform/generators/resolveStaticOxcValues/exportResolver.js.map +1 -0
  79. package/esm/transform/generators/resolveStaticOxcValues/exportTargets.js +253 -0
  80. package/esm/transform/generators/resolveStaticOxcValues/exportTargets.js.map +1 -0
  81. package/esm/transform/generators/resolveStaticOxcValues/objectAssign.js +310 -0
  82. package/esm/transform/generators/resolveStaticOxcValues/objectAssign.js.map +1 -0
  83. package/esm/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js +74 -0
  84. package/esm/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js.map +1 -0
  85. package/esm/transform/generators/resolveStaticOxcValues/opaqueRuntime.js +229 -0
  86. package/esm/transform/generators/resolveStaticOxcValues/opaqueRuntime.js.map +1 -0
  87. package/esm/transform/generators/resolveStaticOxcValues/processorStaticExport.js +172 -0
  88. package/esm/transform/generators/resolveStaticOxcValues/processorStaticExport.js.map +1 -0
  89. package/esm/transform/generators/resolveStaticOxcValues/processorStaticModel.js +476 -0
  90. package/esm/transform/generators/resolveStaticOxcValues/processorStaticModel.js.map +1 -0
  91. package/esm/transform/generators/resolveStaticOxcValues/processorTarget.js +55 -0
  92. package/esm/transform/generators/resolveStaticOxcValues/processorTarget.js.map +1 -0
  93. package/esm/transform/generators/resolveStaticOxcValues/programAnalysis.js +123 -0
  94. package/esm/transform/generators/resolveStaticOxcValues/programAnalysis.js.map +1 -0
  95. package/esm/transform/generators/resolveStaticOxcValues/prune.js +186 -0
  96. package/esm/transform/generators/resolveStaticOxcValues/prune.js.map +1 -0
  97. package/esm/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js +183 -0
  98. package/esm/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js.map +1 -0
  99. package/esm/transform/generators/resolveStaticOxcValues/staticExpression.js +298 -0
  100. package/esm/transform/generators/resolveStaticOxcValues/staticExpression.js.map +1 -0
  101. package/esm/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js +298 -0
  102. package/esm/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js.map +1 -0
  103. package/esm/transform/generators/resolveStaticOxcValues/types.js +3 -0
  104. package/esm/transform/generators/resolveStaticOxcValues/types.js.map +1 -0
  105. package/esm/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js +59 -0
  106. package/esm/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js.map +1 -0
  107. package/esm/transform/generators/resolveStaticOxcValues.js +2 -0
  108. package/esm/transform/generators/resolveStaticOxcValues.js.map +1 -0
  109. package/esm/transform/generators/rewriteOxcBarrelImports.js +822 -0
  110. package/esm/transform/generators/rewriteOxcBarrelImports.js.map +1 -0
  111. package/esm/transform/generators/transform.js +251 -248
  112. package/esm/transform/generators/transform.js.map +1 -1
  113. package/esm/transform/generators/workflow.js +87 -90
  114. package/esm/transform/generators/workflow.js.map +1 -1
  115. package/esm/transform/helpers/loadWywOptions.js +183 -74
  116. package/esm/transform/helpers/loadWywOptions.js.map +1 -1
  117. package/esm/transform/helpers/withDefaultServices.js +13 -22
  118. package/esm/transform/helpers/withDefaultServices.js.map +1 -1
  119. package/esm/transform/isStaticallyEvaluatableModule.js +140 -152
  120. package/esm/transform/isStaticallyEvaluatableModule.js.map +1 -1
  121. package/esm/transform/oxcBarrelManifest.js +349 -0
  122. package/esm/transform/oxcBarrelManifest.js.map +1 -0
  123. package/esm/transform/rootLog.js +3 -3
  124. package/esm/transform/rootLog.js.map +1 -1
  125. package/esm/transform/syntax.js +2 -0
  126. package/esm/transform/syntax.js.map +1 -0
  127. package/esm/transform/types.js +2 -2
  128. package/esm/transform/types.js.map +1 -1
  129. package/esm/transform.js +125 -147
  130. package/esm/transform.js.map +1 -1
  131. package/esm/types.js +4 -1
  132. package/esm/types.js.map +1 -1
  133. package/esm/utils/EventEmitter.js +79 -48
  134. package/esm/utils/EventEmitter.js.map +1 -1
  135. package/esm/utils/ShakerMetadata.js +2 -2
  136. package/esm/utils/ShakerMetadata.js.map +1 -1
  137. package/esm/utils/TransformDiagnostics.js +9 -9
  138. package/esm/utils/TransformDiagnostics.js.map +1 -1
  139. package/esm/utils/TransformMetadata.js +24 -26
  140. package/esm/utils/TransformMetadata.js.map +1 -1
  141. package/esm/utils/applyOxcProcessors/applyOxcProcessors.js +160 -0
  142. package/esm/utils/applyOxcProcessors/applyOxcProcessors.js.map +1 -0
  143. package/esm/utils/applyOxcProcessors/cleanupBindings.js +157 -0
  144. package/esm/utils/applyOxcProcessors/cleanupBindings.js.map +1 -0
  145. package/esm/utils/applyOxcProcessors/cleanupRemovals.js +431 -0
  146. package/esm/utils/applyOxcProcessors/cleanupRemovals.js.map +1 -0
  147. package/esm/utils/applyOxcProcessors/displayName.js +93 -0
  148. package/esm/utils/applyOxcProcessors/displayName.js.map +1 -0
  149. package/esm/utils/applyOxcProcessors/expressionValues.js +152 -0
  150. package/esm/utils/applyOxcProcessors/expressionValues.js.map +1 -0
  151. package/esm/utils/applyOxcProcessors/processorFactory.js +62 -0
  152. package/esm/utils/applyOxcProcessors/processorFactory.js.map +1 -0
  153. package/esm/utils/applyOxcProcessors/processorUsages.js +143 -0
  154. package/esm/utils/applyOxcProcessors/processorUsages.js.map +1 -0
  155. package/esm/utils/applyOxcProcessors/sameFileStaticValues.js +207 -0
  156. package/esm/utils/applyOxcProcessors/sameFileStaticValues.js.map +1 -0
  157. package/esm/utils/applyOxcProcessors/shared.js +29 -0
  158. package/esm/utils/applyOxcProcessors/shared.js.map +1 -0
  159. package/esm/utils/applyOxcProcessors/types.js +2 -0
  160. package/esm/utils/applyOxcProcessors/types.js.map +1 -0
  161. package/esm/utils/applyOxcProcessors.js +2 -0
  162. package/esm/utils/applyOxcProcessors.js.map +1 -0
  163. package/esm/utils/collectOxcExportsAndImports.js +934 -0
  164. package/esm/utils/collectOxcExportsAndImports.js.map +1 -0
  165. package/esm/utils/collectOxcRuntime/normalizeRuntimeCode.js +157 -0
  166. package/esm/utils/collectOxcRuntime/normalizeRuntimeCode.js.map +1 -0
  167. package/esm/utils/collectOxcRuntime/sourceMap.js +36 -0
  168. package/esm/utils/collectOxcRuntime/sourceMap.js.map +1 -0
  169. package/esm/utils/collectOxcRuntime/types.js +2 -0
  170. package/esm/utils/collectOxcRuntime/types.js.map +1 -0
  171. package/esm/utils/collectOxcRuntime.js +32 -0
  172. package/esm/utils/collectOxcRuntime.js.map +1 -0
  173. package/esm/utils/collectOxcTemplateDependencies/expressionExtraction.js +496 -0
  174. package/esm/utils/collectOxcTemplateDependencies/expressionExtraction.js.map +1 -0
  175. package/esm/utils/collectOxcTemplateDependencies/expressionReplacements.js +113 -0
  176. package/esm/utils/collectOxcTemplateDependencies/expressionReplacements.js.map +1 -0
  177. package/esm/utils/collectOxcTemplateDependencies/scopeAnalysis.js +387 -0
  178. package/esm/utils/collectOxcTemplateDependencies/scopeAnalysis.js.map +1 -0
  179. package/esm/utils/collectOxcTemplateDependencies/staticBindings.js +17 -0
  180. package/esm/utils/collectOxcTemplateDependencies/staticBindings.js.map +1 -0
  181. package/esm/utils/collectOxcTemplateDependencies/staticEvaluator.js +540 -0
  182. package/esm/utils/collectOxcTemplateDependencies/staticEvaluator.js.map +1 -0
  183. package/esm/utils/collectOxcTemplateDependencies/types.js +2 -0
  184. package/esm/utils/collectOxcTemplateDependencies/types.js.map +1 -0
  185. package/esm/utils/collectOxcTemplateDependencies.js +4 -0
  186. package/esm/utils/collectOxcTemplateDependencies.js.map +1 -0
  187. package/esm/utils/dispose-polyfill.js +3 -4
  188. package/esm/utils/dispose-polyfill.js.map +1 -1
  189. package/esm/utils/getFileIdx.js +6 -6
  190. package/esm/utils/getFileIdx.js.map +1 -1
  191. package/esm/utils/getPluginKey.js +12 -12
  192. package/esm/utils/getPluginKey.js.map +1 -1
  193. package/esm/utils/getVisitorKeys.js +9 -3
  194. package/esm/utils/getVisitorKeys.js.map +1 -1
  195. package/esm/utils/hasCachedWywPrevalExport.js +23 -0
  196. package/esm/utils/hasCachedWywPrevalExport.js.map +1 -0
  197. package/esm/utils/hasWywPreval.js +5 -5
  198. package/esm/utils/hasWywPreval.js.map +1 -1
  199. package/esm/utils/importOverrides.js +75 -90
  200. package/esm/utils/importOverrides.js.map +1 -1
  201. package/esm/utils/isNode.js +2 -2
  202. package/esm/utils/isNode.js.map +1 -1
  203. package/esm/utils/isNotNull.js +2 -2
  204. package/esm/utils/isNotNull.js.map +1 -1
  205. package/esm/utils/isSerializable.js +11 -11
  206. package/esm/utils/isSerializable.js.map +1 -1
  207. package/esm/utils/nativeResolver.js +93 -0
  208. package/esm/utils/nativeResolver.js.map +1 -0
  209. package/esm/utils/oxc/ast.js +28 -0
  210. package/esm/utils/oxc/ast.js.map +1 -0
  211. package/esm/utils/oxc/parse.js +3 -0
  212. package/esm/utils/oxc/parse.js.map +1 -0
  213. package/esm/utils/oxc/replacements.js +14 -0
  214. package/esm/utils/oxc/replacements.js.map +1 -0
  215. package/esm/utils/oxc/sourceLocations.js +59 -0
  216. package/esm/utils/oxc/sourceLocations.js.map +1 -0
  217. package/esm/utils/oxcAstService.js +121 -0
  218. package/esm/utils/oxcAstService.js.map +1 -0
  219. package/esm/utils/oxcEmit.js +447 -0
  220. package/esm/utils/oxcEmit.js.map +1 -0
  221. package/esm/utils/oxcPreevalStage/evalStrategy.js +3 -0
  222. package/esm/utils/oxcPreevalStage/evalStrategy.js.map +1 -0
  223. package/esm/utils/oxcPreevalStage/prepareCode.js +21 -0
  224. package/esm/utils/oxcPreevalStage/prepareCode.js.map +1 -0
  225. package/esm/utils/oxcPreevalStage/prevalExport.js +23 -0
  226. package/esm/utils/oxcPreevalStage/prevalExport.js.map +1 -0
  227. package/esm/utils/oxcPreevalStage/processors.js +17 -0
  228. package/esm/utils/oxcPreevalStage/processors.js.map +1 -0
  229. package/esm/utils/oxcPreevalStage/staticOverlay.js +18 -0
  230. package/esm/utils/oxcPreevalStage/staticOverlay.js.map +1 -0
  231. package/esm/utils/oxcPreevalStage/types.js +2 -0
  232. package/esm/utils/oxcPreevalStage/types.js.map +1 -0
  233. package/esm/utils/oxcPreevalStage.js +41 -0
  234. package/esm/utils/oxcPreevalStage.js.map +1 -0
  235. package/esm/utils/oxcPreevalTransforms.js +1065 -0
  236. package/esm/utils/oxcPreevalTransforms.js.map +1 -0
  237. package/esm/utils/oxcShaker.js +662 -0
  238. package/esm/utils/oxcShaker.js.map +1 -0
  239. package/esm/utils/parseOxc.js +37 -0
  240. package/esm/utils/parseOxc.js.map +1 -0
  241. package/esm/utils/parseRequest.js +27 -27
  242. package/esm/utils/parseRequest.js.map +1 -1
  243. package/esm/utils/peek.js +1 -1
  244. package/esm/utils/peek.js.map +1 -1
  245. package/esm/utils/processorLookup.js +125 -0
  246. package/esm/utils/processorLookup.js.map +1 -0
  247. package/esm/utils/processorStaticSemantics.js +157 -0
  248. package/esm/utils/processorStaticSemantics.js.map +1 -0
  249. package/esm/utils/resolveWithConditions.js +99 -0
  250. package/esm/utils/resolveWithConditions.js.map +1 -0
  251. package/esm/vm/createVmContext.js +140 -141
  252. package/esm/vm/createVmContext.js.map +1 -1
  253. package/esm/vm/process.js +11 -13
  254. package/esm/vm/process.js.map +1 -1
  255. package/package.json +19 -26
  256. package/types/cache.d.ts +17 -8
  257. package/types/cache.js +245 -95
  258. package/types/debug/fileReporter.js +68 -23
  259. package/types/eval/broker.d.ts +92 -0
  260. package/types/eval/broker.js +2411 -0
  261. package/types/eval/lru.d.ts +10 -0
  262. package/types/eval/lru.js +36 -0
  263. package/types/eval/prepareModuleOnDemand.d.ts +7 -0
  264. package/types/eval/prepareModuleOnDemand.js +24 -0
  265. package/types/eval/protocol.d.ts +111 -0
  266. package/types/eval/protocol.js +1 -0
  267. package/types/eval/serialize.d.ts +78 -0
  268. package/types/eval/serialize.js +357 -0
  269. package/types/eval/writeQueue.d.ts +13 -0
  270. package/types/eval/writeQueue.js +80 -0
  271. package/types/evaluators/index.d.ts +2 -2
  272. package/types/evaluators/index.js +6 -9
  273. package/types/index.d.ts +3 -6
  274. package/types/index.js +24 -82
  275. package/types/module.d.ts +38 -7
  276. package/types/module.js +613 -192
  277. package/types/shaker.d.ts +2 -10
  278. package/types/shaker.js +10 -100
  279. package/types/transform/BaseEntrypoint.js +6 -11
  280. package/types/transform/Entrypoint.d.ts +15 -15
  281. package/types/transform/Entrypoint.helpers.d.ts +2 -5
  282. package/types/transform/Entrypoint.helpers.js +43 -203
  283. package/types/transform/Entrypoint.js +130 -53
  284. package/types/transform/Entrypoint.types.d.ts +31 -6
  285. package/types/transform/Entrypoint.types.js +1 -2
  286. package/types/transform/EvaluatedEntrypoint.d.ts +13 -2
  287. package/types/transform/EvaluatedEntrypoint.js +7 -6
  288. package/types/transform/actions/AbortError.js +2 -7
  289. package/types/transform/actions/BaseAction.js +4 -8
  290. package/types/transform/actions/UnprocessedEntrypointError.js +2 -7
  291. package/types/transform/actions/actionRunner.js +8 -12
  292. package/types/transform/actions/types.d.ts +2 -2
  293. package/types/transform/actions/types.js +1 -2
  294. package/types/transform/{barrelManifest.d.ts → barrelManifest.types.d.ts} +0 -2
  295. package/types/transform/barrelManifest.types.js +1 -0
  296. package/types/transform/generators/baseProcessingHandlers.d.ts +4 -5
  297. package/types/transform/generators/baseProcessingHandlers.js +10 -14
  298. package/types/transform/generators/collect.js +13 -39
  299. package/types/transform/generators/createStylisPreprocessor.js +19 -60
  300. package/types/transform/generators/evalFile.d.ts +2 -2
  301. package/types/transform/generators/evalFile.js +26 -28
  302. package/types/transform/generators/extract.js +5 -8
  303. package/types/transform/generators/getExports.js +23 -30
  304. package/types/transform/generators/index.d.ts +2 -2
  305. package/types/transform/generators/index.js +11 -14
  306. package/types/transform/generators/processEntrypoint.d.ts +2 -2
  307. package/types/transform/generators/processEntrypoint.js +60 -26
  308. package/types/transform/generators/processImports.d.ts +0 -3
  309. package/types/transform/generators/processImports.js +60 -20
  310. package/types/transform/generators/resolveImports.d.ts +3 -1
  311. package/types/transform/generators/resolveImports.js +66 -23
  312. package/types/transform/generators/resolveStaticOxcValues/cache.d.ts +25 -0
  313. package/types/transform/generators/resolveStaticOxcValues/cache.js +182 -0
  314. package/types/transform/generators/resolveStaticOxcValues/candidateResolver.d.ts +5 -0
  315. package/types/transform/generators/resolveStaticOxcValues/candidateResolver.js +149 -0
  316. package/types/transform/generators/resolveStaticOxcValues/dependencies.d.ts +6 -0
  317. package/types/transform/generators/resolveStaticOxcValues/dependencies.js +37 -0
  318. package/types/transform/generators/resolveStaticOxcValues/environment.d.ts +12 -0
  319. package/types/transform/generators/resolveStaticOxcValues/environment.js +32 -0
  320. package/types/transform/generators/resolveStaticOxcValues/exportResolver.d.ts +4 -0
  321. package/types/transform/generators/resolveStaticOxcValues/exportResolver.js +358 -0
  322. package/types/transform/generators/resolveStaticOxcValues/exportTargets.d.ts +20 -0
  323. package/types/transform/generators/resolveStaticOxcValues/exportTargets.js +285 -0
  324. package/types/transform/generators/resolveStaticOxcValues/objectAssign.d.ts +41 -0
  325. package/types/transform/generators/resolveStaticOxcValues/objectAssign.js +352 -0
  326. package/types/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.d.ts +6 -0
  327. package/types/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js +88 -0
  328. package/types/transform/generators/resolveStaticOxcValues/opaqueRuntime.d.ts +13 -0
  329. package/types/transform/generators/resolveStaticOxcValues/opaqueRuntime.js +263 -0
  330. package/types/transform/generators/resolveStaticOxcValues/processorStaticExport.d.ts +4 -0
  331. package/types/transform/generators/resolveStaticOxcValues/processorStaticExport.js +191 -0
  332. package/types/transform/generators/resolveStaticOxcValues/processorStaticModel.d.ts +40 -0
  333. package/types/transform/generators/resolveStaticOxcValues/processorStaticModel.js +516 -0
  334. package/types/transform/generators/resolveStaticOxcValues/processorTarget.d.ts +5 -0
  335. package/types/transform/generators/resolveStaticOxcValues/processorTarget.js +62 -0
  336. package/types/transform/generators/resolveStaticOxcValues/programAnalysis.d.ts +11 -0
  337. package/types/transform/generators/resolveStaticOxcValues/programAnalysis.js +133 -0
  338. package/types/transform/generators/resolveStaticOxcValues/prune.d.ts +15 -0
  339. package/types/transform/generators/resolveStaticOxcValues/prune.js +220 -0
  340. package/types/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.d.ts +2 -0
  341. package/types/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js +197 -0
  342. package/types/transform/generators/resolveStaticOxcValues/staticExpression.d.ts +25 -0
  343. package/types/transform/generators/resolveStaticOxcValues/staticExpression.js +391 -0
  344. package/types/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.d.ts +14 -0
  345. package/types/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js +304 -0
  346. package/types/transform/generators/resolveStaticOxcValues/types.d.ts +99 -0
  347. package/types/transform/generators/resolveStaticOxcValues/types.js +2 -0
  348. package/types/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.d.ts +7 -0
  349. package/types/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js +64 -0
  350. package/types/transform/generators/resolveStaticOxcValues.d.ts +1 -0
  351. package/types/transform/generators/resolveStaticOxcValues.js +1 -0
  352. package/types/transform/generators/{rewriteBarrelImports.d.ts → rewriteOxcBarrelImports.d.ts} +2 -3
  353. package/types/transform/generators/{rewriteBarrelImports.js → rewriteOxcBarrelImports.js} +282 -225
  354. package/types/transform/generators/transform.d.ts +3 -7
  355. package/types/transform/generators/transform.js +217 -199
  356. package/types/transform/generators/workflow.js +62 -45
  357. package/types/transform/helpers/loadWywOptions.js +115 -21
  358. package/types/transform/helpers/withDefaultServices.d.ts +1 -1
  359. package/types/transform/helpers/withDefaultServices.js +6 -44
  360. package/types/transform/isStaticallyEvaluatableModule.d.ts +1 -2
  361. package/types/transform/isStaticallyEvaluatableModule.js +125 -126
  362. package/types/transform/oxcBarrelManifest.d.ts +2 -0
  363. package/types/transform/{barrelManifest.js → oxcBarrelManifest.js} +156 -97
  364. package/types/transform/rootLog.js +2 -5
  365. package/types/transform/syntax.d.ts +38 -0
  366. package/types/transform/syntax.js +1 -0
  367. package/types/transform/types.d.ts +9 -6
  368. package/types/transform/types.js +1 -4
  369. package/types/transform.d.ts +2 -2
  370. package/types/transform.js +90 -101
  371. package/types/types.d.ts +0 -23
  372. package/types/types.js +1 -2
  373. package/types/utils/EventEmitter.d.ts +16 -1
  374. package/types/utils/EventEmitter.js +47 -18
  375. package/types/utils/ShakerMetadata.js +1 -5
  376. package/types/utils/TransformDiagnostics.js +3 -7
  377. package/types/utils/TransformMetadata.js +8 -16
  378. package/types/utils/applyOxcProcessors/applyOxcProcessors.d.ts +8 -0
  379. package/types/utils/applyOxcProcessors/applyOxcProcessors.js +167 -0
  380. package/types/utils/applyOxcProcessors/cleanupBindings.d.ts +12 -0
  381. package/types/utils/applyOxcProcessors/cleanupBindings.js +189 -0
  382. package/types/utils/applyOxcProcessors/cleanupRemovals.d.ts +16 -0
  383. package/types/utils/applyOxcProcessors/cleanupRemovals.js +482 -0
  384. package/types/utils/applyOxcProcessors/displayName.d.ts +9 -0
  385. package/types/utils/applyOxcProcessors/displayName.js +113 -0
  386. package/types/utils/applyOxcProcessors/expressionValues.d.ts +11 -0
  387. package/types/utils/applyOxcProcessors/expressionValues.js +170 -0
  388. package/types/utils/applyOxcProcessors/processorFactory.d.ts +7 -0
  389. package/types/utils/applyOxcProcessors/processorFactory.js +70 -0
  390. package/types/utils/applyOxcProcessors/processorUsages.d.ts +16 -0
  391. package/types/utils/applyOxcProcessors/processorUsages.js +163 -0
  392. package/types/utils/applyOxcProcessors/sameFileStaticValues.d.ts +23 -0
  393. package/types/utils/applyOxcProcessors/sameFileStaticValues.js +211 -0
  394. package/types/utils/applyOxcProcessors/shared.d.ts +10 -0
  395. package/types/utils/applyOxcProcessors/shared.js +37 -0
  396. package/types/utils/applyOxcProcessors/types.d.ts +88 -0
  397. package/types/utils/applyOxcProcessors/types.js +1 -0
  398. package/types/utils/applyOxcProcessors.d.ts +1 -0
  399. package/types/utils/applyOxcProcessors.js +1 -0
  400. package/types/utils/collectOxcExportsAndImports.d.ts +35 -0
  401. package/types/utils/collectOxcExportsAndImports.js +957 -0
  402. package/types/utils/collectOxcRuntime/normalizeRuntimeCode.d.ts +1 -0
  403. package/types/utils/collectOxcRuntime/normalizeRuntimeCode.js +185 -0
  404. package/types/utils/collectOxcRuntime/sourceMap.d.ts +2 -0
  405. package/types/utils/collectOxcRuntime/sourceMap.js +37 -0
  406. package/types/utils/collectOxcRuntime/types.d.ts +16 -0
  407. package/types/utils/collectOxcRuntime/types.js +1 -0
  408. package/types/utils/collectOxcRuntime.d.ts +4 -0
  409. package/types/utils/collectOxcRuntime.js +31 -0
  410. package/types/utils/collectOxcTemplateDependencies/expressionExtraction.d.ts +6 -0
  411. package/types/utils/collectOxcTemplateDependencies/expressionExtraction.js +550 -0
  412. package/types/utils/collectOxcTemplateDependencies/expressionReplacements.d.ts +11 -0
  413. package/types/utils/collectOxcTemplateDependencies/expressionReplacements.js +131 -0
  414. package/types/utils/collectOxcTemplateDependencies/scopeAnalysis.d.ts +20 -0
  415. package/types/utils/collectOxcTemplateDependencies/scopeAnalysis.js +434 -0
  416. package/types/utils/collectOxcTemplateDependencies/staticBindings.d.ts +7 -0
  417. package/types/utils/collectOxcTemplateDependencies/staticBindings.js +13 -0
  418. package/types/utils/collectOxcTemplateDependencies/staticEvaluator.d.ts +13 -0
  419. package/types/utils/collectOxcTemplateDependencies/staticEvaluator.js +626 -0
  420. package/types/utils/collectOxcTemplateDependencies/types.d.ts +116 -0
  421. package/types/utils/collectOxcTemplateDependencies/types.js +1 -0
  422. package/types/utils/collectOxcTemplateDependencies.d.ts +4 -0
  423. package/types/utils/collectOxcTemplateDependencies.js +3 -0
  424. package/types/utils/getFileIdx.js +1 -4
  425. package/types/utils/getPluginKey.d.ts +5 -2
  426. package/types/utils/getPluginKey.js +2 -6
  427. package/types/utils/getVisitorKeys.d.ts +4 -4
  428. package/types/utils/getVisitorKeys.js +9 -6
  429. package/types/utils/hasCachedWywPrevalExport.d.ts +14 -0
  430. package/types/utils/hasCachedWywPrevalExport.js +30 -0
  431. package/types/utils/hasWywPreval.js +1 -4
  432. package/types/utils/importOverrides.js +17 -27
  433. package/types/utils/isNode.d.ts +2 -2
  434. package/types/utils/isNode.js +2 -6
  435. package/types/utils/isNotNull.js +1 -4
  436. package/types/utils/isSerializable.js +3 -6
  437. package/types/utils/nativeResolver.d.ts +13 -0
  438. package/types/utils/nativeResolver.js +91 -0
  439. package/types/utils/oxc/ast.d.ts +4 -0
  440. package/types/utils/oxc/ast.js +37 -0
  441. package/types/utils/oxc/parse.d.ts +3 -0
  442. package/types/utils/oxc/parse.js +2 -0
  443. package/types/utils/oxc/replacements.d.ts +12 -0
  444. package/types/utils/oxc/replacements.js +18 -0
  445. package/types/utils/oxc/sourceLocations.d.ts +5 -0
  446. package/types/utils/oxc/sourceLocations.js +63 -0
  447. package/types/utils/oxcAstService.d.ts +11 -0
  448. package/types/utils/oxcAstService.js +79 -0
  449. package/types/utils/oxcEmit.d.ts +19 -0
  450. package/types/utils/oxcEmit.js +506 -0
  451. package/types/utils/oxcPreevalStage/evalStrategy.d.ts +3 -0
  452. package/types/utils/oxcPreevalStage/evalStrategy.js +2 -0
  453. package/types/utils/oxcPreevalStage/prepareCode.d.ts +3 -0
  454. package/types/utils/oxcPreevalStage/prepareCode.js +20 -0
  455. package/types/utils/oxcPreevalStage/prevalExport.d.ts +1 -0
  456. package/types/utils/oxcPreevalStage/prevalExport.js +22 -0
  457. package/types/utils/oxcPreevalStage/processors.d.ts +10 -0
  458. package/types/utils/oxcPreevalStage/processors.js +16 -0
  459. package/types/utils/oxcPreevalStage/staticOverlay.d.ts +3 -0
  460. package/types/utils/oxcPreevalStage/staticOverlay.js +23 -0
  461. package/types/utils/oxcPreevalStage/types.d.ts +22 -0
  462. package/types/utils/oxcPreevalStage/types.js +1 -0
  463. package/types/utils/oxcPreevalStage.d.ts +4 -0
  464. package/types/utils/oxcPreevalStage.js +40 -0
  465. package/types/utils/oxcPreevalTransforms.d.ts +13 -0
  466. package/types/utils/oxcPreevalTransforms.js +1192 -0
  467. package/types/utils/oxcShaker.d.ts +13 -0
  468. package/types/utils/oxcShaker.js +751 -0
  469. package/types/utils/parseOxc.d.ts +11 -0
  470. package/types/utils/parseOxc.js +38 -0
  471. package/types/utils/parseRequest.js +2 -7
  472. package/types/utils/peek.js +1 -5
  473. package/types/utils/processorLookup.d.ts +8 -0
  474. package/types/utils/processorLookup.js +135 -0
  475. package/types/utils/processorStaticSemantics.d.ts +13 -0
  476. package/types/utils/processorStaticSemantics.js +191 -0
  477. package/types/utils/resolveWithConditions.d.ts +12 -0
  478. package/types/utils/resolveWithConditions.js +103 -0
  479. package/types/vm/createVmContext.d.ts +2 -2
  480. package/types/vm/createVmContext.js +25 -62
  481. package/types/vm/process.js +20 -26
  482. package/esm/babel.js +0 -2
  483. package/esm/babel.js.map +0 -1
  484. package/esm/options/buildOptions.js +0 -168
  485. package/esm/options/buildOptions.js.map +0 -1
  486. package/esm/options/buildOptions.test.js +0 -138
  487. package/esm/options/buildOptions.test.js.map +0 -1
  488. package/esm/options/loadBabelOptions.js +0 -24
  489. package/esm/options/loadBabelOptions.js.map +0 -1
  490. package/esm/plugins/babel-transform.js +0 -53
  491. package/esm/plugins/babel-transform.js.map +0 -1
  492. package/esm/plugins/collector.js +0 -60
  493. package/esm/plugins/collector.js.map +0 -1
  494. package/esm/plugins/dynamic-import.js +0 -56
  495. package/esm/plugins/dynamic-import.js.map +0 -1
  496. package/esm/plugins/preeval.js +0 -73
  497. package/esm/plugins/preeval.js.map +0 -1
  498. package/esm/plugins/shaker.js +0 -680
  499. package/esm/plugins/shaker.js.map +0 -1
  500. package/esm/transform/barrelManifest.js +0 -291
  501. package/esm/transform/barrelManifest.js.map +0 -1
  502. package/esm/transform/generators/explodeReexports.js +0 -64
  503. package/esm/transform/generators/explodeReexports.js.map +0 -1
  504. package/esm/transform/generators/rewriteBarrelImports.js +0 -733
  505. package/esm/transform/generators/rewriteBarrelImports.js.map +0 -1
  506. package/esm/utils/addIdentifierToWywPreval.js +0 -68
  507. package/esm/utils/addIdentifierToWywPreval.js.map +0 -1
  508. package/esm/utils/collectExportsAndImports.js +0 -1157
  509. package/esm/utils/collectExportsAndImports.js.map +0 -1
  510. package/esm/utils/collectTemplateDependencies.js +0 -228
  511. package/esm/utils/collectTemplateDependencies.js.map +0 -1
  512. package/esm/utils/createId.js +0 -6
  513. package/esm/utils/createId.js.map +0 -1
  514. package/esm/utils/findIdentifiers.js +0 -62
  515. package/esm/utils/findIdentifiers.js.map +0 -1
  516. package/esm/utils/getConstantStringValue.js +0 -58
  517. package/esm/utils/getConstantStringValue.js.map +0 -1
  518. package/esm/utils/getMemberExpressionPropertyName.js +0 -11
  519. package/esm/utils/getMemberExpressionPropertyName.js.map +0 -1
  520. package/esm/utils/getScope.js +0 -6
  521. package/esm/utils/getScope.js.map +0 -1
  522. package/esm/utils/getSource.js +0 -15
  523. package/esm/utils/getSource.js.map +0 -1
  524. package/esm/utils/getTagProcessor.js +0 -404
  525. package/esm/utils/getTagProcessor.js.map +0 -1
  526. package/esm/utils/isExports.js +0 -22
  527. package/esm/utils/isExports.js.map +0 -1
  528. package/esm/utils/isGlobal.js +0 -6
  529. package/esm/utils/isGlobal.js.map +0 -1
  530. package/esm/utils/isNodePath.js +0 -4
  531. package/esm/utils/isNodePath.js.map +0 -1
  532. package/esm/utils/isRemoved.js +0 -46
  533. package/esm/utils/isRemoved.js.map +0 -1
  534. package/esm/utils/isRequire.js +0 -13
  535. package/esm/utils/isRequire.js.map +0 -1
  536. package/esm/utils/isTypedNode.js +0 -6
  537. package/esm/utils/isTypedNode.js.map +0 -1
  538. package/esm/utils/isUnnecessaryReactCall.js +0 -72
  539. package/esm/utils/isUnnecessaryReactCall.js.map +0 -1
  540. package/esm/utils/removeDangerousCode.js +0 -276
  541. package/esm/utils/removeDangerousCode.js.map +0 -1
  542. package/esm/utils/replaceImportMetaEnv.js +0 -44
  543. package/esm/utils/replaceImportMetaEnv.js.map +0 -1
  544. package/esm/utils/scopeHelpers.js +0 -527
  545. package/esm/utils/scopeHelpers.js.map +0 -1
  546. package/esm/utils/traversalCache.js +0 -23
  547. package/esm/utils/traversalCache.js.map +0 -1
  548. package/esm/utils/unwrapExpression.js +0 -18
  549. package/esm/utils/unwrapExpression.js.map +0 -1
  550. package/esm/utils/unwrapSequence.js +0 -14
  551. package/esm/utils/unwrapSequence.js.map +0 -1
  552. package/esm/utils/valueToLiteral.js +0 -59
  553. package/esm/utils/valueToLiteral.js.map +0 -1
  554. package/esm/utils/visitors/JSXElementsRemover.js +0 -51
  555. package/esm/utils/visitors/JSXElementsRemover.js.map +0 -1
  556. package/lib/babel.js +0 -2
  557. package/lib/babel.js.map +0 -1
  558. package/lib/cache.js +0 -308
  559. package/lib/cache.js.map +0 -1
  560. package/lib/debug/fileReporter.js +0 -153
  561. package/lib/debug/fileReporter.js.map +0 -1
  562. package/lib/evaluators/index.js +0 -20
  563. package/lib/evaluators/index.js.map +0 -1
  564. package/lib/index.js +0 -286
  565. package/lib/index.js.map +0 -1
  566. package/lib/module.js +0 -552
  567. package/lib/module.js.map +0 -1
  568. package/lib/options/buildOptions.js +0 -176
  569. package/lib/options/buildOptions.js.map +0 -1
  570. package/lib/options/buildOptions.test.js +0 -141
  571. package/lib/options/buildOptions.test.js.map +0 -1
  572. package/lib/options/loadBabelOptions.js +0 -31
  573. package/lib/options/loadBabelOptions.js.map +0 -1
  574. package/lib/plugins/babel-transform.js +0 -60
  575. package/lib/plugins/babel-transform.js.map +0 -1
  576. package/lib/plugins/collector.js +0 -70
  577. package/lib/plugins/collector.js.map +0 -1
  578. package/lib/plugins/dynamic-import.js +0 -61
  579. package/lib/plugins/dynamic-import.js.map +0 -1
  580. package/lib/plugins/preeval.js +0 -81
  581. package/lib/plugins/preeval.js.map +0 -1
  582. package/lib/plugins/shaker.js +0 -691
  583. package/lib/plugins/shaker.js.map +0 -1
  584. package/lib/shaker.js +0 -95
  585. package/lib/shaker.js.map +0 -1
  586. package/lib/transform/BaseEntrypoint.js +0 -179
  587. package/lib/transform/BaseEntrypoint.js.map +0 -1
  588. package/lib/transform/Entrypoint.helpers.js +0 -279
  589. package/lib/transform/Entrypoint.helpers.js.map +0 -1
  590. package/lib/transform/Entrypoint.js +0 -289
  591. package/lib/transform/Entrypoint.js.map +0 -1
  592. package/lib/transform/Entrypoint.types.js +0 -2
  593. package/lib/transform/Entrypoint.types.js.map +0 -1
  594. package/lib/transform/EvaluatedEntrypoint.js +0 -13
  595. package/lib/transform/EvaluatedEntrypoint.js.map +0 -1
  596. package/lib/transform/actions/AbortError.js +0 -16
  597. package/lib/transform/actions/AbortError.js.map +0 -1
  598. package/lib/transform/actions/BaseAction.js +0 -150
  599. package/lib/transform/actions/BaseAction.js.map +0 -1
  600. package/lib/transform/actions/UnprocessedEntrypointError.js +0 -16
  601. package/lib/transform/actions/UnprocessedEntrypointError.js.map +0 -1
  602. package/lib/transform/actions/actionRunner.js +0 -82
  603. package/lib/transform/actions/actionRunner.js.map +0 -1
  604. package/lib/transform/actions/types.js +0 -2
  605. package/lib/transform/actions/types.js.map +0 -1
  606. package/lib/transform/barrelManifest.js +0 -300
  607. package/lib/transform/barrelManifest.js.map +0 -1
  608. package/lib/transform/generators/baseProcessingHandlers.js +0 -27
  609. package/lib/transform/generators/baseProcessingHandlers.js.map +0 -1
  610. package/lib/transform/generators/collect.js +0 -66
  611. package/lib/transform/generators/collect.js.map +0 -1
  612. package/lib/transform/generators/createStylisPreprocessor.js +0 -372
  613. package/lib/transform/generators/createStylisPreprocessor.js.map +0 -1
  614. package/lib/transform/generators/evalFile.js +0 -57
  615. package/lib/transform/generators/evalFile.js.map +0 -1
  616. package/lib/transform/generators/explodeReexports.js +0 -71
  617. package/lib/transform/generators/explodeReexports.js.map +0 -1
  618. package/lib/transform/generators/extract.js +0 -102
  619. package/lib/transform/generators/extract.js.map +0 -1
  620. package/lib/transform/generators/getExports.js +0 -85
  621. package/lib/transform/generators/getExports.js.map +0 -1
  622. package/lib/transform/generators/index.js +0 -19
  623. package/lib/transform/generators/index.js.map +0 -1
  624. package/lib/transform/generators/processEntrypoint.js +0 -76
  625. package/lib/transform/generators/processEntrypoint.js.map +0 -1
  626. package/lib/transform/generators/processImports.js +0 -82
  627. package/lib/transform/generators/processImports.js.map +0 -1
  628. package/lib/transform/generators/resolveImports.js +0 -221
  629. package/lib/transform/generators/resolveImports.js.map +0 -1
  630. package/lib/transform/generators/rewriteBarrelImports.js +0 -743
  631. package/lib/transform/generators/rewriteBarrelImports.js.map +0 -1
  632. package/lib/transform/generators/transform.js +0 -272
  633. package/lib/transform/generators/transform.js.map +0 -1
  634. package/lib/transform/generators/workflow.js +0 -100
  635. package/lib/transform/generators/workflow.js.map +0 -1
  636. package/lib/transform/helpers/loadWywOptions.js +0 -88
  637. package/lib/transform/helpers/loadWywOptions.js.map +0 -1
  638. package/lib/transform/helpers/withDefaultServices.js +0 -31
  639. package/lib/transform/helpers/withDefaultServices.js.map +0 -1
  640. package/lib/transform/isStaticallyEvaluatableModule.js +0 -159
  641. package/lib/transform/isStaticallyEvaluatableModule.js.map +0 -1
  642. package/lib/transform/rootLog.js +0 -9
  643. package/lib/transform/rootLog.js.map +0 -1
  644. package/lib/transform/types.js +0 -8
  645. package/lib/transform/types.js.map +0 -1
  646. package/lib/transform.js +0 -160
  647. package/lib/transform.js.map +0 -1
  648. package/lib/types.js +0 -2
  649. package/lib/types.js.map +0 -1
  650. package/lib/utils/EventEmitter.js +0 -61
  651. package/lib/utils/EventEmitter.js.map +0 -1
  652. package/lib/utils/ShakerMetadata.js +0 -9
  653. package/lib/utils/ShakerMetadata.js.map +0 -1
  654. package/lib/utils/TransformDiagnostics.js +0 -20
  655. package/lib/utils/TransformDiagnostics.js.map +0 -1
  656. package/lib/utils/TransformMetadata.js +0 -45
  657. package/lib/utils/TransformMetadata.js.map +0 -1
  658. package/lib/utils/addIdentifierToWywPreval.js +0 -75
  659. package/lib/utils/addIdentifierToWywPreval.js.map +0 -1
  660. package/lib/utils/collectExportsAndImports.js +0 -1173
  661. package/lib/utils/collectExportsAndImports.js.map +0 -1
  662. package/lib/utils/collectTemplateDependencies.js +0 -242
  663. package/lib/utils/collectTemplateDependencies.js.map +0 -1
  664. package/lib/utils/createId.js +0 -13
  665. package/lib/utils/createId.js.map +0 -1
  666. package/lib/utils/dispose-polyfill.js +0 -9
  667. package/lib/utils/dispose-polyfill.js.map +0 -1
  668. package/lib/utils/findIdentifiers.js +0 -73
  669. package/lib/utils/findIdentifiers.js.map +0 -1
  670. package/lib/utils/getConstantStringValue.js +0 -66
  671. package/lib/utils/getConstantStringValue.js.map +0 -1
  672. package/lib/utils/getFileIdx.js +0 -16
  673. package/lib/utils/getFileIdx.js.map +0 -1
  674. package/lib/utils/getMemberExpressionPropertyName.js +0 -18
  675. package/lib/utils/getMemberExpressionPropertyName.js.map +0 -1
  676. package/lib/utils/getPluginKey.js +0 -21
  677. package/lib/utils/getPluginKey.js.map +0 -1
  678. package/lib/utils/getScope.js +0 -12
  679. package/lib/utils/getScope.js.map +0 -1
  680. package/lib/utils/getSource.js +0 -24
  681. package/lib/utils/getSource.js.map +0 -1
  682. package/lib/utils/getTagProcessor.js +0 -424
  683. package/lib/utils/getTagProcessor.js.map +0 -1
  684. package/lib/utils/getVisitorKeys.js +0 -11
  685. package/lib/utils/getVisitorKeys.js.map +0 -1
  686. package/lib/utils/hasWywPreval.js +0 -13
  687. package/lib/utils/hasWywPreval.js.map +0 -1
  688. package/lib/utils/importOverrides.js +0 -119
  689. package/lib/utils/importOverrides.js.map +0 -1
  690. package/lib/utils/isExports.js +0 -27
  691. package/lib/utils/isExports.js.map +0 -1
  692. package/lib/utils/isGlobal.js +0 -13
  693. package/lib/utils/isGlobal.js.map +0 -1
  694. package/lib/utils/isNode.js +0 -9
  695. package/lib/utils/isNode.js.map +0 -1
  696. package/lib/utils/isNodePath.js +0 -10
  697. package/lib/utils/isNodePath.js.map +0 -1
  698. package/lib/utils/isNotNull.js +0 -10
  699. package/lib/utils/isNotNull.js.map +0 -1
  700. package/lib/utils/isRemoved.js +0 -52
  701. package/lib/utils/isRemoved.js.map +0 -1
  702. package/lib/utils/isRequire.js +0 -18
  703. package/lib/utils/isRequire.js.map +0 -1
  704. package/lib/utils/isSerializable.js +0 -19
  705. package/lib/utils/isSerializable.js.map +0 -1
  706. package/lib/utils/isTypedNode.js +0 -13
  707. package/lib/utils/isTypedNode.js.map +0 -1
  708. package/lib/utils/isUnnecessaryReactCall.js +0 -81
  709. package/lib/utils/isUnnecessaryReactCall.js.map +0 -1
  710. package/lib/utils/parseRequest.js +0 -37
  711. package/lib/utils/parseRequest.js.map +0 -1
  712. package/lib/utils/peek.js +0 -9
  713. package/lib/utils/peek.js.map +0 -1
  714. package/lib/utils/removeDangerousCode.js +0 -284
  715. package/lib/utils/removeDangerousCode.js.map +0 -1
  716. package/lib/utils/replaceImportMetaEnv.js +0 -50
  717. package/lib/utils/replaceImportMetaEnv.js.map +0 -1
  718. package/lib/utils/scopeHelpers.js +0 -557
  719. package/lib/utils/scopeHelpers.js.map +0 -1
  720. package/lib/utils/traversalCache.js +0 -31
  721. package/lib/utils/traversalCache.js.map +0 -1
  722. package/lib/utils/unwrapExpression.js +0 -25
  723. package/lib/utils/unwrapExpression.js.map +0 -1
  724. package/lib/utils/unwrapSequence.js +0 -20
  725. package/lib/utils/unwrapSequence.js.map +0 -1
  726. package/lib/utils/valueToLiteral.js +0 -65
  727. package/lib/utils/valueToLiteral.js.map +0 -1
  728. package/lib/utils/visitors/JSXElementsRemover.js +0 -57
  729. package/lib/utils/visitors/JSXElementsRemover.js.map +0 -1
  730. package/lib/vm/createVmContext.js +0 -166
  731. package/lib/vm/createVmContext.js.map +0 -1
  732. package/lib/vm/process.js +0 -38
  733. package/lib/vm/process.js.map +0 -1
  734. package/types/babel.d.ts +0 -2
  735. package/types/babel.js +0 -2
  736. package/types/options/buildOptions.d.ts +0 -6
  737. package/types/options/buildOptions.js +0 -178
  738. package/types/options/loadBabelOptions.d.ts +0 -3
  739. package/types/options/loadBabelOptions.js +0 -26
  740. package/types/plugins/babel-transform.d.ts +0 -4
  741. package/types/plugins/babel-transform.js +0 -49
  742. package/types/plugins/collector.d.ts +0 -23
  743. package/types/plugins/collector.js +0 -62
  744. package/types/plugins/dynamic-import.d.ts +0 -6
  745. package/types/plugins/dynamic-import.js +0 -60
  746. package/types/plugins/preeval.d.ts +0 -16
  747. package/types/plugins/preeval.js +0 -69
  748. package/types/plugins/shaker.d.ts +0 -14
  749. package/types/plugins/shaker.js +0 -724
  750. package/types/transform/generators/explodeReexports.d.ts +0 -7
  751. package/types/transform/generators/explodeReexports.js +0 -65
  752. package/types/utils/addIdentifierToWywPreval.d.ts +0 -4
  753. package/types/utils/addIdentifierToWywPreval.js +0 -74
  754. package/types/utils/collectExportsAndImports.d.ts +0 -31
  755. package/types/utils/collectExportsAndImports.js +0 -1147
  756. package/types/utils/collectTemplateDependencies.d.ts +0 -17
  757. package/types/utils/collectTemplateDependencies.js +0 -220
  758. package/types/utils/createId.d.ts +0 -2
  759. package/types/utils/createId.js +0 -9
  760. package/types/utils/findIdentifiers.d.ts +0 -6
  761. package/types/utils/findIdentifiers.js +0 -67
  762. package/types/utils/getConstantStringValue.d.ts +0 -2
  763. package/types/utils/getConstantStringValue.js +0 -94
  764. package/types/utils/getMemberExpressionPropertyName.d.ts +0 -2
  765. package/types/utils/getMemberExpressionPropertyName.js +0 -46
  766. package/types/utils/getScope.d.ts +0 -2
  767. package/types/utils/getScope.js +0 -10
  768. package/types/utils/getSource.d.ts +0 -2
  769. package/types/utils/getSource.js +0 -22
  770. package/types/utils/getTagProcessor.d.ts +0 -13
  771. package/types/utils/getTagProcessor.js +0 -411
  772. package/types/utils/isExports.d.ts +0 -6
  773. package/types/utils/isExports.js +0 -19
  774. package/types/utils/isGlobal.d.ts +0 -2
  775. package/types/utils/isGlobal.js +0 -9
  776. package/types/utils/isNodePath.d.ts +0 -3
  777. package/types/utils/isNodePath.js +0 -6
  778. package/types/utils/isRemoved.d.ts +0 -5
  779. package/types/utils/isRemoved.js +0 -41
  780. package/types/utils/isRequire.d.ts +0 -6
  781. package/types/utils/isRequire.js +0 -14
  782. package/types/utils/isTypedNode.d.ts +0 -5
  783. package/types/utils/isTypedNode.js +0 -9
  784. package/types/utils/isUnnecessaryReactCall.d.ts +0 -3
  785. package/types/utils/isUnnecessaryReactCall.js +0 -75
  786. package/types/utils/removeDangerousCode.d.ts +0 -4
  787. package/types/utils/removeDangerousCode.js +0 -326
  788. package/types/utils/replaceImportMetaEnv.d.ts +0 -3
  789. package/types/utils/replaceImportMetaEnv.js +0 -39
  790. package/types/utils/scopeHelpers.d.ts +0 -12
  791. package/types/utils/scopeHelpers.js +0 -580
  792. package/types/utils/traversalCache.d.ts +0 -4
  793. package/types/utils/traversalCache.js +0 -27
  794. package/types/utils/unwrapExpression.d.ts +0 -2
  795. package/types/utils/unwrapExpression.js +0 -57
  796. package/types/utils/unwrapSequence.d.ts +0 -8
  797. package/types/utils/unwrapSequence.js +0 -16
  798. package/types/utils/valueToLiteral.d.ts +0 -3
  799. package/types/utils/valueToLiteral.js +0 -63
  800. package/types/utils/visitors/JSXElementsRemover.d.ts +0 -3
  801. package/types/utils/visitors/JSXElementsRemover.js +0 -51
@@ -1,7 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.processImports = processImports;
4
- const importOverrides_1 = require("../../utils/importOverrides");
1
+ /* eslint-disable no-continue */
2
+ import { hasCachedWywPrevalExport, } from '../../utils/hasCachedWywPrevalExport';
3
+ import { toImportKey } from '../../utils/importOverrides';
4
+ import { stripQueryAndHash } from '../../utils/parseRequest';
5
+ import { isSuperSet, mergeOnly } from '../Entrypoint.helpers';
5
6
  const warnedSlowImportsByServices = new WeakMap();
6
7
  function emitWarning(services, message) {
7
8
  if (services.emitWarning) {
@@ -22,10 +23,18 @@ function getWarnedSlowImports(services) {
22
23
  function isWarningEnabled(value) {
23
24
  return Boolean(value) && value !== '0' && value !== 'false';
24
25
  }
25
- /**
26
- * Creates new entrypoints and emits processEntrypoint for each resolved import
27
- */
28
- function* processImports() {
26
+ function hasLoop(name, parent, processed = []) {
27
+ if (parent.name === name || processed.includes(parent.name)) {
28
+ return true;
29
+ }
30
+ for (const nextParent of parent.parents) {
31
+ if (hasLoop(name, nextParent, [...processed, parent.name])) {
32
+ return true;
33
+ }
34
+ }
35
+ return false;
36
+ }
37
+ export function* processImports() {
29
38
  const slowImportWarningsEnabled = isWarningEnabled(process.env.WYW_WARN_SLOW_IMPORTS);
30
39
  const slowImportThresholdMs = (() => {
31
40
  const raw = process.env.WYW_WARN_SLOW_IMPORTS_MS;
@@ -40,13 +49,44 @@ function* processImports() {
40
49
  ? getWarnedSlowImports(this.services)
41
50
  : null;
42
51
  const { root } = this.services.options;
52
+ const prepareStageRequiresEvaluatedDeps = this.entrypoint.only.includes('__wywPreval');
53
+ const skippedParentDependencySources = new Set(this.data.skipParentDependencyTracking ?? []);
43
54
  for (const dependency of this.data.resolved) {
44
55
  const { resolved, only } = dependency;
45
56
  if (!resolved) {
46
57
  continue;
47
58
  }
48
- this.entrypoint.addDependency(dependency);
49
- const nextEntrypoint = this.entrypoint.createChild(resolved, only);
59
+ const cached = this.services.cache.get('entrypoints', resolved);
60
+ const shouldRequireWywPreval = prepareStageRequiresEvaluatedDeps &&
61
+ (!cached?.evaluated ||
62
+ cached.ignored ||
63
+ hasCachedWywPrevalExport(this.services, resolved, cached));
64
+ const requiredOnly = shouldRequireWywPreval
65
+ ? mergeOnly(only, ['__wywPreval'])
66
+ : only;
67
+ if (!skippedParentDependencySources.has(dependency.source)) {
68
+ this.entrypoint.addDependency({
69
+ ...dependency,
70
+ only: requiredOnly,
71
+ });
72
+ }
73
+ const canReuseTransformedDependency = !prepareStageRequiresEvaluatedDeps &&
74
+ Boolean(cached && !cached.evaluated && cached.transformed);
75
+ if (cached &&
76
+ (cached.evaluated || canReuseTransformedDependency) &&
77
+ isSuperSet(cached.only, requiredOnly) &&
78
+ !hasLoop(resolved, this.entrypoint) &&
79
+ !this.services.cache.checkFreshness(resolved, stripQueryAndHash(resolved))) {
80
+ if (Array.isArray(cached.parents)) {
81
+ if (!cached.parents
82
+ .map((parent) => parent.name)
83
+ .includes(this.entrypoint.name)) {
84
+ cached.parents.push(this.entrypoint);
85
+ }
86
+ }
87
+ continue;
88
+ }
89
+ const nextEntrypoint = this.entrypoint.createChild(resolved, requiredOnly);
50
90
  if (nextEntrypoint === 'loop' || nextEntrypoint.ignored) {
51
91
  continue;
52
92
  }
@@ -57,7 +97,7 @@ function* processImports() {
57
97
  slowImportThresholdMs > 0) {
58
98
  const durationMs = performance.now() - startedAt;
59
99
  if (durationMs >= slowImportThresholdMs) {
60
- const { key: importKey } = (0, importOverrides_1.toImportKey)({
100
+ const { key: importKey } = toImportKey({
61
101
  source: dependency.source,
62
102
  resolved,
63
103
  root,
@@ -66,20 +106,20 @@ function* processImports() {
66
106
  if (!warnedSlowImports.has(dedupeKey)) {
67
107
  warnedSlowImports.add(dedupeKey);
68
108
  const warning = [
69
- `[wyw-in-js] Slow import during prepare stage`,
70
- ``,
109
+ '[wyw-in-js] Slow import during prepare stage',
110
+ '',
71
111
  `file: ${this.entrypoint.name}`,
72
112
  `import: ${dependency.source}`,
73
113
  `resolved: ${resolved}`,
74
114
  `duration: ${durationMs.toFixed(1)}ms`,
75
- ``,
76
- `tip: if this import is runtime-only or heavy, mock it during evaluation via importOverrides:`,
77
- ` importOverrides: {`,
115
+ '',
116
+ 'tip: if this import is runtime-only or heavy, mock it during evaluation via importOverrides:',
117
+ ' importOverrides: {',
78
118
  ` '${importKey}': { mock: './path/to/mock' },`,
79
- ` }`,
80
- ``,
81
- `note: importOverrides affects only build-time evaluation (it does not change your bundler runtime behavior)`,
82
- ``,
119
+ ' }',
120
+ '',
121
+ 'note: importOverrides affects only build-time evaluation (it does not change your bundler runtime behavior)',
122
+ '',
83
123
  `note: configure threshold with WYW_WARN_SLOW_IMPORTS_MS (current: ${slowImportThresholdMs}ms)`,
84
124
  ].join('\n');
85
125
  emitWarning(this.services, warning);
@@ -1,4 +1,5 @@
1
1
  import type { AsyncScenarioForAction, IResolveImportsAction, SyncScenarioForAction } from '../types';
2
+ type AsyncResolve = (what: string, importer: string, stack: string[]) => Promise<string | null>;
2
3
  /**
3
4
  * Synchronously resolves specified imports with a provided resolver.
4
5
  */
@@ -6,4 +7,5 @@ export declare function syncResolveImports(this: IResolveImportsAction, resolve:
6
7
  /**
7
8
  * Asynchronously resolves specified imports with a provided resolver.
8
9
  */
9
- export declare function asyncResolveImports(this: IResolveImportsAction, resolve: (what: string, importer: string, stack: string[]) => Promise<string | null>): AsyncScenarioForAction<IResolveImportsAction>;
10
+ export declare function asyncResolveImports(this: IResolveImportsAction, resolve: AsyncResolve): AsyncScenarioForAction<IResolveImportsAction>;
11
+ export {};
@@ -1,11 +1,54 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.syncResolveImports = syncResolveImports;
4
- exports.asyncResolveImports = asyncResolveImports;
5
- /* eslint-disable no-continue,no-await-in-loop,require-yield */
6
- const getFileIdx_1 = require("../../utils/getFileIdx");
7
- const Entrypoint_helpers_1 = require("../Entrypoint.helpers");
8
- const importOverrides_1 = require("../../utils/importOverrides");
1
+ import { getFileIdx } from '../../utils/getFileIdx';
2
+ import { getStack, isSuperSet, mergeOnly } from '../Entrypoint.helpers';
3
+ import { applyImportOverrideToOnly, getImportOverride, resolveMockSpecifier, toImportKey, } from '../../utils/importOverrides';
4
+ import { resolveWithNativeResolver } from '../../utils/nativeResolver';
5
+ const DEFAULT_EVAL_OPTIONS = {
6
+ errors: 'strict',
7
+ require: 'warn-and-run',
8
+ resolver: 'bundler',
9
+ };
10
+ const getEvalOptions = (services) => ({
11
+ ...DEFAULT_EVAL_OPTIONS,
12
+ ...(services.options.pluginOptions.eval ?? {}),
13
+ });
14
+ const resolveWithConfiguredEvalResolver = async (services, source, importer, stack, resolve) => {
15
+ const evalOptions = getEvalOptions(services);
16
+ if (evalOptions.customResolver) {
17
+ const customResolved = await evalOptions.customResolver(source, importer, 'import');
18
+ if (customResolved) {
19
+ return customResolved.external ? null : customResolved.id;
20
+ }
21
+ if (evalOptions.resolver === 'custom') {
22
+ return null;
23
+ }
24
+ }
25
+ if (evalOptions.resolver === 'hybrid') {
26
+ try {
27
+ return resolveWithNativeResolver({
28
+ conditionNames: services.options.pluginOptions.conditionNames,
29
+ extensions: services.options.pluginOptions.extensions,
30
+ importer,
31
+ kind: 'import',
32
+ oxcOptions: services.options.pluginOptions.oxcOptions,
33
+ specifier: source,
34
+ });
35
+ }
36
+ catch {
37
+ return resolve(source, importer, stack);
38
+ }
39
+ }
40
+ if (evalOptions.resolver === 'native') {
41
+ return resolveWithNativeResolver({
42
+ conditionNames: services.options.pluginOptions.conditionNames,
43
+ extensions: services.options.pluginOptions.extensions,
44
+ importer,
45
+ kind: 'import',
46
+ oxcOptions: services.options.pluginOptions.oxcOptions,
47
+ specifier: source,
48
+ });
49
+ }
50
+ return resolve(source, importer, stack);
51
+ };
9
52
  function applyImportOverrides(services, entrypoint, resolvedImports) {
10
53
  const overrides = services.options.pluginOptions.importOverrides;
11
54
  if (!overrides || Object.keys(overrides).length === 0) {
@@ -13,20 +56,20 @@ function applyImportOverrides(services, entrypoint, resolvedImports) {
13
56
  }
14
57
  const { root } = services.options;
15
58
  const importer = entrypoint.name;
16
- const stack = (0, Entrypoint_helpers_1.getStack)(entrypoint);
59
+ const stack = getStack(entrypoint);
17
60
  return resolvedImports.map((dependency) => {
18
- const { key } = (0, importOverrides_1.toImportKey)({
61
+ const { key } = toImportKey({
19
62
  source: dependency.source,
20
63
  resolved: dependency.resolved,
21
64
  root,
22
65
  });
23
- const override = (0, importOverrides_1.getImportOverride)(overrides, key);
66
+ const override = getImportOverride(overrides, key);
24
67
  if (!override) {
25
68
  return dependency;
26
69
  }
27
- const nextOnly = (0, importOverrides_1.applyImportOverrideToOnly)(dependency.only, override);
70
+ const nextOnly = applyImportOverrideToOnly(dependency.only, override);
28
71
  const nextResolved = override.mock
29
- ? (0, importOverrides_1.resolveMockSpecifier)({
72
+ ? resolveMockSpecifier({
30
73
  mock: override.mock,
31
74
  importer,
32
75
  root,
@@ -50,7 +93,7 @@ function emitDependency(emitter, entrypoint, imports, phase) {
50
93
  from: resolved,
51
94
  what: only,
52
95
  })),
53
- fileIdx: (0, getFileIdx_1.getFileIdx)(entrypoint.name),
96
+ fileIdx: getFileIdx(entrypoint.name),
54
97
  });
55
98
  }
56
99
  function filterUnresolved(entrypoint, resolvedImports) {
@@ -68,7 +111,7 @@ function getPreResolvedImports(preResolved) {
68
111
  /**
69
112
  * Synchronously resolves specified imports with a provided resolver.
70
113
  */
71
- function* syncResolveImports(resolve) {
114
+ export function* syncResolveImports(resolve) {
72
115
  const { data: { imports }, entrypoint, services: { eventEmitter }, } = this;
73
116
  const listOfImports = Array.from(imports?.entries() ?? []);
74
117
  const preResolvedImports = getPreResolvedImports(this.data.preResolved);
@@ -81,7 +124,7 @@ function* syncResolveImports(resolve) {
81
124
  const resolvedImports = listOfImports.map(([source, only]) => {
82
125
  const preResolved = preResolvedImports.get(source);
83
126
  if (preResolved) {
84
- const mergedOnly = (0, Entrypoint_helpers_1.mergeOnly)(preResolved.only, only);
127
+ const mergedOnly = mergeOnly(preResolved.only, only);
85
128
  log('[sync-resolve] ♻️ %s -> %s (only: %o)', source, preResolved.resolved, mergedOnly);
86
129
  return {
87
130
  ...preResolved,
@@ -90,7 +133,7 @@ function* syncResolveImports(resolve) {
90
133
  }
91
134
  let resolved = null;
92
135
  try {
93
- resolved = resolve(source, entrypoint.name, (0, Entrypoint_helpers_1.getStack)(entrypoint));
136
+ resolved = resolve(source, entrypoint.name, getStack(entrypoint));
94
137
  log('[sync-resolve] ✅ %s -> %s (only: %o)', source, resolved, only);
95
138
  }
96
139
  catch (err) {
@@ -110,7 +153,7 @@ function* syncResolveImports(resolve) {
110
153
  /**
111
154
  * Asynchronously resolves specified imports with a provided resolver.
112
155
  */
113
- async function* asyncResolveImports(resolve) {
156
+ export async function* asyncResolveImports(resolve) {
114
157
  const { data: { imports }, entrypoint, services: { eventEmitter }, } = this;
115
158
  const listOfImports = Array.from(imports?.entries() ?? []);
116
159
  const preResolvedImports = getPreResolvedImports(this.data.preResolved);
@@ -124,7 +167,7 @@ async function* asyncResolveImports(resolve) {
124
167
  const getResolveTask = async (source, only) => {
125
168
  let resolved = null;
126
169
  try {
127
- resolved = await resolve(source, entrypoint.name, (0, Entrypoint_helpers_1.getStack)(entrypoint));
170
+ resolved = await resolveWithConfiguredEvalResolver(this.services, source, entrypoint.name, getStack(entrypoint), resolve);
128
171
  }
129
172
  catch (err) {
130
173
  log('[async-resolve] ❌ cannot resolve %s in %s: %O', source, entrypoint.name, err);
@@ -141,7 +184,7 @@ async function* asyncResolveImports(resolve) {
141
184
  const resolvedImports = await Promise.all(listOfImports.map(([source, importsOnly]) => {
142
185
  const preResolved = preResolvedImports.get(source);
143
186
  if (preResolved) {
144
- const mergedOnly = (0, Entrypoint_helpers_1.mergeOnly)(preResolved.only, importsOnly);
187
+ const mergedOnly = mergeOnly(preResolved.only, importsOnly);
145
188
  log('[async-resolve] ♻️ %s (%o) in %s -> %s', source, mergedOnly, entrypoint.name, preResolved.resolved);
146
189
  return {
147
190
  ...preResolved,
@@ -152,7 +195,7 @@ async function* asyncResolveImports(resolve) {
152
195
  if (cached) {
153
196
  return {
154
197
  source,
155
- only: (0, Entrypoint_helpers_1.mergeOnly)(cached.only, importsOnly),
198
+ only: mergeOnly(cached.only, importsOnly),
156
199
  resolved: cached.resolved,
157
200
  };
158
201
  }
@@ -160,11 +203,11 @@ async function* asyncResolveImports(resolve) {
160
203
  if (task) {
161
204
  // If we have cached task, we need to merge only…
162
205
  const newTask = task.then((res) => {
163
- if ((0, Entrypoint_helpers_1.isSuperSet)(res.only, importsOnly)) {
206
+ if (isSuperSet(res.only, importsOnly)) {
164
207
  return res;
165
208
  }
166
209
  // Is this branch even possible?
167
- const merged = (0, Entrypoint_helpers_1.mergeOnly)(res.only, importsOnly);
210
+ const merged = mergeOnly(res.only, importsOnly);
168
211
  log('merging imports %o and %o: %o', importsOnly, res.only, merged);
169
212
  return { ...res, only: merged };
170
213
  });
@@ -0,0 +1,25 @@
1
+ import { runOxcPreevalStage } from '../../../utils/oxcPreevalStage';
2
+ import type { ITransformAction } from '../../types';
3
+ import type { StaticExportCacheEntry, StaticExportResult, StaticFileAnalysis, StaticFileHashCacheEntry, StaticMetadataPreevalCacheEntry } from './types';
4
+ export declare const staticFileAnalysisCaches: WeakMap<object, Map<string, StaticFileAnalysis>>;
5
+ export declare const staticFileHashCaches: WeakMap<object, Map<string, StaticFileHashCacheEntry>>;
6
+ export declare const staticExportResultCaches: WeakMap<object, Map<string, StaticExportCacheEntry>>;
7
+ export declare const staticMetadataPreevalCaches: WeakMap<object, Map<string, StaticMetadataPreevalCacheEntry>>;
8
+ export declare const hashStaticContent: (content: string | Buffer) => string;
9
+ export declare const getWeakCacheMap: <TValue>(caches: WeakMap<object, Map<string, TValue>>, key: object) => Map<string, TValue>;
10
+ export declare const isStaticResolveCacheEnabled: () => boolean;
11
+ export declare const staticCachePrefix: (action: ITransformAction) => string;
12
+ export declare const staticFileAnalysisCache: (action: ITransformAction) => Map<string, StaticFileAnalysis>;
13
+ export declare const staticFileHashCache: (action: ITransformAction) => Map<string, StaticFileHashCacheEntry>;
14
+ export declare const staticExportResultCache: (action: ITransformAction) => Map<string, StaticExportCacheEntry>;
15
+ export declare const staticMetadataPreevalCache: (action: ITransformAction) => Map<string, StaticMetadataPreevalCacheEntry>;
16
+ export declare const staticFileAnalysisCacheKey: (action: ITransformAction, filename: string, codeHash: string) => string;
17
+ export declare const staticExportCacheKey: (action: ITransformAction, filename: string, exportedName: string, codeHash: string) => string;
18
+ export declare const staticMetadataPreevalCacheKey: (action: ITransformAction, filename: string, codeHash: string) => string;
19
+ export declare const getStaticFileContentHash: (action: ITransformAction, dependency: string) => string | null;
20
+ export declare const collectStaticDependencyHashes: (action: ITransformAction, dependencies: string[]) => Map<string, string> | null;
21
+ export declare const areStaticDependencyHashesCurrent: (action: ITransformAction, dependencyHashes: Map<string, string>) => boolean;
22
+ export declare const getStaticExportCachedResult: (action: ITransformAction, filename: string, exportedName: string, codeHash: string) => StaticExportResult | null | undefined;
23
+ export declare const setStaticExportCachedResult: (action: ITransformAction, filename: string, exportedName: string, codeHash: string, result: StaticExportResult | null) => void;
24
+ export declare const getStaticFileAnalysis: (action: ITransformAction, filename: string) => StaticFileAnalysis | null;
25
+ export declare const getStaticMetadataPreevalResult: (action: ITransformAction, filename: string, code: string, codeHash: string) => ReturnType<typeof runOxcPreevalStage> | null;
@@ -0,0 +1,182 @@
1
+ /* eslint-disable no-restricted-syntax,no-continue,@typescript-eslint/no-use-before-define */
2
+ import { createHash } from 'crypto';
3
+ import { readFileSync, statSync } from 'fs';
4
+ import { isAbsolute } from 'path';
5
+ import { oxcShaker } from '../../../shaker';
6
+ import { runOxcPreevalStage } from '../../../utils/oxcPreevalStage';
7
+ import { stripQueryAndHash } from '../../../utils/parseRequest';
8
+ import { isEnvDisabled, parseProgram } from './environment';
9
+ import { STATIC_EXPORT_MAX_NULL_ATTEMPTS } from './types';
10
+ export const staticFileAnalysisCaches = new WeakMap();
11
+ export const staticFileHashCaches = new WeakMap();
12
+ export const staticExportResultCaches = new WeakMap();
13
+ export const staticMetadataPreevalCaches = new WeakMap();
14
+ export const hashStaticContent = (content) => createHash('sha256').update(content).digest('hex');
15
+ export const getWeakCacheMap = (caches, key) => {
16
+ let cache = caches.get(key);
17
+ if (!cache) {
18
+ cache = new Map();
19
+ caches.set(key, cache);
20
+ }
21
+ return cache;
22
+ };
23
+ export const isStaticResolveCacheEnabled = () => {
24
+ const envValue = process.env.WYW_STATIC_RESOLVE_CACHE?.trim().toLowerCase();
25
+ if (envValue) {
26
+ return !isEnvDisabled(envValue);
27
+ }
28
+ return true;
29
+ };
30
+ export const staticCachePrefix = (action) => `${action.services.cache.getKeySalt() ?? ''}\0${action.services.options.root ?? ''}`;
31
+ export const staticFileAnalysisCache = (action) => getWeakCacheMap(staticFileAnalysisCaches, action.services.cache);
32
+ export const staticFileHashCache = (action) => getWeakCacheMap(staticFileHashCaches, action.services.cache);
33
+ export const staticExportResultCache = (action) => getWeakCacheMap(staticExportResultCaches, action.services.cache);
34
+ export const staticMetadataPreevalCache = (action) => getWeakCacheMap(staticMetadataPreevalCaches, action.services.cache);
35
+ export const staticFileAnalysisCacheKey = (action, filename, codeHash) => `${staticCachePrefix(action)}\0${filename}\0${codeHash}`;
36
+ export const staticExportCacheKey = (action, filename, exportedName, codeHash) => `${staticCachePrefix(action)}\0${filename}\0${exportedName}\0${codeHash}`;
37
+ export const staticMetadataPreevalCacheKey = (action, filename, codeHash) => `${staticCachePrefix(action)}\0${filename}\0${codeHash}`;
38
+ export const getStaticFileContentHash = (action, dependency) => {
39
+ const filename = stripQueryAndHash(dependency);
40
+ if (!isAbsolute(filename)) {
41
+ return null;
42
+ }
43
+ let stat;
44
+ try {
45
+ stat = statSync(filename);
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ if (!stat.isFile()) {
51
+ return null;
52
+ }
53
+ const cache = staticFileHashCache(action);
54
+ const cached = cache.get(filename);
55
+ if (cached && cached.mtimeMs === stat.mtimeMs && cached.size === stat.size) {
56
+ return cached.hash;
57
+ }
58
+ let hash;
59
+ try {
60
+ hash = hashStaticContent(readFileSync(filename));
61
+ }
62
+ catch {
63
+ return null;
64
+ }
65
+ cache.set(filename, {
66
+ hash,
67
+ mtimeMs: stat.mtimeMs,
68
+ size: stat.size,
69
+ });
70
+ return hash;
71
+ };
72
+ export const collectStaticDependencyHashes = (action, dependencies) => {
73
+ const hashes = new Map();
74
+ for (const dependency of dependencies) {
75
+ const hash = getStaticFileContentHash(action, dependency);
76
+ if (!hash) {
77
+ return null;
78
+ }
79
+ hashes.set(stripQueryAndHash(dependency), hash);
80
+ }
81
+ return hashes;
82
+ };
83
+ export const areStaticDependencyHashesCurrent = (action, dependencyHashes) => {
84
+ for (const [dependency, expectedHash] of dependencyHashes) {
85
+ if (getStaticFileContentHash(action, dependency) !== expectedHash) {
86
+ return false;
87
+ }
88
+ }
89
+ return true;
90
+ };
91
+ export const getStaticExportCachedResult = (action, filename, exportedName, codeHash) => {
92
+ if (!isStaticResolveCacheEnabled()) {
93
+ return undefined;
94
+ }
95
+ const cache = staticExportResultCache(action);
96
+ const cacheKey = staticExportCacheKey(action, filename, exportedName, codeHash);
97
+ const cached = cache.get(cacheKey);
98
+ if (!cached) {
99
+ return undefined;
100
+ }
101
+ if (cached.result === null) {
102
+ // Bounded retry: until the attempt counter has been bumped enough times
103
+ // that we accept the null as stable, treat it as a cache miss so the
104
+ // caller re-walks. The counter is updated in setStaticExportCachedResult.
105
+ if (cached.attempts < STATIC_EXPORT_MAX_NULL_ATTEMPTS) {
106
+ return undefined;
107
+ }
108
+ return null;
109
+ }
110
+ if (areStaticDependencyHashesCurrent(action, cached.dependencyHashes)) {
111
+ return cached.result;
112
+ }
113
+ cache.delete(cacheKey);
114
+ return undefined;
115
+ };
116
+ export const setStaticExportCachedResult = (action, filename, exportedName, codeHash, result) => {
117
+ if (!isStaticResolveCacheEnabled()) {
118
+ return;
119
+ }
120
+ const cache = staticExportResultCache(action);
121
+ const cacheKey = staticExportCacheKey(action, filename, exportedName, codeHash);
122
+ if (!result) {
123
+ const existing = cache.get(cacheKey);
124
+ const attempts = existing && existing.result === null ? existing.attempts + 1 : 1;
125
+ cache.set(cacheKey, { attempts, result: null });
126
+ return;
127
+ }
128
+ const dependencyHashes = collectStaticDependencyHashes(action, result.dependencies);
129
+ if (!dependencyHashes) {
130
+ return;
131
+ }
132
+ cache.set(cacheKey, {
133
+ dependencyHashes,
134
+ result,
135
+ });
136
+ };
137
+ export const getStaticFileAnalysis = (action, filename) => {
138
+ const loadedAndParsed = action.services.loadAndParseFn(action.services, filename, undefined, action.services.log);
139
+ if (loadedAndParsed.evaluator === 'ignored' ||
140
+ loadedAndParsed.evaluator !== oxcShaker) {
141
+ return null;
142
+ }
143
+ const { code } = loadedAndParsed;
144
+ const codeHash = hashStaticContent(code);
145
+ const cache = staticFileAnalysisCache(action);
146
+ const cacheKey = staticFileAnalysisCacheKey(action, filename, codeHash);
147
+ const cached = cache.get(cacheKey);
148
+ if (cached) {
149
+ return cached;
150
+ }
151
+ const analysis = {
152
+ code,
153
+ codeHash,
154
+ program: parseProgram(code, filename),
155
+ };
156
+ cache.set(cacheKey, analysis);
157
+ return analysis;
158
+ };
159
+ export const getStaticMetadataPreevalResult = (action, filename, code, codeHash) => {
160
+ const cache = staticMetadataPreevalCache(action);
161
+ const cacheKey = staticMetadataPreevalCacheKey(action, filename, codeHash);
162
+ const cached = cache.get(cacheKey);
163
+ if (cached) {
164
+ return cached.result;
165
+ }
166
+ const root = action.services.options.root ?? process.cwd();
167
+ try {
168
+ const result = action.services.eventEmitter.perf('transform:preeval:staticMetadata', () => runOxcPreevalStage(code, {
169
+ filename,
170
+ root,
171
+ }, {
172
+ ...action.services.options.pluginOptions,
173
+ eventEmitter: action.services.eventEmitter,
174
+ }));
175
+ cache.set(cacheKey, { result });
176
+ return result;
177
+ }
178
+ catch {
179
+ cache.set(cacheKey, { result: null });
180
+ return null;
181
+ }
182
+ };
@@ -0,0 +1,5 @@
1
+ import { type OxcStaticValueCandidate } from '../../../utils/collectOxcTemplateDependencies';
2
+ import type { ITransformAction, SyncScenarioFor } from '../../types';
3
+ import type { StaticExportResult } from './types';
4
+ export declare function resolveCandidateValue(action: ITransformAction, candidate: OxcStaticValueCandidate, filename: string, memo: Map<string, StaticExportResult | null>): SyncScenarioFor<StaticExportResult | null>;
5
+ export declare function resolveOpaqueRuntimeCandidateValue(action: ITransformAction, candidate: OxcStaticValueCandidate, filename: string): SyncScenarioFor<StaticExportResult | null>;