@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
package/esm/transform.js CHANGED
@@ -1,153 +1,131 @@
1
1
  /**
2
- * This file exposes sync and async transform functions that:
3
- * - parse the passed code to AST
4
- * - builds a dependency graph for the file
5
- * - shakes each dependency and removes unused code
6
- * - runs generated code in a sandbox
7
- * - collects artifacts
8
- * - returns transformed code (without WYW template literals), generated CSS, source maps and babel metadata from transform step.
9
- */
10
-
11
- import { isFeatureEnabled } from '@wyw-in-js/shared';
12
- import { loadWywOptions } from './transform/helpers/loadWywOptions';
13
- import { TransformCacheCollection } from './cache';
14
- import { Entrypoint } from './transform/Entrypoint';
15
- import { asyncActionRunner, syncActionRunner } from './transform/actions/actionRunner';
16
- import { baseHandlers } from './transform/generators';
17
- import { asyncResolveImports, syncResolveImports } from './transform/generators/resolveImports';
18
- import { withDefaultServices } from './transform/helpers/withDefaultServices';
19
- const memoizedSyncResolve = new WeakMap();
2
+ * This file exposes sync and async transform functions that:
3
+ * - parse the passed code to AST
4
+ * - builds a dependency graph for the file
5
+ * - shakes each dependency and removes unused code
6
+ * - runs generated code in a sandbox
7
+ * - collects artifacts
8
+ * - returns transformed code (without WYW template literals), generated CSS, source maps and transform metadata.
9
+ */
10
+ import { createHash } from "crypto";
11
+ import { isFeatureEnabled } from "@wyw-in-js/shared";
12
+ import { loadWywOptions } from "./transform/helpers/loadWywOptions.js";
13
+ import { TransformCacheCollection } from "./cache.js";
14
+ import { Entrypoint } from "./transform/Entrypoint.js";
15
+ import { asyncActionRunner } from "./transform/actions/actionRunner.js";
16
+ import { baseHandlers } from "./transform/generators/index.js";
17
+ import { asyncResolveImports } from "./transform/generators/resolveImports.js";
18
+ import { withDefaultServices } from "./transform/helpers/withDefaultServices.js";
19
+ import { getEvalBroker } from "./eval/broker.js";
20
+ import { encodeGlobals } from "./eval/serialize.js";
20
21
  const memoizedAsyncResolve = new WeakMap();
21
- const EMPTY_CUSTOM_HANDLERS = {};
22
- const memoizedActionContexts = new WeakMap();
23
- const getActionContext = (resolveImportsHandler, customHandlers) => {
24
- const customHandlersKey = Object.keys(customHandlers).length === 0 ? EMPTY_CUSTOM_HANDLERS : customHandlers;
25
- let actionContextsByHandlers = memoizedActionContexts.get(resolveImportsHandler);
26
- if (!actionContextsByHandlers) {
27
- actionContextsByHandlers = new WeakMap();
28
- memoizedActionContexts.set(resolveImportsHandler, actionContextsByHandlers);
29
- }
30
- let actionContext = actionContextsByHandlers.get(customHandlersKey);
31
- if (!actionContext) {
32
- actionContext = {};
33
- actionContextsByHandlers.set(customHandlersKey, actionContext);
34
- }
35
- return actionContext;
22
+ const resolverIds = new WeakMap();
23
+ let resolverId = 0;
24
+ const getResolverId = (fn) => {
25
+ if (typeof fn !== "function") return null;
26
+ const resolver = fn;
27
+ const cached = resolverIds.get(resolver);
28
+ if (cached) return cached;
29
+ resolverId += 1;
30
+ resolverIds.set(resolver, resolverId);
31
+ return resolverId;
36
32
  };
37
- export function transformSync(partialServices, originalCode, syncResolve, customHandlers = {}) {
38
- const {
39
- options
40
- } = partialServices;
41
- const pluginOptions = loadWywOptions(options.pluginOptions);
42
- const services = withDefaultServices({
43
- ...partialServices,
44
- options: {
45
- ...options,
46
- pluginOptions
47
- }
48
- });
49
- if (!isFeatureEnabled(pluginOptions.features, 'globalCache', options.filename)) {
50
- // If global cache is disabled, we need to create a new cache for each file
51
- services.cache = new TransformCacheCollection();
52
- }
53
- if (!memoizedSyncResolve.has(syncResolve)) {
54
- memoizedSyncResolve.set(syncResolve, function resolveImports() {
55
- return syncResolveImports.call(this, syncResolve);
56
- });
57
- }
58
- const resolveImportsHandler = memoizedSyncResolve.get(syncResolve);
59
- const actionHandlers = {
60
- ...baseHandlers,
61
- ...customHandlers,
62
- resolveImports: resolveImportsHandler
63
- };
64
- const actionContext = getActionContext(resolveImportsHandler, customHandlers);
65
- const entrypoint = Entrypoint.createRoot(services, options.filename, ['__wywPreval'], originalCode);
66
- if (entrypoint.ignored) {
67
- return {
68
- code: originalCode,
69
- sourceMap: options.inputSourceMap
70
- };
71
- }
72
- const workflowAction = entrypoint.createAction('workflow', undefined, null, actionContext);
73
- try {
74
- const result = syncActionRunner(workflowAction, actionHandlers);
75
- entrypoint.log('%s is ready', entrypoint.name);
76
- return result;
77
- } catch (err) {
78
- entrypoint.log('Unhandled error %O', err);
79
- if (isFeatureEnabled(pluginOptions.features, 'softErrors', options.filename)) {
80
- // eslint-disable-next-line no-console
81
- console.error(`Error during transform of ${entrypoint.name}:`, err);
82
- return {
83
- code: originalCode,
84
- sourceMap: options.inputSourceMap
85
- };
86
- }
87
- throw err;
88
- }
33
+ const isPlainObject = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
34
+ const canonicalizeForHash = (value) => {
35
+ if (Array.isArray(value)) {
36
+ return value.map((item) => canonicalizeForHash(item));
37
+ }
38
+ if (isPlainObject(value)) {
39
+ return Object.fromEntries(Object.keys(value).sort().map((key) => [key, canonicalizeForHash(value[key])]));
40
+ }
41
+ return value;
42
+ };
43
+ const getEvalCacheKey = (pluginOptions, asyncResolveKey, asyncResolve) => {
44
+ const evalOptions = pluginOptions.eval ?? {};
45
+ const payload = JSON.stringify({
46
+ errors: evalOptions.errors,
47
+ resolver: evalOptions.resolver,
48
+ require: evalOptions.require,
49
+ runtime: evalOptions.runtime,
50
+ strategy: evalOptions.strategy,
51
+ globals: canonicalizeForHash(encodeGlobals(evalOptions.globals ?? {})),
52
+ customResolver: getResolverId(evalOptions.customResolver),
53
+ customLoader: getResolverId(evalOptions.customLoader),
54
+ // Bundlers like webpack can recreate transport resolvers per file. Allow
55
+ // them to provide a stable scope key so cache/broker reuse tracks resolver
56
+ // semantics instead of closure identity.
57
+ bundlerResolver: asyncResolveKey ?? getResolverId(asyncResolve),
58
+ overrideContext: getResolverId(pluginOptions.overrideContext),
59
+ importOverrides: pluginOptions.importOverrides ?? null,
60
+ extensions: pluginOptions.extensions,
61
+ features: pluginOptions.features
62
+ });
63
+ return createHash("sha256").update(payload).digest("hex");
64
+ };
65
+ export function transformSync(_partialServices, _originalCode, _syncResolve, _customHandlers = {}) {
66
+ throw new Error("[wyw-in-js] transformSync is not supported in v2. Use transform() (async) instead.");
89
67
  }
90
68
  export async function transform(partialServices, originalCode, asyncResolve, customHandlers = {}) {
91
- const {
92
- options
93
- } = partialServices;
94
- const pluginOptions = loadWywOptions(options.pluginOptions);
95
- const services = withDefaultServices({
96
- ...partialServices,
97
- options: {
98
- ...options,
99
- pluginOptions
100
- }
101
- });
102
- if (!isFeatureEnabled(pluginOptions.features, 'globalCache', options.filename)) {
103
- // If global cache is disabled, we need to create a new cache for each file
104
- services.cache = new TransformCacheCollection();
105
- }
106
-
107
- /*
108
- * This method can be run simultaneously for multiple files.
109
- * A shared cache is accessible for all runs, but each run has its own queue
110
- * to maintain the correct processing order. The cache stores the outcome
111
- * of tree-shaking, and if the result is already stored in the cache
112
- * but the "only" option has changed, the file will be re-processed using
113
- * the combined "only" option.
114
- */
115
- if (!memoizedAsyncResolve.has(asyncResolve)) {
116
- const resolveImports = function resolveImports() {
117
- return asyncResolveImports.call(this, asyncResolve);
118
- };
119
- memoizedAsyncResolve.set(asyncResolve, resolveImports);
120
- }
121
- const resolveImportsHandler = memoizedAsyncResolve.get(asyncResolve);
122
- const actionHandlers = {
123
- ...baseHandlers,
124
- ...customHandlers,
125
- resolveImports: resolveImportsHandler
126
- };
127
- const actionContext = getActionContext(resolveImportsHandler, customHandlers);
128
- const entrypoint = Entrypoint.createRoot(services, options.filename, ['__wywPreval'], originalCode);
129
- if (entrypoint.ignored) {
130
- return {
131
- code: originalCode,
132
- sourceMap: options.inputSourceMap
133
- };
134
- }
135
- const workflowAction = entrypoint.createAction('workflow', undefined, null, actionContext);
136
- try {
137
- const result = await asyncActionRunner(workflowAction, actionHandlers);
138
- entrypoint.log('%s is ready', entrypoint.name);
139
- return result;
140
- } catch (err) {
141
- entrypoint.log('Unhandled error %O', err);
142
- if (isFeatureEnabled(pluginOptions.features, 'softErrors', options.filename)) {
143
- // eslint-disable-next-line no-console
144
- console.error(`Error during transform of ${entrypoint.name}:`, err);
145
- return {
146
- code: originalCode,
147
- sourceMap: options.inputSourceMap
148
- };
149
- }
150
- throw err;
151
- }
69
+ const { options } = partialServices;
70
+ const pluginOptions = loadWywOptions(options.pluginOptions);
71
+ const services = withDefaultServices({
72
+ ...partialServices,
73
+ options: {
74
+ ...options,
75
+ pluginOptions
76
+ }
77
+ });
78
+ if (!isFeatureEnabled(pluginOptions.features, "globalCache", options.filename)) {
79
+ // If global cache is disabled, we need to create a new cache for each file
80
+ services.cache = new TransformCacheCollection();
81
+ }
82
+ const evalCacheKey = getEvalCacheKey(pluginOptions, services.asyncResolveKey, asyncResolve);
83
+ services.cache.setKeySalt(evalCacheKey);
84
+ services.asyncResolve = asyncResolve;
85
+ services.evalBroker = getEvalBroker(services, asyncResolve, evalCacheKey);
86
+ /*
87
+ * This method can be run simultaneously for multiple files.
88
+ * A shared cache is accessible for all runs, but each run has its own queue
89
+ * to maintain the correct processing order. The cache stores the outcome
90
+ * of tree-shaking, and if the result is already stored in the cache
91
+ * but the "only" option has changed, the file will be re-processed using
92
+ * the combined "only" option.
93
+ */
94
+ const entrypoint = Entrypoint.createRoot(services, options.filename, ["__wywPreval"], originalCode);
95
+ if (entrypoint.ignored) {
96
+ return {
97
+ code: originalCode,
98
+ sourceMap: options.inputSourceMap
99
+ };
100
+ }
101
+ // Separate top-level runs must not share action state, even for the same
102
+ // entrypoint, otherwise concurrent transforms can collide in BaseAction.run.
103
+ const workflowAction = entrypoint.createAction("workflow", undefined, null, {});
104
+ if (!memoizedAsyncResolve.has(asyncResolve)) {
105
+ const resolveImports = function resolveImports() {
106
+ return asyncResolveImports.call(this, asyncResolve);
107
+ };
108
+ memoizedAsyncResolve.set(asyncResolve, resolveImports);
109
+ }
110
+ try {
111
+ const result = await asyncActionRunner(workflowAction, {
112
+ ...baseHandlers,
113
+ ...customHandlers,
114
+ resolveImports: memoizedAsyncResolve.get(asyncResolve)
115
+ });
116
+ entrypoint.log("%s is ready", entrypoint.name);
117
+ return result;
118
+ } catch (err) {
119
+ entrypoint.log("Unhandled error %O", err);
120
+ if (isFeatureEnabled(pluginOptions.features, "softErrors", options.filename)) {
121
+ // eslint-disable-next-line no-console
122
+ console.error(`Error during transform of ${entrypoint.name}:`, err);
123
+ return {
124
+ code: originalCode,
125
+ sourceMap: options.inputSourceMap
126
+ };
127
+ }
128
+ throw err;
129
+ }
152
130
  }
153
- //# sourceMappingURL=transform.js.map
131
+ //# sourceMappingURL=transform.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","names":["isFeatureEnabled","loadWywOptions","TransformCacheCollection","Entrypoint","asyncActionRunner","syncActionRunner","baseHandlers","asyncResolveImports","syncResolveImports","withDefaultServices","memoizedSyncResolve","WeakMap","memoizedAsyncResolve","EMPTY_CUSTOM_HANDLERS","memoizedActionContexts","getActionContext","resolveImportsHandler","customHandlers","customHandlersKey","Object","keys","length","actionContextsByHandlers","get","set","actionContext","transformSync","partialServices","originalCode","syncResolve","options","pluginOptions","services","features","filename","cache","has","resolveImports","call","actionHandlers","entrypoint","createRoot","ignored","code","sourceMap","inputSourceMap","workflowAction","createAction","undefined","result","log","name","err","console","error","transform","asyncResolve"],"sources":["../src/transform.ts"],"sourcesContent":["/**\n * This file exposes sync and async transform functions that:\n * - parse the passed code to AST\n * - builds a dependency graph for the file\n * - shakes each dependency and removes unused code\n * - runs generated code in a sandbox\n * - collects artifacts\n * - returns transformed code (without WYW template literals), generated CSS, source maps and babel metadata from transform step.\n */\n\nimport { isFeatureEnabled } from '@wyw-in-js/shared';\n\nimport type { PartialOptions } from './transform/helpers/loadWywOptions';\nimport { loadWywOptions } from './transform/helpers/loadWywOptions';\nimport { TransformCacheCollection } from './cache';\nimport { Entrypoint } from './transform/Entrypoint';\nimport {\n asyncActionRunner,\n syncActionRunner,\n} from './transform/actions/actionRunner';\nimport { baseHandlers } from './transform/generators';\nimport {\n asyncResolveImports,\n syncResolveImports,\n} from './transform/generators/resolveImports';\nimport { withDefaultServices } from './transform/helpers/withDefaultServices';\nimport type {\n Handler,\n Handlers,\n IResolveImportsAction,\n Services,\n} from './transform/types';\nimport type { Result } from './types';\n\ntype PartialServices = Partial<Omit<Services, 'options'>> & {\n options: Omit<Services['options'], 'pluginOptions'> & {\n pluginOptions?: PartialOptions;\n };\n};\n\ntype AllHandlers<TMode extends 'async' | 'sync'> = Handlers<TMode>;\n\nconst memoizedSyncResolve = new WeakMap<\n (what: string, importer: string, stack: string[]) => string | null,\n Handler<'sync', IResolveImportsAction>\n>();\n\nconst memoizedAsyncResolve = new WeakMap<\n (what: string, importer: string, stack: string[]) => Promise<string | null>,\n Handler<'async' | 'sync', IResolveImportsAction>\n>();\n\nconst EMPTY_CUSTOM_HANDLERS = {};\nconst memoizedActionContexts = new WeakMap<object, WeakMap<object, object>>();\n\nconst getActionContext = (\n resolveImportsHandler: object,\n customHandlers: object\n): object => {\n const customHandlersKey =\n Object.keys(customHandlers).length === 0\n ? EMPTY_CUSTOM_HANDLERS\n : customHandlers;\n let actionContextsByHandlers = memoizedActionContexts.get(\n resolveImportsHandler\n );\n if (!actionContextsByHandlers) {\n actionContextsByHandlers = new WeakMap();\n memoizedActionContexts.set(resolveImportsHandler, actionContextsByHandlers);\n }\n\n let actionContext = actionContextsByHandlers.get(customHandlersKey);\n if (!actionContext) {\n actionContext = {};\n actionContextsByHandlers.set(customHandlersKey, actionContext);\n }\n\n return actionContext;\n};\n\nexport function transformSync(\n partialServices: PartialServices,\n originalCode: string,\n syncResolve: (what: string, importer: string, stack: string[]) => string,\n customHandlers: Partial<AllHandlers<'sync'>> = {}\n): Result {\n const { options } = partialServices;\n const pluginOptions = loadWywOptions(options.pluginOptions);\n const services = withDefaultServices({\n ...partialServices,\n options: {\n ...options,\n pluginOptions,\n },\n });\n\n if (\n !isFeatureEnabled(pluginOptions.features, 'globalCache', options.filename)\n ) {\n // If global cache is disabled, we need to create a new cache for each file\n services.cache = new TransformCacheCollection();\n }\n\n if (!memoizedSyncResolve.has(syncResolve)) {\n memoizedSyncResolve.set(\n syncResolve,\n function resolveImports(this: IResolveImportsAction) {\n return syncResolveImports.call(this, syncResolve);\n }\n );\n }\n\n const resolveImportsHandler = memoizedSyncResolve.get(syncResolve)!;\n const actionHandlers = {\n ...baseHandlers,\n ...customHandlers,\n resolveImports: resolveImportsHandler,\n };\n const actionContext = getActionContext(resolveImportsHandler, customHandlers);\n\n const entrypoint = Entrypoint.createRoot(\n services,\n options.filename,\n ['__wywPreval'],\n originalCode\n );\n\n if (entrypoint.ignored) {\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n const workflowAction = entrypoint.createAction(\n 'workflow',\n undefined,\n null,\n actionContext\n );\n\n try {\n const result = syncActionRunner(workflowAction, actionHandlers);\n\n entrypoint.log('%s is ready', entrypoint.name);\n\n return result;\n } catch (err) {\n entrypoint.log('Unhandled error %O', err);\n\n if (\n isFeatureEnabled(pluginOptions.features, 'softErrors', options.filename)\n ) {\n // eslint-disable-next-line no-console\n console.error(`Error during transform of ${entrypoint.name}:`, err);\n\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n throw err;\n }\n}\n\nexport async function transform(\n partialServices: PartialServices,\n originalCode: string,\n asyncResolve: (\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>,\n customHandlers: Partial<AllHandlers<'sync'>> = {}\n): Promise<Result> {\n const { options } = partialServices;\n const pluginOptions = loadWywOptions(options.pluginOptions);\n const services = withDefaultServices({\n ...partialServices,\n options: {\n ...options,\n pluginOptions,\n },\n });\n\n if (\n !isFeatureEnabled(pluginOptions.features, 'globalCache', options.filename)\n ) {\n // If global cache is disabled, we need to create a new cache for each file\n services.cache = new TransformCacheCollection();\n }\n\n /*\n * This method can be run simultaneously for multiple files.\n * A shared cache is accessible for all runs, but each run has its own queue\n * to maintain the correct processing order. The cache stores the outcome\n * of tree-shaking, and if the result is already stored in the cache\n * but the \"only\" option has changed, the file will be re-processed using\n * the combined \"only\" option.\n */\n if (!memoizedAsyncResolve.has(asyncResolve)) {\n const resolveImports = function resolveImports(\n this: IResolveImportsAction\n ) {\n return asyncResolveImports.call(this, asyncResolve);\n };\n\n memoizedAsyncResolve.set(asyncResolve, resolveImports);\n }\n\n const resolveImportsHandler = memoizedAsyncResolve.get(asyncResolve)!;\n const actionHandlers = {\n ...baseHandlers,\n ...customHandlers,\n resolveImports: resolveImportsHandler,\n };\n const actionContext = getActionContext(resolveImportsHandler, customHandlers);\n\n const entrypoint = Entrypoint.createRoot(\n services,\n options.filename,\n ['__wywPreval'],\n originalCode\n );\n\n if (entrypoint.ignored) {\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n const workflowAction = entrypoint.createAction(\n 'workflow',\n undefined,\n null,\n actionContext\n );\n\n try {\n const result = await asyncActionRunner(workflowAction, actionHandlers);\n\n entrypoint.log('%s is ready', entrypoint.name);\n\n return result;\n } catch (err) {\n entrypoint.log('Unhandled error %O', err);\n\n if (\n isFeatureEnabled(pluginOptions.features, 'softErrors', options.filename)\n ) {\n // eslint-disable-next-line no-console\n console.error(`Error during transform of ${entrypoint.name}:`, err);\n\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n throw err;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"mappings":"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","names":[],"sources":["../src/transform.ts"],"version":3,"sourcesContent":["/**\n * This file exposes sync and async transform functions that:\n * - parse the passed code to AST\n * - builds a dependency graph for the file\n * - shakes each dependency and removes unused code\n * - runs generated code in a sandbox\n * - collects artifacts\n * - returns transformed code (without WYW template literals), generated CSS, source maps and transform metadata.\n */\n\nimport { createHash } from 'crypto';\n\nimport { isFeatureEnabled } from '@wyw-in-js/shared';\n\nimport type { PartialOptions } from './transform/helpers/loadWywOptions';\nimport { loadWywOptions } from './transform/helpers/loadWywOptions';\nimport { TransformCacheCollection } from './cache';\nimport { Entrypoint } from './transform/Entrypoint';\nimport { asyncActionRunner } from './transform/actions/actionRunner';\nimport { baseHandlers } from './transform/generators';\nimport { asyncResolveImports } from './transform/generators/resolveImports';\nimport { withDefaultServices } from './transform/helpers/withDefaultServices';\nimport type {\n Handler,\n Handlers,\n IResolveImportsAction,\n Services,\n} from './transform/types';\nimport type { Result } from './types';\nimport { getEvalBroker } from './eval/broker';\nimport { encodeGlobals } from './eval/serialize';\n\ntype PartialServices = Partial<Omit<Services, 'options'>> & {\n options: Omit<Services['options'], 'pluginOptions'> & {\n pluginOptions?: PartialOptions;\n };\n};\n\ntype AllHandlers<TMode extends 'async' | 'sync'> = Handlers<TMode>;\n\nconst memoizedAsyncResolve = new WeakMap<\n (what: string, importer: string, stack: string[]) => Promise<string | null>,\n Handler<'async' | 'sync', IResolveImportsAction>\n>();\n\ntype ResolverFn = (...args: unknown[]) => unknown;\n\nconst resolverIds = new WeakMap<ResolverFn, number>();\nlet resolverId = 0;\n\nconst getResolverId = (fn: unknown) => {\n if (typeof fn !== 'function') return null;\n const resolver = fn as ResolverFn;\n const cached = resolverIds.get(resolver);\n if (cached) return cached;\n resolverId += 1;\n resolverIds.set(resolver, resolverId);\n return resolverId;\n};\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === 'object' && value !== null && !Array.isArray(value);\n\nconst canonicalizeForHash = (value: unknown): unknown => {\n if (Array.isArray(value)) {\n return value.map((item) => canonicalizeForHash(item));\n }\n\n if (isPlainObject(value)) {\n return Object.fromEntries(\n Object.keys(value)\n .sort()\n .map((key) => [key, canonicalizeForHash(value[key])])\n );\n }\n\n return value;\n};\n\nconst getEvalCacheKey = (\n pluginOptions: ReturnType<typeof loadWywOptions>,\n asyncResolveKey: string | undefined,\n asyncResolve: (\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>\n) => {\n const evalOptions = pluginOptions.eval ?? {};\n const payload = JSON.stringify({\n errors: evalOptions.errors,\n resolver: evalOptions.resolver,\n require: evalOptions.require,\n runtime: evalOptions.runtime,\n strategy: evalOptions.strategy,\n globals: canonicalizeForHash(encodeGlobals(evalOptions.globals ?? {})),\n customResolver: getResolverId(evalOptions.customResolver),\n customLoader: getResolverId(evalOptions.customLoader),\n // Bundlers like webpack can recreate transport resolvers per file. Allow\n // them to provide a stable scope key so cache/broker reuse tracks resolver\n // semantics instead of closure identity.\n bundlerResolver: asyncResolveKey ?? getResolverId(asyncResolve),\n overrideContext: getResolverId(pluginOptions.overrideContext),\n importOverrides: pluginOptions.importOverrides ?? null,\n extensions: pluginOptions.extensions,\n features: pluginOptions.features,\n });\n\n return createHash('sha256').update(payload).digest('hex');\n};\n\nexport function transformSync(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _partialServices: PartialServices,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _originalCode: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _syncResolve: (what: string, importer: string, stack: string[]) => string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _customHandlers: Partial<AllHandlers<'sync'>> = {}\n): Result {\n throw new Error(\n '[wyw-in-js] transformSync is not supported in v2. Use transform() (async) instead.'\n );\n}\n\nexport async function transform(\n partialServices: PartialServices,\n originalCode: string,\n asyncResolve: (\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>,\n customHandlers: Partial<AllHandlers<'sync'>> = {}\n): Promise<Result> {\n const { options } = partialServices;\n const pluginOptions = loadWywOptions(options.pluginOptions);\n const services = withDefaultServices({\n ...partialServices,\n options: {\n ...options,\n pluginOptions,\n },\n });\n\n if (\n !isFeatureEnabled(pluginOptions.features, 'globalCache', options.filename)\n ) {\n // If global cache is disabled, we need to create a new cache for each file\n services.cache = new TransformCacheCollection();\n }\n\n const evalCacheKey = getEvalCacheKey(\n pluginOptions,\n services.asyncResolveKey,\n asyncResolve\n );\n services.cache.setKeySalt(evalCacheKey);\n services.asyncResolve = asyncResolve;\n services.evalBroker = getEvalBroker(services, asyncResolve, evalCacheKey);\n\n /*\n * This method can be run simultaneously for multiple files.\n * A shared cache is accessible for all runs, but each run has its own queue\n * to maintain the correct processing order. The cache stores the outcome\n * of tree-shaking, and if the result is already stored in the cache\n * but the \"only\" option has changed, the file will be re-processed using\n * the combined \"only\" option.\n */\n const entrypoint = Entrypoint.createRoot(\n services,\n options.filename,\n ['__wywPreval'],\n originalCode\n );\n\n if (entrypoint.ignored) {\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n // Separate top-level runs must not share action state, even for the same\n // entrypoint, otherwise concurrent transforms can collide in BaseAction.run.\n const workflowAction = entrypoint.createAction(\n 'workflow',\n undefined,\n null,\n {}\n );\n\n if (!memoizedAsyncResolve.has(asyncResolve)) {\n const resolveImports = function resolveImports(\n this: IResolveImportsAction\n ) {\n return asyncResolveImports.call(this, asyncResolve);\n };\n\n memoizedAsyncResolve.set(asyncResolve, resolveImports);\n }\n\n try {\n const result = await asyncActionRunner(workflowAction, {\n ...baseHandlers,\n ...customHandlers,\n resolveImports: memoizedAsyncResolve.get(asyncResolve)!,\n });\n\n entrypoint.log('%s is ready', entrypoint.name);\n\n return result;\n } catch (err) {\n entrypoint.log('Unhandled error %O', err);\n\n if (\n isFeatureEnabled(pluginOptions.features, 'softErrors', options.filename)\n ) {\n // eslint-disable-next-line no-console\n console.error(`Error during transform of ${entrypoint.name}:`, err);\n\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n throw err;\n }\n}\n"],"file":"transform.js"}
package/esm/types.js CHANGED
@@ -1,2 +1,5 @@
1
1
  export {};
2
- //# sourceMappingURL=types.js.map
2
+ /**
3
+ * CSS-related types
4
+ */
5
+ //# sourceMappingURL=types.js.map
package/esm/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../src/types.ts"],"sourcesContent":["import type { BabelFile, PluginPass } from '@babel/core';\nimport type { NodePath } from '@babel/traverse';\nimport type { File, Program } from '@babel/types';\nimport type { RawSourceMap } from 'source-map';\n\nimport type { BaseProcessor } from '@wyw-in-js/processor-utils';\nimport type {\n Debugger,\n Replacement,\n Rules,\n StrictOptions,\n} from '@wyw-in-js/shared';\n\nimport type {\n WYWTransformMetadata,\n WYWTransformResultMetadata,\n} from './utils/TransformMetadata';\nimport type { WYWTransformDiagnostic } from './utils/TransformDiagnostics';\n\nexport type PluginOptions = StrictOptions & {\n configFile?: string | false;\n stage?: Stage;\n};\n\nexport type ParentEntrypoint = {\n evaluated: boolean;\n log: Debugger;\n name: string;\n parents: ParentEntrypoint[];\n seqId: number;\n};\n\nexport type Dependencies = string[];\n\nexport interface IPluginState extends PluginPass {\n dependencies: Dependencies;\n file: BabelFile & {\n metadata: {\n wywInJS?: WYWTransformMetadata;\n };\n };\n processors: BaseProcessor[];\n}\n\nexport interface ITransformFileResult {\n code: string;\n metadata: WYWTransformMetadata | null;\n}\n\nexport type Stage = 'preeval' | 'collect';\n\nexport type Result = {\n code: string;\n cssSourceMapText?: string;\n cssText?: string;\n dependencies?: string[];\n diagnostics?: WYWTransformDiagnostic[];\n metadata?: WYWTransformResultMetadata;\n replacements?: Replacement[];\n rules?: Rules;\n sourceMap?: RawSourceMap | null;\n};\n\nexport type Options = {\n filename: string;\n inputSourceMap?: RawSourceMap;\n keepComments?: boolean | RegExp;\n outputFilename?: string;\n pluginOptions?: Partial<PluginOptions>;\n prefixer?: boolean;\n preprocessor?: Preprocessor;\n root?: string;\n};\n\nexport type PreprocessorFn = (selector: string, cssText: string) => string;\nexport type Preprocessor = 'none' | 'stylis' | PreprocessorFn | void;\n\nexport type MissedBabelCoreTypes = {\n File: new (\n options: { filename: string },\n file: { ast: File; code: string }\n ) => { path: NodePath<Program> };\n};\n\nexport type JSONValue =\n | null\n | string\n | number\n | boolean\n | JSONObject\n | JSONArray;\n\nexport interface JSONObject {\n [x: string]: JSONValue;\n}\n\nexport type JSONArray = Array<JSONValue>;\n\nexport type Serializable = JSONValue;\n\n/**\n * CSS-related types\n */\n"],"mappings":"","ignoreList":[]}
1
+ {"mappings":"","names":[],"sources":["../src/types.ts"],"version":3,"sourcesContent":["import type { RawSourceMap } from 'source-map';\n\nimport type {\n Debugger,\n Replacement,\n Rules,\n StrictOptions,\n} from '@wyw-in-js/shared';\n\nimport type {\n WYWTransformMetadata,\n WYWTransformResultMetadata,\n} from './utils/TransformMetadata';\nimport type { WYWTransformDiagnostic } from './utils/TransformDiagnostics';\n\nexport type PluginOptions = StrictOptions & {\n configFile?: string | false;\n stage?: Stage;\n};\n\nexport type ParentEntrypoint = {\n evaluated: boolean;\n log: Debugger;\n name: string;\n parents: ParentEntrypoint[];\n seqId: number;\n};\n\nexport type Dependencies = string[];\n\nexport interface ITransformFileResult {\n code: string;\n metadata: WYWTransformMetadata | null;\n}\n\nexport type Stage = 'preeval' | 'collect';\n\nexport type Result = {\n code: string;\n cssSourceMapText?: string;\n cssText?: string;\n dependencies?: string[];\n diagnostics?: WYWTransformDiagnostic[];\n metadata?: WYWTransformResultMetadata;\n replacements?: Replacement[];\n rules?: Rules;\n sourceMap?: RawSourceMap | null;\n};\n\nexport type Options = {\n filename: string;\n inputSourceMap?: RawSourceMap;\n keepComments?: boolean | RegExp;\n outputFilename?: string;\n pluginOptions?: Partial<PluginOptions>;\n prefixer?: boolean;\n preprocessor?: Preprocessor;\n root?: string;\n};\n\nexport type PreprocessorFn = (selector: string, cssText: string) => string;\nexport type Preprocessor = 'none' | 'stylis' | PreprocessorFn | void;\n\nexport type JSONValue =\n | null\n | string\n | number\n | boolean\n | JSONObject\n | JSONArray;\n\nexport interface JSONObject {\n [x: string]: JSONValue;\n}\n\nexport type JSONArray = Array<JSONValue>;\n\nexport type Serializable = JSONValue;\n\n/**\n * CSS-related types\n */\n"],"file":"types.js"}
@@ -1,52 +1,83 @@
1
- export const isOnActionStartArgs = args => {
2
- return args[0] === 'start';
1
+ export const isOnActionStartArgs = (args) => {
2
+ return args[0] === "start";
3
3
  };
4
- export const isOnActionFinishArgs = args => {
5
- return args[0] === 'finish' || args[0] === 'fail';
4
+ export const isOnActionFinishArgs = (args) => {
5
+ return args[0] === "finish" || args[0] === "fail";
6
6
  };
7
7
  export class EventEmitter {
8
- static dummy = new EventEmitter(() => {}, () => 0, () => {});
9
- constructor(onEvent, onAction, onEntrypointEvent) {
10
- this.onEvent = onEvent;
11
- this.onAction = onAction;
12
- this.onEntrypointEvent = onEntrypointEvent;
13
- }
14
- action(actonType, idx, entrypointRef, fn) {
15
- const id = this.onAction('start', performance.now(), actonType, idx, entrypointRef);
16
- try {
17
- const result = fn();
18
- if (result instanceof Promise) {
19
- result.then(() => this.onAction('finish', performance.now(), id, true), e => this.onAction('fail', performance.now(), id, true, e));
20
- } else {
21
- this.onAction('finish', performance.now(), id, false);
22
- }
23
- return result;
24
- } catch (e) {
25
- this.onAction('fail', performance.now(), id, false, e);
26
- throw e;
27
- }
28
- }
29
- entrypointEvent(sequenceId, event) {
30
- this.onEntrypointEvent(sequenceId, performance.now(), event);
31
- }
32
- perf(method, fn) {
33
- const labels = {
34
- method
35
- };
36
- this.onEvent(labels, 'start');
37
- const result = fn();
38
- if (result instanceof Promise) {
39
- result.then(() => this.onEvent(labels, 'finish'), () => this.onEvent(labels, 'finish'));
40
- } else {
41
- this.onEvent(labels, 'finish');
42
- }
43
- return result;
44
- }
45
- single(labels) {
46
- this.onEvent({
47
- ...labels,
48
- datetime: new Date()
49
- }, 'single');
50
- }
8
+ static dummy = new EventEmitter(() => {}, () => 0, () => {}, false);
9
+ perfSpanId = 0;
10
+ constructor(onEvent, onAction, onEntrypointEvent, enabled = true) {
11
+ this.onEvent = onEvent;
12
+ this.onAction = onAction;
13
+ this.onEntrypointEvent = onEntrypointEvent;
14
+ this.enabled = enabled;
15
+ }
16
+ action(actonType, idx, entrypointRef, fn) {
17
+ const id = this.onAction("start", performance.now(), actonType, idx, entrypointRef);
18
+ try {
19
+ const result = fn();
20
+ if (result instanceof Promise) {
21
+ result.then(() => this.onAction("finish", performance.now(), id, true), (e) => this.onAction("fail", performance.now(), id, true, e));
22
+ } else {
23
+ this.onAction("finish", performance.now(), id, false);
24
+ }
25
+ return result;
26
+ } catch (e) {
27
+ this.onAction("fail", performance.now(), id, false, e);
28
+ throw e;
29
+ }
30
+ }
31
+ entrypointEvent(sequenceId, event) {
32
+ this.onEntrypointEvent(sequenceId, performance.now(), event);
33
+ }
34
+ perf(method, fn) {
35
+ const spanId = this.perfSpanId;
36
+ this.perfSpanId += 1;
37
+ const startedAt = performance.now();
38
+ const labels = { method };
39
+ const startEvent = {
40
+ method,
41
+ spanId,
42
+ startedAt,
43
+ type: "perf-span-start"
44
+ };
45
+ this.onEvent(labels, "start", startEvent);
46
+ const finish = (status, isAsync, error) => {
47
+ const finishedAt = performance.now();
48
+ const finishEvent = {
49
+ durationMs: finishedAt - startedAt,
50
+ finishedAt,
51
+ isAsync,
52
+ method,
53
+ spanId,
54
+ startedAt,
55
+ status,
56
+ type: "perf-span"
57
+ };
58
+ if (error !== undefined) {
59
+ finishEvent.error = error;
60
+ }
61
+ this.onEvent(labels, "finish", finishEvent);
62
+ };
63
+ try {
64
+ const result = fn();
65
+ if (result instanceof Promise) {
66
+ result.then(() => finish("finished", true), (error) => finish("failed", true, error));
67
+ } else {
68
+ finish("finished", false);
69
+ }
70
+ return result;
71
+ } catch (error) {
72
+ finish("failed", false, error);
73
+ throw error;
74
+ }
75
+ }
76
+ single(labels) {
77
+ this.onEvent({
78
+ ...labels,
79
+ datetime: new Date()
80
+ }, "single");
81
+ }
51
82
  }
52
- //# sourceMappingURL=EventEmitter.js.map
83
+ //# sourceMappingURL=EventEmitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventEmitter.js","names":["isOnActionStartArgs","args","isOnActionFinishArgs","EventEmitter","dummy","constructor","onEvent","onAction","onEntrypointEvent","action","actonType","idx","entrypointRef","fn","id","performance","now","result","Promise","then","e","entrypointEvent","sequenceId","event","perf","method","labels","single","datetime","Date"],"sources":["../../src/utils/EventEmitter.ts"],"sourcesContent":["export type OnEvent = (\n labels: Record<string, unknown>,\n type: 'start' | 'finish' | 'single',\n event?: unknown\n) => void;\n\nexport interface IActionCreated {\n actionIdx: string;\n actionType: string;\n type: 'actionCreated';\n}\n\nexport interface ICreatedEvent {\n class: string;\n evaluatedOnly: string[];\n filename: string;\n generation: number;\n idx: string;\n isExportsInherited: boolean;\n only: string[];\n parentId: number | null;\n type: 'created';\n}\n\nexport interface ISupersededEvent {\n type: 'superseded';\n with: number;\n}\n\nexport interface ISetTransformResultEvent {\n isNull: boolean;\n type: 'setTransformResult';\n}\n\nexport type EntrypointEvent =\n | IActionCreated\n | ICreatedEvent\n | ISupersededEvent\n | ISetTransformResultEvent;\n\nexport type OnEntrypointEvent = (\n idx: number,\n timestamp: number,\n event: EntrypointEvent\n) => void;\n\nexport type OnActionStartArgs = [\n phase: 'start',\n timestamp: number,\n type: string,\n idx: string,\n entrypointRef: string,\n];\n\nexport type OnActionFinishArgs = [\n phase: 'finish' | 'fail',\n timestamp: number,\n id: number,\n isAsync: boolean,\n error?: unknown,\n];\n\nexport const isOnActionStartArgs = (\n args: OnActionStartArgs | OnActionFinishArgs\n): args is OnActionStartArgs => {\n return args[0] === 'start';\n};\n\nexport const isOnActionFinishArgs = (\n args: OnActionStartArgs | OnActionFinishArgs\n): args is OnActionFinishArgs => {\n return args[0] === 'finish' || args[0] === 'fail';\n};\n\nexport interface OnAction {\n (...args: OnActionStartArgs): number;\n (...args: OnActionFinishArgs): void;\n}\n\nexport class EventEmitter {\n static dummy = new EventEmitter(\n () => {},\n () => 0,\n () => {}\n );\n\n constructor(\n protected onEvent: OnEvent,\n protected onAction: OnAction,\n protected onEntrypointEvent: OnEntrypointEvent\n ) {}\n\n public action<TRes>(\n actonType: string,\n idx: string,\n entrypointRef: string,\n fn: () => TRes\n ) {\n const id = this.onAction(\n 'start',\n performance.now(),\n actonType,\n idx,\n entrypointRef\n );\n\n try {\n const result = fn();\n if (result instanceof Promise) {\n result.then(\n () => this.onAction('finish', performance.now(), id, true),\n (e) => this.onAction('fail', performance.now(), id, true, e)\n );\n } else {\n this.onAction('finish', performance.now(), id, false);\n }\n\n return result;\n } catch (e) {\n this.onAction('fail', performance.now(), id, false, e);\n throw e;\n }\n }\n\n public entrypointEvent(sequenceId: number, event: EntrypointEvent) {\n this.onEntrypointEvent(sequenceId, performance.now(), event);\n }\n\n public perf<TRes>(method: string, fn: () => TRes): TRes {\n const labels = { method };\n\n this.onEvent(labels, 'start');\n\n const result = fn();\n if (result instanceof Promise) {\n result.then(\n () => this.onEvent(labels, 'finish'),\n () => this.onEvent(labels, 'finish')\n );\n } else {\n this.onEvent(labels, 'finish');\n }\n\n return result;\n }\n\n public single(labels: Record<string, unknown>) {\n this.onEvent(\n {\n ...labels,\n datetime: new Date(),\n },\n 'single'\n );\n }\n}\n"],"mappings":"AA8DA,OAAO,MAAMA,mBAAmB,GAC9BC,IAA4C,IACd;EAC9B,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO;AAC5B,CAAC;AAED,OAAO,MAAMC,oBAAoB,GAC/BD,IAA4C,IACb;EAC/B,OAAOA,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAIA,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM;AACnD,CAAC;AAOD,OAAO,MAAME,YAAY,CAAC;EACxB,OAAOC,KAAK,GAAG,IAAID,YAAY,CAC7B,MAAM,CAAC,CAAC,EACR,MAAM,CAAC,EACP,MAAM,CAAC,CACT,CAAC;EAEDE,WAAWA,CACCC,OAAgB,EAChBC,QAAkB,EAClBC,iBAAoC,EAC9C;IAAA,KAHUF,OAAgB,GAAhBA,OAAgB;IAAA,KAChBC,QAAkB,GAAlBA,QAAkB;IAAA,KAClBC,iBAAoC,GAApCA,iBAAoC;EAC7C;EAEIC,MAAMA,CACXC,SAAiB,EACjBC,GAAW,EACXC,aAAqB,EACrBC,EAAc,EACd;IACA,MAAMC,EAAE,GAAG,IAAI,CAACP,QAAQ,CACtB,OAAO,EACPQ,WAAW,CAACC,GAAG,CAAC,CAAC,EACjBN,SAAS,EACTC,GAAG,EACHC,aACF,CAAC;IAED,IAAI;MACF,MAAMK,MAAM,GAAGJ,EAAE,CAAC,CAAC;MACnB,IAAII,MAAM,YAAYC,OAAO,EAAE;QAC7BD,MAAM,CAACE,IAAI,CACT,MAAM,IAAI,CAACZ,QAAQ,CAAC,QAAQ,EAAEQ,WAAW,CAACC,GAAG,CAAC,CAAC,EAAEF,EAAE,EAAE,IAAI,CAAC,EACzDM,CAAC,IAAK,IAAI,CAACb,QAAQ,CAAC,MAAM,EAAEQ,WAAW,CAACC,GAAG,CAAC,CAAC,EAAEF,EAAE,EAAE,IAAI,EAAEM,CAAC,CAC7D,CAAC;MACH,CAAC,MAAM;QACL,IAAI,CAACb,QAAQ,CAAC,QAAQ,EAAEQ,WAAW,CAACC,GAAG,CAAC,CAAC,EAAEF,EAAE,EAAE,KAAK,CAAC;MACvD;MAEA,OAAOG,MAAM;IACf,CAAC,CAAC,OAAOG,CAAC,EAAE;MACV,IAAI,CAACb,QAAQ,CAAC,MAAM,EAAEQ,WAAW,CAACC,GAAG,CAAC,CAAC,EAAEF,EAAE,EAAE,KAAK,EAAEM,CAAC,CAAC;MACtD,MAAMA,CAAC;IACT;EACF;EAEOC,eAAeA,CAACC,UAAkB,EAAEC,KAAsB,EAAE;IACjE,IAAI,CAACf,iBAAiB,CAACc,UAAU,EAAEP,WAAW,CAACC,GAAG,CAAC,CAAC,EAAEO,KAAK,CAAC;EAC9D;EAEOC,IAAIA,CAAOC,MAAc,EAAEZ,EAAc,EAAQ;IACtD,MAAMa,MAAM,GAAG;MAAED;IAAO,CAAC;IAEzB,IAAI,CAACnB,OAAO,CAACoB,MAAM,EAAE,OAAO,CAAC;IAE7B,MAAMT,MAAM,GAAGJ,EAAE,CAAC,CAAC;IACnB,IAAII,MAAM,YAAYC,OAAO,EAAE;MAC7BD,MAAM,CAACE,IAAI,CACT,MAAM,IAAI,CAACb,OAAO,CAACoB,MAAM,EAAE,QAAQ,CAAC,EACpC,MAAM,IAAI,CAACpB,OAAO,CAACoB,MAAM,EAAE,QAAQ,CACrC,CAAC;IACH,CAAC,MAAM;MACL,IAAI,CAACpB,OAAO,CAACoB,MAAM,EAAE,QAAQ,CAAC;IAChC;IAEA,OAAOT,MAAM;EACf;EAEOU,MAAMA,CAACD,MAA+B,EAAE;IAC7C,IAAI,CAACpB,OAAO,CACV;MACE,GAAGoB,MAAM;MACTE,QAAQ,EAAE,IAAIC,IAAI,CAAC;IACrB,CAAC,EACD,QACF,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"mappings":"AA8DA,OAAO,MAAM,uBACX,SAC8B;AAC9B,QAAO,KAAK,OAAO;;AAGrB,OAAO,MAAM,wBACX,SAC+B;AAC/B,QAAO,KAAK,OAAO,YAAY,KAAK,OAAO;;AA6B7C,OAAO,MAAM,aAAa;CACxB,OAAO,QAAQ,IAAI,mBACX,UACA,SACA,IACN,MACD;CAED,AAAQ,aAAa;CAErB,YACE,AAAU,SACV,AAAU,UACV,AAAU,mBACV,AAAgB,UAAU,MAC1B;EAJU;EACA;EACA;EACM;;CAGlB,AAAO,OACL,WACA,KACA,eACA,IACA;EACA,MAAM,KAAK,KAAK,SACd,SACA,YAAY,KAAK,EACjB,WACA,KACA,cACD;AAED,MAAI;GACF,MAAM,SAAS,IAAI;AACnB,OAAI,kBAAkB,SAAS;AAC7B,WAAO,WACC,KAAK,SAAS,UAAU,YAAY,KAAK,EAAE,IAAI,KAAK,GACzD,MAAM,KAAK,SAAS,QAAQ,YAAY,KAAK,EAAE,IAAI,MAAM,EAAE,CAC7D;UACI;AACL,SAAK,SAAS,UAAU,YAAY,KAAK,EAAE,IAAI,MAAM;;AAGvD,UAAO;WACA,GAAG;AACV,QAAK,SAAS,QAAQ,YAAY,KAAK,EAAE,IAAI,OAAO,EAAE;AACtD,SAAM;;;CAIV,AAAO,gBAAgB,YAAoB,OAAwB;AACjE,OAAK,kBAAkB,YAAY,YAAY,KAAK,EAAE,MAAM;;CAG9D,AAAO,KAAW,QAAgB,IAAsB;EACtD,MAAM,SAAS,KAAK;AACpB,OAAK,cAAc;EACnB,MAAM,YAAY,YAAY,KAAK;EACnC,MAAM,SAAS,EAAE,QAAQ;EACzB,MAAM,aAA6B;GACjC;GACA;GACA;GACA,MAAM;GACP;AAED,OAAK,QAAQ,QAAQ,SAAS,WAAW;EAEzC,MAAM,UAAU,QAAoB,SAAkB,UAAoB;GACxE,MAAM,aAAa,YAAY,KAAK;GACpC,MAAM,cAA+B;IACnC,YAAY,aAAa;IACzB;IACA;IACA;IACA;IACA;IACA;IACA,MAAM;IACP;AAED,OAAI,UAAU,WAAW;AACvB,gBAAY,QAAQ;;AAGtB,QAAK,QAAQ,QAAQ,UAAU,YAAY;;AAG7C,MAAI;GACF,MAAM,SAAS,IAAI;AACnB,OAAI,kBAAkB,SAAS;AAC7B,WAAO,WACC,OAAO,YAAY,KAAK,GAC7B,UAAU,OAAO,UAAU,MAAM,MAAM,CACzC;UACI;AACL,WAAO,YAAY,MAAM;;AAG3B,UAAO;WACA,OAAO;AACd,UAAO,UAAU,OAAO,MAAM;AAC9B,SAAM;;;CAIV,AAAO,OAAO,QAAiC;AAC7C,OAAK,QACH;GACE,GAAG;GACH,UAAU,IAAI,MAAM;GACrB,EACD,SACD","names":[],"sources":["../../src/utils/EventEmitter.ts"],"version":3,"sourcesContent":["export type OnEvent = (\n labels: Record<string, unknown>,\n type: 'start' | 'finish' | 'single',\n event?: unknown\n) => void;\n\nexport interface IActionCreated {\n actionIdx: string;\n actionType: string;\n type: 'actionCreated';\n}\n\nexport interface ICreatedEvent {\n class: string;\n evaluatedOnly: string[];\n filename: string;\n generation: number;\n idx: string;\n isExportsInherited: boolean;\n only: string[];\n parentId: number | null;\n type: 'created';\n}\n\nexport interface ISupersededEvent {\n type: 'superseded';\n with: number;\n}\n\nexport interface ISetTransformResultEvent {\n isNull: boolean;\n type: 'setTransformResult';\n}\n\nexport type EntrypointEvent =\n | IActionCreated\n | ICreatedEvent\n | ISupersededEvent\n | ISetTransformResultEvent;\n\nexport type OnEntrypointEvent = (\n idx: number,\n timestamp: number,\n event: EntrypointEvent\n) => void;\n\nexport type OnActionStartArgs = [\n phase: 'start',\n timestamp: number,\n type: string,\n idx: string,\n entrypointRef: string,\n];\n\nexport type OnActionFinishArgs = [\n phase: 'finish' | 'fail',\n timestamp: number,\n id: number,\n isAsync: boolean,\n error?: unknown,\n];\n\nexport const isOnActionStartArgs = (\n args: OnActionStartArgs | OnActionFinishArgs\n): args is OnActionStartArgs => {\n return args[0] === 'start';\n};\n\nexport const isOnActionFinishArgs = (\n args: OnActionStartArgs | OnActionFinishArgs\n): args is OnActionFinishArgs => {\n return args[0] === 'finish' || args[0] === 'fail';\n};\n\nexport interface OnAction {\n (...args: OnActionStartArgs): number;\n (...args: OnActionFinishArgs): void;\n}\n\ntype PerfStatus = 'failed' | 'finished';\n\ntype PerfStartEvent = {\n method: string;\n spanId: number;\n startedAt: number;\n type: 'perf-span-start';\n};\n\nexport type PerfFinishEvent = {\n durationMs: number;\n error?: unknown;\n finishedAt: number;\n isAsync: boolean;\n method: string;\n spanId: number;\n startedAt: number;\n status: PerfStatus;\n type: 'perf-span';\n};\n\nexport class EventEmitter {\n static dummy = new EventEmitter(\n () => {},\n () => 0,\n () => {},\n false\n );\n\n private perfSpanId = 0;\n\n constructor(\n protected onEvent: OnEvent,\n protected onAction: OnAction,\n protected onEntrypointEvent: OnEntrypointEvent,\n public readonly enabled = true\n ) {}\n\n public action<TRes>(\n actonType: string,\n idx: string,\n entrypointRef: string,\n fn: () => TRes\n ) {\n const id = this.onAction(\n 'start',\n performance.now(),\n actonType,\n idx,\n entrypointRef\n );\n\n try {\n const result = fn();\n if (result instanceof Promise) {\n result.then(\n () => this.onAction('finish', performance.now(), id, true),\n (e) => this.onAction('fail', performance.now(), id, true, e)\n );\n } else {\n this.onAction('finish', performance.now(), id, false);\n }\n\n return result;\n } catch (e) {\n this.onAction('fail', performance.now(), id, false, e);\n throw e;\n }\n }\n\n public entrypointEvent(sequenceId: number, event: EntrypointEvent) {\n this.onEntrypointEvent(sequenceId, performance.now(), event);\n }\n\n public perf<TRes>(method: string, fn: () => TRes): TRes {\n const spanId = this.perfSpanId;\n this.perfSpanId += 1;\n const startedAt = performance.now();\n const labels = { method };\n const startEvent: PerfStartEvent = {\n method,\n spanId,\n startedAt,\n type: 'perf-span-start',\n };\n\n this.onEvent(labels, 'start', startEvent);\n\n const finish = (status: PerfStatus, isAsync: boolean, error?: unknown) => {\n const finishedAt = performance.now();\n const finishEvent: PerfFinishEvent = {\n durationMs: finishedAt - startedAt,\n finishedAt,\n isAsync,\n method,\n spanId,\n startedAt,\n status,\n type: 'perf-span',\n };\n\n if (error !== undefined) {\n finishEvent.error = error;\n }\n\n this.onEvent(labels, 'finish', finishEvent);\n };\n\n try {\n const result = fn();\n if (result instanceof Promise) {\n result.then(\n () => finish('finished', true),\n (error) => finish('failed', true, error)\n );\n } else {\n finish('finished', false);\n }\n\n return result;\n } catch (error) {\n finish('failed', false, error);\n throw error;\n }\n }\n\n public single(labels: Record<string, unknown>) {\n this.onEvent(\n {\n ...labels,\n datetime: new Date(),\n },\n 'single'\n );\n }\n}\n"],"file":"EventEmitter.js"}
@@ -1,2 +1,2 @@
1
- export const hasShakerMetadata = metadata => metadata !== undefined && 'wywEvaluator' in metadata;
2
- //# sourceMappingURL=ShakerMetadata.js.map
1
+ export const hasShakerMetadata = (metadata) => metadata !== undefined && "wywEvaluator" in metadata;
2
+ //# sourceMappingURL=ShakerMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShakerMetadata.js","names":["hasShakerMetadata","metadata","undefined"],"sources":["../../src/utils/ShakerMetadata.ts"],"sourcesContent":["export interface IShakerMetadata {\n imports: Map<string, string[]>;\n}\n\nexport interface IMetadata {\n wywEvaluator: IShakerMetadata;\n}\n\nexport const hasShakerMetadata = (\n metadata: object | undefined\n): metadata is IMetadata =>\n metadata !== undefined && 'wywEvaluator' in metadata;\n"],"mappings":"AAQA,OAAO,MAAMA,iBAAiB,GAC5BC,QAA4B,IAE5BA,QAAQ,KAAKC,SAAS,IAAI,cAAc,IAAID,QAAQ","ignoreList":[]}
1
+ {"mappings":"AAQA,OAAO,MAAM,qBACX,aAEA,aAAa,aAAa,kBAAkB","names":[],"sources":["../../src/utils/ShakerMetadata.ts"],"version":3,"sourcesContent":["export interface IShakerMetadata {\n imports: Map<string, string[]>;\n}\n\nexport interface IMetadata {\n wywEvaluator: IShakerMetadata;\n}\n\nexport const hasShakerMetadata = (\n metadata: object | undefined\n): metadata is IMetadata =>\n metadata !== undefined && 'wywEvaluator' in metadata;\n"],"file":"ShakerMetadata.js"}
@@ -1,10 +1,10 @@
1
- import { isProcessorDiagnosticArtifact } from '@wyw-in-js/processor-utils';
2
- export const collectTransformDiagnostics = (filename, processors) => processors.flatMap(processor => processor.artifacts.filter(isProcessorDiagnosticArtifact).map(([, diagnostic]) => ({
3
- ...diagnostic,
4
- className: processor.className,
5
- displayName: processor.displayName,
6
- end: diagnostic.end ?? null,
7
- filename,
8
- start: diagnostic.start ?? null
1
+ import { isProcessorDiagnosticArtifact } from "@wyw-in-js/processor-utils";
2
+ export const collectTransformDiagnostics = (filename, processors) => processors.flatMap((processor) => processor.artifacts.filter(isProcessorDiagnosticArtifact).map(([, diagnostic]) => ({
3
+ ...diagnostic,
4
+ className: processor.className,
5
+ displayName: processor.displayName,
6
+ end: diagnostic.end ?? null,
7
+ filename,
8
+ start: diagnostic.start ?? null
9
9
  })));
10
- //# sourceMappingURL=TransformDiagnostics.js.map
10
+ //# sourceMappingURL=TransformDiagnostics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TransformDiagnostics.js","names":["isProcessorDiagnosticArtifact","collectTransformDiagnostics","filename","processors","flatMap","processor","artifacts","filter","map","diagnostic","className","displayName","end","start"],"sources":["../../src/utils/TransformDiagnostics.ts"],"sourcesContent":["import type {\n BaseProcessor,\n ProcessorDiagnostic,\n} from '@wyw-in-js/processor-utils';\nimport { isProcessorDiagnosticArtifact } from '@wyw-in-js/processor-utils';\n\ntype DiagnosticProcessor = Pick<\n BaseProcessor,\n 'artifacts' | 'className' | 'displayName'\n>;\n\nexport type WYWTransformDiagnostic = ProcessorDiagnostic & {\n className: string;\n displayName: string;\n filename: string;\n};\n\nexport const collectTransformDiagnostics = (\n filename: string,\n processors: DiagnosticProcessor[]\n): WYWTransformDiagnostic[] =>\n processors.flatMap((processor) =>\n processor.artifacts\n .filter(isProcessorDiagnosticArtifact)\n .map(([, diagnostic]) => ({\n ...diagnostic,\n className: processor.className,\n displayName: processor.displayName,\n end: diagnostic.end ?? null,\n filename,\n start: diagnostic.start ?? null,\n }))\n );\n"],"mappings":"AAIA,SAASA,6BAA6B,QAAQ,4BAA4B;AAa1E,OAAO,MAAMC,2BAA2B,GAAGA,CACzCC,QAAgB,EAChBC,UAAiC,KAEjCA,UAAU,CAACC,OAAO,CAAEC,SAAS,IAC3BA,SAAS,CAACC,SAAS,CAChBC,MAAM,CAACP,6BAA6B,CAAC,CACrCQ,GAAG,CAAC,CAAC,GAAGC,UAAU,CAAC,MAAM;EACxB,GAAGA,UAAU;EACbC,SAAS,EAAEL,SAAS,CAACK,SAAS;EAC9BC,WAAW,EAAEN,SAAS,CAACM,WAAW;EAClCC,GAAG,EAAEH,UAAU,CAACG,GAAG,IAAI,IAAI;EAC3BV,QAAQ;EACRW,KAAK,EAAEJ,UAAU,CAACI,KAAK,IAAI;AAC7B,CAAC,CAAC,CACN,CAAC","ignoreList":[]}
1
+ {"mappings":"AAIA,SAAS,qCAAqC;AAa9C,OAAO,MAAM,+BACX,UACA,eAEA,WAAW,SAAS,cAClB,UAAU,UACP,OAAO,8BAA8B,CACrC,KAAK,GAAG,iBAAiB;CACxB,GAAG;CACH,WAAW,UAAU;CACrB,aAAa,UAAU;CACvB,KAAK,WAAW,OAAO;CACvB;CACA,OAAO,WAAW,SAAS;CAC5B,EAAE,CACN","names":[],"sources":["../../src/utils/TransformDiagnostics.ts"],"version":3,"sourcesContent":["import type {\n BaseProcessor,\n ProcessorDiagnostic,\n} from '@wyw-in-js/processor-utils';\nimport { isProcessorDiagnosticArtifact } from '@wyw-in-js/processor-utils';\n\ntype DiagnosticProcessor = Pick<\n BaseProcessor,\n 'artifacts' | 'className' | 'displayName'\n>;\n\nexport type WYWTransformDiagnostic = ProcessorDiagnostic & {\n className: string;\n displayName: string;\n filename: string;\n};\n\nexport const collectTransformDiagnostics = (\n filename: string,\n processors: DiagnosticProcessor[]\n): WYWTransformDiagnostic[] =>\n processors.flatMap((processor) =>\n processor.artifacts\n .filter(isProcessorDiagnosticArtifact)\n .map(([, diagnostic]) => ({\n ...diagnostic,\n className: processor.className,\n displayName: processor.displayName,\n end: diagnostic.end ?? null,\n filename,\n start: diagnostic.start ?? null,\n }))\n );\n"],"file":"TransformDiagnostics.js"}