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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (801) hide show
  1. package/esm/cache.js +433 -289
  2. package/esm/cache.js.map +1 -1
  3. package/esm/debug/fileReporter.js +171 -134
  4. package/esm/debug/fileReporter.js.map +1 -1
  5. package/esm/eval/broker.js +2275 -0
  6. package/esm/eval/broker.js.map +1 -0
  7. package/esm/eval/lru.js +36 -0
  8. package/esm/eval/lru.js.map +1 -0
  9. package/esm/eval/prepareModuleOnDemand.js +21 -0
  10. package/esm/eval/prepareModuleOnDemand.js.map +1 -0
  11. package/esm/eval/protocol.js +2 -0
  12. package/esm/eval/protocol.js.map +1 -0
  13. package/esm/eval/runner.js +1878 -0
  14. package/esm/eval/runner.js.map +1 -0
  15. package/esm/eval/serialize.js +333 -0
  16. package/esm/eval/serialize.js.map +1 -0
  17. package/esm/eval/writeQueue.js +81 -0
  18. package/esm/eval/writeQueue.js.map +1 -0
  19. package/esm/evaluators/index.js +11 -12
  20. package/esm/evaluators/index.js.map +1 -1
  21. package/esm/index.js +25 -29
  22. package/esm/index.js.map +1 -1
  23. package/esm/module.js +923 -520
  24. package/esm/module.js.map +1 -1
  25. package/esm/shaker.js +14 -80
  26. package/esm/shaker.js.map +1 -1
  27. package/esm/transform/BaseEntrypoint.js +162 -164
  28. package/esm/transform/BaseEntrypoint.js.map +1 -1
  29. package/esm/transform/Entrypoint.helpers.js +96 -253
  30. package/esm/transform/Entrypoint.helpers.js.map +1 -1
  31. package/esm/transform/Entrypoint.js +336 -270
  32. package/esm/transform/Entrypoint.js.map +1 -1
  33. package/esm/transform/Entrypoint.types.js +1 -1
  34. package/esm/transform/Entrypoint.types.js.map +1 -1
  35. package/esm/transform/EvaluatedEntrypoint.js +10 -4
  36. package/esm/transform/EvaluatedEntrypoint.js.map +1 -1
  37. package/esm/transform/actions/AbortError.js +6 -6
  38. package/esm/transform/actions/AbortError.js.map +1 -1
  39. package/esm/transform/actions/BaseAction.js +140 -136
  40. package/esm/transform/actions/BaseAction.js.map +1 -1
  41. package/esm/transform/actions/UnprocessedEntrypointError.js +6 -6
  42. package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -1
  43. package/esm/transform/actions/actionRunner.js +63 -66
  44. package/esm/transform/actions/actionRunner.js.map +1 -1
  45. package/esm/transform/actions/types.js +1 -1
  46. package/esm/transform/actions/types.js.map +1 -1
  47. package/esm/transform/barrelManifest.types.js +2 -0
  48. package/esm/transform/barrelManifest.types.js.map +1 -0
  49. package/esm/transform/generators/baseProcessingHandlers.js +15 -17
  50. package/esm/transform/generators/baseProcessingHandlers.js.map +1 -1
  51. package/esm/transform/generators/collect.js +27 -55
  52. package/esm/transform/generators/collect.js.map +1 -1
  53. package/esm/transform/generators/createStylisPreprocessor.js +353 -321
  54. package/esm/transform/generators/createStylisPreprocessor.js.map +1 -1
  55. package/esm/transform/generators/evalFile.js +48 -47
  56. package/esm/transform/generators/evalFile.js.map +1 -1
  57. package/esm/transform/generators/extract.js +78 -90
  58. package/esm/transform/generators/extract.js.map +1 -1
  59. package/esm/transform/generators/getExports.js +57 -74
  60. package/esm/transform/generators/getExports.js.map +1 -1
  61. package/esm/transform/generators/index.js +11 -11
  62. package/esm/transform/generators/index.js.map +1 -1
  63. package/esm/transform/generators/processEntrypoint.js +93 -67
  64. package/esm/transform/generators/processEntrypoint.js.map +1 -1
  65. package/esm/transform/generators/processImports.js +102 -67
  66. package/esm/transform/generators/processImports.js.map +1 -1
  67. package/esm/transform/generators/resolveImports.js +212 -197
  68. package/esm/transform/generators/resolveImports.js.map +1 -1
  69. package/esm/transform/generators/resolveStaticOxcValues/cache.js +182 -0
  70. package/esm/transform/generators/resolveStaticOxcValues/cache.js.map +1 -0
  71. package/esm/transform/generators/resolveStaticOxcValues/candidateResolver.js +146 -0
  72. package/esm/transform/generators/resolveStaticOxcValues/candidateResolver.js.map +1 -0
  73. package/esm/transform/generators/resolveStaticOxcValues/dependencies.js +33 -0
  74. package/esm/transform/generators/resolveStaticOxcValues/dependencies.js.map +1 -0
  75. package/esm/transform/generators/resolveStaticOxcValues/environment.js +29 -0
  76. package/esm/transform/generators/resolveStaticOxcValues/environment.js.map +1 -0
  77. package/esm/transform/generators/resolveStaticOxcValues/exportResolver.js +351 -0
  78. package/esm/transform/generators/resolveStaticOxcValues/exportResolver.js.map +1 -0
  79. package/esm/transform/generators/resolveStaticOxcValues/exportTargets.js +253 -0
  80. package/esm/transform/generators/resolveStaticOxcValues/exportTargets.js.map +1 -0
  81. package/esm/transform/generators/resolveStaticOxcValues/objectAssign.js +310 -0
  82. package/esm/transform/generators/resolveStaticOxcValues/objectAssign.js.map +1 -0
  83. package/esm/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js +74 -0
  84. package/esm/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js.map +1 -0
  85. package/esm/transform/generators/resolveStaticOxcValues/opaqueRuntime.js +229 -0
  86. package/esm/transform/generators/resolveStaticOxcValues/opaqueRuntime.js.map +1 -0
  87. package/esm/transform/generators/resolveStaticOxcValues/processorStaticExport.js +172 -0
  88. package/esm/transform/generators/resolveStaticOxcValues/processorStaticExport.js.map +1 -0
  89. package/esm/transform/generators/resolveStaticOxcValues/processorStaticModel.js +476 -0
  90. package/esm/transform/generators/resolveStaticOxcValues/processorStaticModel.js.map +1 -0
  91. package/esm/transform/generators/resolveStaticOxcValues/processorTarget.js +55 -0
  92. package/esm/transform/generators/resolveStaticOxcValues/processorTarget.js.map +1 -0
  93. package/esm/transform/generators/resolveStaticOxcValues/programAnalysis.js +123 -0
  94. package/esm/transform/generators/resolveStaticOxcValues/programAnalysis.js.map +1 -0
  95. package/esm/transform/generators/resolveStaticOxcValues/prune.js +186 -0
  96. package/esm/transform/generators/resolveStaticOxcValues/prune.js.map +1 -0
  97. package/esm/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js +183 -0
  98. package/esm/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js.map +1 -0
  99. package/esm/transform/generators/resolveStaticOxcValues/staticExpression.js +298 -0
  100. package/esm/transform/generators/resolveStaticOxcValues/staticExpression.js.map +1 -0
  101. package/esm/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js +298 -0
  102. package/esm/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js.map +1 -0
  103. package/esm/transform/generators/resolveStaticOxcValues/types.js +3 -0
  104. package/esm/transform/generators/resolveStaticOxcValues/types.js.map +1 -0
  105. package/esm/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js +59 -0
  106. package/esm/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js.map +1 -0
  107. package/esm/transform/generators/resolveStaticOxcValues.js +2 -0
  108. package/esm/transform/generators/resolveStaticOxcValues.js.map +1 -0
  109. package/esm/transform/generators/rewriteOxcBarrelImports.js +822 -0
  110. package/esm/transform/generators/rewriteOxcBarrelImports.js.map +1 -0
  111. package/esm/transform/generators/transform.js +251 -248
  112. package/esm/transform/generators/transform.js.map +1 -1
  113. package/esm/transform/generators/workflow.js +87 -90
  114. package/esm/transform/generators/workflow.js.map +1 -1
  115. package/esm/transform/helpers/loadWywOptions.js +183 -74
  116. package/esm/transform/helpers/loadWywOptions.js.map +1 -1
  117. package/esm/transform/helpers/withDefaultServices.js +13 -22
  118. package/esm/transform/helpers/withDefaultServices.js.map +1 -1
  119. package/esm/transform/isStaticallyEvaluatableModule.js +140 -152
  120. package/esm/transform/isStaticallyEvaluatableModule.js.map +1 -1
  121. package/esm/transform/oxcBarrelManifest.js +349 -0
  122. package/esm/transform/oxcBarrelManifest.js.map +1 -0
  123. package/esm/transform/rootLog.js +3 -3
  124. package/esm/transform/rootLog.js.map +1 -1
  125. package/esm/transform/syntax.js +2 -0
  126. package/esm/transform/syntax.js.map +1 -0
  127. package/esm/transform/types.js +2 -2
  128. package/esm/transform/types.js.map +1 -1
  129. package/esm/transform.js +125 -147
  130. package/esm/transform.js.map +1 -1
  131. package/esm/types.js +4 -1
  132. package/esm/types.js.map +1 -1
  133. package/esm/utils/EventEmitter.js +79 -48
  134. package/esm/utils/EventEmitter.js.map +1 -1
  135. package/esm/utils/ShakerMetadata.js +2 -2
  136. package/esm/utils/ShakerMetadata.js.map +1 -1
  137. package/esm/utils/TransformDiagnostics.js +9 -9
  138. package/esm/utils/TransformDiagnostics.js.map +1 -1
  139. package/esm/utils/TransformMetadata.js +24 -26
  140. package/esm/utils/TransformMetadata.js.map +1 -1
  141. package/esm/utils/applyOxcProcessors/applyOxcProcessors.js +160 -0
  142. package/esm/utils/applyOxcProcessors/applyOxcProcessors.js.map +1 -0
  143. package/esm/utils/applyOxcProcessors/cleanupBindings.js +157 -0
  144. package/esm/utils/applyOxcProcessors/cleanupBindings.js.map +1 -0
  145. package/esm/utils/applyOxcProcessors/cleanupRemovals.js +431 -0
  146. package/esm/utils/applyOxcProcessors/cleanupRemovals.js.map +1 -0
  147. package/esm/utils/applyOxcProcessors/displayName.js +93 -0
  148. package/esm/utils/applyOxcProcessors/displayName.js.map +1 -0
  149. package/esm/utils/applyOxcProcessors/expressionValues.js +152 -0
  150. package/esm/utils/applyOxcProcessors/expressionValues.js.map +1 -0
  151. package/esm/utils/applyOxcProcessors/processorFactory.js +62 -0
  152. package/esm/utils/applyOxcProcessors/processorFactory.js.map +1 -0
  153. package/esm/utils/applyOxcProcessors/processorUsages.js +143 -0
  154. package/esm/utils/applyOxcProcessors/processorUsages.js.map +1 -0
  155. package/esm/utils/applyOxcProcessors/sameFileStaticValues.js +207 -0
  156. package/esm/utils/applyOxcProcessors/sameFileStaticValues.js.map +1 -0
  157. package/esm/utils/applyOxcProcessors/shared.js +29 -0
  158. package/esm/utils/applyOxcProcessors/shared.js.map +1 -0
  159. package/esm/utils/applyOxcProcessors/types.js +2 -0
  160. package/esm/utils/applyOxcProcessors/types.js.map +1 -0
  161. package/esm/utils/applyOxcProcessors.js +2 -0
  162. package/esm/utils/applyOxcProcessors.js.map +1 -0
  163. package/esm/utils/collectOxcExportsAndImports.js +934 -0
  164. package/esm/utils/collectOxcExportsAndImports.js.map +1 -0
  165. package/esm/utils/collectOxcRuntime/normalizeRuntimeCode.js +157 -0
  166. package/esm/utils/collectOxcRuntime/normalizeRuntimeCode.js.map +1 -0
  167. package/esm/utils/collectOxcRuntime/sourceMap.js +36 -0
  168. package/esm/utils/collectOxcRuntime/sourceMap.js.map +1 -0
  169. package/esm/utils/collectOxcRuntime/types.js +2 -0
  170. package/esm/utils/collectOxcRuntime/types.js.map +1 -0
  171. package/esm/utils/collectOxcRuntime.js +32 -0
  172. package/esm/utils/collectOxcRuntime.js.map +1 -0
  173. package/esm/utils/collectOxcTemplateDependencies/expressionExtraction.js +496 -0
  174. package/esm/utils/collectOxcTemplateDependencies/expressionExtraction.js.map +1 -0
  175. package/esm/utils/collectOxcTemplateDependencies/expressionReplacements.js +113 -0
  176. package/esm/utils/collectOxcTemplateDependencies/expressionReplacements.js.map +1 -0
  177. package/esm/utils/collectOxcTemplateDependencies/scopeAnalysis.js +387 -0
  178. package/esm/utils/collectOxcTemplateDependencies/scopeAnalysis.js.map +1 -0
  179. package/esm/utils/collectOxcTemplateDependencies/staticBindings.js +17 -0
  180. package/esm/utils/collectOxcTemplateDependencies/staticBindings.js.map +1 -0
  181. package/esm/utils/collectOxcTemplateDependencies/staticEvaluator.js +540 -0
  182. package/esm/utils/collectOxcTemplateDependencies/staticEvaluator.js.map +1 -0
  183. package/esm/utils/collectOxcTemplateDependencies/types.js +2 -0
  184. package/esm/utils/collectOxcTemplateDependencies/types.js.map +1 -0
  185. package/esm/utils/collectOxcTemplateDependencies.js +4 -0
  186. package/esm/utils/collectOxcTemplateDependencies.js.map +1 -0
  187. package/esm/utils/dispose-polyfill.js +3 -4
  188. package/esm/utils/dispose-polyfill.js.map +1 -1
  189. package/esm/utils/getFileIdx.js +6 -6
  190. package/esm/utils/getFileIdx.js.map +1 -1
  191. package/esm/utils/getPluginKey.js +12 -12
  192. package/esm/utils/getPluginKey.js.map +1 -1
  193. package/esm/utils/getVisitorKeys.js +9 -3
  194. package/esm/utils/getVisitorKeys.js.map +1 -1
  195. package/esm/utils/hasCachedWywPrevalExport.js +23 -0
  196. package/esm/utils/hasCachedWywPrevalExport.js.map +1 -0
  197. package/esm/utils/hasWywPreval.js +5 -5
  198. package/esm/utils/hasWywPreval.js.map +1 -1
  199. package/esm/utils/importOverrides.js +75 -90
  200. package/esm/utils/importOverrides.js.map +1 -1
  201. package/esm/utils/isNode.js +2 -2
  202. package/esm/utils/isNode.js.map +1 -1
  203. package/esm/utils/isNotNull.js +2 -2
  204. package/esm/utils/isNotNull.js.map +1 -1
  205. package/esm/utils/isSerializable.js +11 -11
  206. package/esm/utils/isSerializable.js.map +1 -1
  207. package/esm/utils/nativeResolver.js +93 -0
  208. package/esm/utils/nativeResolver.js.map +1 -0
  209. package/esm/utils/oxc/ast.js +28 -0
  210. package/esm/utils/oxc/ast.js.map +1 -0
  211. package/esm/utils/oxc/parse.js +3 -0
  212. package/esm/utils/oxc/parse.js.map +1 -0
  213. package/esm/utils/oxc/replacements.js +14 -0
  214. package/esm/utils/oxc/replacements.js.map +1 -0
  215. package/esm/utils/oxc/sourceLocations.js +59 -0
  216. package/esm/utils/oxc/sourceLocations.js.map +1 -0
  217. package/esm/utils/oxcAstService.js +121 -0
  218. package/esm/utils/oxcAstService.js.map +1 -0
  219. package/esm/utils/oxcEmit.js +447 -0
  220. package/esm/utils/oxcEmit.js.map +1 -0
  221. package/esm/utils/oxcPreevalStage/evalStrategy.js +3 -0
  222. package/esm/utils/oxcPreevalStage/evalStrategy.js.map +1 -0
  223. package/esm/utils/oxcPreevalStage/prepareCode.js +21 -0
  224. package/esm/utils/oxcPreevalStage/prepareCode.js.map +1 -0
  225. package/esm/utils/oxcPreevalStage/prevalExport.js +23 -0
  226. package/esm/utils/oxcPreevalStage/prevalExport.js.map +1 -0
  227. package/esm/utils/oxcPreevalStage/processors.js +17 -0
  228. package/esm/utils/oxcPreevalStage/processors.js.map +1 -0
  229. package/esm/utils/oxcPreevalStage/staticOverlay.js +18 -0
  230. package/esm/utils/oxcPreevalStage/staticOverlay.js.map +1 -0
  231. package/esm/utils/oxcPreevalStage/types.js +2 -0
  232. package/esm/utils/oxcPreevalStage/types.js.map +1 -0
  233. package/esm/utils/oxcPreevalStage.js +41 -0
  234. package/esm/utils/oxcPreevalStage.js.map +1 -0
  235. package/esm/utils/oxcPreevalTransforms.js +1065 -0
  236. package/esm/utils/oxcPreevalTransforms.js.map +1 -0
  237. package/esm/utils/oxcShaker.js +662 -0
  238. package/esm/utils/oxcShaker.js.map +1 -0
  239. package/esm/utils/parseOxc.js +37 -0
  240. package/esm/utils/parseOxc.js.map +1 -0
  241. package/esm/utils/parseRequest.js +27 -27
  242. package/esm/utils/parseRequest.js.map +1 -1
  243. package/esm/utils/peek.js +1 -1
  244. package/esm/utils/peek.js.map +1 -1
  245. package/esm/utils/processorLookup.js +125 -0
  246. package/esm/utils/processorLookup.js.map +1 -0
  247. package/esm/utils/processorStaticSemantics.js +157 -0
  248. package/esm/utils/processorStaticSemantics.js.map +1 -0
  249. package/esm/utils/resolveWithConditions.js +99 -0
  250. package/esm/utils/resolveWithConditions.js.map +1 -0
  251. package/esm/vm/createVmContext.js +140 -141
  252. package/esm/vm/createVmContext.js.map +1 -1
  253. package/esm/vm/process.js +11 -13
  254. package/esm/vm/process.js.map +1 -1
  255. package/package.json +19 -26
  256. package/types/cache.d.ts +17 -8
  257. package/types/cache.js +245 -95
  258. package/types/debug/fileReporter.js +68 -23
  259. package/types/eval/broker.d.ts +92 -0
  260. package/types/eval/broker.js +2411 -0
  261. package/types/eval/lru.d.ts +10 -0
  262. package/types/eval/lru.js +36 -0
  263. package/types/eval/prepareModuleOnDemand.d.ts +7 -0
  264. package/types/eval/prepareModuleOnDemand.js +24 -0
  265. package/types/eval/protocol.d.ts +111 -0
  266. package/types/eval/protocol.js +1 -0
  267. package/types/eval/serialize.d.ts +78 -0
  268. package/types/eval/serialize.js +357 -0
  269. package/types/eval/writeQueue.d.ts +13 -0
  270. package/types/eval/writeQueue.js +80 -0
  271. package/types/evaluators/index.d.ts +2 -2
  272. package/types/evaluators/index.js +6 -9
  273. package/types/index.d.ts +3 -6
  274. package/types/index.js +24 -82
  275. package/types/module.d.ts +38 -7
  276. package/types/module.js +613 -192
  277. package/types/shaker.d.ts +2 -10
  278. package/types/shaker.js +10 -100
  279. package/types/transform/BaseEntrypoint.js +6 -11
  280. package/types/transform/Entrypoint.d.ts +15 -15
  281. package/types/transform/Entrypoint.helpers.d.ts +2 -5
  282. package/types/transform/Entrypoint.helpers.js +43 -203
  283. package/types/transform/Entrypoint.js +130 -53
  284. package/types/transform/Entrypoint.types.d.ts +31 -6
  285. package/types/transform/Entrypoint.types.js +1 -2
  286. package/types/transform/EvaluatedEntrypoint.d.ts +13 -2
  287. package/types/transform/EvaluatedEntrypoint.js +7 -6
  288. package/types/transform/actions/AbortError.js +2 -7
  289. package/types/transform/actions/BaseAction.js +4 -8
  290. package/types/transform/actions/UnprocessedEntrypointError.js +2 -7
  291. package/types/transform/actions/actionRunner.js +8 -12
  292. package/types/transform/actions/types.d.ts +2 -2
  293. package/types/transform/actions/types.js +1 -2
  294. package/types/transform/{barrelManifest.d.ts → barrelManifest.types.d.ts} +0 -2
  295. package/types/transform/barrelManifest.types.js +1 -0
  296. package/types/transform/generators/baseProcessingHandlers.d.ts +4 -5
  297. package/types/transform/generators/baseProcessingHandlers.js +10 -14
  298. package/types/transform/generators/collect.js +13 -39
  299. package/types/transform/generators/createStylisPreprocessor.js +19 -60
  300. package/types/transform/generators/evalFile.d.ts +2 -2
  301. package/types/transform/generators/evalFile.js +26 -28
  302. package/types/transform/generators/extract.js +5 -8
  303. package/types/transform/generators/getExports.js +23 -30
  304. package/types/transform/generators/index.d.ts +2 -2
  305. package/types/transform/generators/index.js +11 -14
  306. package/types/transform/generators/processEntrypoint.d.ts +2 -2
  307. package/types/transform/generators/processEntrypoint.js +60 -26
  308. package/types/transform/generators/processImports.d.ts +0 -3
  309. package/types/transform/generators/processImports.js +60 -20
  310. package/types/transform/generators/resolveImports.d.ts +3 -1
  311. package/types/transform/generators/resolveImports.js +66 -23
  312. package/types/transform/generators/resolveStaticOxcValues/cache.d.ts +25 -0
  313. package/types/transform/generators/resolveStaticOxcValues/cache.js +182 -0
  314. package/types/transform/generators/resolveStaticOxcValues/candidateResolver.d.ts +5 -0
  315. package/types/transform/generators/resolveStaticOxcValues/candidateResolver.js +149 -0
  316. package/types/transform/generators/resolveStaticOxcValues/dependencies.d.ts +6 -0
  317. package/types/transform/generators/resolveStaticOxcValues/dependencies.js +37 -0
  318. package/types/transform/generators/resolveStaticOxcValues/environment.d.ts +12 -0
  319. package/types/transform/generators/resolveStaticOxcValues/environment.js +32 -0
  320. package/types/transform/generators/resolveStaticOxcValues/exportResolver.d.ts +4 -0
  321. package/types/transform/generators/resolveStaticOxcValues/exportResolver.js +358 -0
  322. package/types/transform/generators/resolveStaticOxcValues/exportTargets.d.ts +20 -0
  323. package/types/transform/generators/resolveStaticOxcValues/exportTargets.js +285 -0
  324. package/types/transform/generators/resolveStaticOxcValues/objectAssign.d.ts +41 -0
  325. package/types/transform/generators/resolveStaticOxcValues/objectAssign.js +352 -0
  326. package/types/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.d.ts +6 -0
  327. package/types/transform/generators/resolveStaticOxcValues/objectAssignStaticExport.js +88 -0
  328. package/types/transform/generators/resolveStaticOxcValues/opaqueRuntime.d.ts +13 -0
  329. package/types/transform/generators/resolveStaticOxcValues/opaqueRuntime.js +263 -0
  330. package/types/transform/generators/resolveStaticOxcValues/processorStaticExport.d.ts +4 -0
  331. package/types/transform/generators/resolveStaticOxcValues/processorStaticExport.js +191 -0
  332. package/types/transform/generators/resolveStaticOxcValues/processorStaticModel.d.ts +40 -0
  333. package/types/transform/generators/resolveStaticOxcValues/processorStaticModel.js +516 -0
  334. package/types/transform/generators/resolveStaticOxcValues/processorTarget.d.ts +5 -0
  335. package/types/transform/generators/resolveStaticOxcValues/processorTarget.js +62 -0
  336. package/types/transform/generators/resolveStaticOxcValues/programAnalysis.d.ts +11 -0
  337. package/types/transform/generators/resolveStaticOxcValues/programAnalysis.js +133 -0
  338. package/types/transform/generators/resolveStaticOxcValues/prune.d.ts +15 -0
  339. package/types/transform/generators/resolveStaticOxcValues/prune.js +220 -0
  340. package/types/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.d.ts +2 -0
  341. package/types/transform/generators/resolveStaticOxcValues/resolveStaticOxcPreevalValues.js +197 -0
  342. package/types/transform/generators/resolveStaticOxcValues/staticExpression.d.ts +25 -0
  343. package/types/transform/generators/resolveStaticOxcValues/staticExpression.js +391 -0
  344. package/types/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.d.ts +14 -0
  345. package/types/transform/generators/resolveStaticOxcValues/staticExpressionDependencies.js +304 -0
  346. package/types/transform/generators/resolveStaticOxcValues/types.d.ts +99 -0
  347. package/types/transform/generators/resolveStaticOxcValues/types.js +2 -0
  348. package/types/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.d.ts +7 -0
  349. package/types/transform/generators/resolveStaticOxcValues/zeroArgFunctionStaticExport.js +64 -0
  350. package/types/transform/generators/resolveStaticOxcValues.d.ts +1 -0
  351. package/types/transform/generators/resolveStaticOxcValues.js +1 -0
  352. package/types/transform/generators/{rewriteBarrelImports.d.ts → rewriteOxcBarrelImports.d.ts} +2 -3
  353. package/types/transform/generators/{rewriteBarrelImports.js → rewriteOxcBarrelImports.js} +282 -225
  354. package/types/transform/generators/transform.d.ts +3 -7
  355. package/types/transform/generators/transform.js +217 -199
  356. package/types/transform/generators/workflow.js +62 -45
  357. package/types/transform/helpers/loadWywOptions.js +115 -21
  358. package/types/transform/helpers/withDefaultServices.d.ts +1 -1
  359. package/types/transform/helpers/withDefaultServices.js +6 -44
  360. package/types/transform/isStaticallyEvaluatableModule.d.ts +1 -2
  361. package/types/transform/isStaticallyEvaluatableModule.js +125 -126
  362. package/types/transform/oxcBarrelManifest.d.ts +2 -0
  363. package/types/transform/{barrelManifest.js → oxcBarrelManifest.js} +156 -97
  364. package/types/transform/rootLog.js +2 -5
  365. package/types/transform/syntax.d.ts +38 -0
  366. package/types/transform/syntax.js +1 -0
  367. package/types/transform/types.d.ts +9 -6
  368. package/types/transform/types.js +1 -4
  369. package/types/transform.d.ts +2 -2
  370. package/types/transform.js +90 -101
  371. package/types/types.d.ts +0 -23
  372. package/types/types.js +1 -2
  373. package/types/utils/EventEmitter.d.ts +16 -1
  374. package/types/utils/EventEmitter.js +47 -18
  375. package/types/utils/ShakerMetadata.js +1 -5
  376. package/types/utils/TransformDiagnostics.js +3 -7
  377. package/types/utils/TransformMetadata.js +8 -16
  378. package/types/utils/applyOxcProcessors/applyOxcProcessors.d.ts +8 -0
  379. package/types/utils/applyOxcProcessors/applyOxcProcessors.js +167 -0
  380. package/types/utils/applyOxcProcessors/cleanupBindings.d.ts +12 -0
  381. package/types/utils/applyOxcProcessors/cleanupBindings.js +189 -0
  382. package/types/utils/applyOxcProcessors/cleanupRemovals.d.ts +16 -0
  383. package/types/utils/applyOxcProcessors/cleanupRemovals.js +482 -0
  384. package/types/utils/applyOxcProcessors/displayName.d.ts +9 -0
  385. package/types/utils/applyOxcProcessors/displayName.js +113 -0
  386. package/types/utils/applyOxcProcessors/expressionValues.d.ts +11 -0
  387. package/types/utils/applyOxcProcessors/expressionValues.js +170 -0
  388. package/types/utils/applyOxcProcessors/processorFactory.d.ts +7 -0
  389. package/types/utils/applyOxcProcessors/processorFactory.js +70 -0
  390. package/types/utils/applyOxcProcessors/processorUsages.d.ts +16 -0
  391. package/types/utils/applyOxcProcessors/processorUsages.js +163 -0
  392. package/types/utils/applyOxcProcessors/sameFileStaticValues.d.ts +23 -0
  393. package/types/utils/applyOxcProcessors/sameFileStaticValues.js +211 -0
  394. package/types/utils/applyOxcProcessors/shared.d.ts +10 -0
  395. package/types/utils/applyOxcProcessors/shared.js +37 -0
  396. package/types/utils/applyOxcProcessors/types.d.ts +88 -0
  397. package/types/utils/applyOxcProcessors/types.js +1 -0
  398. package/types/utils/applyOxcProcessors.d.ts +1 -0
  399. package/types/utils/applyOxcProcessors.js +1 -0
  400. package/types/utils/collectOxcExportsAndImports.d.ts +35 -0
  401. package/types/utils/collectOxcExportsAndImports.js +957 -0
  402. package/types/utils/collectOxcRuntime/normalizeRuntimeCode.d.ts +1 -0
  403. package/types/utils/collectOxcRuntime/normalizeRuntimeCode.js +185 -0
  404. package/types/utils/collectOxcRuntime/sourceMap.d.ts +2 -0
  405. package/types/utils/collectOxcRuntime/sourceMap.js +37 -0
  406. package/types/utils/collectOxcRuntime/types.d.ts +16 -0
  407. package/types/utils/collectOxcRuntime/types.js +1 -0
  408. package/types/utils/collectOxcRuntime.d.ts +4 -0
  409. package/types/utils/collectOxcRuntime.js +31 -0
  410. package/types/utils/collectOxcTemplateDependencies/expressionExtraction.d.ts +6 -0
  411. package/types/utils/collectOxcTemplateDependencies/expressionExtraction.js +550 -0
  412. package/types/utils/collectOxcTemplateDependencies/expressionReplacements.d.ts +11 -0
  413. package/types/utils/collectOxcTemplateDependencies/expressionReplacements.js +131 -0
  414. package/types/utils/collectOxcTemplateDependencies/scopeAnalysis.d.ts +20 -0
  415. package/types/utils/collectOxcTemplateDependencies/scopeAnalysis.js +434 -0
  416. package/types/utils/collectOxcTemplateDependencies/staticBindings.d.ts +7 -0
  417. package/types/utils/collectOxcTemplateDependencies/staticBindings.js +13 -0
  418. package/types/utils/collectOxcTemplateDependencies/staticEvaluator.d.ts +13 -0
  419. package/types/utils/collectOxcTemplateDependencies/staticEvaluator.js +626 -0
  420. package/types/utils/collectOxcTemplateDependencies/types.d.ts +116 -0
  421. package/types/utils/collectOxcTemplateDependencies/types.js +1 -0
  422. package/types/utils/collectOxcTemplateDependencies.d.ts +4 -0
  423. package/types/utils/collectOxcTemplateDependencies.js +3 -0
  424. package/types/utils/getFileIdx.js +1 -4
  425. package/types/utils/getPluginKey.d.ts +5 -2
  426. package/types/utils/getPluginKey.js +2 -6
  427. package/types/utils/getVisitorKeys.d.ts +4 -4
  428. package/types/utils/getVisitorKeys.js +9 -6
  429. package/types/utils/hasCachedWywPrevalExport.d.ts +14 -0
  430. package/types/utils/hasCachedWywPrevalExport.js +30 -0
  431. package/types/utils/hasWywPreval.js +1 -4
  432. package/types/utils/importOverrides.js +17 -27
  433. package/types/utils/isNode.d.ts +2 -2
  434. package/types/utils/isNode.js +2 -6
  435. package/types/utils/isNotNull.js +1 -4
  436. package/types/utils/isSerializable.js +3 -6
  437. package/types/utils/nativeResolver.d.ts +13 -0
  438. package/types/utils/nativeResolver.js +91 -0
  439. package/types/utils/oxc/ast.d.ts +4 -0
  440. package/types/utils/oxc/ast.js +37 -0
  441. package/types/utils/oxc/parse.d.ts +3 -0
  442. package/types/utils/oxc/parse.js +2 -0
  443. package/types/utils/oxc/replacements.d.ts +12 -0
  444. package/types/utils/oxc/replacements.js +18 -0
  445. package/types/utils/oxc/sourceLocations.d.ts +5 -0
  446. package/types/utils/oxc/sourceLocations.js +63 -0
  447. package/types/utils/oxcAstService.d.ts +11 -0
  448. package/types/utils/oxcAstService.js +79 -0
  449. package/types/utils/oxcEmit.d.ts +19 -0
  450. package/types/utils/oxcEmit.js +506 -0
  451. package/types/utils/oxcPreevalStage/evalStrategy.d.ts +3 -0
  452. package/types/utils/oxcPreevalStage/evalStrategy.js +2 -0
  453. package/types/utils/oxcPreevalStage/prepareCode.d.ts +3 -0
  454. package/types/utils/oxcPreevalStage/prepareCode.js +20 -0
  455. package/types/utils/oxcPreevalStage/prevalExport.d.ts +1 -0
  456. package/types/utils/oxcPreevalStage/prevalExport.js +22 -0
  457. package/types/utils/oxcPreevalStage/processors.d.ts +10 -0
  458. package/types/utils/oxcPreevalStage/processors.js +16 -0
  459. package/types/utils/oxcPreevalStage/staticOverlay.d.ts +3 -0
  460. package/types/utils/oxcPreevalStage/staticOverlay.js +23 -0
  461. package/types/utils/oxcPreevalStage/types.d.ts +22 -0
  462. package/types/utils/oxcPreevalStage/types.js +1 -0
  463. package/types/utils/oxcPreevalStage.d.ts +4 -0
  464. package/types/utils/oxcPreevalStage.js +40 -0
  465. package/types/utils/oxcPreevalTransforms.d.ts +13 -0
  466. package/types/utils/oxcPreevalTransforms.js +1192 -0
  467. package/types/utils/oxcShaker.d.ts +13 -0
  468. package/types/utils/oxcShaker.js +751 -0
  469. package/types/utils/parseOxc.d.ts +11 -0
  470. package/types/utils/parseOxc.js +38 -0
  471. package/types/utils/parseRequest.js +2 -7
  472. package/types/utils/peek.js +1 -5
  473. package/types/utils/processorLookup.d.ts +8 -0
  474. package/types/utils/processorLookup.js +135 -0
  475. package/types/utils/processorStaticSemantics.d.ts +13 -0
  476. package/types/utils/processorStaticSemantics.js +191 -0
  477. package/types/utils/resolveWithConditions.d.ts +12 -0
  478. package/types/utils/resolveWithConditions.js +103 -0
  479. package/types/vm/createVmContext.d.ts +2 -2
  480. package/types/vm/createVmContext.js +25 -62
  481. package/types/vm/process.js +20 -26
  482. package/esm/babel.js +0 -2
  483. package/esm/babel.js.map +0 -1
  484. package/esm/options/buildOptions.js +0 -168
  485. package/esm/options/buildOptions.js.map +0 -1
  486. package/esm/options/buildOptions.test.js +0 -138
  487. package/esm/options/buildOptions.test.js.map +0 -1
  488. package/esm/options/loadBabelOptions.js +0 -24
  489. package/esm/options/loadBabelOptions.js.map +0 -1
  490. package/esm/plugins/babel-transform.js +0 -53
  491. package/esm/plugins/babel-transform.js.map +0 -1
  492. package/esm/plugins/collector.js +0 -60
  493. package/esm/plugins/collector.js.map +0 -1
  494. package/esm/plugins/dynamic-import.js +0 -56
  495. package/esm/plugins/dynamic-import.js.map +0 -1
  496. package/esm/plugins/preeval.js +0 -73
  497. package/esm/plugins/preeval.js.map +0 -1
  498. package/esm/plugins/shaker.js +0 -680
  499. package/esm/plugins/shaker.js.map +0 -1
  500. package/esm/transform/barrelManifest.js +0 -291
  501. package/esm/transform/barrelManifest.js.map +0 -1
  502. package/esm/transform/generators/explodeReexports.js +0 -64
  503. package/esm/transform/generators/explodeReexports.js.map +0 -1
  504. package/esm/transform/generators/rewriteBarrelImports.js +0 -733
  505. package/esm/transform/generators/rewriteBarrelImports.js.map +0 -1
  506. package/esm/utils/addIdentifierToWywPreval.js +0 -68
  507. package/esm/utils/addIdentifierToWywPreval.js.map +0 -1
  508. package/esm/utils/collectExportsAndImports.js +0 -1157
  509. package/esm/utils/collectExportsAndImports.js.map +0 -1
  510. package/esm/utils/collectTemplateDependencies.js +0 -228
  511. package/esm/utils/collectTemplateDependencies.js.map +0 -1
  512. package/esm/utils/createId.js +0 -6
  513. package/esm/utils/createId.js.map +0 -1
  514. package/esm/utils/findIdentifiers.js +0 -62
  515. package/esm/utils/findIdentifiers.js.map +0 -1
  516. package/esm/utils/getConstantStringValue.js +0 -58
  517. package/esm/utils/getConstantStringValue.js.map +0 -1
  518. package/esm/utils/getMemberExpressionPropertyName.js +0 -11
  519. package/esm/utils/getMemberExpressionPropertyName.js.map +0 -1
  520. package/esm/utils/getScope.js +0 -6
  521. package/esm/utils/getScope.js.map +0 -1
  522. package/esm/utils/getSource.js +0 -15
  523. package/esm/utils/getSource.js.map +0 -1
  524. package/esm/utils/getTagProcessor.js +0 -404
  525. package/esm/utils/getTagProcessor.js.map +0 -1
  526. package/esm/utils/isExports.js +0 -22
  527. package/esm/utils/isExports.js.map +0 -1
  528. package/esm/utils/isGlobal.js +0 -6
  529. package/esm/utils/isGlobal.js.map +0 -1
  530. package/esm/utils/isNodePath.js +0 -4
  531. package/esm/utils/isNodePath.js.map +0 -1
  532. package/esm/utils/isRemoved.js +0 -46
  533. package/esm/utils/isRemoved.js.map +0 -1
  534. package/esm/utils/isRequire.js +0 -13
  535. package/esm/utils/isRequire.js.map +0 -1
  536. package/esm/utils/isTypedNode.js +0 -6
  537. package/esm/utils/isTypedNode.js.map +0 -1
  538. package/esm/utils/isUnnecessaryReactCall.js +0 -72
  539. package/esm/utils/isUnnecessaryReactCall.js.map +0 -1
  540. package/esm/utils/removeDangerousCode.js +0 -276
  541. package/esm/utils/removeDangerousCode.js.map +0 -1
  542. package/esm/utils/replaceImportMetaEnv.js +0 -44
  543. package/esm/utils/replaceImportMetaEnv.js.map +0 -1
  544. package/esm/utils/scopeHelpers.js +0 -527
  545. package/esm/utils/scopeHelpers.js.map +0 -1
  546. package/esm/utils/traversalCache.js +0 -23
  547. package/esm/utils/traversalCache.js.map +0 -1
  548. package/esm/utils/unwrapExpression.js +0 -18
  549. package/esm/utils/unwrapExpression.js.map +0 -1
  550. package/esm/utils/unwrapSequence.js +0 -14
  551. package/esm/utils/unwrapSequence.js.map +0 -1
  552. package/esm/utils/valueToLiteral.js +0 -59
  553. package/esm/utils/valueToLiteral.js.map +0 -1
  554. package/esm/utils/visitors/JSXElementsRemover.js +0 -51
  555. package/esm/utils/visitors/JSXElementsRemover.js.map +0 -1
  556. package/lib/babel.js +0 -2
  557. package/lib/babel.js.map +0 -1
  558. package/lib/cache.js +0 -308
  559. package/lib/cache.js.map +0 -1
  560. package/lib/debug/fileReporter.js +0 -153
  561. package/lib/debug/fileReporter.js.map +0 -1
  562. package/lib/evaluators/index.js +0 -20
  563. package/lib/evaluators/index.js.map +0 -1
  564. package/lib/index.js +0 -286
  565. package/lib/index.js.map +0 -1
  566. package/lib/module.js +0 -552
  567. package/lib/module.js.map +0 -1
  568. package/lib/options/buildOptions.js +0 -176
  569. package/lib/options/buildOptions.js.map +0 -1
  570. package/lib/options/buildOptions.test.js +0 -141
  571. package/lib/options/buildOptions.test.js.map +0 -1
  572. package/lib/options/loadBabelOptions.js +0 -31
  573. package/lib/options/loadBabelOptions.js.map +0 -1
  574. package/lib/plugins/babel-transform.js +0 -60
  575. package/lib/plugins/babel-transform.js.map +0 -1
  576. package/lib/plugins/collector.js +0 -70
  577. package/lib/plugins/collector.js.map +0 -1
  578. package/lib/plugins/dynamic-import.js +0 -61
  579. package/lib/plugins/dynamic-import.js.map +0 -1
  580. package/lib/plugins/preeval.js +0 -81
  581. package/lib/plugins/preeval.js.map +0 -1
  582. package/lib/plugins/shaker.js +0 -691
  583. package/lib/plugins/shaker.js.map +0 -1
  584. package/lib/shaker.js +0 -95
  585. package/lib/shaker.js.map +0 -1
  586. package/lib/transform/BaseEntrypoint.js +0 -179
  587. package/lib/transform/BaseEntrypoint.js.map +0 -1
  588. package/lib/transform/Entrypoint.helpers.js +0 -279
  589. package/lib/transform/Entrypoint.helpers.js.map +0 -1
  590. package/lib/transform/Entrypoint.js +0 -289
  591. package/lib/transform/Entrypoint.js.map +0 -1
  592. package/lib/transform/Entrypoint.types.js +0 -2
  593. package/lib/transform/Entrypoint.types.js.map +0 -1
  594. package/lib/transform/EvaluatedEntrypoint.js +0 -13
  595. package/lib/transform/EvaluatedEntrypoint.js.map +0 -1
  596. package/lib/transform/actions/AbortError.js +0 -16
  597. package/lib/transform/actions/AbortError.js.map +0 -1
  598. package/lib/transform/actions/BaseAction.js +0 -150
  599. package/lib/transform/actions/BaseAction.js.map +0 -1
  600. package/lib/transform/actions/UnprocessedEntrypointError.js +0 -16
  601. package/lib/transform/actions/UnprocessedEntrypointError.js.map +0 -1
  602. package/lib/transform/actions/actionRunner.js +0 -82
  603. package/lib/transform/actions/actionRunner.js.map +0 -1
  604. package/lib/transform/actions/types.js +0 -2
  605. package/lib/transform/actions/types.js.map +0 -1
  606. package/lib/transform/barrelManifest.js +0 -300
  607. package/lib/transform/barrelManifest.js.map +0 -1
  608. package/lib/transform/generators/baseProcessingHandlers.js +0 -27
  609. package/lib/transform/generators/baseProcessingHandlers.js.map +0 -1
  610. package/lib/transform/generators/collect.js +0 -66
  611. package/lib/transform/generators/collect.js.map +0 -1
  612. package/lib/transform/generators/createStylisPreprocessor.js +0 -372
  613. package/lib/transform/generators/createStylisPreprocessor.js.map +0 -1
  614. package/lib/transform/generators/evalFile.js +0 -57
  615. package/lib/transform/generators/evalFile.js.map +0 -1
  616. package/lib/transform/generators/explodeReexports.js +0 -71
  617. package/lib/transform/generators/explodeReexports.js.map +0 -1
  618. package/lib/transform/generators/extract.js +0 -102
  619. package/lib/transform/generators/extract.js.map +0 -1
  620. package/lib/transform/generators/getExports.js +0 -85
  621. package/lib/transform/generators/getExports.js.map +0 -1
  622. package/lib/transform/generators/index.js +0 -19
  623. package/lib/transform/generators/index.js.map +0 -1
  624. package/lib/transform/generators/processEntrypoint.js +0 -76
  625. package/lib/transform/generators/processEntrypoint.js.map +0 -1
  626. package/lib/transform/generators/processImports.js +0 -82
  627. package/lib/transform/generators/processImports.js.map +0 -1
  628. package/lib/transform/generators/resolveImports.js +0 -221
  629. package/lib/transform/generators/resolveImports.js.map +0 -1
  630. package/lib/transform/generators/rewriteBarrelImports.js +0 -743
  631. package/lib/transform/generators/rewriteBarrelImports.js.map +0 -1
  632. package/lib/transform/generators/transform.js +0 -272
  633. package/lib/transform/generators/transform.js.map +0 -1
  634. package/lib/transform/generators/workflow.js +0 -100
  635. package/lib/transform/generators/workflow.js.map +0 -1
  636. package/lib/transform/helpers/loadWywOptions.js +0 -88
  637. package/lib/transform/helpers/loadWywOptions.js.map +0 -1
  638. package/lib/transform/helpers/withDefaultServices.js +0 -31
  639. package/lib/transform/helpers/withDefaultServices.js.map +0 -1
  640. package/lib/transform/isStaticallyEvaluatableModule.js +0 -159
  641. package/lib/transform/isStaticallyEvaluatableModule.js.map +0 -1
  642. package/lib/transform/rootLog.js +0 -9
  643. package/lib/transform/rootLog.js.map +0 -1
  644. package/lib/transform/types.js +0 -8
  645. package/lib/transform/types.js.map +0 -1
  646. package/lib/transform.js +0 -160
  647. package/lib/transform.js.map +0 -1
  648. package/lib/types.js +0 -2
  649. package/lib/types.js.map +0 -1
  650. package/lib/utils/EventEmitter.js +0 -61
  651. package/lib/utils/EventEmitter.js.map +0 -1
  652. package/lib/utils/ShakerMetadata.js +0 -9
  653. package/lib/utils/ShakerMetadata.js.map +0 -1
  654. package/lib/utils/TransformDiagnostics.js +0 -20
  655. package/lib/utils/TransformDiagnostics.js.map +0 -1
  656. package/lib/utils/TransformMetadata.js +0 -45
  657. package/lib/utils/TransformMetadata.js.map +0 -1
  658. package/lib/utils/addIdentifierToWywPreval.js +0 -75
  659. package/lib/utils/addIdentifierToWywPreval.js.map +0 -1
  660. package/lib/utils/collectExportsAndImports.js +0 -1173
  661. package/lib/utils/collectExportsAndImports.js.map +0 -1
  662. package/lib/utils/collectTemplateDependencies.js +0 -242
  663. package/lib/utils/collectTemplateDependencies.js.map +0 -1
  664. package/lib/utils/createId.js +0 -13
  665. package/lib/utils/createId.js.map +0 -1
  666. package/lib/utils/dispose-polyfill.js +0 -9
  667. package/lib/utils/dispose-polyfill.js.map +0 -1
  668. package/lib/utils/findIdentifiers.js +0 -73
  669. package/lib/utils/findIdentifiers.js.map +0 -1
  670. package/lib/utils/getConstantStringValue.js +0 -66
  671. package/lib/utils/getConstantStringValue.js.map +0 -1
  672. package/lib/utils/getFileIdx.js +0 -16
  673. package/lib/utils/getFileIdx.js.map +0 -1
  674. package/lib/utils/getMemberExpressionPropertyName.js +0 -18
  675. package/lib/utils/getMemberExpressionPropertyName.js.map +0 -1
  676. package/lib/utils/getPluginKey.js +0 -21
  677. package/lib/utils/getPluginKey.js.map +0 -1
  678. package/lib/utils/getScope.js +0 -12
  679. package/lib/utils/getScope.js.map +0 -1
  680. package/lib/utils/getSource.js +0 -24
  681. package/lib/utils/getSource.js.map +0 -1
  682. package/lib/utils/getTagProcessor.js +0 -424
  683. package/lib/utils/getTagProcessor.js.map +0 -1
  684. package/lib/utils/getVisitorKeys.js +0 -11
  685. package/lib/utils/getVisitorKeys.js.map +0 -1
  686. package/lib/utils/hasWywPreval.js +0 -13
  687. package/lib/utils/hasWywPreval.js.map +0 -1
  688. package/lib/utils/importOverrides.js +0 -119
  689. package/lib/utils/importOverrides.js.map +0 -1
  690. package/lib/utils/isExports.js +0 -27
  691. package/lib/utils/isExports.js.map +0 -1
  692. package/lib/utils/isGlobal.js +0 -13
  693. package/lib/utils/isGlobal.js.map +0 -1
  694. package/lib/utils/isNode.js +0 -9
  695. package/lib/utils/isNode.js.map +0 -1
  696. package/lib/utils/isNodePath.js +0 -10
  697. package/lib/utils/isNodePath.js.map +0 -1
  698. package/lib/utils/isNotNull.js +0 -10
  699. package/lib/utils/isNotNull.js.map +0 -1
  700. package/lib/utils/isRemoved.js +0 -52
  701. package/lib/utils/isRemoved.js.map +0 -1
  702. package/lib/utils/isRequire.js +0 -18
  703. package/lib/utils/isRequire.js.map +0 -1
  704. package/lib/utils/isSerializable.js +0 -19
  705. package/lib/utils/isSerializable.js.map +0 -1
  706. package/lib/utils/isTypedNode.js +0 -13
  707. package/lib/utils/isTypedNode.js.map +0 -1
  708. package/lib/utils/isUnnecessaryReactCall.js +0 -81
  709. package/lib/utils/isUnnecessaryReactCall.js.map +0 -1
  710. package/lib/utils/parseRequest.js +0 -37
  711. package/lib/utils/parseRequest.js.map +0 -1
  712. package/lib/utils/peek.js +0 -9
  713. package/lib/utils/peek.js.map +0 -1
  714. package/lib/utils/removeDangerousCode.js +0 -284
  715. package/lib/utils/removeDangerousCode.js.map +0 -1
  716. package/lib/utils/replaceImportMetaEnv.js +0 -50
  717. package/lib/utils/replaceImportMetaEnv.js.map +0 -1
  718. package/lib/utils/scopeHelpers.js +0 -557
  719. package/lib/utils/scopeHelpers.js.map +0 -1
  720. package/lib/utils/traversalCache.js +0 -31
  721. package/lib/utils/traversalCache.js.map +0 -1
  722. package/lib/utils/unwrapExpression.js +0 -25
  723. package/lib/utils/unwrapExpression.js.map +0 -1
  724. package/lib/utils/unwrapSequence.js +0 -20
  725. package/lib/utils/unwrapSequence.js.map +0 -1
  726. package/lib/utils/valueToLiteral.js +0 -65
  727. package/lib/utils/valueToLiteral.js.map +0 -1
  728. package/lib/utils/visitors/JSXElementsRemover.js +0 -57
  729. package/lib/utils/visitors/JSXElementsRemover.js.map +0 -1
  730. package/lib/vm/createVmContext.js +0 -166
  731. package/lib/vm/createVmContext.js.map +0 -1
  732. package/lib/vm/process.js +0 -38
  733. package/lib/vm/process.js.map +0 -1
  734. package/types/babel.d.ts +0 -2
  735. package/types/babel.js +0 -2
  736. package/types/options/buildOptions.d.ts +0 -6
  737. package/types/options/buildOptions.js +0 -178
  738. package/types/options/loadBabelOptions.d.ts +0 -3
  739. package/types/options/loadBabelOptions.js +0 -26
  740. package/types/plugins/babel-transform.d.ts +0 -4
  741. package/types/plugins/babel-transform.js +0 -49
  742. package/types/plugins/collector.d.ts +0 -23
  743. package/types/plugins/collector.js +0 -62
  744. package/types/plugins/dynamic-import.d.ts +0 -6
  745. package/types/plugins/dynamic-import.js +0 -60
  746. package/types/plugins/preeval.d.ts +0 -16
  747. package/types/plugins/preeval.js +0 -69
  748. package/types/plugins/shaker.d.ts +0 -14
  749. package/types/plugins/shaker.js +0 -724
  750. package/types/transform/generators/explodeReexports.d.ts +0 -7
  751. package/types/transform/generators/explodeReexports.js +0 -65
  752. package/types/utils/addIdentifierToWywPreval.d.ts +0 -4
  753. package/types/utils/addIdentifierToWywPreval.js +0 -74
  754. package/types/utils/collectExportsAndImports.d.ts +0 -31
  755. package/types/utils/collectExportsAndImports.js +0 -1147
  756. package/types/utils/collectTemplateDependencies.d.ts +0 -17
  757. package/types/utils/collectTemplateDependencies.js +0 -220
  758. package/types/utils/createId.d.ts +0 -2
  759. package/types/utils/createId.js +0 -9
  760. package/types/utils/findIdentifiers.d.ts +0 -6
  761. package/types/utils/findIdentifiers.js +0 -67
  762. package/types/utils/getConstantStringValue.d.ts +0 -2
  763. package/types/utils/getConstantStringValue.js +0 -94
  764. package/types/utils/getMemberExpressionPropertyName.d.ts +0 -2
  765. package/types/utils/getMemberExpressionPropertyName.js +0 -46
  766. package/types/utils/getScope.d.ts +0 -2
  767. package/types/utils/getScope.js +0 -10
  768. package/types/utils/getSource.d.ts +0 -2
  769. package/types/utils/getSource.js +0 -22
  770. package/types/utils/getTagProcessor.d.ts +0 -13
  771. package/types/utils/getTagProcessor.js +0 -411
  772. package/types/utils/isExports.d.ts +0 -6
  773. package/types/utils/isExports.js +0 -19
  774. package/types/utils/isGlobal.d.ts +0 -2
  775. package/types/utils/isGlobal.js +0 -9
  776. package/types/utils/isNodePath.d.ts +0 -3
  777. package/types/utils/isNodePath.js +0 -6
  778. package/types/utils/isRemoved.d.ts +0 -5
  779. package/types/utils/isRemoved.js +0 -41
  780. package/types/utils/isRequire.d.ts +0 -6
  781. package/types/utils/isRequire.js +0 -14
  782. package/types/utils/isTypedNode.d.ts +0 -5
  783. package/types/utils/isTypedNode.js +0 -9
  784. package/types/utils/isUnnecessaryReactCall.d.ts +0 -3
  785. package/types/utils/isUnnecessaryReactCall.js +0 -75
  786. package/types/utils/removeDangerousCode.d.ts +0 -4
  787. package/types/utils/removeDangerousCode.js +0 -326
  788. package/types/utils/replaceImportMetaEnv.d.ts +0 -3
  789. package/types/utils/replaceImportMetaEnv.js +0 -39
  790. package/types/utils/scopeHelpers.d.ts +0 -12
  791. package/types/utils/scopeHelpers.js +0 -580
  792. package/types/utils/traversalCache.d.ts +0 -4
  793. package/types/utils/traversalCache.js +0 -27
  794. package/types/utils/unwrapExpression.d.ts +0 -2
  795. package/types/utils/unwrapExpression.js +0 -57
  796. package/types/utils/unwrapSequence.d.ts +0 -8
  797. package/types/utils/unwrapSequence.js +0 -16
  798. package/types/utils/valueToLiteral.d.ts +0 -3
  799. package/types/utils/valueToLiteral.js +0 -63
  800. package/types/utils/visitors/JSXElementsRemover.d.ts +0 -3
  801. package/types/utils/visitors/JSXElementsRemover.js +0 -51
@@ -1,18 +1,12 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Entrypoint = void 0;
7
- const node_fs_1 = __importDefault(require("node:fs"));
8
- const ts_invariant_1 = require("ts-invariant");
9
- const BaseEntrypoint_1 = require("./BaseEntrypoint");
10
- const Entrypoint_helpers_1 = require("./Entrypoint.helpers");
11
- const EvaluatedEntrypoint_1 = require("./EvaluatedEntrypoint");
12
- const AbortError_1 = require("./actions/AbortError");
13
- const BaseAction_1 = require("./actions/BaseAction");
14
- const UnprocessedEntrypointError_1 = require("./actions/UnprocessedEntrypointError");
15
- const parseRequest_1 = require("../utils/parseRequest");
1
+ import fs from 'node:fs';
2
+ import { invariant } from 'ts-invariant';
3
+ import { BaseEntrypoint } from './BaseEntrypoint';
4
+ import { isSuperSet, mergeOnly } from './Entrypoint.helpers';
5
+ import { EvaluatedEntrypoint } from './EvaluatedEntrypoint';
6
+ import { AbortError } from './actions/AbortError';
7
+ import { BaseAction } from './actions/BaseAction';
8
+ import { UnprocessedEntrypointError } from './actions/UnprocessedEntrypointError';
9
+ import { stripQueryAndHash } from '../utils/parseRequest';
16
10
  const EMPTY_FILE = '=== empty file ===';
17
11
  const DEFAULT_ACTION_CONTEXT = Symbol('defaultActionContext');
18
12
  function hasLoop(name, parent, processed = []) {
@@ -27,32 +21,45 @@ function hasLoop(name, parent, processed = []) {
27
21
  }
28
22
  return false;
29
23
  }
30
- class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
24
+ export class Entrypoint extends BaseEntrypoint {
31
25
  initialCode;
32
26
  resolveTasks;
33
27
  dependencies;
34
28
  invalidationDependencies;
35
29
  invalidateOnDependencyChange;
30
+ skipCacheInvalidation;
36
31
  evaluated = false;
37
32
  loadedAndParsed;
38
33
  onSupersedeHandlers = [];
39
34
  actionsCache = new Map();
35
+ // Tracks how many times resolveImports has settled with `resolved: null`
36
+ // for a given source. Bundler resolvers can return null transiently early
37
+ // in a build (loader context for that file isn't registered yet); after a
38
+ // bounded number of retries we accept the null as authoritative.
39
+ #resolveTaskNullAttempts = new Map();
40
+ static RESOLVE_TASK_MAX_NULL_ATTEMPTS = 2;
40
41
  #hasWywMetadata = false;
42
+ #hasTransformResult = false;
41
43
  #isProcessing = false;
42
44
  #pendingOnly = null;
45
+ #preevalResult = null;
46
+ #processingPromise = null;
47
+ #resolveProcessing = null;
43
48
  #supersededWith = null;
44
49
  #transformResultCode = null;
45
- constructor(services, parents, initialCode, name, only, exports, evaluatedOnly, loadedAndParsed, resolveTasks = new Map(), dependencies = new Map(), invalidationDependencies = new Map(), invalidateOnDependencyChange = new Set(), generation = 1) {
50
+ constructor(services, parents, initialCode, name, only, exports, evaluatedOnly, loadedAndParsed, resolveTasks = new Map(), dependencies = new Map(), invalidationDependencies = new Map(), invalidateOnDependencyChange = new Set(), generation = 1, skipCacheInvalidation = false) {
46
51
  super(services, evaluatedOnly, exports, generation, name, only, parents, dependencies, invalidationDependencies, invalidateOnDependencyChange);
47
52
  this.initialCode = initialCode;
48
53
  this.resolveTasks = resolveTasks;
49
54
  this.dependencies = dependencies;
50
55
  this.invalidationDependencies = invalidationDependencies;
51
56
  this.invalidateOnDependencyChange = invalidateOnDependencyChange;
57
+ this.skipCacheInvalidation = skipCacheInvalidation;
52
58
  this.loadedAndParsed =
53
59
  loadedAndParsed ??
54
60
  services.loadAndParseFn(services, name, initialCode, parents[0]?.log ?? services.log);
55
- if (this.loadedAndParsed.code !== undefined) {
61
+ if (!this.skipCacheInvalidation &&
62
+ this.loadedAndParsed.code !== undefined) {
56
63
  services.cache.invalidateIfChanged(name, this.loadedAndParsed.code, undefined, this.initialCode === undefined ? 'fs' : 'loaded');
57
64
  }
58
65
  const code = this.loadedAndParsed.evaluator === 'ignored'
@@ -72,24 +79,18 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
72
79
  get transformedCode() {
73
80
  return (this.#transformResultCode ?? this.supersededWith?.transformedCode ?? null);
74
81
  }
75
- static createRoot(services, name, only, loadedCode) {
76
- const created = Entrypoint.create(services, null, name, only, loadedCode);
77
- (0, ts_invariant_1.invariant)(created !== 'loop', 'loop detected');
82
+ get transformed() {
83
+ return (this.#hasTransformResult || this.supersededWith?.transformed || false);
84
+ }
85
+ get isProcessing() {
86
+ return this.#isProcessing;
87
+ }
88
+ static createRoot(services, name, only, loadedCode, options = {}) {
89
+ const created = Entrypoint.create(services, null, name, only, loadedCode, options);
90
+ invariant(created !== 'loop', 'loop detected');
78
91
  return created;
79
92
  }
80
- /**
81
- * Creates an entrypoint for the specified file.
82
- * If there is already an entrypoint for this file, there will be four possible outcomes:
83
- * 1. If `loadedCode` is specified and is different from the one that was used to create the existing entrypoint,
84
- * the existing entrypoint will be superseded by a new one and all cached results for it will be invalidated.
85
- * It can happen if the file was changed and the watcher notified us about it, or we received a new version
86
- * of the file from a loader whereas the previous one was loaded from the filesystem.
87
- * The new entrypoint will be returned.
88
- * 2. If `only` is subset of the existing entrypoint's `only`, the existing entrypoint will be returned.
89
- * 3. If `only` is superset of the existing entrypoint's `only`, the existing entrypoint will be superseded and the new one will be returned.
90
- * 4. If a loop is detected, 'ignored' will be returned, the existing entrypoint will be superseded or not depending on the `only` value.
91
- */
92
- static create(services, parent, name, only, loadedCode) {
93
+ static create(services, parent, name, only, loadedCode, options = {}) {
93
94
  const { cache, eventEmitter } = services;
94
95
  return eventEmitter.perf('createEntrypoint', () => {
95
96
  const [status, entrypoint] = Entrypoint.innerCreate(services, parent
@@ -100,14 +101,14 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
100
101
  parents: parent.parents,
101
102
  seqId: parent.seqId,
102
103
  }
103
- : null, name, only, loadedCode);
104
+ : null, name, only, loadedCode, options);
104
105
  if (status !== 'cached') {
105
106
  cache.add('entrypoints', name, entrypoint);
106
107
  }
107
108
  return status === 'loop' ? 'loop' : entrypoint;
108
109
  });
109
110
  }
110
- static innerCreate(services, parent, name, only, loadedCode) {
111
+ static innerCreate(services, parent, name, only, loadedCode, options) {
111
112
  const { cache } = services;
112
113
  const cached = cache.get('entrypoints', name);
113
114
  let changed = false;
@@ -116,7 +117,7 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
116
117
  }
117
118
  else if (cached && cached.initialCode === undefined) {
118
119
  try {
119
- changed = cache.invalidateIfChanged(name, node_fs_1.default.readFileSync((0, parseRequest_1.stripQueryAndHash)(name), 'utf8'), undefined, 'fs');
120
+ changed = cache.invalidateIfChanged(name, fs.readFileSync(stripQueryAndHash(name), 'utf8'), undefined, 'fs');
120
121
  }
121
122
  catch {
122
123
  changed = false;
@@ -127,10 +128,28 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
127
128
  }
128
129
  const exports = cached?.exports;
129
130
  const evaluatedOnly = changed ? [] : cached?.evaluatedOnly ?? [];
130
- const mergedOnly = cached?.only ? (0, Entrypoint_helpers_1.mergeOnly)(cached.only, only) : [...only];
131
+ const mergedOnly = options.mergeCachedOnly !== false && cached?.only
132
+ ? mergeOnly(cached.only, only)
133
+ : [...only];
134
+ const reusableEvaluatedState = !changed && cached?.evaluated && cached.loadedAndParsed !== undefined;
135
+ const canReuseEvaluatedTransformResult = reusableEvaluatedState &&
136
+ isSuperSet(cached.evaluatedOnly, mergedOnly) &&
137
+ cached.hasTransformResult &&
138
+ cached.loadedAndParsed !== undefined;
131
139
  if (cached?.evaluated) {
132
140
  cached.log('is already evaluated with', cached.evaluatedOnly);
133
141
  }
142
+ if (canReuseEvaluatedTransformResult) {
143
+ const isLoop = parent && hasLoop(name, parent);
144
+ const reusedEntrypoint = new Entrypoint(services, parent ? [parent] : [], loadedCode, name, mergedOnly, exports, evaluatedOnly, cached.loadedAndParsed, undefined, cached.dependencies, cached.invalidationDependencies, cached.invalidateOnDependencyChange, cached.generation + 1, true);
145
+ reusedEntrypoint.reuseTransformResult(cached.transformResultCode, cached.hasWywMetadata);
146
+ if ('preevalResult' in cached &&
147
+ cached.preevalResult !== null &&
148
+ cached.preevalResult !== undefined) {
149
+ reusedEntrypoint.setPreevalResult(cached.preevalResult);
150
+ }
151
+ return [isLoop ? 'loop' : 'cached', reusedEntrypoint];
152
+ }
134
153
  if (!changed && cached && !cached.evaluated) {
135
154
  const isLoop = parent && hasLoop(name, parent);
136
155
  if (isLoop) {
@@ -139,23 +158,33 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
139
158
  if (parent && !cached.parents.map((p) => p.name).includes(parent.name)) {
140
159
  cached.parents.push(parent);
141
160
  }
142
- if ((0, Entrypoint_helpers_1.isSuperSet)(cached.only, mergedOnly)) {
161
+ if (isSuperSet(cached.only, mergedOnly)) {
143
162
  cached.log('is cached', name);
144
163
  return [isLoop ? 'loop' : 'cached', cached];
145
164
  }
146
165
  cached.log('is cached, but with different `only` %o (the cached one %o)', only, cached?.only);
147
166
  if (cached.#isProcessing) {
167
+ if (parent === null) {
168
+ cached.log('is being processed during root request, supersede immediately (%o -> %o)', cached.only, mergedOnly);
169
+ return [isLoop ? 'loop' : 'created', cached.supersede(mergedOnly)];
170
+ }
148
171
  cached.deferOnlySupersede(mergedOnly);
149
172
  cached.log('is being processed, defer supersede (%o -> %o)', cached.only, mergedOnly);
150
173
  return [isLoop ? 'loop' : 'cached', cached];
151
174
  }
152
175
  return [isLoop ? 'loop' : 'created', cached.supersede(mergedOnly)];
153
176
  }
154
- const newEntrypoint = new Entrypoint(services, parent ? [parent] : [], loadedCode, name, mergedOnly, exports, evaluatedOnly, undefined, cached && 'resolveTasks' in cached ? cached.resolveTasks : undefined, cached && 'dependencies' in cached ? cached.dependencies : undefined, cached && 'invalidationDependencies' in cached
177
+ const newEntrypoint = new Entrypoint(services, parent ? [parent] : [], loadedCode, name, mergedOnly, exports, evaluatedOnly, reusableEvaluatedState ? cached.loadedAndParsed : undefined, cached && 'resolveTasks' in cached ? cached.resolveTasks : undefined, cached && 'dependencies' in cached ? cached.dependencies : undefined, cached && 'invalidationDependencies' in cached
155
178
  ? cached.invalidationDependencies
156
179
  : undefined, cached && 'invalidateOnDependencyChange' in cached
157
180
  ? cached.invalidateOnDependencyChange
158
181
  : undefined, cached ? cached.generation + 1 : 1);
182
+ if (reusableEvaluatedState &&
183
+ 'preevalResult' in cached &&
184
+ cached.preevalResult !== null &&
185
+ cached.preevalResult !== undefined) {
186
+ newEntrypoint.setPreevalResult(cached.preevalResult);
187
+ }
159
188
  if (cached && !cached.evaluated) {
160
189
  cached.log('is cached, but with different code');
161
190
  cached.supersede(newEntrypoint);
@@ -171,15 +200,32 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
171
200
  this.invalidationDependencies.set(dependency.source, dependency);
172
201
  }
173
202
  addResolveTask(name, dependency) {
174
- this.resolveTasks.set(name, dependency);
203
+ // Bounded retry of transient null resolutions. The first time a
204
+ // resolveTask settles to null, evict it from the cache so the next
205
+ // consumer re-attempts the resolver. After RESOLVE_TASK_MAX_NULL_ATTEMPTS
206
+ // failures the entry stays cached so we don't thrash. Successful (non-null)
207
+ // resolutions remain cached normally; this branch only ever fires for null.
208
+ const tracked = dependency.then((resolved) => {
209
+ if (resolved.resolved !== null) {
210
+ return resolved;
211
+ }
212
+ const attempts = (this.#resolveTaskNullAttempts.get(name) ?? 0) + 1;
213
+ this.#resolveTaskNullAttempts.set(name, attempts);
214
+ if (attempts < Entrypoint.RESOLVE_TASK_MAX_NULL_ATTEMPTS &&
215
+ this.resolveTasks.get(name) === tracked) {
216
+ this.resolveTasks.delete(name);
217
+ }
218
+ return resolved;
219
+ });
220
+ this.resolveTasks.set(name, tracked);
175
221
  }
176
222
  applyDeferredSupersede() {
177
223
  if (this.#supersededWith || this.#pendingOnly === null) {
178
224
  return null;
179
225
  }
180
- const mergedOnly = (0, Entrypoint_helpers_1.mergeOnly)(this.only, this.#pendingOnly);
226
+ const mergedOnly = mergeOnly(this.only, this.#pendingOnly);
181
227
  this.#pendingOnly = null;
182
- if ((0, Entrypoint_helpers_1.isSuperSet)(this.only, mergedOnly)) {
228
+ if (isSuperSet(this.only, mergedOnly)) {
183
229
  return null;
184
230
  }
185
231
  this.log('apply deferred supersede (%o -> %o)', this.only, mergedOnly);
@@ -190,17 +236,22 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
190
236
  assertNotSuperseded() {
191
237
  if (this.supersededWith) {
192
238
  this.log('superseded');
193
- throw new AbortError_1.AbortError('superseded');
239
+ throw new AbortError('superseded');
194
240
  }
195
241
  }
196
242
  assertTransformed() {
197
243
  if (this.transformedCode === null) {
198
244
  this.log('not transformed');
199
- throw new UnprocessedEntrypointError_1.UnprocessedEntrypointError(this.supersededWith ?? this);
245
+ throw new UnprocessedEntrypointError(this.supersededWith ?? this);
200
246
  }
201
247
  }
202
248
  beginProcessing() {
203
249
  this.#isProcessing = true;
250
+ if (!this.#processingPromise) {
251
+ this.#processingPromise = new Promise((resolve) => {
252
+ this.#resolveProcessing = resolve;
253
+ });
254
+ }
204
255
  }
205
256
  createAction(actionType, data, abortSignal = null, actionContext = DEFAULT_ACTION_CONTEXT) {
206
257
  if (!this.actionsCache.has(actionType)) {
@@ -215,7 +266,7 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
215
266
  if (cached && !cached.abortSignal?.aborted) {
216
267
  return cached;
217
268
  }
218
- const newAction = new BaseAction_1.BaseAction(actionType, this.services, this, data, abortSignal, actionContext);
269
+ const newAction = new BaseAction(actionType, this.services, this, data, abortSignal, actionContext);
219
270
  cache.set(data, newAction);
220
271
  this.services.eventEmitter.entrypointEvent(this.seqId, {
221
272
  type: 'actionCreated',
@@ -228,18 +279,29 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
228
279
  return Entrypoint.create(this.services, this, name, only, loadedCode);
229
280
  }
230
281
  createEvaluated() {
231
- const evaluatedOnly = (0, Entrypoint_helpers_1.mergeOnly)(this.evaluatedOnly, this.only);
282
+ const evaluatedOnly = mergeOnly(this.evaluatedOnly, this.only);
232
283
  this.log('create EvaluatedEntrypoint for %o', evaluatedOnly);
233
- const evaluated = new EvaluatedEntrypoint_1.EvaluatedEntrypoint(this.services, evaluatedOnly, this.exportsProxy, this.generation + 1, this.name, this.only, this.parents, this.dependencies, this.invalidationDependencies, this.invalidateOnDependencyChange);
284
+ const evaluated = new EvaluatedEntrypoint(this.services, evaluatedOnly, this.exportsProxy, this.generation + 1, this.name, this.only, this.parents, this.dependencies, this.invalidationDependencies, this.invalidateOnDependencyChange);
234
285
  evaluated.initialCode = this.initialCode;
286
+ evaluated.hasTransformResult = this.#hasTransformResult;
287
+ evaluated.hasWywMetadata = this.#hasWywMetadata;
288
+ evaluated.loadedAndParsed = this.loadedAndParsed;
289
+ evaluated.preevalResult = this.#preevalResult;
290
+ evaluated.transformResultCode = this.#transformResultCode;
235
291
  return evaluated;
236
292
  }
237
293
  endProcessing() {
238
294
  this.#isProcessing = false;
295
+ this.#resolveProcessing?.();
296
+ this.#resolveProcessing = null;
297
+ this.#processingPromise = null;
239
298
  }
240
299
  getDependency(name) {
241
300
  return this.dependencies.get(name);
242
301
  }
302
+ getPreevalResult() {
303
+ return this.#preevalResult;
304
+ }
243
305
  getInvalidationDependency(name) {
244
306
  return this.invalidationDependencies.get(name);
245
307
  }
@@ -252,6 +314,14 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
252
314
  hasWywMetadata() {
253
315
  return this.#hasWywMetadata;
254
316
  }
317
+ waitForProcessing() {
318
+ return this.#processingPromise ?? Promise.resolve();
319
+ }
320
+ reuseTransformResult(code, hasWywMetadata) {
321
+ this.#hasTransformResult = true;
322
+ this.#hasWywMetadata = hasWywMetadata;
323
+ this.#transformResultCode = code;
324
+ }
255
325
  onSupersede(callback) {
256
326
  if (this.#supersededWith) {
257
327
  callback(this.#supersededWith);
@@ -266,6 +336,7 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
266
336
  };
267
337
  }
268
338
  setTransformResult(res) {
339
+ this.#hasTransformResult = true;
269
340
  this.#hasWywMetadata = Boolean(res?.metadata);
270
341
  this.#transformResultCode = res?.code ?? null;
271
342
  this.services.eventEmitter.entrypointEvent(this.seqId, {
@@ -273,24 +344,30 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
273
344
  type: 'setTransformResult',
274
345
  });
275
346
  }
347
+ setPreevalResult(result) {
348
+ this.#preevalResult = result;
349
+ }
276
350
  deferOnlySupersede(only) {
277
351
  this.#pendingOnly = this.#pendingOnly
278
- ? (0, Entrypoint_helpers_1.mergeOnly)(this.#pendingOnly, only)
352
+ ? mergeOnly(this.#pendingOnly, only)
279
353
  : [...only];
280
354
  }
281
355
  supersede(newOnlyOrEntrypoint) {
282
356
  this.#pendingOnly = null;
283
- const newEntrypoint = newOnlyOrEntrypoint instanceof Entrypoint
284
- ? newOnlyOrEntrypoint
285
- : new Entrypoint(this.services, this.parents, this.initialCode, this.name, newOnlyOrEntrypoint, this.exports, this.evaluatedOnly, this.loadedAndParsed, this.resolveTasks, this.dependencies, this.invalidationDependencies, this.invalidateOnDependencyChange, this.generation + 1);
357
+ const widensOnly = !(newOnlyOrEntrypoint instanceof Entrypoint);
358
+ const newEntrypoint = widensOnly
359
+ ? new Entrypoint(this.services, this.parents, this.initialCode, this.name, newOnlyOrEntrypoint, this.exports, this.evaluatedOnly, this.loadedAndParsed, this.resolveTasks, this.dependencies, this.invalidationDependencies, this.invalidateOnDependencyChange, this.generation + 1)
360
+ : newOnlyOrEntrypoint;
286
361
  this.services.eventEmitter.entrypointEvent(this.seqId, {
287
362
  type: 'superseded',
288
363
  with: newEntrypoint.seqId,
289
364
  });
290
365
  this.log('superseded by %s (%o -> %o)', newEntrypoint.name, this.only, newEntrypoint.only);
366
+ if (widensOnly) {
367
+ newEntrypoint.#preevalResult = this.#preevalResult;
368
+ }
291
369
  this.#supersededWith = newEntrypoint;
292
370
  this.onSupersedeHandlers.forEach((handler) => handler(newEntrypoint));
293
371
  return newEntrypoint;
294
372
  }
295
373
  }
296
- exports.Entrypoint = Entrypoint;
@@ -1,15 +1,15 @@
1
- import type { TransformOptions } from '@babel/core';
2
- import type { File } from '@babel/types';
3
- import type { Debugger, Evaluator } from '@wyw-in-js/shared';
1
+ import type { Debugger, Evaluator, TransformEngineOptions } from '@wyw-in-js/shared';
4
2
  import type { Services } from './types';
3
+ import type { WYWTransformMetadata } from '../utils/TransformMetadata';
4
+ export type ParsedAst = unknown;
5
5
  export interface IEntrypointCode {
6
- readonly ast: File;
6
+ readonly ast: ParsedAst;
7
7
  code: string;
8
- evalConfig: TransformOptions;
8
+ evalConfig: TransformEngineOptions;
9
9
  evaluator: Evaluator;
10
10
  }
11
11
  export interface IIgnoredEntrypoint {
12
- readonly ast?: File;
12
+ readonly ast?: ParsedAst;
13
13
  readonly code?: string;
14
14
  evaluator: 'ignored';
15
15
  reason: 'extension' | 'rule';
@@ -19,4 +19,29 @@ export interface IEntrypointDependency {
19
19
  resolved: string | null;
20
20
  source: string;
21
21
  }
22
+ export interface IPreevalResult {
23
+ ast: ParsedAst | null;
24
+ baseCode?: string;
25
+ code: string;
26
+ dependencyNames?: string[];
27
+ evalCode?: string;
28
+ metadata: WYWTransformMetadata | null;
29
+ processorClassNames?: Record<string, string>;
30
+ staticSideEffectImportLocals?: string[];
31
+ staticDependencies?: string[];
32
+ staticNullWYWMetaExtendsHelpers?: string[];
33
+ staticValuesApplied?: boolean;
34
+ staticValueCache?: Map<string, unknown>;
35
+ runtimeOnlyStaticValueNames?: string[];
36
+ staticValueCandidates?: Array<{
37
+ imports: Array<{
38
+ imported: 'default' | string;
39
+ importLocal?: string;
40
+ local: string;
41
+ source: string;
42
+ }>;
43
+ name: string;
44
+ source: string;
45
+ }>;
46
+ }
22
47
  export type LoadAndParseFn = (services: Services, name: string, loadedCode: string | undefined, log: Debugger) => IEntrypointCode | IIgnoredEntrypoint;
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1,21 +1,32 @@
1
1
  import type { Debugger } from '@wyw-in-js/shared';
2
2
  import { BaseEntrypoint } from './BaseEntrypoint';
3
- import type { IEntrypointDependency } from './Entrypoint.types';
4
- export interface IEvaluatedEntrypoint {
3
+ import type { IEntrypointCode, IIgnoredEntrypoint, IEntrypointDependency, IPreevalResult } from './Entrypoint.types';
4
+ import type { ParentEntrypoint } from '../types';
5
+ export interface IEvaluatedEntrypoint extends ParentEntrypoint {
5
6
  dependencies: Map<string, IEntrypointDependency>;
6
7
  evaluated: true;
7
8
  evaluatedOnly: string[];
8
9
  exports: Record<string | symbol, unknown>;
9
10
  generation: number;
11
+ hasTransformResult: boolean;
12
+ hasWywMetadata: boolean;
10
13
  ignored: false;
11
14
  initialCode?: string;
12
15
  invalidationDependencies: Map<string, IEntrypointDependency>;
13
16
  invalidateOnDependencyChange: Set<string>;
17
+ loadedAndParsed?: IEntrypointCode | IIgnoredEntrypoint;
14
18
  log: Debugger;
15
19
  only: string[];
20
+ preevalResult: IPreevalResult | null;
21
+ transformResultCode: string | null;
16
22
  }
17
23
  export declare class EvaluatedEntrypoint extends BaseEntrypoint implements IEvaluatedEntrypoint {
18
24
  readonly evaluated = true;
19
25
  readonly ignored = false;
26
+ hasTransformResult: boolean;
27
+ hasWywMetadata: boolean;
20
28
  initialCode?: string;
29
+ loadedAndParsed?: IEntrypointCode | IIgnoredEntrypoint;
30
+ preevalResult: IPreevalResult | null;
31
+ transformResultCode: string | null;
21
32
  }
@@ -1,10 +1,11 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EvaluatedEntrypoint = void 0;
4
- const BaseEntrypoint_1 = require("./BaseEntrypoint");
5
- class EvaluatedEntrypoint extends BaseEntrypoint_1.BaseEntrypoint {
1
+ import { BaseEntrypoint } from './BaseEntrypoint';
2
+ export class EvaluatedEntrypoint extends BaseEntrypoint {
6
3
  evaluated = true;
7
4
  ignored = false;
5
+ hasTransformResult = false;
6
+ hasWywMetadata = false;
8
7
  initialCode;
8
+ loadedAndParsed;
9
+ preevalResult = null;
10
+ transformResultCode = null;
9
11
  }
10
- exports.EvaluatedEntrypoint = EvaluatedEntrypoint;
@@ -1,12 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAborted = exports.AbortError = void 0;
4
- class AbortError extends Error {
1
+ export class AbortError extends Error {
5
2
  constructor(reason) {
6
3
  super(reason);
7
4
  this.name = 'AbortError';
8
5
  }
9
6
  }
10
- exports.AbortError = AbortError;
11
- const isAborted = (value) => value instanceof AbortError;
12
- exports.isAborted = isAborted;
7
+ export const isAborted = (value) => value instanceof AbortError;
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseAction = void 0;
4
1
  /* eslint-disable no-plusplus */
5
- require("../../utils/dispose-polyfill");
6
- const types_1 = require("../types");
2
+ import '../../utils/dispose-polyfill';
3
+ import { Pending } from '../types';
7
4
  let actionIdx = 0;
8
- class BaseAction {
5
+ export class BaseAction {
9
6
  type;
10
7
  services;
11
8
  entrypoint;
@@ -13,7 +10,7 @@ class BaseAction {
13
10
  abortSignal;
14
11
  actionContext;
15
12
  idx;
16
- result = types_1.Pending;
13
+ result = Pending;
17
14
  activeScenario = null;
18
15
  activeScenarioError;
19
16
  activeScenarioNextResults = [];
@@ -153,4 +150,3 @@ class BaseAction {
153
150
  throw this.activeScenarioError;
154
151
  }
155
152
  }
156
- exports.BaseAction = BaseAction;
@@ -1,13 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isUnprocessedEntrypointError = exports.UnprocessedEntrypointError = void 0;
4
- class UnprocessedEntrypointError extends Error {
1
+ export class UnprocessedEntrypointError extends Error {
5
2
  entrypoint;
6
3
  constructor(entrypoint) {
7
4
  super(`Entrypoint ${entrypoint.idx} is not processed and can't be evaluated`);
8
5
  this.entrypoint = entrypoint;
9
6
  }
10
7
  }
11
- exports.UnprocessedEntrypointError = UnprocessedEntrypointError;
12
- const isUnprocessedEntrypointError = (value) => value instanceof UnprocessedEntrypointError;
13
- exports.isUnprocessedEntrypointError = isUnprocessedEntrypointError;
8
+ export const isUnprocessedEntrypointError = (value) => value instanceof UnprocessedEntrypointError;
@@ -1,9 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.asyncActionRunner = asyncActionRunner;
4
- exports.syncActionRunner = syncActionRunner;
5
- const types_1 = require("../types");
6
- const AbortError_1 = require("./AbortError");
1
+ import { Pending } from '../types';
2
+ import { AbortError } from './AbortError';
7
3
  function getHandler(action, actionHandlers) {
8
4
  const handler = actionHandlers[action.type];
9
5
  if (!handler) {
@@ -15,8 +11,8 @@ function getHandler(action, actionHandlers) {
15
11
  const getActionRef = (type, entrypoint) => `${type}@${entrypoint.ref}`;
16
12
  const ACTION_ERROR = Symbol('ACTION_ERROR');
17
13
  const isActionError = (e) => Array.isArray(e) && e[0] === ACTION_ERROR;
18
- async function asyncActionRunner(action, actionHandlers, stack = [getActionRef(action.type, action.entrypoint)]) {
19
- if (action.result !== types_1.Pending) {
14
+ export async function asyncActionRunner(action, actionHandlers, stack = [getActionRef(action.type, action.entrypoint)]) {
15
+ if (action.result !== Pending) {
20
16
  action.log('result is cached');
21
17
  return action.result;
22
18
  }
@@ -27,7 +23,7 @@ async function asyncActionRunner(action, actionHandlers, stack = [getActionRef(a
27
23
  while (true) {
28
24
  if (action.abortSignal?.aborted) {
29
25
  action.log('action is aborted');
30
- generator.throw(new AbortError_1.AbortError(stack[0]));
26
+ generator.throw(new AbortError(stack[0]));
31
27
  }
32
28
  const result = await (isActionError(actionResult)
33
29
  ? generator.throw(actionResult[1])
@@ -49,8 +45,8 @@ async function asyncActionRunner(action, actionHandlers, stack = [getActionRef(a
49
45
  }
50
46
  }
51
47
  }
52
- function syncActionRunner(action, actionHandlers, stack = [getActionRef(action.type, action.entrypoint)]) {
53
- if (action.result !== types_1.Pending) {
48
+ export function syncActionRunner(action, actionHandlers, stack = [getActionRef(action.type, action.entrypoint)]) {
49
+ if (action.result !== Pending) {
54
50
  action.log('result is cached');
55
51
  return action.result;
56
52
  }
@@ -61,7 +57,7 @@ function syncActionRunner(action, actionHandlers, stack = [getActionRef(action.t
61
57
  while (true) {
62
58
  if (action.abortSignal?.aborted) {
63
59
  action.log('action is aborted');
64
- generator.throw(new AbortError_1.AbortError(stack[0]));
60
+ generator.throw(new AbortError(stack[0]));
65
61
  }
66
62
  const result = isActionError(actionResult)
67
63
  ? generator.throw(actionResult[1])
@@ -1,5 +1,5 @@
1
- import type { BabelFileResult } from '@babel/core';
2
1
  import type { Replacements, Rules } from '@wyw-in-js/shared';
2
+ import type { RawSourceMap } from 'source-map';
3
3
  import type { WYWTransformDiagnostic } from '../../utils/TransformDiagnostics';
4
4
  import type { WYWTransformResultMetadata } from '../../utils/TransformMetadata';
5
5
  export interface IExtracted {
@@ -10,7 +10,7 @@ export interface IExtracted {
10
10
  }
11
11
  export interface IWorkflowActionNonLinariaResult {
12
12
  code: string;
13
- sourceMap: BabelFileResult['map'];
13
+ sourceMap: RawSourceMap | null | undefined;
14
14
  }
15
15
  export interface IWorkflowActionLinariaResult extends IExtracted, IWorkflowActionNonLinariaResult {
16
16
  dependencies: string[];
@@ -1,2 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
@@ -1,4 +1,3 @@
1
- import type { File } from '@babel/types';
2
1
  export type BarrelSkipReason = 'custom-evaluator' | 'empty' | 'ignored' | 'impure' | 'namespace-barrel' | 'unknown-star';
3
2
  export type BarrelBlockedReason = 'ambiguous' | 'cycle' | 'namespace-barrel' | 'unknown-star' | 'unresolved';
4
3
  export type BarrelResolvedBinding = {
@@ -39,4 +38,3 @@ export type RawBarrelManifest = {
39
38
  kind: 'barrel';
40
39
  reexports: RawBarrelReexport[];
41
40
  };
42
- export declare function analyzeBarrelFile(ast: File): BarrelManifestCacheEntry | RawBarrelManifest;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,17 +1,16 @@
1
- import type { SyncScenarioForAction, ICollectAction, IEvalAction, IExtractAction, IWorkflowAction } from '../types';
2
- import { explodeReexports } from './explodeReexports';
1
+ import type { SyncScenarioForAction, ICollectAction, IEvalAction, IExplodeReexportsAction, IExtractAction, IWorkflowAction } from '../types';
3
2
  import { getExports } from './getExports';
4
- import { processEntrypoint } from './processEntrypoint';
3
+ import { processEntrypointAsync } from './processEntrypoint';
5
4
  import { processImports } from './processImports';
6
5
  import { transform } from './transform';
7
6
  export declare const baseProcessingHandlers: {
8
7
  collect: (this: ICollectAction) => SyncScenarioForAction<ICollectAction>;
9
8
  evalFile: (this: IEvalAction) => SyncScenarioForAction<IEvalAction>;
9
+ explodeReexports: (this: IExplodeReexportsAction) => SyncScenarioForAction<IExplodeReexportsAction>;
10
10
  extract: (this: IExtractAction) => SyncScenarioForAction<IExtractAction>;
11
11
  workflow: (this: IWorkflowAction) => SyncScenarioForAction<IWorkflowAction>;
12
- explodeReexports: typeof explodeReexports;
13
12
  getExports: typeof getExports;
14
- processEntrypoint: typeof processEntrypoint;
13
+ processEntrypoint: typeof processEntrypointAsync;
15
14
  processImports: typeof processImports;
16
15
  transform: typeof transform;
17
16
  };