@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,476 @@
1
+ import { collectOxcProcessorImportsFromProgram } from "../../../utils/collectOxcExportsAndImports.js";
2
+ import { getOxcNodeChildren } from "../../../utils/oxc/ast.js";
3
+ import { getProcessorForImport } from "../../../utils/processorLookup.js";
4
+ import { resolveProcessorStaticClassName } from "../../../utils/processorStaticSemantics.js";
5
+ import { parseProgram } from "./environment.js";
6
+ import { findObjectPropertyValue, findTopLevelConstExpression, objectPropertyKeyName } from "./programAnalysis.js";
7
+ import { isSafeLiteral, unwrapExpression } from "./staticExpression.js";
8
+ import { GENERATED_HELPER_NAME_RE } from "./types.js";
9
+ export const collectProcessorImportLocals = (action, program, code, filename) => {
10
+ const result = new Set();
11
+ collectOxcProcessorImportsFromProgram(program, code).forEach((item) => {
12
+ if (item.type !== "esm" || item.imported === "*" || item.imported === "side-effect") {
13
+ return;
14
+ }
15
+ const localName = item.local.name ?? item.local.code;
16
+ if (!localName) {
17
+ return;
18
+ }
19
+ const [processor] = getProcessorForImport({
20
+ imported: item.imported,
21
+ source: item.source
22
+ }, filename, action.services.options.pluginOptions);
23
+ if (!processor) {
24
+ return;
25
+ }
26
+ result.add(localName);
27
+ const rootLocalName = localName.split(".")[0];
28
+ if (rootLocalName) {
29
+ result.add(rootLocalName);
30
+ }
31
+ });
32
+ return result;
33
+ };
34
+ export const isStaticWYWMetaValue = (value, seen = new Set()) => {
35
+ if (typeof value !== "object" || value === null) {
36
+ return false;
37
+ }
38
+ if (seen.has(value)) {
39
+ return false;
40
+ }
41
+ seen.add(value);
42
+ const meta = value.__wyw_meta;
43
+ if (typeof meta !== "object" || meta === null) {
44
+ return false;
45
+ }
46
+ const { className, extends: extended } = meta;
47
+ return typeof className === "string" && (extended === null || isStaticWYWMetaValue(extended, seen));
48
+ };
49
+ export const toStaticWYWSelectorMetaValue = (value, seen = new Set()) => {
50
+ if (typeof value !== "object" || value === null || seen.has(value)) {
51
+ return null;
52
+ }
53
+ seen.add(value);
54
+ const meta = value.__wyw_meta;
55
+ if (typeof meta !== "object" || meta === null) {
56
+ return null;
57
+ }
58
+ const { className, extends: extended } = meta;
59
+ if (typeof className !== "string") {
60
+ return null;
61
+ }
62
+ const staticExtends = extended === null ? null : toStaticWYWSelectorMetaValue(extended, seen);
63
+ if (extended !== null && staticExtends === null) {
64
+ return null;
65
+ }
66
+ return { __wyw_meta: {
67
+ className,
68
+ extends: staticExtends
69
+ } };
70
+ };
71
+ export const staticWYWMetaExtendsReplacementCode = (value) => {
72
+ if (value === null) {
73
+ return "null";
74
+ }
75
+ const selectorMeta = toStaticWYWSelectorMetaValue(value);
76
+ return selectorMeta ? `(${JSON.stringify(selectorMeta)})` : null;
77
+ };
78
+ export const unknownStaticWYWMetaValue = Symbol("unknownStaticWYWMetaValue");
79
+ export const zeroArgFunctionExpressionBody = (expr) => {
80
+ const unwrapped = unwrapExpression(expr);
81
+ if (unwrapped.type !== "ArrowFunctionExpression" || !Array.isArray(unwrapped.params) || unwrapped.params.length !== 0) {
82
+ return null;
83
+ }
84
+ const body = unwrapped.body;
85
+ return body && body.type !== "BlockStatement" ? body : null;
86
+ };
87
+ export const isNullLiteralExpression = (node) => {
88
+ const unwrapped = unwrapExpression(node);
89
+ return isSafeLiteral(unwrapped) && unwrapped.value === null;
90
+ };
91
+ export const isNullReturningFunctionExpression = (expr) => {
92
+ const unwrapped = unwrapExpression(expr);
93
+ if (unwrapped.type !== "ArrowFunctionExpression" && unwrapped.type !== "FunctionExpression") {
94
+ return false;
95
+ }
96
+ if (unwrapped.async || unwrapped.generator) {
97
+ return false;
98
+ }
99
+ const body = unwrapped.body;
100
+ if (!body) {
101
+ return false;
102
+ }
103
+ if (body.type !== "BlockStatement") {
104
+ return isNullLiteralExpression(body);
105
+ }
106
+ if (!Array.isArray(body.body) || body.body.length !== 1) {
107
+ return false;
108
+ }
109
+ const [statement] = body.body;
110
+ return statement?.type === "ReturnStatement" && !!statement.argument && isNullLiteralExpression(statement.argument);
111
+ };
112
+ export const createSameFileStaticWYWMetaHelperResolver = (code, filename) => {
113
+ const declarations = new Map();
114
+ const nullFunctionNames = new Set();
115
+ try {
116
+ const program = parseProgram(code, filename);
117
+ const collectDeclarations = (statement) => {
118
+ if (statement.type === "VariableDeclaration") {
119
+ statement.declarations.forEach((declarator) => {
120
+ if (declarator.id.type !== "Identifier" || !declarator.init) {
121
+ return;
122
+ }
123
+ const { name } = declarator.id;
124
+ const init = declarator.init;
125
+ if (isNullReturningFunctionExpression(init)) {
126
+ nullFunctionNames.add(name);
127
+ return;
128
+ }
129
+ const unwrapped = unwrapExpression(init);
130
+ if (unwrapped.type === "ObjectExpression" && findObjectPropertyValue(unwrapped, "__wyw_meta")) {
131
+ declarations.set(name, init);
132
+ return;
133
+ }
134
+ const body = zeroArgFunctionExpressionBody(init);
135
+ if (body && GENERATED_HELPER_NAME_RE.test(name)) {
136
+ declarations.set(name, body);
137
+ }
138
+ });
139
+ }
140
+ };
141
+ program.body.forEach((statement) => {
142
+ if (statement.type === "ExportNamedDeclaration" && statement.declaration) {
143
+ collectDeclarations(statement.declaration);
144
+ return;
145
+ }
146
+ collectDeclarations(statement);
147
+ });
148
+ } catch {
149
+ return () => new Map();
150
+ }
151
+ return (seedValues) => {
152
+ const memo = new Map();
153
+ const resolving = new Set();
154
+ const resolveName = (name) => {
155
+ if (seedValues.has(name)) {
156
+ return seedValues.get(name);
157
+ }
158
+ if (memo.has(name)) {
159
+ return memo.get(name);
160
+ }
161
+ const expression = declarations.get(name);
162
+ if (!expression || resolving.has(name)) {
163
+ if (nullFunctionNames.has(name)) {
164
+ memo.set(name, null);
165
+ return null;
166
+ }
167
+ return unknownStaticWYWMetaValue;
168
+ }
169
+ resolving.add(name);
170
+ const value = resolveExpression(expression);
171
+ resolving.delete(name);
172
+ memo.set(name, value);
173
+ return value;
174
+ };
175
+ const resolveExpression = (expression) => {
176
+ const unwrapped = unwrapExpression(expression);
177
+ if (isSafeLiteral(unwrapped)) {
178
+ return unwrapped.value;
179
+ }
180
+ if (unwrapped.type === "Identifier") {
181
+ return resolveName(unwrapped.name);
182
+ }
183
+ if (unwrapped.type === "CallExpression") {
184
+ const callee = unwrapExpression(unwrapped.callee);
185
+ if (callee.type === "Identifier" && unwrapped.arguments.length === 0) {
186
+ return resolveName(callee.name);
187
+ }
188
+ return unknownStaticWYWMetaValue;
189
+ }
190
+ if (unwrapped.type !== "ObjectExpression") {
191
+ return unknownStaticWYWMetaValue;
192
+ }
193
+ const value = {};
194
+ for (const property of unwrapped.properties) {
195
+ if (property.type === "SpreadElement") {
196
+ return unknownStaticWYWMetaValue;
197
+ }
198
+ const propertyNode = property;
199
+ if (propertyNode.computed) {
200
+ return unknownStaticWYWMetaValue;
201
+ }
202
+ const propertyKey = propertyNode.key;
203
+ const key = propertyKey ? objectPropertyKeyName(propertyKey) : null;
204
+ const propertyValue = propertyNode.value;
205
+ if (key === null || !propertyValue) {
206
+ return unknownStaticWYWMetaValue;
207
+ }
208
+ const resolved = resolveExpression(propertyValue);
209
+ if (resolved === unknownStaticWYWMetaValue) {
210
+ return unknownStaticWYWMetaValue;
211
+ }
212
+ value[key] = resolved;
213
+ }
214
+ return value;
215
+ };
216
+ const result = new Map();
217
+ declarations.forEach((_expression, name) => {
218
+ if (!GENERATED_HELPER_NAME_RE.test(name)) {
219
+ return;
220
+ }
221
+ const value = resolveName(name);
222
+ if (value !== unknownStaticWYWMetaValue && (value === null || isStaticWYWMetaValue(value))) {
223
+ result.set(name, value);
224
+ }
225
+ });
226
+ return result;
227
+ };
228
+ };
229
+ export const staticWYWMetaTreeValueStatus = (value, seen = new Set()) => {
230
+ if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
231
+ return {
232
+ hasMetadata: false,
233
+ safe: true
234
+ };
235
+ }
236
+ if (typeof value !== "object") {
237
+ return {
238
+ hasMetadata: false,
239
+ safe: false
240
+ };
241
+ }
242
+ if (seen.has(value)) {
243
+ return {
244
+ hasMetadata: false,
245
+ safe: false
246
+ };
247
+ }
248
+ seen.add(value);
249
+ if (Array.isArray(value)) {
250
+ let hasMetadata = false;
251
+ for (const item of value) {
252
+ const status = staticWYWMetaTreeValueStatus(item, seen);
253
+ if (!status.safe) {
254
+ return {
255
+ hasMetadata: false,
256
+ safe: false
257
+ };
258
+ }
259
+ hasMetadata = hasMetadata || status.hasMetadata;
260
+ }
261
+ return {
262
+ hasMetadata,
263
+ safe: true
264
+ };
265
+ }
266
+ if ("__wyw_meta" in value) {
267
+ return {
268
+ hasMetadata: isStaticWYWMetaValue(value),
269
+ safe: isStaticWYWMetaValue(value)
270
+ };
271
+ }
272
+ let hasMetadata = false;
273
+ for (const item of Object.values(value)) {
274
+ const status = staticWYWMetaTreeValueStatus(item, seen);
275
+ if (!status.safe) {
276
+ return {
277
+ hasMetadata: false,
278
+ safe: false
279
+ };
280
+ }
281
+ hasMetadata = hasMetadata || status.hasMetadata;
282
+ }
283
+ return {
284
+ hasMetadata,
285
+ safe: true
286
+ };
287
+ };
288
+ export const isStaticWYWMetaTreeValue = (value) => {
289
+ const status = staticWYWMetaTreeValueStatus(value);
290
+ return status.safe && status.hasMetadata;
291
+ };
292
+ export const processorClassNameRuntimeValue = (processor) => resolveProcessorStaticClassName(processor) ?? processor.className;
293
+ export const isProcessorRuntimeClassName = (processor, value) => processor.className === value || resolveProcessorStaticClassName(processor) === value;
294
+ export const isPlainObjectRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value) && Object.getPrototypeOf(value) === Object.prototype;
295
+ export const isStaticObjectAssignAliasValue = (value) => isStaticWYWMetaValue(value) || isStaticWYWMetaTreeValue(value);
296
+ export const artifactCssText = (artifact) => {
297
+ if (!Array.isArray(artifact) || artifact[0] !== "css") {
298
+ return null;
299
+ }
300
+ const payload = artifact[1];
301
+ if (Array.isArray(payload)) {
302
+ const [rules] = payload;
303
+ if (typeof rules === "object" && rules !== null) {
304
+ return Object.values(rules).map((rule) => typeof rule === "object" && rule !== null && "cssText" in rule && typeof rule.cssText === "string" ? rule.cssText : "").join("");
305
+ }
306
+ }
307
+ if (typeof payload === "object" && payload !== null && "cssText" in payload && typeof payload.cssText === "string") {
308
+ return payload.cssText;
309
+ }
310
+ return null;
311
+ };
312
+ export const isEmptyProcessorClassName = (value, processors, cache) => {
313
+ if (cache.has(value)) {
314
+ return cache.get(value);
315
+ }
316
+ const processor = processors.find((item) => isProcessorRuntimeClassName(item, value));
317
+ if (!processor) {
318
+ cache.set(value, false);
319
+ return false;
320
+ }
321
+ if (processor.artifacts.length === 0) {
322
+ try {
323
+ processor.build(new Map());
324
+ } catch {
325
+ cache.set(value, false);
326
+ return false;
327
+ }
328
+ }
329
+ const result = processor.artifacts.every((artifact) => {
330
+ const cssText = artifactCssText(artifact);
331
+ return cssText !== null && cssText.trim() === "";
332
+ });
333
+ cache.set(value, result);
334
+ return result;
335
+ };
336
+ export const isProcessorClassName = (value, processors, cache) => {
337
+ if (cache.has(value)) {
338
+ return cache.get(value);
339
+ }
340
+ const processor = processors.find((item) => isProcessorRuntimeClassName(item, value));
341
+ if (!processor) {
342
+ cache.set(value, false);
343
+ return false;
344
+ }
345
+ if (processor.artifacts.length === 0) {
346
+ try {
347
+ processor.build(new Map());
348
+ } catch {
349
+ cache.set(value, false);
350
+ return false;
351
+ }
352
+ }
353
+ const result = processor.artifacts.every((artifact) => artifactCssText(artifact) !== null);
354
+ cache.set(value, result);
355
+ return result;
356
+ };
357
+ export const isKnownProcessorClassName = (value, processorClassNames) => processorClassNames.has(value);
358
+ export const isSelectorOnlyProcessorValue = (value, processors, cache, seen = new Set()) => {
359
+ if (typeof value === "string") {
360
+ return isEmptyProcessorClassName(value, processors, cache);
361
+ }
362
+ if (Array.isArray(value)) {
363
+ if (seen.has(value)) {
364
+ return false;
365
+ }
366
+ seen.add(value);
367
+ return value.every((item) => isSelectorOnlyProcessorValue(item, processors, cache, seen));
368
+ }
369
+ if (typeof value === "object" && value !== null) {
370
+ if (seen.has(value)) {
371
+ return false;
372
+ }
373
+ seen.add(value);
374
+ return Object.values(value).every((item) => isSelectorOnlyProcessorValue(item, processors, cache, seen));
375
+ }
376
+ return false;
377
+ };
378
+ export const isProcessorClassValue = (value, processors, cache, seen = new Set()) => {
379
+ if (typeof value === "string") {
380
+ return isProcessorClassName(value, processors, cache);
381
+ }
382
+ if (Array.isArray(value)) {
383
+ if (seen.has(value)) {
384
+ return false;
385
+ }
386
+ seen.add(value);
387
+ return value.every((item) => isProcessorClassValue(item, processors, cache, seen));
388
+ }
389
+ if (typeof value === "object" && value !== null) {
390
+ if (seen.has(value)) {
391
+ return false;
392
+ }
393
+ seen.add(value);
394
+ return Object.values(value).every((item) => isProcessorClassValue(item, processors, cache, seen));
395
+ }
396
+ return false;
397
+ };
398
+ export const isKnownProcessorClassValue = (value, processorClassNames, seen = new Set()) => {
399
+ if (typeof value === "string") {
400
+ return isKnownProcessorClassName(value, processorClassNames);
401
+ }
402
+ if (Array.isArray(value)) {
403
+ if (seen.has(value)) {
404
+ return false;
405
+ }
406
+ seen.add(value);
407
+ return value.every((item) => isKnownProcessorClassValue(item, processorClassNames, seen));
408
+ }
409
+ if (typeof value === "object" && value !== null) {
410
+ if (seen.has(value)) {
411
+ return false;
412
+ }
413
+ seen.add(value);
414
+ return Object.values(value).every((item) => isKnownProcessorClassValue(item, processorClassNames, seen));
415
+ }
416
+ return false;
417
+ };
418
+ export const findWYWMetaExtendsExpression = (expr) => {
419
+ const meta = findObjectPropertyValue(expr, "__wyw_meta");
420
+ if (!meta) {
421
+ return null;
422
+ }
423
+ return findObjectPropertyValue(meta, "extends");
424
+ };
425
+ export const collectWYWMetaExtendsExpressionsDeep = (program, expr) => {
426
+ const result = [];
427
+ const seenLocals = new Set();
428
+ const seenRanges = new Set();
429
+ const visit = (node, parent = null) => {
430
+ const parentRecord = parent;
431
+ if (parentRecord && parentRecord.type === "Property" && parentRecord.key === node && !parentRecord.computed) {
432
+ return;
433
+ }
434
+ if (node.type === "ObjectExpression") {
435
+ const extendsExpression = findWYWMetaExtendsExpression(node);
436
+ if (extendsExpression) {
437
+ const key = `${extendsExpression.start}:${extendsExpression.end}`;
438
+ if (!seenRanges.has(key)) {
439
+ seenRanges.add(key);
440
+ result.push(extendsExpression);
441
+ }
442
+ }
443
+ }
444
+ if (node.type === "Identifier") {
445
+ const local = findTopLevelConstExpression(program, node.name);
446
+ if (local && !seenLocals.has(node.name)) {
447
+ seenLocals.add(node.name);
448
+ visit(local);
449
+ }
450
+ return;
451
+ }
452
+ getOxcNodeChildren(node).forEach((child) => visit(child, node));
453
+ };
454
+ visit(expr);
455
+ return result;
456
+ };
457
+ export const isStaticMetaObjectExpression = (expr) => {
458
+ const meta = findObjectPropertyValue(expr, "__wyw_meta");
459
+ return !!meta && findObjectPropertyValue(meta, "className") !== null;
460
+ };
461
+ export const collectWYWMetaExtendsHelperNames = (program) => {
462
+ const result = new Set();
463
+ const visit = (node) => {
464
+ if (node.type === "ObjectExpression") {
465
+ const extendsExpression = findWYWMetaExtendsExpression(node);
466
+ const unwrapped = extendsExpression ? unwrapExpression(extendsExpression) : null;
467
+ if (unwrapped?.type === "CallExpression" && unwrapped.callee.type === "Identifier" && unwrapped.arguments.length === 0) {
468
+ result.add(unwrapped.callee.name);
469
+ }
470
+ }
471
+ getOxcNodeChildren(node).forEach(visit);
472
+ };
473
+ visit(program);
474
+ return result;
475
+ };
476
+ //# sourceMappingURL=processorStaticModel.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"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","names":[],"sources":["../../../../src/transform/generators/resolveStaticOxcValues/processorStaticModel.ts"],"version":3,"sourcesContent":["/* eslint-disable no-restricted-syntax,no-continue,@typescript-eslint/no-use-before-define */\n\nimport type { BaseProcessor } from '@wyw-in-js/processor-utils';\nimport type { Expression, Node, Program } from 'oxc-parser';\n\nimport { collectOxcProcessorImportsFromProgram } from '../../../utils/collectOxcExportsAndImports';\nimport { getOxcNodeChildren } from '../../../utils/oxc/ast';\nimport { getProcessorForImport } from '../../../utils/processorLookup';\nimport { resolveProcessorStaticClassName } from '../../../utils/processorStaticSemantics';\nimport type { ITransformAction } from '../../types';\nimport { parseProgram } from './environment';\nimport {\n findObjectPropertyValue,\n findTopLevelConstExpression,\n objectPropertyKeyName,\n} from './programAnalysis';\nimport { isSafeLiteral, unwrapExpression } from './staticExpression';\nimport type { AnyNode } from './types';\nimport { GENERATED_HELPER_NAME_RE } from './types';\n\nexport const collectProcessorImportLocals = (\n action: ITransformAction,\n program: Program,\n code: string,\n filename: string\n): Set<string> => {\n const result = new Set<string>();\n\n collectOxcProcessorImportsFromProgram(program, code).forEach((item) => {\n if (\n item.type !== 'esm' ||\n item.imported === '*' ||\n item.imported === 'side-effect'\n ) {\n return;\n }\n\n const localName = item.local.name ?? item.local.code;\n if (!localName) {\n return;\n }\n\n const [processor] = getProcessorForImport(\n {\n imported: item.imported,\n source: item.source,\n },\n filename,\n action.services.options.pluginOptions\n );\n\n if (!processor) {\n return;\n }\n\n result.add(localName);\n const rootLocalName = localName.split('.')[0];\n if (rootLocalName) {\n result.add(rootLocalName);\n }\n });\n\n return result;\n};\n\nexport const isStaticWYWMetaValue = (\n value: unknown,\n seen: Set<unknown> = new Set()\n): boolean => {\n if (typeof value !== 'object' || value === null) {\n return false;\n }\n\n if (seen.has(value)) {\n return false;\n }\n seen.add(value);\n\n const meta = (value as { __wyw_meta?: unknown }).__wyw_meta;\n if (typeof meta !== 'object' || meta === null) {\n return false;\n }\n\n const { className, extends: extended } = meta as {\n className?: unknown;\n extends?: unknown;\n };\n\n return (\n typeof className === 'string' &&\n (extended === null || isStaticWYWMetaValue(extended, seen))\n );\n};\n\nexport type StaticWYWSelectorMetaValue = {\n __wyw_meta: {\n className: string;\n extends: StaticWYWSelectorMetaValue | null;\n };\n};\n\nexport const toStaticWYWSelectorMetaValue = (\n value: unknown,\n seen: Set<unknown> = new Set()\n): StaticWYWSelectorMetaValue | null => {\n if (typeof value !== 'object' || value === null || seen.has(value)) {\n return null;\n }\n\n seen.add(value);\n\n const meta = (value as { __wyw_meta?: unknown }).__wyw_meta;\n if (typeof meta !== 'object' || meta === null) {\n return null;\n }\n\n const { className, extends: extended } = meta as {\n className?: unknown;\n extends?: unknown;\n };\n if (typeof className !== 'string') {\n return null;\n }\n\n const staticExtends =\n extended === null ? null : toStaticWYWSelectorMetaValue(extended, seen);\n if (extended !== null && staticExtends === null) {\n return null;\n }\n\n return {\n __wyw_meta: {\n className,\n extends: staticExtends,\n },\n };\n};\n\nexport const staticWYWMetaExtendsReplacementCode = (\n value: unknown\n): string | null => {\n if (value === null) {\n return 'null';\n }\n\n const selectorMeta = toStaticWYWSelectorMetaValue(value);\n return selectorMeta ? `(${JSON.stringify(selectorMeta)})` : null;\n};\n\nexport const unknownStaticWYWMetaValue = Symbol('unknownStaticWYWMetaValue');\n\nexport type UnknownStaticWYWMetaValue = typeof unknownStaticWYWMetaValue;\n\nexport const zeroArgFunctionExpressionBody = (\n expr: Expression\n): Expression | null => {\n const unwrapped = unwrapExpression(expr) as AnyNode;\n if (\n unwrapped.type !== 'ArrowFunctionExpression' ||\n !Array.isArray(unwrapped.params) ||\n unwrapped.params.length !== 0\n ) {\n return null;\n }\n\n const body = unwrapped.body as Node | undefined;\n return body && body.type !== 'BlockStatement' ? (body as Expression) : null;\n};\n\nexport const isNullLiteralExpression = (node: Node): boolean => {\n const unwrapped = unwrapExpression(node);\n return isSafeLiteral(unwrapped) && unwrapped.value === null;\n};\n\nexport const isNullReturningFunctionExpression = (\n expr: Expression\n): boolean => {\n const unwrapped = unwrapExpression(expr) as AnyNode;\n if (\n unwrapped.type !== 'ArrowFunctionExpression' &&\n unwrapped.type !== 'FunctionExpression'\n ) {\n return false;\n }\n\n if (unwrapped.async || unwrapped.generator) {\n return false;\n }\n\n const body = unwrapped.body as Node | undefined;\n if (!body) {\n return false;\n }\n\n if (body.type !== 'BlockStatement') {\n return isNullLiteralExpression(body);\n }\n\n if (!Array.isArray(body.body) || body.body.length !== 1) {\n return false;\n }\n\n const [statement] = body.body;\n return (\n statement?.type === 'ReturnStatement' &&\n !!statement.argument &&\n isNullLiteralExpression(statement.argument)\n );\n};\n\nexport const createSameFileStaticWYWMetaHelperResolver = (\n code: string,\n filename: string\n): ((seedValues: Map<string, unknown>) => Map<string, unknown>) => {\n const declarations = new Map<string, Expression>();\n const nullFunctionNames = new Set<string>();\n\n try {\n const program = parseProgram(code, filename);\n const collectDeclarations = (statement: Node): void => {\n if (statement.type === 'VariableDeclaration') {\n statement.declarations.forEach((declarator) => {\n if (declarator.id.type !== 'Identifier' || !declarator.init) {\n return;\n }\n\n const { name } = declarator.id;\n const init = declarator.init as Expression;\n if (isNullReturningFunctionExpression(init)) {\n nullFunctionNames.add(name);\n return;\n }\n\n const unwrapped = unwrapExpression(init);\n if (\n unwrapped.type === 'ObjectExpression' &&\n findObjectPropertyValue(unwrapped, '__wyw_meta')\n ) {\n declarations.set(name, init);\n return;\n }\n\n const body = zeroArgFunctionExpressionBody(init);\n if (body && GENERATED_HELPER_NAME_RE.test(name)) {\n declarations.set(name, body);\n }\n });\n }\n };\n\n program.body.forEach((statement) => {\n if (\n statement.type === 'ExportNamedDeclaration' &&\n statement.declaration\n ) {\n collectDeclarations(statement.declaration);\n return;\n }\n\n collectDeclarations(statement);\n });\n } catch {\n return () => new Map();\n }\n\n return (seedValues) => {\n const memo = new Map<string, unknown | UnknownStaticWYWMetaValue>();\n const resolving = new Set<string>();\n\n const resolveName = (name: string): unknown | UnknownStaticWYWMetaValue => {\n if (seedValues.has(name)) {\n return seedValues.get(name);\n }\n\n if (memo.has(name)) {\n return memo.get(name)!;\n }\n\n const expression = declarations.get(name);\n if (!expression || resolving.has(name)) {\n if (nullFunctionNames.has(name)) {\n memo.set(name, null);\n return null;\n }\n\n return unknownStaticWYWMetaValue;\n }\n\n resolving.add(name);\n const value = resolveExpression(expression);\n resolving.delete(name);\n memo.set(name, value);\n return value;\n };\n\n const resolveExpression = (\n expression: Node\n ): unknown | UnknownStaticWYWMetaValue => {\n const unwrapped = unwrapExpression(expression);\n if (isSafeLiteral(unwrapped)) {\n return unwrapped.value;\n }\n\n if (unwrapped.type === 'Identifier') {\n return resolveName(unwrapped.name);\n }\n\n if (unwrapped.type === 'CallExpression') {\n const callee = unwrapExpression(unwrapped.callee);\n if (callee.type === 'Identifier' && unwrapped.arguments.length === 0) {\n return resolveName(callee.name);\n }\n\n return unknownStaticWYWMetaValue;\n }\n\n if (unwrapped.type !== 'ObjectExpression') {\n return unknownStaticWYWMetaValue;\n }\n\n const value: Record<string, unknown> = {};\n for (const property of unwrapped.properties) {\n if (property.type === 'SpreadElement') {\n return unknownStaticWYWMetaValue;\n }\n\n const propertyNode = property as AnyNode;\n if (propertyNode.computed) {\n return unknownStaticWYWMetaValue;\n }\n\n const propertyKey = propertyNode.key as Node | undefined;\n const key = propertyKey ? objectPropertyKeyName(propertyKey) : null;\n const propertyValue = propertyNode.value as Expression | undefined;\n if (key === null || !propertyValue) {\n return unknownStaticWYWMetaValue;\n }\n\n const resolved = resolveExpression(propertyValue);\n if (resolved === unknownStaticWYWMetaValue) {\n return unknownStaticWYWMetaValue;\n }\n\n value[key] = resolved;\n }\n\n return value;\n };\n\n const result = new Map<string, unknown>();\n declarations.forEach((_expression, name) => {\n if (!GENERATED_HELPER_NAME_RE.test(name)) {\n return;\n }\n\n const value = resolveName(name);\n if (\n value !== unknownStaticWYWMetaValue &&\n (value === null || isStaticWYWMetaValue(value))\n ) {\n result.set(name, value);\n }\n });\n\n return result;\n };\n};\n\nexport const staticWYWMetaTreeValueStatus = (\n value: unknown,\n seen: Set<unknown> = new Set()\n): { hasMetadata: boolean; safe: boolean } => {\n if (\n value === null ||\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return {\n hasMetadata: false,\n safe: true,\n };\n }\n\n if (typeof value !== 'object') {\n return {\n hasMetadata: false,\n safe: false,\n };\n }\n\n if (seen.has(value)) {\n return {\n hasMetadata: false,\n safe: false,\n };\n }\n seen.add(value);\n\n if (Array.isArray(value)) {\n let hasMetadata = false;\n for (const item of value) {\n const status = staticWYWMetaTreeValueStatus(item, seen);\n if (!status.safe) {\n return {\n hasMetadata: false,\n safe: false,\n };\n }\n\n hasMetadata = hasMetadata || status.hasMetadata;\n }\n\n return {\n hasMetadata,\n safe: true,\n };\n }\n\n if ('__wyw_meta' in value) {\n return {\n hasMetadata: isStaticWYWMetaValue(value),\n safe: isStaticWYWMetaValue(value),\n };\n }\n\n let hasMetadata = false;\n for (const item of Object.values(value)) {\n const status = staticWYWMetaTreeValueStatus(item, seen);\n if (!status.safe) {\n return {\n hasMetadata: false,\n safe: false,\n };\n }\n\n hasMetadata = hasMetadata || status.hasMetadata;\n }\n\n return {\n hasMetadata,\n safe: true,\n };\n};\n\nexport const isStaticWYWMetaTreeValue = (value: unknown): boolean => {\n const status = staticWYWMetaTreeValueStatus(value);\n return status.safe && status.hasMetadata;\n};\n\nexport type StaticProcessorInstance = BaseProcessor;\n\nexport const processorClassNameRuntimeValue = (\n processor: StaticProcessorInstance\n): string => resolveProcessorStaticClassName(processor) ?? processor.className;\n\nexport const isProcessorRuntimeClassName = (\n processor: StaticProcessorInstance,\n value: string\n): boolean =>\n processor.className === value ||\n resolveProcessorStaticClassName(processor) === value;\n\nexport const isPlainObjectRecord = (\n value: unknown\n): value is Record<string, unknown> =>\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value) &&\n Object.getPrototypeOf(value) === Object.prototype;\n\nexport const isStaticObjectAssignAliasValue = (value: unknown): boolean =>\n isStaticWYWMetaValue(value) || isStaticWYWMetaTreeValue(value);\n\nexport const artifactCssText = (artifact: unknown): string | null => {\n if (!Array.isArray(artifact) || artifact[0] !== 'css') {\n return null;\n }\n\n const payload = artifact[1];\n if (Array.isArray(payload)) {\n const [rules] = payload;\n if (typeof rules === 'object' && rules !== null) {\n return Object.values(rules)\n .map((rule) =>\n typeof rule === 'object' &&\n rule !== null &&\n 'cssText' in rule &&\n typeof (rule as { cssText?: unknown }).cssText === 'string'\n ? (rule as { cssText: string }).cssText\n : ''\n )\n .join('');\n }\n }\n\n if (\n typeof payload === 'object' &&\n payload !== null &&\n 'cssText' in payload &&\n typeof (payload as { cssText?: unknown }).cssText === 'string'\n ) {\n return (payload as { cssText: string }).cssText;\n }\n\n return null;\n};\n\nexport const isEmptyProcessorClassName = (\n value: string,\n processors: StaticProcessorInstance[],\n cache: Map<string, boolean>\n): boolean => {\n if (cache.has(value)) {\n return cache.get(value)!;\n }\n\n const processor = processors.find((item) =>\n isProcessorRuntimeClassName(item, value)\n );\n if (!processor) {\n cache.set(value, false);\n return false;\n }\n\n if (processor.artifacts.length === 0) {\n try {\n processor.build(new Map());\n } catch {\n cache.set(value, false);\n return false;\n }\n }\n\n const result = processor.artifacts.every((artifact) => {\n const cssText = artifactCssText(artifact);\n return cssText !== null && cssText.trim() === '';\n });\n cache.set(value, result);\n return result;\n};\n\nexport const isProcessorClassName = (\n value: string,\n processors: StaticProcessorInstance[],\n cache: Map<string, boolean>\n): boolean => {\n if (cache.has(value)) {\n return cache.get(value)!;\n }\n\n const processor = processors.find((item) =>\n isProcessorRuntimeClassName(item, value)\n );\n if (!processor) {\n cache.set(value, false);\n return false;\n }\n\n if (processor.artifacts.length === 0) {\n try {\n processor.build(new Map());\n } catch {\n cache.set(value, false);\n return false;\n }\n }\n\n const result = processor.artifacts.every(\n (artifact) => artifactCssText(artifact) !== null\n );\n cache.set(value, result);\n return result;\n};\n\nexport const isKnownProcessorClassName = (\n value: string,\n processorClassNames: ReadonlySet<string>\n): boolean => processorClassNames.has(value);\n\nexport const isSelectorOnlyProcessorValue = (\n value: unknown,\n processors: StaticProcessorInstance[],\n cache: Map<string, boolean>,\n seen: Set<unknown> = new Set()\n): boolean => {\n if (typeof value === 'string') {\n return isEmptyProcessorClassName(value, processors, cache);\n }\n\n if (Array.isArray(value)) {\n if (seen.has(value)) {\n return false;\n }\n\n seen.add(value);\n return value.every((item) =>\n isSelectorOnlyProcessorValue(item, processors, cache, seen)\n );\n }\n\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return false;\n }\n\n seen.add(value);\n return Object.values(value).every((item) =>\n isSelectorOnlyProcessorValue(item, processors, cache, seen)\n );\n }\n\n return false;\n};\n\nexport const isProcessorClassValue = (\n value: unknown,\n processors: StaticProcessorInstance[],\n cache: Map<string, boolean>,\n seen: Set<unknown> = new Set()\n): boolean => {\n if (typeof value === 'string') {\n return isProcessorClassName(value, processors, cache);\n }\n\n if (Array.isArray(value)) {\n if (seen.has(value)) {\n return false;\n }\n\n seen.add(value);\n return value.every((item) =>\n isProcessorClassValue(item, processors, cache, seen)\n );\n }\n\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return false;\n }\n\n seen.add(value);\n return Object.values(value).every((item) =>\n isProcessorClassValue(item, processors, cache, seen)\n );\n }\n\n return false;\n};\n\nexport const isKnownProcessorClassValue = (\n value: unknown,\n processorClassNames: ReadonlySet<string>,\n seen: Set<unknown> = new Set()\n): boolean => {\n if (typeof value === 'string') {\n return isKnownProcessorClassName(value, processorClassNames);\n }\n\n if (Array.isArray(value)) {\n if (seen.has(value)) {\n return false;\n }\n\n seen.add(value);\n return value.every((item) =>\n isKnownProcessorClassValue(item, processorClassNames, seen)\n );\n }\n\n if (typeof value === 'object' && value !== null) {\n if (seen.has(value)) {\n return false;\n }\n\n seen.add(value);\n return Object.values(value).every((item) =>\n isKnownProcessorClassValue(item, processorClassNames, seen)\n );\n }\n\n return false;\n};\nexport const findWYWMetaExtendsExpression = (\n expr: Expression\n): Expression | null => {\n const meta = findObjectPropertyValue(expr, '__wyw_meta');\n if (!meta) {\n return null;\n }\n\n return findObjectPropertyValue(meta, 'extends');\n};\n\nexport const collectWYWMetaExtendsExpressionsDeep = (\n program: Program,\n expr: Expression\n): Expression[] => {\n const result: Expression[] = [];\n const seenLocals = new Set<string>();\n const seenRanges = new Set<string>();\n\n const visit = (node: Node, parent: Node | null = null): void => {\n const parentRecord = parent as AnyNode | null;\n if (\n parentRecord &&\n parentRecord.type === 'Property' &&\n parentRecord.key === node &&\n !parentRecord.computed\n ) {\n return;\n }\n\n if (node.type === 'ObjectExpression') {\n const extendsExpression = findWYWMetaExtendsExpression(\n node as Expression\n );\n if (extendsExpression) {\n const key = `${extendsExpression.start}:${extendsExpression.end}`;\n if (!seenRanges.has(key)) {\n seenRanges.add(key);\n result.push(extendsExpression);\n }\n }\n }\n\n if (node.type === 'Identifier') {\n const local = findTopLevelConstExpression(program, node.name);\n if (local && !seenLocals.has(node.name)) {\n seenLocals.add(node.name);\n visit(local);\n }\n return;\n }\n\n getOxcNodeChildren(node).forEach((child) => visit(child, node));\n };\n\n visit(expr);\n return result;\n};\nexport const isStaticMetaObjectExpression = (expr: Node): boolean => {\n const meta = findObjectPropertyValue(expr, '__wyw_meta');\n return !!meta && findObjectPropertyValue(meta, 'className') !== null;\n};\nexport const collectWYWMetaExtendsHelperNames = (\n program: Program\n): Set<string> => {\n const result = new Set<string>();\n\n const visit = (node: Node): void => {\n if (node.type === 'ObjectExpression') {\n const extendsExpression = findWYWMetaExtendsExpression(node);\n const unwrapped = extendsExpression\n ? unwrapExpression(extendsExpression)\n : null;\n if (\n unwrapped?.type === 'CallExpression' &&\n unwrapped.callee.type === 'Identifier' &&\n unwrapped.arguments.length === 0\n ) {\n result.add(unwrapped.callee.name);\n }\n }\n\n getOxcNodeChildren(node).forEach(visit);\n };\n\n visit(program);\n return result;\n};\n"],"file":"processorStaticModel.js"}
@@ -0,0 +1,55 @@
1
+ import { applyOxcReplacements } from "../../../utils/oxc/replacements.js";
2
+ import { parseProgram } from "./environment.js";
3
+ import { findExportTarget } from "./exportTargets.js";
4
+ import { collectWYWMetaExtendsExpressionsDeep } from "./processorStaticModel.js";
5
+ import { hasOnlySafeObjectAssignCallArgumentUses, resolveObjectAssignProcessorExpression } from "./objectAssign.js";
6
+ import { isOpaqueRuntimeComponentExpression } from "./opaqueRuntime.js";
7
+ import { collectStaticExpressionDependencies } from "./staticExpressionDependencies.js";
8
+ export const prepareProcessorTarget = (code, filename, program, target, exportedName, opaqueImportNames = new Set()) => {
9
+ const ignoredMutableCallArgumentNames = target.localName && hasOnlySafeObjectAssignCallArgumentUses(program, target.localName) ? new Set([target.localName]) : undefined;
10
+ const dependencyOptions = {
11
+ allowMetadataCalls: true,
12
+ ignoredMutableCallArgumentNames
13
+ };
14
+ const expression = resolveObjectAssignProcessorExpression(program, target.expression);
15
+ const extendsExpressions = collectWYWMetaExtendsExpressionsDeep(program, expression);
16
+ const opaqueExtendsExpressions = extendsExpressions.filter((extendsExpression) => isOpaqueRuntimeComponentExpression(program, extendsExpression, opaqueImportNames));
17
+ if (opaqueExtendsExpressions.length > 0) {
18
+ const replacements = opaqueExtendsExpressions.map((extendsExpression) => ({
19
+ end: extendsExpression.end,
20
+ start: extendsExpression.start,
21
+ text: "null"
22
+ }));
23
+ const evaluationCode = applyOxcReplacements(code, replacements);
24
+ const evaluationProgram = parseProgram(evaluationCode, filename);
25
+ const evaluationTarget = findExportTarget(evaluationProgram, exportedName);
26
+ if (!evaluationTarget || evaluationTarget.kind === "import") {
27
+ return null;
28
+ }
29
+ const evaluationExpression = resolveObjectAssignProcessorExpression(evaluationProgram, evaluationTarget.expression);
30
+ const dependencies = collectStaticExpressionDependencies(evaluationProgram, {
31
+ ...evaluationTarget,
32
+ expression: evaluationExpression
33
+ }, dependencyOptions);
34
+ return dependencies ? {
35
+ dependencies,
36
+ evaluationCode,
37
+ evaluationSpan: {
38
+ end: evaluationExpression.end,
39
+ start: evaluationExpression.start
40
+ },
41
+ expression: evaluationExpression,
42
+ opaqueRuntimeBase: true
43
+ } : null;
44
+ }
45
+ const dependencies = collectStaticExpressionDependencies(program, {
46
+ ...target,
47
+ expression
48
+ }, dependencyOptions);
49
+ return dependencies ? {
50
+ dependencies,
51
+ expression,
52
+ opaqueRuntimeBase: false
53
+ } : null;
54
+ };
55
+ //# sourceMappingURL=processorTarget.js.map
@@ -0,0 +1 @@
1
+ {"mappings":"AAIA,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,4CAA4C;AACrD,SACE,yCACA,8CACK;AACP,SAAS,0CAA0C;AACnD,SAAS,2CAA2C;AAOpD,OAAO,MAAM,0BACX,MACA,UACA,SACA,QACA,cACA,oBAAiC,IAAI,KAAK,KACP;CACnC,MAAM,kCACJ,OAAO,aACP,wCAAwC,SAAS,OAAO,UAAU,GAC9D,IAAI,IAAI,CAAC,OAAO,UAAU,CAAC,GAC3B;CACN,MAAM,oBAA6C;EACjD,oBAAoB;EACpB;EACD;CACD,MAAM,aAAa,uCACjB,SACA,OAAO,WACR;CACD,MAAM,qBAAqB,qCACzB,SACA,WACD;CACD,MAAM,2BAA2B,mBAAmB,QACjD,sBACC,mCACE,SACA,mBACA,kBACD,CACJ;AAED,KAAI,yBAAyB,SAAS,GAAG;EACvC,MAAM,eAAe,yBAAyB,KAAK,uBAAuB;GACxE,KAAK,kBAAkB;GACvB,OAAO,kBAAkB;GACzB,MAAM;GACP,EAAE;EACH,MAAM,iBAAiB,qBAAqB,MAAM,aAAa;EAC/D,MAAM,oBAAoB,aAAa,gBAAgB,SAAS;EAChE,MAAM,mBAAmB,iBAAiB,mBAAmB,aAAa;AAC1E,MAAI,CAAC,oBAAoB,iBAAiB,SAAS,UAAU;AAC3D,UAAO;;EAGT,MAAM,uBAAuB,uCAC3B,mBACA,iBAAiB,WAClB;EACD,MAAM,eAAe,oCACnB,mBACA;GACE,GAAG;GACH,YAAY;GACb,EACD,kBACD;AAED,SAAO,eACH;GACE;GACA;GACA,gBAAgB;IACd,KAAK,qBAAqB;IAC1B,OAAO,qBAAqB;IAC7B;GACD,YAAY;GACZ,mBAAmB;GACpB,GACD;;CAGN,MAAM,eAAe,oCACnB,SACA;EACE,GAAG;EACH;EACD,EACD,kBACD;AACD,QAAO,eACH;EACE;EACA;EACA,mBAAmB;EACpB,GACD","names":[],"sources":["../../../../src/transform/generators/resolveStaticOxcValues/processorTarget.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 { applyOxcReplacements } from '../../../utils/oxc/replacements';\nimport { parseProgram } from './environment';\nimport { findExportTarget } from './exportTargets';\nimport { collectWYWMetaExtendsExpressionsDeep } from './processorStaticModel';\nimport {\n hasOnlySafeObjectAssignCallArgumentUses,\n resolveObjectAssignProcessorExpression,\n} from './objectAssign';\nimport { isOpaqueRuntimeComponentExpression } from './opaqueRuntime';\nimport { collectStaticExpressionDependencies } from './staticExpressionDependencies';\nimport type {\n ExportTarget,\n PreparedProcessorTarget,\n StaticExpressionOptions,\n} from './types';\n\nexport const prepareProcessorTarget = (\n code: string,\n filename: string,\n program: Program,\n target: Extract<ExportTarget, { kind: 'expression' }>,\n exportedName: string,\n opaqueImportNames: Set<string> = new Set()\n): PreparedProcessorTarget | null => {\n const ignoredMutableCallArgumentNames =\n target.localName &&\n hasOnlySafeObjectAssignCallArgumentUses(program, target.localName)\n ? new Set([target.localName])\n : undefined;\n const dependencyOptions: StaticExpressionOptions = {\n allowMetadataCalls: true,\n ignoredMutableCallArgumentNames,\n };\n const expression = resolveObjectAssignProcessorExpression(\n program,\n target.expression\n );\n const extendsExpressions = collectWYWMetaExtendsExpressionsDeep(\n program,\n expression\n );\n const opaqueExtendsExpressions = extendsExpressions.filter(\n (extendsExpression) =>\n isOpaqueRuntimeComponentExpression(\n program,\n extendsExpression,\n opaqueImportNames\n )\n );\n\n if (opaqueExtendsExpressions.length > 0) {\n const replacements = opaqueExtendsExpressions.map((extendsExpression) => ({\n end: extendsExpression.end,\n start: extendsExpression.start,\n text: 'null',\n }));\n const evaluationCode = applyOxcReplacements(code, replacements);\n const evaluationProgram = parseProgram(evaluationCode, filename);\n const evaluationTarget = findExportTarget(evaluationProgram, exportedName);\n if (!evaluationTarget || evaluationTarget.kind === 'import') {\n return null;\n }\n\n const evaluationExpression = resolveObjectAssignProcessorExpression(\n evaluationProgram,\n evaluationTarget.expression\n );\n const dependencies = collectStaticExpressionDependencies(\n evaluationProgram,\n {\n ...evaluationTarget,\n expression: evaluationExpression,\n },\n dependencyOptions\n );\n\n return dependencies\n ? {\n dependencies,\n evaluationCode,\n evaluationSpan: {\n end: evaluationExpression.end,\n start: evaluationExpression.start,\n },\n expression: evaluationExpression,\n opaqueRuntimeBase: true,\n }\n : null;\n }\n\n const dependencies = collectStaticExpressionDependencies(\n program,\n {\n ...target,\n expression,\n },\n dependencyOptions\n );\n return dependencies\n ? {\n dependencies,\n expression,\n opaqueRuntimeBase: false,\n }\n : null;\n};\n"],"file":"processorTarget.js"}