@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
@@ -0,0 +1,229 @@
1
+ /* eslint-disable no-restricted-syntax,no-continue,@typescript-eslint/no-use-before-define */
2
+ import { dirname, isAbsolute, resolve as resolvePath } from "path";
3
+ import { oxcShaker } from "../../../shaker.js";
4
+ import { getOxcNodeChildren } from "../../../utils/oxc/ast.js";
5
+ import { stripQueryAndHash } from "../../../utils/parseRequest.js";
6
+ import { hashStaticContent, getStaticMetadataPreevalResult } from "./cache.js";
7
+ import { resolveDependency } from "./dependencies.js";
8
+ import { parseProgram } from "./environment.js";
9
+ import { findExportTarget } from "./exportTargets.js";
10
+ import { findTopLevelConstExpression, functionReturnExpression, isTopLevelFunctionOrClass } from "./programAnalysis.js";
11
+ import { collectWYWMetaExtendsExpressionsDeep, isStaticMetaObjectExpression } from "./processorStaticModel.js";
12
+ import { collectImportBindings, isSafeStaticExpression, unwrapExpression } from "./staticExpression.js";
13
+ import { rootIdentifierName } from "./staticExpressionDependencies.js";
14
+ export const isKnownOpaqueRuntimeWrapperImport = (binding) => {
15
+ if (!binding) {
16
+ return false;
17
+ }
18
+ return binding.imported === "observer" && (binding.source === "mobx-react" || binding.source === "mobx-react-lite");
19
+ };
20
+ export const isKnownOpaqueRuntimeWrapperCallee = (expr, imports) => {
21
+ const callee = unwrapExpression(expr);
22
+ if (callee.type === "Identifier") {
23
+ return isKnownOpaqueRuntimeWrapperImport(imports.get(callee.name));
24
+ }
25
+ return false;
26
+ };
27
+ export const isKnownOpaqueRuntimeImportSource = (source) => /\.svg(?:$|[?#])/.test(source);
28
+ export const isKnownExternalRuntimeComponentImportSource = (source) => source.startsWith("@radix-ui/react-");
29
+ export const isOpaqueRuntimeComponentExpression = (program, expr, opaqueImportNames = new Set(), seen = new Set()) => {
30
+ const imports = collectImportBindings(program, { includeNamespace: true });
31
+ const unwrapped = unwrapExpression(expr);
32
+ if (isStaticMetaObjectExpression(unwrapped)) {
33
+ return false;
34
+ }
35
+ if (unwrapped.type === "ArrowFunctionExpression" || unwrapped.type === "FunctionExpression" || unwrapped.type === "ClassExpression") {
36
+ return true;
37
+ }
38
+ if (unwrapped.type === "CallExpression" && unwrapped.arguments.length === 1 && isKnownOpaqueRuntimeWrapperCallee(unwrapped.callee, imports)) {
39
+ const [argument] = unwrapped.arguments;
40
+ return argument.type !== "SpreadElement" ? isOpaqueRuntimeComponentExpression(program, argument, opaqueImportNames, seen) : false;
41
+ }
42
+ if (unwrapped.type === "CallExpression" && unwrapped.callee.type === "Identifier") {
43
+ const allowParams = unwrapped.arguments.every((argument) => argument.type !== "SpreadElement" && isSafeStaticExpression(argument));
44
+ const local = findTopLevelConstExpression(program, unwrapped.callee.name);
45
+ const returned = local ? functionReturnExpression(local, { allowParams }) : null;
46
+ return returned ? isOpaqueRuntimeComponentExpression(program, returned, opaqueImportNames, seen) : false;
47
+ }
48
+ if (unwrapped.type === "MemberExpression" && !unwrapped.computed) {
49
+ const name = rootIdentifierName(unwrapped);
50
+ const imported = name ? imports.get(name) : undefined;
51
+ return !!name && !!imported && (opaqueImportNames.has(name) || isKnownExternalRuntimeComponentImportSource(imported.source));
52
+ }
53
+ if (unwrapped.type !== "Identifier") {
54
+ return false;
55
+ }
56
+ const { name } = unwrapped;
57
+ if (seen.has(name)) {
58
+ return false;
59
+ }
60
+ seen.add(name);
61
+ const imported = imports.get(name);
62
+ if (imported) {
63
+ return opaqueImportNames.has(name) || isKnownOpaqueRuntimeImportSource(imported.source) || isKnownExternalRuntimeComponentImportSource(imported.source);
64
+ }
65
+ if (isTopLevelFunctionOrClass(program, name)) {
66
+ return true;
67
+ }
68
+ const local = findTopLevelConstExpression(program, name);
69
+ return local ? isOpaqueRuntimeComponentExpression(program, local, opaqueImportNames, seen) : false;
70
+ };
71
+ export const collectOpaqueRuntimeReferenceNames = (program, expr, names, seenHelpers = new Set()) => {
72
+ const unwrapped = unwrapExpression(expr);
73
+ if (unwrapped.type === "CallExpression" && unwrapped.callee.type === "Identifier") {
74
+ const allowParams = unwrapped.arguments.every((argument) => argument.type !== "SpreadElement" && isSafeStaticExpression(argument));
75
+ if (seenHelpers.has(unwrapped.callee.name)) {
76
+ return;
77
+ }
78
+ const local = findTopLevelConstExpression(program, unwrapped.callee.name);
79
+ const returned = local ? functionReturnExpression(local, { allowParams }) : null;
80
+ if (returned) {
81
+ seenHelpers.add(unwrapped.callee.name);
82
+ collectOpaqueRuntimeReferenceNames(program, returned, names, seenHelpers);
83
+ seenHelpers.delete(unwrapped.callee.name);
84
+ return;
85
+ }
86
+ }
87
+ if (unwrapped.type === "Identifier") {
88
+ names.add(unwrapped.name);
89
+ return;
90
+ }
91
+ getOxcNodeChildren(unwrapped).forEach((child) => collectOpaqueRuntimeReferenceNames(program, child, names, seenHelpers));
92
+ };
93
+ export function* resolveExportAsOpaqueRuntimeImport(action, filename, exportedName, stack, memo) {
94
+ const memoKey = `${filename}\0${exportedName}`;
95
+ if (memo.has(memoKey)) {
96
+ return memo.get(memoKey) ?? null;
97
+ }
98
+ if (stack.has(memoKey)) {
99
+ memo.set(memoKey, null);
100
+ return null;
101
+ }
102
+ stack.add(memoKey);
103
+ const loadedAndParsed = action.services.loadAndParseFn(action.services, filename, undefined, action.services.log);
104
+ if (loadedAndParsed.evaluator === "ignored" || loadedAndParsed.evaluator !== oxcShaker) {
105
+ memo.set(memoKey, null);
106
+ stack.delete(memoKey);
107
+ return null;
108
+ }
109
+ const codeHash = hashStaticContent(loadedAndParsed.code);
110
+ const preevalResult = getStaticMetadataPreevalResult(action, filename, loadedAndParsed.code, codeHash);
111
+ const program = parseProgram(preevalResult?.baseCode ?? loadedAndParsed.code, filename);
112
+ const target = findExportTarget(program, exportedName);
113
+ if (!target) {
114
+ memo.set(memoKey, null);
115
+ stack.delete(memoKey);
116
+ return null;
117
+ }
118
+ if (target.kind === "import") {
119
+ const resolved = yield* resolveImportAsOpaqueRuntime(action, filename, target, stack, memo);
120
+ memo.set(memoKey, resolved);
121
+ stack.delete(memoKey);
122
+ return resolved;
123
+ }
124
+ if (isOpaqueRuntimeComponentExpression(program, target.expression)) {
125
+ const resolved = {
126
+ dependencies: [filename],
127
+ names: new Set()
128
+ };
129
+ memo.set(memoKey, resolved);
130
+ stack.delete(memoKey);
131
+ return resolved;
132
+ }
133
+ const imports = collectImportBindings(program, { includeNamespace: true });
134
+ const referencedNames = new Set();
135
+ collectOpaqueRuntimeReferenceNames(program, target.expression, referencedNames);
136
+ const opaqueImportNames = new Set();
137
+ const dependencies = new Set([filename]);
138
+ for (const name of referencedNames) {
139
+ const binding = imports.get(name);
140
+ if (!binding || binding.source === "react" || isKnownOpaqueRuntimeWrapperImport(binding)) {
141
+ continue;
142
+ }
143
+ const proof = yield* resolveImportAsOpaqueRuntime(action, filename, binding, stack, memo);
144
+ if (!proof) {
145
+ continue;
146
+ }
147
+ opaqueImportNames.add(name);
148
+ proof.dependencies.forEach((dependency) => dependencies.add(dependency));
149
+ }
150
+ const resolved = isOpaqueRuntimeComponentExpression(program, target.expression, opaqueImportNames) ? {
151
+ dependencies: [...dependencies],
152
+ names: opaqueImportNames
153
+ } : null;
154
+ memo.set(memoKey, resolved);
155
+ stack.delete(memoKey);
156
+ return resolved;
157
+ }
158
+ export const knownOpaqueRuntimeSourceDependency = (importer, source) => {
159
+ if (!isKnownOpaqueRuntimeImportSource(source)) {
160
+ return null;
161
+ }
162
+ const request = stripQueryAndHash(source);
163
+ if (isAbsolute(request)) {
164
+ return request;
165
+ }
166
+ return request.startsWith(".") ? resolvePath(dirname(importer), request) : null;
167
+ };
168
+ export function* resolveImportAsOpaqueRuntime(action, importer, binding, stack, memo) {
169
+ const knownSourceDependency = knownOpaqueRuntimeSourceDependency(importer, binding.source);
170
+ if (knownSourceDependency) {
171
+ return {
172
+ dependencies: [knownSourceDependency],
173
+ names: new Set()
174
+ };
175
+ }
176
+ if (isKnownExternalRuntimeComponentImportSource(binding.source)) {
177
+ return {
178
+ dependencies: [],
179
+ names: new Set()
180
+ };
181
+ }
182
+ const dependency = yield* resolveDependency(action, importer, binding.source, binding.imported);
183
+ if (!dependency?.resolved) {
184
+ return null;
185
+ }
186
+ if (isKnownOpaqueRuntimeImportSource(binding.source) || isKnownOpaqueRuntimeImportSource(dependency.resolved)) {
187
+ return {
188
+ dependencies: [dependency.resolved],
189
+ names: new Set()
190
+ };
191
+ }
192
+ const resolved = yield* resolveExportAsOpaqueRuntimeImport(action, dependency.resolved, binding.imported, stack, memo);
193
+ return resolved ? {
194
+ dependencies: [dependency.resolved, ...resolved.dependencies.filter((item) => item !== dependency.resolved)],
195
+ names: resolved.names
196
+ } : null;
197
+ }
198
+ export function* collectOpaqueRuntimeImportProof(action, filename, program, expression) {
199
+ const extendsExpressions = collectWYWMetaExtendsExpressionsDeep(program, expression);
200
+ if (extendsExpressions.length === 0) {
201
+ return {
202
+ dependencies: [],
203
+ names: new Set()
204
+ };
205
+ }
206
+ const imports = collectImportBindings(program, { includeNamespace: true });
207
+ const referencedNames = new Set();
208
+ extendsExpressions.forEach((extendsExpression) => collectOpaqueRuntimeReferenceNames(program, extendsExpression, referencedNames));
209
+ const dependencies = new Set();
210
+ const names = new Set();
211
+ const memo = new Map();
212
+ for (const name of referencedNames) {
213
+ const binding = imports.get(name);
214
+ if (!binding || binding.source === "react") {
215
+ continue;
216
+ }
217
+ const proof = yield* resolveImportAsOpaqueRuntime(action, filename, binding, new Set(), memo);
218
+ if (!proof) {
219
+ continue;
220
+ }
221
+ names.add(name);
222
+ proof.dependencies.forEach((dependency) => dependencies.add(dependency));
223
+ }
224
+ return {
225
+ dependencies: [...dependencies],
226
+ names
227
+ };
228
+ }
229
+ //# sourceMappingURL=opaqueRuntime.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","names":[],"sources":["../../../../src/transform/generators/resolveStaticOxcValues/opaqueRuntime.ts"],"version":3,"sourcesContent":["/* eslint-disable no-restricted-syntax,no-continue,@typescript-eslint/no-use-before-define */\n\nimport { dirname, isAbsolute, resolve as resolvePath } from 'path';\n\nimport type { Expression, Node, Program } from 'oxc-parser';\n\nimport { oxcShaker } from '../../../shaker';\nimport { getOxcNodeChildren } from '../../../utils/oxc/ast';\nimport { stripQueryAndHash } from '../../../utils/parseRequest';\nimport type { ITransformAction, SyncScenarioFor } from '../../types';\nimport { hashStaticContent, getStaticMetadataPreevalResult } from './cache';\nimport { resolveDependency } from './dependencies';\nimport { parseProgram } from './environment';\nimport { findExportTarget } from './exportTargets';\nimport {\n findTopLevelConstExpression,\n functionReturnExpression,\n isTopLevelFunctionOrClass,\n} from './programAnalysis';\nimport {\n collectWYWMetaExtendsExpressionsDeep,\n isStaticMetaObjectExpression,\n} from './processorStaticModel';\nimport {\n collectImportBindings,\n isSafeStaticExpression,\n unwrapExpression,\n} from './staticExpression';\nimport { rootIdentifierName } from './staticExpressionDependencies';\nimport type { ImportBinding, OpaqueRuntimeImportProof } from './types';\n\nexport const isKnownOpaqueRuntimeWrapperImport = (\n binding: ImportBinding | undefined\n): boolean => {\n if (!binding) {\n return false;\n }\n\n return (\n binding.imported === 'observer' &&\n (binding.source === 'mobx-react' || binding.source === 'mobx-react-lite')\n );\n};\n\nexport const isKnownOpaqueRuntimeWrapperCallee = (\n expr: Node,\n imports: Map<string, ImportBinding>\n): boolean => {\n const callee = unwrapExpression(expr);\n if (callee.type === 'Identifier') {\n return isKnownOpaqueRuntimeWrapperImport(imports.get(callee.name));\n }\n\n return false;\n};\n\nexport const isKnownOpaqueRuntimeImportSource = (source: string): boolean =>\n /\\.svg(?:$|[?#])/.test(source);\n\nexport const isKnownExternalRuntimeComponentImportSource = (\n source: string\n): boolean => source.startsWith('@radix-ui/react-');\n\nexport const isOpaqueRuntimeComponentExpression = (\n program: Program,\n expr: Node,\n opaqueImportNames: Set<string> = new Set(),\n seen: Set<string> = new Set()\n): boolean => {\n const imports = collectImportBindings(program, { includeNamespace: true });\n const unwrapped = unwrapExpression(expr);\n\n if (isStaticMetaObjectExpression(unwrapped)) {\n return false;\n }\n\n if (\n unwrapped.type === 'ArrowFunctionExpression' ||\n unwrapped.type === 'FunctionExpression' ||\n unwrapped.type === 'ClassExpression'\n ) {\n return true;\n }\n\n if (\n unwrapped.type === 'CallExpression' &&\n unwrapped.arguments.length === 1 &&\n isKnownOpaqueRuntimeWrapperCallee(unwrapped.callee, imports)\n ) {\n const [argument] = unwrapped.arguments;\n return argument.type !== 'SpreadElement'\n ? isOpaqueRuntimeComponentExpression(\n program,\n argument,\n opaqueImportNames,\n seen\n )\n : false;\n }\n\n if (\n unwrapped.type === 'CallExpression' &&\n unwrapped.callee.type === 'Identifier'\n ) {\n const allowParams = unwrapped.arguments.every(\n (argument) =>\n argument.type !== 'SpreadElement' && isSafeStaticExpression(argument)\n );\n const local = findTopLevelConstExpression(program, unwrapped.callee.name);\n const returned = local\n ? functionReturnExpression(local, { allowParams })\n : null;\n return returned\n ? isOpaqueRuntimeComponentExpression(\n program,\n returned,\n opaqueImportNames,\n seen\n )\n : false;\n }\n\n if (unwrapped.type === 'MemberExpression' && !unwrapped.computed) {\n const name = rootIdentifierName(unwrapped);\n const imported = name ? imports.get(name) : undefined;\n return (\n !!name &&\n !!imported &&\n (opaqueImportNames.has(name) ||\n isKnownExternalRuntimeComponentImportSource(imported.source))\n );\n }\n\n if (unwrapped.type !== 'Identifier') {\n return false;\n }\n\n const { name } = unwrapped;\n if (seen.has(name)) {\n return false;\n }\n seen.add(name);\n\n const imported = imports.get(name);\n if (imported) {\n return (\n opaqueImportNames.has(name) ||\n isKnownOpaqueRuntimeImportSource(imported.source) ||\n isKnownExternalRuntimeComponentImportSource(imported.source)\n );\n }\n\n if (isTopLevelFunctionOrClass(program, name)) {\n return true;\n }\n\n const local = findTopLevelConstExpression(program, name);\n return local\n ? isOpaqueRuntimeComponentExpression(\n program,\n local,\n opaqueImportNames,\n seen\n )\n : false;\n};\n\nexport const collectOpaqueRuntimeReferenceNames = (\n program: Program,\n expr: Node,\n names: Set<string>,\n seenHelpers: Set<string> = new Set()\n): void => {\n const unwrapped = unwrapExpression(expr);\n\n if (\n unwrapped.type === 'CallExpression' &&\n unwrapped.callee.type === 'Identifier'\n ) {\n const allowParams = unwrapped.arguments.every(\n (argument) =>\n argument.type !== 'SpreadElement' && isSafeStaticExpression(argument)\n );\n if (seenHelpers.has(unwrapped.callee.name)) {\n return;\n }\n\n const local = findTopLevelConstExpression(program, unwrapped.callee.name);\n const returned = local\n ? functionReturnExpression(local, { allowParams })\n : null;\n if (returned) {\n seenHelpers.add(unwrapped.callee.name);\n collectOpaqueRuntimeReferenceNames(program, returned, names, seenHelpers);\n seenHelpers.delete(unwrapped.callee.name);\n return;\n }\n }\n\n if (unwrapped.type === 'Identifier') {\n names.add(unwrapped.name);\n return;\n }\n\n getOxcNodeChildren(unwrapped).forEach((child) =>\n collectOpaqueRuntimeReferenceNames(program, child, names, seenHelpers)\n );\n};\nexport function* resolveExportAsOpaqueRuntimeImport(\n action: ITransformAction,\n filename: string,\n exportedName: string,\n stack: Set<string>,\n memo: Map<string, OpaqueRuntimeImportProof | null>\n): SyncScenarioFor<OpaqueRuntimeImportProof | null> {\n const memoKey = `${filename}\\0${exportedName}`;\n if (memo.has(memoKey)) {\n return memo.get(memoKey) ?? null;\n }\n\n if (stack.has(memoKey)) {\n memo.set(memoKey, null);\n return null;\n }\n\n stack.add(memoKey);\n\n const loadedAndParsed = action.services.loadAndParseFn(\n action.services,\n filename,\n undefined,\n action.services.log\n );\n if (\n loadedAndParsed.evaluator === 'ignored' ||\n loadedAndParsed.evaluator !== oxcShaker\n ) {\n memo.set(memoKey, null);\n stack.delete(memoKey);\n return null;\n }\n\n const codeHash = hashStaticContent(loadedAndParsed.code);\n const preevalResult = getStaticMetadataPreevalResult(\n action,\n filename,\n loadedAndParsed.code,\n codeHash\n );\n const program = parseProgram(\n preevalResult?.baseCode ?? loadedAndParsed.code,\n filename\n );\n const target = findExportTarget(program, exportedName);\n if (!target) {\n memo.set(memoKey, null);\n stack.delete(memoKey);\n return null;\n }\n\n if (target.kind === 'import') {\n const resolved = yield* resolveImportAsOpaqueRuntime(\n action,\n filename,\n target,\n stack,\n memo\n );\n memo.set(memoKey, resolved);\n stack.delete(memoKey);\n return resolved;\n }\n\n if (isOpaqueRuntimeComponentExpression(program, target.expression)) {\n const resolved = {\n dependencies: [filename],\n names: new Set<string>(),\n };\n memo.set(memoKey, resolved);\n stack.delete(memoKey);\n return resolved;\n }\n\n const imports = collectImportBindings(program, { includeNamespace: true });\n const referencedNames = new Set<string>();\n collectOpaqueRuntimeReferenceNames(\n program,\n target.expression,\n referencedNames\n );\n const opaqueImportNames = new Set<string>();\n const dependencies = new Set<string>([filename]);\n\n for (const name of referencedNames) {\n const binding = imports.get(name);\n if (\n !binding ||\n binding.source === 'react' ||\n isKnownOpaqueRuntimeWrapperImport(binding)\n ) {\n continue;\n }\n\n const proof = yield* resolveImportAsOpaqueRuntime(\n action,\n filename,\n binding,\n stack,\n memo\n );\n if (!proof) {\n continue;\n }\n\n opaqueImportNames.add(name);\n proof.dependencies.forEach((dependency) => dependencies.add(dependency));\n }\n\n const resolved = isOpaqueRuntimeComponentExpression(\n program,\n target.expression,\n opaqueImportNames\n )\n ? {\n dependencies: [...dependencies],\n names: opaqueImportNames,\n }\n : null;\n memo.set(memoKey, resolved);\n stack.delete(memoKey);\n return resolved;\n}\n\nexport const knownOpaqueRuntimeSourceDependency = (\n importer: string,\n source: string\n): string | null => {\n if (!isKnownOpaqueRuntimeImportSource(source)) {\n return null;\n }\n\n const request = stripQueryAndHash(source);\n if (isAbsolute(request)) {\n return request;\n }\n\n return request.startsWith('.')\n ? resolvePath(dirname(importer), request)\n : null;\n};\n\nexport function* resolveImportAsOpaqueRuntime(\n action: ITransformAction,\n importer: string,\n binding: Pick<ImportBinding, 'imported' | 'source'>,\n stack: Set<string>,\n memo: Map<string, OpaqueRuntimeImportProof | null>\n): SyncScenarioFor<OpaqueRuntimeImportProof | null> {\n const knownSourceDependency = knownOpaqueRuntimeSourceDependency(\n importer,\n binding.source\n );\n if (knownSourceDependency) {\n return {\n dependencies: [knownSourceDependency],\n names: new Set(),\n };\n }\n\n if (isKnownExternalRuntimeComponentImportSource(binding.source)) {\n return {\n dependencies: [],\n names: new Set(),\n };\n }\n\n const dependency = yield* resolveDependency(\n action,\n importer,\n binding.source,\n binding.imported\n );\n if (!dependency?.resolved) {\n return null;\n }\n\n if (\n isKnownOpaqueRuntimeImportSource(binding.source) ||\n isKnownOpaqueRuntimeImportSource(dependency.resolved)\n ) {\n return {\n dependencies: [dependency.resolved],\n names: new Set(),\n };\n }\n\n const resolved = yield* resolveExportAsOpaqueRuntimeImport(\n action,\n dependency.resolved,\n binding.imported,\n stack,\n memo\n );\n return resolved\n ? {\n dependencies: [\n dependency.resolved,\n ...resolved.dependencies.filter(\n (item) => item !== dependency.resolved\n ),\n ],\n names: resolved.names,\n }\n : null;\n}\n\nexport function* collectOpaqueRuntimeImportProof(\n action: ITransformAction,\n filename: string,\n program: Program,\n expression: Expression\n): SyncScenarioFor<OpaqueRuntimeImportProof> {\n const extendsExpressions = collectWYWMetaExtendsExpressionsDeep(\n program,\n expression\n );\n if (extendsExpressions.length === 0) {\n return {\n dependencies: [],\n names: new Set(),\n };\n }\n\n const imports = collectImportBindings(program, { includeNamespace: true });\n const referencedNames = new Set<string>();\n extendsExpressions.forEach((extendsExpression) =>\n collectOpaqueRuntimeReferenceNames(\n program,\n extendsExpression,\n referencedNames\n )\n );\n\n const dependencies = new Set<string>();\n const names = new Set<string>();\n const memo = new Map<string, OpaqueRuntimeImportProof | null>();\n\n for (const name of referencedNames) {\n const binding = imports.get(name);\n if (!binding || binding.source === 'react') {\n continue;\n }\n\n const proof = yield* resolveImportAsOpaqueRuntime(\n action,\n filename,\n binding,\n new Set(),\n memo\n );\n if (!proof) {\n continue;\n }\n\n names.add(name);\n proof.dependencies.forEach((dependency) => dependencies.add(dependency));\n }\n\n return {\n dependencies: [...dependencies],\n names,\n };\n}\n"],"file":"opaqueRuntime.js"}
@@ -0,0 +1,172 @@
1
+ import { evaluateOxcStaticExpressionAt, isOxcStaticSerializableValue } from "../../../utils/collectOxcTemplateDependencies.js";
2
+ import { getStaticMetadataPreevalResult } from "./cache.js";
3
+ import { debugStaticResolve, getStaticBindings, isLocalStaticMetadataFile, parseProgram } from "./environment.js";
4
+ import { findExportTarget } from "./exportTargets.js";
5
+ import { collectOpaqueRuntimeImportProof } from "./opaqueRuntime.js";
6
+ import { mergeStaticObjectAssignAliases, objectAssignAliasExpressionsForTarget, resolveObjectAssignAliasValues, resolveObjectAssignProcessorExpression } from "./objectAssign.js";
7
+ import { prepareProcessorTarget } from "./processorTarget.js";
8
+ import { collectProcessorImportLocals, isKnownProcessorClassValue, isProcessorClassValue, isSelectorOnlyProcessorValue, processorClassNameRuntimeValue, isStaticWYWMetaTreeValue, isStaticWYWMetaValue } from "./processorStaticModel.js";
9
+ import { bindStaticResolvedValue } from "./staticExpression.js";
10
+ export function* resolveProcessorStaticExport(action, filename, code, codeHash, program, exportedName, stack, memo, resolvers) {
11
+ const root = action.services.options.root ?? process.cwd();
12
+ if (!isLocalStaticMetadataFile(filename, root)) {
13
+ debugStaticResolve(action, {
14
+ exported: exportedName,
15
+ filename,
16
+ phase: "processor-metadata",
17
+ reason: "outside-root",
18
+ status: "rejected"
19
+ });
20
+ return null;
21
+ }
22
+ if (collectProcessorImportLocals(action, program, code, filename).size === 0) {
23
+ debugStaticResolve(action, {
24
+ exported: exportedName,
25
+ filename,
26
+ phase: "processor-metadata",
27
+ reason: "no-processor-imports",
28
+ status: "rejected"
29
+ });
30
+ return null;
31
+ }
32
+ const preevalResult = getStaticMetadataPreevalResult(action, filename, code, codeHash);
33
+ if (!preevalResult) {
34
+ debugStaticResolve(action, {
35
+ exported: exportedName,
36
+ filename,
37
+ phase: "processor-metadata",
38
+ reason: "metadata-preeval-failed",
39
+ status: "rejected"
40
+ });
41
+ return null;
42
+ }
43
+ if (!preevalResult.metadata) {
44
+ debugStaticResolve(action, {
45
+ exported: exportedName,
46
+ filename,
47
+ phase: "processor-metadata",
48
+ reason: "metadata-missing",
49
+ status: "rejected"
50
+ });
51
+ return null;
52
+ }
53
+ const preevalCode = preevalResult.baseCode;
54
+ const preevalProgram = parseProgram(preevalCode, filename);
55
+ const target = findExportTarget(preevalProgram, exportedName);
56
+ if (!target || target.kind === "import") {
57
+ debugStaticResolve(action, {
58
+ exported: exportedName,
59
+ filename,
60
+ phase: "processor-metadata",
61
+ reason: "processor-target-missing",
62
+ status: "rejected"
63
+ });
64
+ return null;
65
+ }
66
+ const processorObjectAssignAliases = objectAssignAliasExpressionsForTarget(preevalProgram, target);
67
+ const processorExpression = resolveObjectAssignProcessorExpression(preevalProgram, target.expression);
68
+ const opaqueRuntimeImportProof = yield* collectOpaqueRuntimeImportProof(action, filename, preevalProgram, processorExpression);
69
+ const preparedTarget = prepareProcessorTarget(preevalCode, filename, preevalProgram, target, exportedName, opaqueRuntimeImportProof.names);
70
+ if (!preparedTarget) {
71
+ debugStaticResolve(action, {
72
+ exported: exportedName,
73
+ filename,
74
+ phase: "processor-metadata",
75
+ reason: "unsupported-processor-expression",
76
+ status: "rejected"
77
+ });
78
+ return null;
79
+ }
80
+ const env = new Map();
81
+ const dependencies = new Set([filename]);
82
+ const sideEffectDependencies = new Set();
83
+ opaqueRuntimeImportProof.dependencies.forEach((dependency) => dependencies.add(dependency));
84
+ for (const binding of preparedTarget.dependencies.imports) {
85
+ const resolved = yield* resolvers.resolveImportValue(action, filename, binding, stack, memo);
86
+ if (!resolved) {
87
+ debugStaticResolve(action, {
88
+ exported: exportedName,
89
+ filename,
90
+ imported: binding.imported,
91
+ phase: "processor-metadata",
92
+ reason: "resolve-failed",
93
+ source: binding.source,
94
+ status: "rejected"
95
+ });
96
+ return null;
97
+ }
98
+ if (!bindStaticResolvedValue(env, preparedTarget.expression, binding.local, resolved, { wrapNonCallable: true })) {
99
+ debugStaticResolve(action, {
100
+ exported: exportedName,
101
+ filename,
102
+ imported: binding.imported,
103
+ phase: "processor-metadata",
104
+ reason: "callable-usage-unsupported",
105
+ source: binding.source,
106
+ status: "rejected"
107
+ });
108
+ return null;
109
+ }
110
+ resolved.dependencies.forEach((dependency) => dependencies.add(dependency));
111
+ resolved.sideEffectDependencies?.forEach((dependency) => sideEffectDependencies.add(dependency));
112
+ }
113
+ const value = preparedTarget.evaluationCode && preparedTarget.evaluationSpan ? evaluateOxcStaticExpressionAt(preparedTarget.evaluationCode, filename, preparedTarget.evaluationSpan, env, getStaticBindings(action)) : evaluateOxcStaticExpressionAt(preevalCode, filename, {
114
+ end: preparedTarget.expression.end,
115
+ start: preparedTarget.expression.start
116
+ }, env, getStaticBindings(action));
117
+ if (!isOxcStaticSerializableValue(value)) {
118
+ debugStaticResolve(action, {
119
+ exported: exportedName,
120
+ filename,
121
+ phase: "processor-metadata",
122
+ reason: "non-serializable",
123
+ status: "rejected"
124
+ });
125
+ return null;
126
+ }
127
+ let resolvedValue = value;
128
+ if (processorObjectAssignAliases && isStaticWYWMetaValue(value)) {
129
+ const aliasValues = yield* resolveObjectAssignAliasValues(action, filename, preevalCode, preevalProgram, processorObjectAssignAliases, stack, memo, resolvers);
130
+ const mergedValue = aliasValues ? mergeStaticObjectAssignAliases(value, aliasValues.values) : null;
131
+ if (mergedValue) {
132
+ resolvedValue = mergedValue;
133
+ aliasValues?.dependencies.forEach((dependency) => dependencies.add(dependency));
134
+ aliasValues?.sideEffectDependencies.forEach((dependency) => sideEffectDependencies.add(dependency));
135
+ }
136
+ }
137
+ const isStaticMeta = isStaticWYWMetaValue(resolvedValue);
138
+ const isStaticMetaTree = !isStaticMeta && isStaticWYWMetaTreeValue(resolvedValue);
139
+ const processors = preevalResult.metadata.processors;
140
+ const processorClassNames = new Set(processors.map((processor) => processorClassNameRuntimeValue(processor)));
141
+ const isSelectorOnly = !isStaticMeta && !isStaticMetaTree && isSelectorOnlyProcessorValue(resolvedValue, processors, new Map());
142
+ const isSideEffectClassValue = !isStaticMeta && !isStaticMetaTree && !isSelectorOnly && (isProcessorClassValue(resolvedValue, processors, new Map()) || isKnownProcessorClassValue(resolvedValue, processorClassNames));
143
+ if (!isStaticMeta && !isStaticMetaTree && !isSelectorOnly && !isSideEffectClassValue) {
144
+ debugStaticResolve(action, {
145
+ exported: exportedName,
146
+ filename,
147
+ phase: "processor-metadata",
148
+ reason: "non-empty-css-artifact",
149
+ status: "rejected"
150
+ });
151
+ return null;
152
+ }
153
+ let resolvedReason;
154
+ if (preparedTarget.opaqueRuntimeBase) {
155
+ resolvedReason = "opaque-runtime-component";
156
+ } else if (isSideEffectClassValue) {
157
+ resolvedReason = "non-empty-css-artifact-side-effect";
158
+ }
159
+ debugStaticResolve(action, {
160
+ exported: exportedName,
161
+ filename,
162
+ phase: "processor-metadata",
163
+ reason: resolvedReason,
164
+ status: "resolved"
165
+ });
166
+ return {
167
+ dependencies: [...dependencies],
168
+ sideEffectDependencies: isSideEffectClassValue ? [filename, ...sideEffectDependencies] : [...sideEffectDependencies],
169
+ value: resolvedValue
170
+ };
171
+ }
172
+ //# sourceMappingURL=processorStaticExport.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"AAIA,SACE,+BACA,oCACK;AAEP,SAAS,sCAAsC;AAC/C,SACE,oBACA,mBACA,2BACA,oBACK;AACP,SAAS,wBAAwB;AACjC,SAAS,uCAAuC;AAChD,SACE,gCACA,uCACA,gCACA,8CACK;AACP,SAAS,8BAA8B;AACvC,SACE,8BACA,4BACA,uBACA,8BACA,gCACA,0BACA,4BAEK;AACP,SAAS,+BAA+B;AAGxC,OAAO,UAAU,6BACf,QACA,UACA,MACA,UACA,SACA,cACA,OACA,MACA,WAC4C;CAC5C,MAAM,OAAO,OAAO,SAAS,QAAQ,QAAQ,QAAQ,KAAK;AAC1D,KAAI,CAAC,0BAA0B,UAAU,KAAK,EAAE;AAC9C,qBAAmB,QAAQ;GACzB,UAAU;GACV;GACA,OAAO;GACP,QAAQ;GACR,QAAQ;GACT,CAAC;AACF,SAAO;;AAGT,KACE,6BAA6B,QAAQ,SAAS,MAAM,SAAS,CAAC,SAAS,GACvE;AACA,qBAAmB,QAAQ;GACzB,UAAU;GACV;GACA,OAAO;GACP,QAAQ;GACR,QAAQ;GACT,CAAC;AACF,SAAO;;CAGT,MAAM,gBAAgB,+BACpB,QACA,UACA,MACA,SACD;AACD,KAAI,CAAC,eAAe;AAClB,qBAAmB,QAAQ;GACzB,UAAU;GACV;GACA,OAAO;GACP,QAAQ;GACR,QAAQ;GACT,CAAC;AACF,SAAO;;AAGT,KAAI,CAAC,cAAc,UAAU;AAC3B,qBAAmB,QAAQ;GACzB,UAAU;GACV;GACA,OAAO;GACP,QAAQ;GACR,QAAQ;GACT,CAAC;AACF,SAAO;;CAGT,MAAM,cAAc,cAAc;CAClC,MAAM,iBAAiB,aAAa,aAAa,SAAS;CAC1D,MAAM,SAAS,iBAAiB,gBAAgB,aAAa;AAC7D,KAAI,CAAC,UAAU,OAAO,SAAS,UAAU;AACvC,qBAAmB,QAAQ;GACzB,UAAU;GACV;GACA,OAAO;GACP,QAAQ;GACR,QAAQ;GACT,CAAC;AACF,SAAO;;CAGT,MAAM,+BAA+B,sCACnC,gBACA,OACD;CACD,MAAM,sBAAsB,uCAC1B,gBACA,OAAO,WACR;CACD,MAAM,2BAA2B,OAAO,gCACtC,QACA,UACA,gBACA,oBACD;CACD,MAAM,iBAAiB,uBACrB,aACA,UACA,gBACA,QACA,cACA,yBAAyB,MAC1B;AACD,KAAI,CAAC,gBAAgB;AACnB,qBAAmB,QAAQ;GACzB,UAAU;GACV;GACA,OAAO;GACP,QAAQ;GACR,QAAQ;GACT,CAAC;AACF,SAAO;;CAGT,MAAM,MAAM,IAAI,KAAsB;CACtC,MAAM,eAAe,IAAI,IAAY,CAAC,SAAS,CAAC;CAChD,MAAM,yBAAyB,IAAI,KAAa;AAChD,0BAAyB,aAAa,SAAS,eAC7C,aAAa,IAAI,WAAW,CAC7B;AAED,MAAK,MAAM,WAAW,eAAe,aAAa,SAAS;EACzD,MAAM,WAAW,OAAO,UAAU,mBAChC,QACA,UACA,SACA,OACA,KACD;AACD,MAAI,CAAC,UAAU;AACb,sBAAmB,QAAQ;IACzB,UAAU;IACV;IACA,UAAU,QAAQ;IAClB,OAAO;IACP,QAAQ;IACR,QAAQ,QAAQ;IAChB,QAAQ;IACT,CAAC;AACF,UAAO;;AAGT,MACE,CAAC,wBACC,KACA,eAAe,YACf,QAAQ,OACR,UACA,EACE,iBAAiB,MAClB,CACF,EACD;AACA,sBAAmB,QAAQ;IACzB,UAAU;IACV;IACA,UAAU,QAAQ;IAClB,OAAO;IACP,QAAQ;IACR,QAAQ,QAAQ;IAChB,QAAQ;IACT,CAAC;AACF,UAAO;;AAGT,WAAS,aAAa,SAAS,eAAe,aAAa,IAAI,WAAW,CAAC;AAC3E,WAAS,wBAAwB,SAAS,eACxC,uBAAuB,IAAI,WAAW,CACvC;;CAGH,MAAM,QACJ,eAAe,kBAAkB,eAAe,iBAC5C,8BACE,eAAe,gBACf,UACA,eAAe,gBACf,KACA,kBAAkB,OAAO,CAC1B,GACD,8BACE,aACA,UACA;EACE,KAAK,eAAe,WAAW;EAC/B,OAAO,eAAe,WAAW;EAClC,EACD,KACA,kBAAkB,OAAO,CAC1B;AACP,KAAI,CAAC,6BAA6B,MAAM,EAAE;AACxC,qBAAmB,QAAQ;GACzB,UAAU;GACV;GACA,OAAO;GACP,QAAQ;GACR,QAAQ;GACT,CAAC;AACF,SAAO;;CAGT,IAAI,gBAAgB;AACpB,KAAI,gCAAgC,qBAAqB,MAAM,EAAE;EAC/D,MAAM,cAAc,OAAO,+BACzB,QACA,UACA,aACA,gBACA,8BACA,OACA,MACA,UACD;EACD,MAAM,cAAc,cAChB,+BAA+B,OAAO,YAAY,OAAO,GACzD;AAEJ,MAAI,aAAa;AACf,mBAAgB;AAChB,gBAAa,aAAa,SAAS,eACjC,aAAa,IAAI,WAAW,CAC7B;AACD,gBAAa,uBAAuB,SAAS,eAC3C,uBAAuB,IAAI,WAAW,CACvC;;;CAIL,MAAM,eAAe,qBAAqB,cAAc;CACxD,MAAM,mBACJ,CAAC,gBAAgB,yBAAyB,cAAc;CAC1D,MAAM,aAAa,cAAc,SAC9B;CACH,MAAM,sBAAsB,IAAI,IAC9B,WAAW,KAAK,cAAc,+BAA+B,UAAU,CAAC,CACzE;CACD,MAAM,iBACJ,CAAC,gBACD,CAAC,oBACD,6BAA6B,eAAe,YAAY,IAAI,KAAK,CAAC;CACpE,MAAM,yBACJ,CAAC,gBACD,CAAC,oBACD,CAAC,mBACA,sBAAsB,eAAe,YAAY,IAAI,KAAK,CAAC,IAC1D,2BAA2B,eAAe,oBAAoB;AAClE,KACE,CAAC,gBACD,CAAC,oBACD,CAAC,kBACD,CAAC,wBACD;AACA,qBAAmB,QAAQ;GACzB,UAAU;GACV;GACA,OAAO;GACP,QAAQ;GACR,QAAQ;GACT,CAAC;AACF,SAAO;;CAGT,IAAI;AACJ,KAAI,eAAe,mBAAmB;AACpC,mBAAiB;YACR,wBAAwB;AACjC,mBAAiB;;AAGnB,oBAAmB,QAAQ;EACzB,UAAU;EACV;EACA,OAAO;EACP,QAAQ;EACR,QAAQ;EACT,CAAC;AAEF,QAAO;EACL,cAAc,CAAC,GAAG,aAAa;EAC/B,wBAAwB,yBACpB,CAAC,UAAU,GAAG,uBAAuB,GACrC,CAAC,GAAG,uBAAuB;EAC/B,OAAO;EACR","names":[],"sources":["../../../../src/transform/generators/resolveStaticOxcValues/processorStaticExport.ts"],"version":3,"sourcesContent":["/* eslint-disable no-restricted-syntax,no-continue,@typescript-eslint/no-use-before-define */\n\nimport type { Program } from 'oxc-parser';\n\nimport {\n evaluateOxcStaticExpressionAt,\n isOxcStaticSerializableValue,\n} from '../../../utils/collectOxcTemplateDependencies';\nimport type { ITransformAction, SyncScenarioFor } from '../../types';\nimport { getStaticMetadataPreevalResult } from './cache';\nimport {\n debugStaticResolve,\n getStaticBindings,\n isLocalStaticMetadataFile,\n parseProgram,\n} from './environment';\nimport { findExportTarget } from './exportTargets';\nimport { collectOpaqueRuntimeImportProof } from './opaqueRuntime';\nimport {\n mergeStaticObjectAssignAliases,\n objectAssignAliasExpressionsForTarget,\n resolveObjectAssignAliasValues,\n resolveObjectAssignProcessorExpression,\n} from './objectAssign';\nimport { prepareProcessorTarget } from './processorTarget';\nimport {\n collectProcessorImportLocals,\n isKnownProcessorClassValue,\n isProcessorClassValue,\n isSelectorOnlyProcessorValue,\n processorClassNameRuntimeValue,\n isStaticWYWMetaTreeValue,\n isStaticWYWMetaValue,\n type StaticProcessorInstance,\n} from './processorStaticModel';\nimport { bindStaticResolvedValue } from './staticExpression';\nimport type { StaticExportResolverContext, StaticExportResult } from './types';\n\nexport function* resolveProcessorStaticExport(\n action: ITransformAction,\n filename: string,\n code: string,\n codeHash: string,\n program: Program,\n exportedName: string,\n stack: Set<string>,\n memo: Map<string, StaticExportResult | null>,\n resolvers: StaticExportResolverContext\n): SyncScenarioFor<StaticExportResult | null> {\n const root = action.services.options.root ?? process.cwd();\n if (!isLocalStaticMetadataFile(filename, root)) {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n phase: 'processor-metadata',\n reason: 'outside-root',\n status: 'rejected',\n });\n return null;\n }\n\n if (\n collectProcessorImportLocals(action, program, code, filename).size === 0\n ) {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n phase: 'processor-metadata',\n reason: 'no-processor-imports',\n status: 'rejected',\n });\n return null;\n }\n\n const preevalResult = getStaticMetadataPreevalResult(\n action,\n filename,\n code,\n codeHash\n );\n if (!preevalResult) {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n phase: 'processor-metadata',\n reason: 'metadata-preeval-failed',\n status: 'rejected',\n });\n return null;\n }\n\n if (!preevalResult.metadata) {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n phase: 'processor-metadata',\n reason: 'metadata-missing',\n status: 'rejected',\n });\n return null;\n }\n\n const preevalCode = preevalResult.baseCode;\n const preevalProgram = parseProgram(preevalCode, filename);\n const target = findExportTarget(preevalProgram, exportedName);\n if (!target || target.kind === 'import') {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n phase: 'processor-metadata',\n reason: 'processor-target-missing',\n status: 'rejected',\n });\n return null;\n }\n\n const processorObjectAssignAliases = objectAssignAliasExpressionsForTarget(\n preevalProgram,\n target\n );\n const processorExpression = resolveObjectAssignProcessorExpression(\n preevalProgram,\n target.expression\n );\n const opaqueRuntimeImportProof = yield* collectOpaqueRuntimeImportProof(\n action,\n filename,\n preevalProgram,\n processorExpression\n );\n const preparedTarget = prepareProcessorTarget(\n preevalCode,\n filename,\n preevalProgram,\n target,\n exportedName,\n opaqueRuntimeImportProof.names\n );\n if (!preparedTarget) {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n phase: 'processor-metadata',\n reason: 'unsupported-processor-expression',\n status: 'rejected',\n });\n return null;\n }\n\n const env = new Map<string, unknown>();\n const dependencies = new Set<string>([filename]);\n const sideEffectDependencies = new Set<string>();\n opaqueRuntimeImportProof.dependencies.forEach((dependency) =>\n dependencies.add(dependency)\n );\n\n for (const binding of preparedTarget.dependencies.imports) {\n const resolved = yield* resolvers.resolveImportValue(\n action,\n filename,\n binding,\n stack,\n memo\n );\n if (!resolved) {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n imported: binding.imported,\n phase: 'processor-metadata',\n reason: 'resolve-failed',\n source: binding.source,\n status: 'rejected',\n });\n return null;\n }\n\n if (\n !bindStaticResolvedValue(\n env,\n preparedTarget.expression,\n binding.local,\n resolved,\n {\n wrapNonCallable: true,\n }\n )\n ) {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n imported: binding.imported,\n phase: 'processor-metadata',\n reason: 'callable-usage-unsupported',\n source: binding.source,\n status: 'rejected',\n });\n return null;\n }\n\n resolved.dependencies.forEach((dependency) => dependencies.add(dependency));\n resolved.sideEffectDependencies?.forEach((dependency) =>\n sideEffectDependencies.add(dependency)\n );\n }\n\n const value =\n preparedTarget.evaluationCode && preparedTarget.evaluationSpan\n ? evaluateOxcStaticExpressionAt(\n preparedTarget.evaluationCode,\n filename,\n preparedTarget.evaluationSpan,\n env,\n getStaticBindings(action)\n )\n : evaluateOxcStaticExpressionAt(\n preevalCode,\n filename,\n {\n end: preparedTarget.expression.end,\n start: preparedTarget.expression.start,\n },\n env,\n getStaticBindings(action)\n );\n if (!isOxcStaticSerializableValue(value)) {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n phase: 'processor-metadata',\n reason: 'non-serializable',\n status: 'rejected',\n });\n return null;\n }\n\n let resolvedValue = value;\n if (processorObjectAssignAliases && isStaticWYWMetaValue(value)) {\n const aliasValues = yield* resolveObjectAssignAliasValues(\n action,\n filename,\n preevalCode,\n preevalProgram,\n processorObjectAssignAliases,\n stack,\n memo,\n resolvers\n );\n const mergedValue = aliasValues\n ? mergeStaticObjectAssignAliases(value, aliasValues.values)\n : null;\n\n if (mergedValue) {\n resolvedValue = mergedValue;\n aliasValues?.dependencies.forEach((dependency) =>\n dependencies.add(dependency)\n );\n aliasValues?.sideEffectDependencies.forEach((dependency) =>\n sideEffectDependencies.add(dependency)\n );\n }\n }\n\n const isStaticMeta = isStaticWYWMetaValue(resolvedValue);\n const isStaticMetaTree =\n !isStaticMeta && isStaticWYWMetaTreeValue(resolvedValue);\n const processors = preevalResult.metadata\n .processors as unknown as StaticProcessorInstance[];\n const processorClassNames = new Set(\n processors.map((processor) => processorClassNameRuntimeValue(processor))\n );\n const isSelectorOnly =\n !isStaticMeta &&\n !isStaticMetaTree &&\n isSelectorOnlyProcessorValue(resolvedValue, processors, new Map());\n const isSideEffectClassValue =\n !isStaticMeta &&\n !isStaticMetaTree &&\n !isSelectorOnly &&\n (isProcessorClassValue(resolvedValue, processors, new Map()) ||\n isKnownProcessorClassValue(resolvedValue, processorClassNames));\n if (\n !isStaticMeta &&\n !isStaticMetaTree &&\n !isSelectorOnly &&\n !isSideEffectClassValue\n ) {\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n phase: 'processor-metadata',\n reason: 'non-empty-css-artifact',\n status: 'rejected',\n });\n return null;\n }\n\n let resolvedReason: string | undefined;\n if (preparedTarget.opaqueRuntimeBase) {\n resolvedReason = 'opaque-runtime-component';\n } else if (isSideEffectClassValue) {\n resolvedReason = 'non-empty-css-artifact-side-effect';\n }\n\n debugStaticResolve(action, {\n exported: exportedName,\n filename,\n phase: 'processor-metadata',\n reason: resolvedReason,\n status: 'resolved',\n });\n\n return {\n dependencies: [...dependencies],\n sideEffectDependencies: isSideEffectClassValue\n ? [filename, ...sideEffectDependencies]\n : [...sideEffectDependencies],\n value: resolvedValue,\n };\n}\n"],"file":"processorStaticExport.js"}