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

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 (603) hide show
  1. package/esm/cache.js +426 -289
  2. package/esm/cache.js.map +1 -1
  3. package/esm/debug/fileReporter.js +137 -134
  4. package/esm/debug/fileReporter.js.map +1 -1
  5. package/esm/eval/broker.js +2134 -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/resolverStrategy.js +51 -0
  14. package/esm/eval/resolverStrategy.js.map +1 -0
  15. package/esm/eval/runner.js +1759 -0
  16. package/esm/eval/runner.js.map +1 -0
  17. package/esm/eval/serialize.js +333 -0
  18. package/esm/eval/serialize.js.map +1 -0
  19. package/esm/eval/writeQueue.js +81 -0
  20. package/esm/eval/writeQueue.js.map +1 -0
  21. package/esm/evaluators/index.js +11 -12
  22. package/esm/evaluators/index.js.map +1 -1
  23. package/esm/index.js +25 -29
  24. package/esm/index.js.map +1 -1
  25. package/esm/module.js +896 -520
  26. package/esm/module.js.map +1 -1
  27. package/esm/shaker.js +14 -80
  28. package/esm/shaker.js.map +1 -1
  29. package/esm/transform/BaseEntrypoint.js +162 -164
  30. package/esm/transform/BaseEntrypoint.js.map +1 -1
  31. package/esm/transform/Entrypoint.helpers.js +96 -253
  32. package/esm/transform/Entrypoint.helpers.js.map +1 -1
  33. package/esm/transform/Entrypoint.js +336 -270
  34. package/esm/transform/Entrypoint.js.map +1 -1
  35. package/esm/transform/Entrypoint.types.js +1 -1
  36. package/esm/transform/Entrypoint.types.js.map +1 -1
  37. package/esm/transform/EvaluatedEntrypoint.js +10 -4
  38. package/esm/transform/EvaluatedEntrypoint.js.map +1 -1
  39. package/esm/transform/actions/AbortError.js +6 -6
  40. package/esm/transform/actions/AbortError.js.map +1 -1
  41. package/esm/transform/actions/BaseAction.js +140 -136
  42. package/esm/transform/actions/BaseAction.js.map +1 -1
  43. package/esm/transform/actions/UnprocessedEntrypointError.js +6 -6
  44. package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -1
  45. package/esm/transform/actions/actionRunner.js +63 -66
  46. package/esm/transform/actions/actionRunner.js.map +1 -1
  47. package/esm/transform/actions/types.js +1 -1
  48. package/esm/transform/actions/types.js.map +1 -1
  49. package/esm/transform/barrelManifest.types.js +2 -0
  50. package/esm/transform/barrelManifest.types.js.map +1 -0
  51. package/esm/transform/generators/baseProcessingHandlers.js +15 -17
  52. package/esm/transform/generators/baseProcessingHandlers.js.map +1 -1
  53. package/esm/transform/generators/collect.js +27 -55
  54. package/esm/transform/generators/collect.js.map +1 -1
  55. package/esm/transform/generators/createStylisPreprocessor.js +353 -321
  56. package/esm/transform/generators/createStylisPreprocessor.js.map +1 -1
  57. package/esm/transform/generators/evalFile.js +48 -47
  58. package/esm/transform/generators/evalFile.js.map +1 -1
  59. package/esm/transform/generators/extract.js +78 -90
  60. package/esm/transform/generators/extract.js.map +1 -1
  61. package/esm/transform/generators/getExports.js +57 -74
  62. package/esm/transform/generators/getExports.js.map +1 -1
  63. package/esm/transform/generators/index.js +11 -11
  64. package/esm/transform/generators/index.js.map +1 -1
  65. package/esm/transform/generators/processEntrypoint.js +78 -67
  66. package/esm/transform/generators/processEntrypoint.js.map +1 -1
  67. package/esm/transform/generators/processImports.js +102 -67
  68. package/esm/transform/generators/processImports.js.map +1 -1
  69. package/esm/transform/generators/resolveImports.js +165 -196
  70. package/esm/transform/generators/resolveImports.js.map +1 -1
  71. package/esm/transform/generators/resolveStaticOxcValues.js +2911 -0
  72. package/esm/transform/generators/resolveStaticOxcValues.js.map +1 -0
  73. package/esm/transform/generators/rewriteOxcBarrelImports.js +822 -0
  74. package/esm/transform/generators/rewriteOxcBarrelImports.js.map +1 -0
  75. package/esm/transform/generators/transform.js +239 -248
  76. package/esm/transform/generators/transform.js.map +1 -1
  77. package/esm/transform/generators/workflow.js +87 -90
  78. package/esm/transform/generators/workflow.js.map +1 -1
  79. package/esm/transform/helpers/loadWywOptions.js +154 -74
  80. package/esm/transform/helpers/loadWywOptions.js.map +1 -1
  81. package/esm/transform/helpers/withDefaultServices.js +13 -22
  82. package/esm/transform/helpers/withDefaultServices.js.map +1 -1
  83. package/esm/transform/isStaticallyEvaluatableModule.js +140 -152
  84. package/esm/transform/isStaticallyEvaluatableModule.js.map +1 -1
  85. package/esm/transform/oxcBarrelManifest.js +349 -0
  86. package/esm/transform/oxcBarrelManifest.js.map +1 -0
  87. package/esm/transform/rootLog.js +3 -3
  88. package/esm/transform/rootLog.js.map +1 -1
  89. package/esm/transform/syntax.js +2 -0
  90. package/esm/transform/syntax.js.map +1 -0
  91. package/esm/transform/types.js +2 -2
  92. package/esm/transform/types.js.map +1 -1
  93. package/esm/transform.js +123 -147
  94. package/esm/transform.js.map +1 -1
  95. package/esm/types.js +4 -1
  96. package/esm/types.js.map +1 -1
  97. package/esm/utils/EventEmitter.js +46 -48
  98. package/esm/utils/EventEmitter.js.map +1 -1
  99. package/esm/utils/ShakerMetadata.js +2 -2
  100. package/esm/utils/ShakerMetadata.js.map +1 -1
  101. package/esm/utils/TransformDiagnostics.js +9 -9
  102. package/esm/utils/TransformDiagnostics.js.map +1 -1
  103. package/esm/utils/TransformMetadata.js +24 -26
  104. package/esm/utils/TransformMetadata.js.map +1 -1
  105. package/esm/utils/applyOxcProcessors.js +1217 -0
  106. package/esm/utils/applyOxcProcessors.js.map +1 -0
  107. package/esm/utils/collectOxcExportsAndImports.js +934 -0
  108. package/esm/utils/collectOxcExportsAndImports.js.map +1 -0
  109. package/esm/utils/collectOxcRuntime.js +220 -0
  110. package/esm/utils/collectOxcRuntime.js.map +1 -0
  111. package/esm/utils/collectOxcTemplateDependencies.js +1398 -0
  112. package/esm/utils/collectOxcTemplateDependencies.js.map +1 -0
  113. package/esm/utils/dispose-polyfill.js +3 -4
  114. package/esm/utils/dispose-polyfill.js.map +1 -1
  115. package/esm/utils/getFileIdx.js +6 -6
  116. package/esm/utils/getFileIdx.js.map +1 -1
  117. package/esm/utils/getPluginKey.js +12 -12
  118. package/esm/utils/getPluginKey.js.map +1 -1
  119. package/esm/utils/getVisitorKeys.js +9 -3
  120. package/esm/utils/getVisitorKeys.js.map +1 -1
  121. package/esm/utils/hasCachedWywPrevalExport.js +23 -0
  122. package/esm/utils/hasCachedWywPrevalExport.js.map +1 -0
  123. package/esm/utils/hasWywPreval.js +5 -5
  124. package/esm/utils/hasWywPreval.js.map +1 -1
  125. package/esm/utils/importOverrides.js +75 -90
  126. package/esm/utils/importOverrides.js.map +1 -1
  127. package/esm/utils/isNode.js +2 -2
  128. package/esm/utils/isNode.js.map +1 -1
  129. package/esm/utils/isNotNull.js +2 -2
  130. package/esm/utils/isNotNull.js.map +1 -1
  131. package/esm/utils/isSerializable.js +11 -11
  132. package/esm/utils/isSerializable.js.map +1 -1
  133. package/esm/utils/oxcAstService.js +121 -0
  134. package/esm/utils/oxcAstService.js.map +1 -0
  135. package/esm/utils/oxcEmit.js +447 -0
  136. package/esm/utils/oxcEmit.js.map +1 -0
  137. package/esm/utils/oxcPreevalStage.js +97 -0
  138. package/esm/utils/oxcPreevalStage.js.map +1 -0
  139. package/esm/utils/oxcPreevalTransforms.js +1054 -0
  140. package/esm/utils/oxcPreevalTransforms.js.map +1 -0
  141. package/esm/utils/oxcShaker.js +662 -0
  142. package/esm/utils/oxcShaker.js.map +1 -0
  143. package/esm/utils/parseOxc.js +37 -0
  144. package/esm/utils/parseOxc.js.map +1 -0
  145. package/esm/utils/parseRequest.js +27 -27
  146. package/esm/utils/parseRequest.js.map +1 -1
  147. package/esm/utils/peek.js +1 -1
  148. package/esm/utils/peek.js.map +1 -1
  149. package/esm/utils/processorLookup.js +125 -0
  150. package/esm/utils/processorLookup.js.map +1 -0
  151. package/esm/utils/resolveWithConditions.js +99 -0
  152. package/esm/utils/resolveWithConditions.js.map +1 -0
  153. package/esm/vm/createVmContext.js +140 -141
  154. package/esm/vm/createVmContext.js.map +1 -1
  155. package/esm/vm/process.js +11 -13
  156. package/esm/vm/process.js.map +1 -1
  157. package/package.json +18 -26
  158. package/types/cache.d.ts +17 -8
  159. package/types/cache.js +237 -95
  160. package/types/debug/fileReporter.js +22 -22
  161. package/types/eval/broker.d.ts +88 -0
  162. package/types/eval/broker.js +2262 -0
  163. package/types/eval/lru.d.ts +10 -0
  164. package/types/eval/lru.js +36 -0
  165. package/types/eval/prepareModuleOnDemand.d.ts +7 -0
  166. package/types/eval/prepareModuleOnDemand.js +24 -0
  167. package/types/eval/protocol.d.ts +97 -0
  168. package/types/eval/protocol.js +1 -0
  169. package/types/eval/resolverStrategy.d.ts +13 -0
  170. package/types/eval/resolverStrategy.js +46 -0
  171. package/types/eval/serialize.d.ts +78 -0
  172. package/types/eval/serialize.js +357 -0
  173. package/types/eval/writeQueue.d.ts +13 -0
  174. package/types/eval/writeQueue.js +80 -0
  175. package/types/evaluators/index.d.ts +2 -2
  176. package/types/evaluators/index.js +6 -9
  177. package/types/index.d.ts +3 -6
  178. package/types/index.js +24 -82
  179. package/types/module.d.ts +35 -7
  180. package/types/module.js +535 -163
  181. package/types/shaker.d.ts +2 -10
  182. package/types/shaker.js +10 -100
  183. package/types/transform/BaseEntrypoint.js +6 -11
  184. package/types/transform/Entrypoint.d.ts +15 -15
  185. package/types/transform/Entrypoint.helpers.d.ts +2 -5
  186. package/types/transform/Entrypoint.helpers.js +43 -203
  187. package/types/transform/Entrypoint.js +130 -53
  188. package/types/transform/Entrypoint.types.d.ts +28 -6
  189. package/types/transform/Entrypoint.types.js +1 -2
  190. package/types/transform/EvaluatedEntrypoint.d.ts +13 -2
  191. package/types/transform/EvaluatedEntrypoint.js +7 -6
  192. package/types/transform/actions/AbortError.js +2 -7
  193. package/types/transform/actions/BaseAction.js +4 -8
  194. package/types/transform/actions/UnprocessedEntrypointError.js +2 -7
  195. package/types/transform/actions/actionRunner.js +8 -12
  196. package/types/transform/actions/types.d.ts +2 -2
  197. package/types/transform/actions/types.js +1 -2
  198. package/types/transform/{barrelManifest.d.ts → barrelManifest.types.d.ts} +0 -2
  199. package/types/transform/barrelManifest.types.js +1 -0
  200. package/types/transform/generators/baseProcessingHandlers.d.ts +4 -5
  201. package/types/transform/generators/baseProcessingHandlers.js +10 -14
  202. package/types/transform/generators/collect.js +13 -39
  203. package/types/transform/generators/createStylisPreprocessor.js +19 -60
  204. package/types/transform/generators/evalFile.d.ts +2 -2
  205. package/types/transform/generators/evalFile.js +26 -28
  206. package/types/transform/generators/extract.js +5 -8
  207. package/types/transform/generators/getExports.js +23 -30
  208. package/types/transform/generators/index.d.ts +2 -2
  209. package/types/transform/generators/index.js +11 -14
  210. package/types/transform/generators/processEntrypoint.d.ts +2 -2
  211. package/types/transform/generators/processEntrypoint.js +60 -26
  212. package/types/transform/generators/processImports.d.ts +0 -3
  213. package/types/transform/generators/processImports.js +60 -20
  214. package/types/transform/generators/resolveImports.js +18 -22
  215. package/types/transform/generators/resolveStaticOxcValues.d.ts +2 -0
  216. package/types/transform/generators/resolveStaticOxcValues.js +3235 -0
  217. package/types/transform/generators/{rewriteBarrelImports.d.ts → rewriteOxcBarrelImports.d.ts} +2 -3
  218. package/types/transform/generators/{rewriteBarrelImports.js → rewriteOxcBarrelImports.js} +282 -225
  219. package/types/transform/generators/transform.d.ts +3 -7
  220. package/types/transform/generators/transform.js +203 -199
  221. package/types/transform/generators/workflow.js +62 -45
  222. package/types/transform/helpers/loadWywOptions.js +94 -20
  223. package/types/transform/helpers/withDefaultServices.d.ts +1 -1
  224. package/types/transform/helpers/withDefaultServices.js +6 -44
  225. package/types/transform/isStaticallyEvaluatableModule.d.ts +1 -2
  226. package/types/transform/isStaticallyEvaluatableModule.js +125 -126
  227. package/types/transform/oxcBarrelManifest.d.ts +2 -0
  228. package/types/transform/{barrelManifest.js → oxcBarrelManifest.js} +156 -97
  229. package/types/transform/rootLog.js +2 -5
  230. package/types/transform/syntax.d.ts +38 -0
  231. package/types/transform/syntax.js +1 -0
  232. package/types/transform/types.d.ts +9 -6
  233. package/types/transform/types.js +1 -4
  234. package/types/transform.d.ts +2 -2
  235. package/types/transform.js +88 -101
  236. package/types/types.d.ts +0 -23
  237. package/types/types.js +1 -2
  238. package/types/utils/EventEmitter.js +3 -9
  239. package/types/utils/ShakerMetadata.js +1 -5
  240. package/types/utils/TransformDiagnostics.js +3 -7
  241. package/types/utils/TransformMetadata.js +8 -16
  242. package/types/utils/applyOxcProcessors.d.ts +16 -0
  243. package/types/utils/applyOxcProcessors.js +1391 -0
  244. package/types/utils/collectOxcExportsAndImports.d.ts +35 -0
  245. package/types/utils/collectOxcExportsAndImports.js +957 -0
  246. package/types/utils/collectOxcRuntime.d.ts +14 -0
  247. package/types/utils/collectOxcRuntime.js +250 -0
  248. package/types/utils/collectOxcTemplateDependencies.d.ts +38 -0
  249. package/types/utils/collectOxcTemplateDependencies.js +1580 -0
  250. package/types/utils/getFileIdx.js +1 -4
  251. package/types/utils/getPluginKey.d.ts +5 -2
  252. package/types/utils/getPluginKey.js +2 -6
  253. package/types/utils/getVisitorKeys.d.ts +4 -4
  254. package/types/utils/getVisitorKeys.js +9 -6
  255. package/types/utils/hasCachedWywPrevalExport.d.ts +14 -0
  256. package/types/utils/hasCachedWywPrevalExport.js +30 -0
  257. package/types/utils/hasWywPreval.js +1 -4
  258. package/types/utils/importOverrides.js +17 -27
  259. package/types/utils/isNode.d.ts +2 -2
  260. package/types/utils/isNode.js +2 -6
  261. package/types/utils/isNotNull.js +1 -4
  262. package/types/utils/isSerializable.js +3 -6
  263. package/types/utils/oxcAstService.d.ts +11 -0
  264. package/types/utils/oxcAstService.js +79 -0
  265. package/types/utils/oxcEmit.d.ts +19 -0
  266. package/types/utils/oxcEmit.js +506 -0
  267. package/types/utils/oxcPreevalStage.d.ts +20 -0
  268. package/types/utils/oxcPreevalStage.js +102 -0
  269. package/types/utils/oxcPreevalTransforms.d.ts +13 -0
  270. package/types/utils/oxcPreevalTransforms.js +1179 -0
  271. package/types/utils/oxcShaker.d.ts +13 -0
  272. package/types/utils/oxcShaker.js +751 -0
  273. package/types/utils/parseOxc.d.ts +11 -0
  274. package/types/utils/parseOxc.js +38 -0
  275. package/types/utils/parseRequest.js +2 -7
  276. package/types/utils/peek.js +1 -5
  277. package/types/utils/processorLookup.d.ts +8 -0
  278. package/types/utils/processorLookup.js +135 -0
  279. package/types/utils/resolveWithConditions.d.ts +12 -0
  280. package/types/utils/resolveWithConditions.js +103 -0
  281. package/types/vm/createVmContext.d.ts +2 -2
  282. package/types/vm/createVmContext.js +25 -62
  283. package/types/vm/process.js +20 -26
  284. package/esm/babel.js +0 -2
  285. package/esm/babel.js.map +0 -1
  286. package/esm/options/buildOptions.js +0 -168
  287. package/esm/options/buildOptions.js.map +0 -1
  288. package/esm/options/buildOptions.test.js +0 -138
  289. package/esm/options/buildOptions.test.js.map +0 -1
  290. package/esm/options/loadBabelOptions.js +0 -24
  291. package/esm/options/loadBabelOptions.js.map +0 -1
  292. package/esm/plugins/babel-transform.js +0 -53
  293. package/esm/plugins/babel-transform.js.map +0 -1
  294. package/esm/plugins/collector.js +0 -60
  295. package/esm/plugins/collector.js.map +0 -1
  296. package/esm/plugins/dynamic-import.js +0 -56
  297. package/esm/plugins/dynamic-import.js.map +0 -1
  298. package/esm/plugins/preeval.js +0 -73
  299. package/esm/plugins/preeval.js.map +0 -1
  300. package/esm/plugins/shaker.js +0 -680
  301. package/esm/plugins/shaker.js.map +0 -1
  302. package/esm/transform/barrelManifest.js +0 -291
  303. package/esm/transform/barrelManifest.js.map +0 -1
  304. package/esm/transform/generators/explodeReexports.js +0 -64
  305. package/esm/transform/generators/explodeReexports.js.map +0 -1
  306. package/esm/transform/generators/rewriteBarrelImports.js +0 -733
  307. package/esm/transform/generators/rewriteBarrelImports.js.map +0 -1
  308. package/esm/utils/addIdentifierToWywPreval.js +0 -68
  309. package/esm/utils/addIdentifierToWywPreval.js.map +0 -1
  310. package/esm/utils/collectExportsAndImports.js +0 -1157
  311. package/esm/utils/collectExportsAndImports.js.map +0 -1
  312. package/esm/utils/collectTemplateDependencies.js +0 -228
  313. package/esm/utils/collectTemplateDependencies.js.map +0 -1
  314. package/esm/utils/createId.js +0 -6
  315. package/esm/utils/createId.js.map +0 -1
  316. package/esm/utils/findIdentifiers.js +0 -62
  317. package/esm/utils/findIdentifiers.js.map +0 -1
  318. package/esm/utils/getConstantStringValue.js +0 -58
  319. package/esm/utils/getConstantStringValue.js.map +0 -1
  320. package/esm/utils/getMemberExpressionPropertyName.js +0 -11
  321. package/esm/utils/getMemberExpressionPropertyName.js.map +0 -1
  322. package/esm/utils/getScope.js +0 -6
  323. package/esm/utils/getScope.js.map +0 -1
  324. package/esm/utils/getSource.js +0 -15
  325. package/esm/utils/getSource.js.map +0 -1
  326. package/esm/utils/getTagProcessor.js +0 -404
  327. package/esm/utils/getTagProcessor.js.map +0 -1
  328. package/esm/utils/isExports.js +0 -22
  329. package/esm/utils/isExports.js.map +0 -1
  330. package/esm/utils/isGlobal.js +0 -6
  331. package/esm/utils/isGlobal.js.map +0 -1
  332. package/esm/utils/isNodePath.js +0 -4
  333. package/esm/utils/isNodePath.js.map +0 -1
  334. package/esm/utils/isRemoved.js +0 -46
  335. package/esm/utils/isRemoved.js.map +0 -1
  336. package/esm/utils/isRequire.js +0 -13
  337. package/esm/utils/isRequire.js.map +0 -1
  338. package/esm/utils/isTypedNode.js +0 -6
  339. package/esm/utils/isTypedNode.js.map +0 -1
  340. package/esm/utils/isUnnecessaryReactCall.js +0 -72
  341. package/esm/utils/isUnnecessaryReactCall.js.map +0 -1
  342. package/esm/utils/removeDangerousCode.js +0 -276
  343. package/esm/utils/removeDangerousCode.js.map +0 -1
  344. package/esm/utils/replaceImportMetaEnv.js +0 -44
  345. package/esm/utils/replaceImportMetaEnv.js.map +0 -1
  346. package/esm/utils/scopeHelpers.js +0 -527
  347. package/esm/utils/scopeHelpers.js.map +0 -1
  348. package/esm/utils/traversalCache.js +0 -23
  349. package/esm/utils/traversalCache.js.map +0 -1
  350. package/esm/utils/unwrapExpression.js +0 -18
  351. package/esm/utils/unwrapExpression.js.map +0 -1
  352. package/esm/utils/unwrapSequence.js +0 -14
  353. package/esm/utils/unwrapSequence.js.map +0 -1
  354. package/esm/utils/valueToLiteral.js +0 -59
  355. package/esm/utils/valueToLiteral.js.map +0 -1
  356. package/esm/utils/visitors/JSXElementsRemover.js +0 -51
  357. package/esm/utils/visitors/JSXElementsRemover.js.map +0 -1
  358. package/lib/babel.js +0 -2
  359. package/lib/babel.js.map +0 -1
  360. package/lib/cache.js +0 -308
  361. package/lib/cache.js.map +0 -1
  362. package/lib/debug/fileReporter.js +0 -153
  363. package/lib/debug/fileReporter.js.map +0 -1
  364. package/lib/evaluators/index.js +0 -20
  365. package/lib/evaluators/index.js.map +0 -1
  366. package/lib/index.js +0 -286
  367. package/lib/index.js.map +0 -1
  368. package/lib/module.js +0 -552
  369. package/lib/module.js.map +0 -1
  370. package/lib/options/buildOptions.js +0 -176
  371. package/lib/options/buildOptions.js.map +0 -1
  372. package/lib/options/buildOptions.test.js +0 -141
  373. package/lib/options/buildOptions.test.js.map +0 -1
  374. package/lib/options/loadBabelOptions.js +0 -31
  375. package/lib/options/loadBabelOptions.js.map +0 -1
  376. package/lib/plugins/babel-transform.js +0 -60
  377. package/lib/plugins/babel-transform.js.map +0 -1
  378. package/lib/plugins/collector.js +0 -70
  379. package/lib/plugins/collector.js.map +0 -1
  380. package/lib/plugins/dynamic-import.js +0 -61
  381. package/lib/plugins/dynamic-import.js.map +0 -1
  382. package/lib/plugins/preeval.js +0 -81
  383. package/lib/plugins/preeval.js.map +0 -1
  384. package/lib/plugins/shaker.js +0 -691
  385. package/lib/plugins/shaker.js.map +0 -1
  386. package/lib/shaker.js +0 -95
  387. package/lib/shaker.js.map +0 -1
  388. package/lib/transform/BaseEntrypoint.js +0 -179
  389. package/lib/transform/BaseEntrypoint.js.map +0 -1
  390. package/lib/transform/Entrypoint.helpers.js +0 -279
  391. package/lib/transform/Entrypoint.helpers.js.map +0 -1
  392. package/lib/transform/Entrypoint.js +0 -289
  393. package/lib/transform/Entrypoint.js.map +0 -1
  394. package/lib/transform/Entrypoint.types.js +0 -2
  395. package/lib/transform/Entrypoint.types.js.map +0 -1
  396. package/lib/transform/EvaluatedEntrypoint.js +0 -13
  397. package/lib/transform/EvaluatedEntrypoint.js.map +0 -1
  398. package/lib/transform/actions/AbortError.js +0 -16
  399. package/lib/transform/actions/AbortError.js.map +0 -1
  400. package/lib/transform/actions/BaseAction.js +0 -150
  401. package/lib/transform/actions/BaseAction.js.map +0 -1
  402. package/lib/transform/actions/UnprocessedEntrypointError.js +0 -16
  403. package/lib/transform/actions/UnprocessedEntrypointError.js.map +0 -1
  404. package/lib/transform/actions/actionRunner.js +0 -82
  405. package/lib/transform/actions/actionRunner.js.map +0 -1
  406. package/lib/transform/actions/types.js +0 -2
  407. package/lib/transform/actions/types.js.map +0 -1
  408. package/lib/transform/barrelManifest.js +0 -300
  409. package/lib/transform/barrelManifest.js.map +0 -1
  410. package/lib/transform/generators/baseProcessingHandlers.js +0 -27
  411. package/lib/transform/generators/baseProcessingHandlers.js.map +0 -1
  412. package/lib/transform/generators/collect.js +0 -66
  413. package/lib/transform/generators/collect.js.map +0 -1
  414. package/lib/transform/generators/createStylisPreprocessor.js +0 -372
  415. package/lib/transform/generators/createStylisPreprocessor.js.map +0 -1
  416. package/lib/transform/generators/evalFile.js +0 -57
  417. package/lib/transform/generators/evalFile.js.map +0 -1
  418. package/lib/transform/generators/explodeReexports.js +0 -71
  419. package/lib/transform/generators/explodeReexports.js.map +0 -1
  420. package/lib/transform/generators/extract.js +0 -102
  421. package/lib/transform/generators/extract.js.map +0 -1
  422. package/lib/transform/generators/getExports.js +0 -85
  423. package/lib/transform/generators/getExports.js.map +0 -1
  424. package/lib/transform/generators/index.js +0 -19
  425. package/lib/transform/generators/index.js.map +0 -1
  426. package/lib/transform/generators/processEntrypoint.js +0 -76
  427. package/lib/transform/generators/processEntrypoint.js.map +0 -1
  428. package/lib/transform/generators/processImports.js +0 -82
  429. package/lib/transform/generators/processImports.js.map +0 -1
  430. package/lib/transform/generators/resolveImports.js +0 -221
  431. package/lib/transform/generators/resolveImports.js.map +0 -1
  432. package/lib/transform/generators/rewriteBarrelImports.js +0 -743
  433. package/lib/transform/generators/rewriteBarrelImports.js.map +0 -1
  434. package/lib/transform/generators/transform.js +0 -272
  435. package/lib/transform/generators/transform.js.map +0 -1
  436. package/lib/transform/generators/workflow.js +0 -100
  437. package/lib/transform/generators/workflow.js.map +0 -1
  438. package/lib/transform/helpers/loadWywOptions.js +0 -88
  439. package/lib/transform/helpers/loadWywOptions.js.map +0 -1
  440. package/lib/transform/helpers/withDefaultServices.js +0 -31
  441. package/lib/transform/helpers/withDefaultServices.js.map +0 -1
  442. package/lib/transform/isStaticallyEvaluatableModule.js +0 -159
  443. package/lib/transform/isStaticallyEvaluatableModule.js.map +0 -1
  444. package/lib/transform/rootLog.js +0 -9
  445. package/lib/transform/rootLog.js.map +0 -1
  446. package/lib/transform/types.js +0 -8
  447. package/lib/transform/types.js.map +0 -1
  448. package/lib/transform.js +0 -160
  449. package/lib/transform.js.map +0 -1
  450. package/lib/types.js +0 -2
  451. package/lib/types.js.map +0 -1
  452. package/lib/utils/EventEmitter.js +0 -61
  453. package/lib/utils/EventEmitter.js.map +0 -1
  454. package/lib/utils/ShakerMetadata.js +0 -9
  455. package/lib/utils/ShakerMetadata.js.map +0 -1
  456. package/lib/utils/TransformDiagnostics.js +0 -20
  457. package/lib/utils/TransformDiagnostics.js.map +0 -1
  458. package/lib/utils/TransformMetadata.js +0 -45
  459. package/lib/utils/TransformMetadata.js.map +0 -1
  460. package/lib/utils/addIdentifierToWywPreval.js +0 -75
  461. package/lib/utils/addIdentifierToWywPreval.js.map +0 -1
  462. package/lib/utils/collectExportsAndImports.js +0 -1173
  463. package/lib/utils/collectExportsAndImports.js.map +0 -1
  464. package/lib/utils/collectTemplateDependencies.js +0 -242
  465. package/lib/utils/collectTemplateDependencies.js.map +0 -1
  466. package/lib/utils/createId.js +0 -13
  467. package/lib/utils/createId.js.map +0 -1
  468. package/lib/utils/dispose-polyfill.js +0 -9
  469. package/lib/utils/dispose-polyfill.js.map +0 -1
  470. package/lib/utils/findIdentifiers.js +0 -73
  471. package/lib/utils/findIdentifiers.js.map +0 -1
  472. package/lib/utils/getConstantStringValue.js +0 -66
  473. package/lib/utils/getConstantStringValue.js.map +0 -1
  474. package/lib/utils/getFileIdx.js +0 -16
  475. package/lib/utils/getFileIdx.js.map +0 -1
  476. package/lib/utils/getMemberExpressionPropertyName.js +0 -18
  477. package/lib/utils/getMemberExpressionPropertyName.js.map +0 -1
  478. package/lib/utils/getPluginKey.js +0 -21
  479. package/lib/utils/getPluginKey.js.map +0 -1
  480. package/lib/utils/getScope.js +0 -12
  481. package/lib/utils/getScope.js.map +0 -1
  482. package/lib/utils/getSource.js +0 -24
  483. package/lib/utils/getSource.js.map +0 -1
  484. package/lib/utils/getTagProcessor.js +0 -424
  485. package/lib/utils/getTagProcessor.js.map +0 -1
  486. package/lib/utils/getVisitorKeys.js +0 -11
  487. package/lib/utils/getVisitorKeys.js.map +0 -1
  488. package/lib/utils/hasWywPreval.js +0 -13
  489. package/lib/utils/hasWywPreval.js.map +0 -1
  490. package/lib/utils/importOverrides.js +0 -119
  491. package/lib/utils/importOverrides.js.map +0 -1
  492. package/lib/utils/isExports.js +0 -27
  493. package/lib/utils/isExports.js.map +0 -1
  494. package/lib/utils/isGlobal.js +0 -13
  495. package/lib/utils/isGlobal.js.map +0 -1
  496. package/lib/utils/isNode.js +0 -9
  497. package/lib/utils/isNode.js.map +0 -1
  498. package/lib/utils/isNodePath.js +0 -10
  499. package/lib/utils/isNodePath.js.map +0 -1
  500. package/lib/utils/isNotNull.js +0 -10
  501. package/lib/utils/isNotNull.js.map +0 -1
  502. package/lib/utils/isRemoved.js +0 -52
  503. package/lib/utils/isRemoved.js.map +0 -1
  504. package/lib/utils/isRequire.js +0 -18
  505. package/lib/utils/isRequire.js.map +0 -1
  506. package/lib/utils/isSerializable.js +0 -19
  507. package/lib/utils/isSerializable.js.map +0 -1
  508. package/lib/utils/isTypedNode.js +0 -13
  509. package/lib/utils/isTypedNode.js.map +0 -1
  510. package/lib/utils/isUnnecessaryReactCall.js +0 -81
  511. package/lib/utils/isUnnecessaryReactCall.js.map +0 -1
  512. package/lib/utils/parseRequest.js +0 -37
  513. package/lib/utils/parseRequest.js.map +0 -1
  514. package/lib/utils/peek.js +0 -9
  515. package/lib/utils/peek.js.map +0 -1
  516. package/lib/utils/removeDangerousCode.js +0 -284
  517. package/lib/utils/removeDangerousCode.js.map +0 -1
  518. package/lib/utils/replaceImportMetaEnv.js +0 -50
  519. package/lib/utils/replaceImportMetaEnv.js.map +0 -1
  520. package/lib/utils/scopeHelpers.js +0 -557
  521. package/lib/utils/scopeHelpers.js.map +0 -1
  522. package/lib/utils/traversalCache.js +0 -31
  523. package/lib/utils/traversalCache.js.map +0 -1
  524. package/lib/utils/unwrapExpression.js +0 -25
  525. package/lib/utils/unwrapExpression.js.map +0 -1
  526. package/lib/utils/unwrapSequence.js +0 -20
  527. package/lib/utils/unwrapSequence.js.map +0 -1
  528. package/lib/utils/valueToLiteral.js +0 -65
  529. package/lib/utils/valueToLiteral.js.map +0 -1
  530. package/lib/utils/visitors/JSXElementsRemover.js +0 -57
  531. package/lib/utils/visitors/JSXElementsRemover.js.map +0 -1
  532. package/lib/vm/createVmContext.js +0 -166
  533. package/lib/vm/createVmContext.js.map +0 -1
  534. package/lib/vm/process.js +0 -38
  535. package/lib/vm/process.js.map +0 -1
  536. package/types/babel.d.ts +0 -2
  537. package/types/babel.js +0 -2
  538. package/types/options/buildOptions.d.ts +0 -6
  539. package/types/options/buildOptions.js +0 -178
  540. package/types/options/loadBabelOptions.d.ts +0 -3
  541. package/types/options/loadBabelOptions.js +0 -26
  542. package/types/plugins/babel-transform.d.ts +0 -4
  543. package/types/plugins/babel-transform.js +0 -49
  544. package/types/plugins/collector.d.ts +0 -23
  545. package/types/plugins/collector.js +0 -62
  546. package/types/plugins/dynamic-import.d.ts +0 -6
  547. package/types/plugins/dynamic-import.js +0 -60
  548. package/types/plugins/preeval.d.ts +0 -16
  549. package/types/plugins/preeval.js +0 -69
  550. package/types/plugins/shaker.d.ts +0 -14
  551. package/types/plugins/shaker.js +0 -724
  552. package/types/transform/generators/explodeReexports.d.ts +0 -7
  553. package/types/transform/generators/explodeReexports.js +0 -65
  554. package/types/utils/addIdentifierToWywPreval.d.ts +0 -4
  555. package/types/utils/addIdentifierToWywPreval.js +0 -74
  556. package/types/utils/collectExportsAndImports.d.ts +0 -31
  557. package/types/utils/collectExportsAndImports.js +0 -1147
  558. package/types/utils/collectTemplateDependencies.d.ts +0 -17
  559. package/types/utils/collectTemplateDependencies.js +0 -220
  560. package/types/utils/createId.d.ts +0 -2
  561. package/types/utils/createId.js +0 -9
  562. package/types/utils/findIdentifiers.d.ts +0 -6
  563. package/types/utils/findIdentifiers.js +0 -67
  564. package/types/utils/getConstantStringValue.d.ts +0 -2
  565. package/types/utils/getConstantStringValue.js +0 -94
  566. package/types/utils/getMemberExpressionPropertyName.d.ts +0 -2
  567. package/types/utils/getMemberExpressionPropertyName.js +0 -46
  568. package/types/utils/getScope.d.ts +0 -2
  569. package/types/utils/getScope.js +0 -10
  570. package/types/utils/getSource.d.ts +0 -2
  571. package/types/utils/getSource.js +0 -22
  572. package/types/utils/getTagProcessor.d.ts +0 -13
  573. package/types/utils/getTagProcessor.js +0 -411
  574. package/types/utils/isExports.d.ts +0 -6
  575. package/types/utils/isExports.js +0 -19
  576. package/types/utils/isGlobal.d.ts +0 -2
  577. package/types/utils/isGlobal.js +0 -9
  578. package/types/utils/isNodePath.d.ts +0 -3
  579. package/types/utils/isNodePath.js +0 -6
  580. package/types/utils/isRemoved.d.ts +0 -5
  581. package/types/utils/isRemoved.js +0 -41
  582. package/types/utils/isRequire.d.ts +0 -6
  583. package/types/utils/isRequire.js +0 -14
  584. package/types/utils/isTypedNode.d.ts +0 -5
  585. package/types/utils/isTypedNode.js +0 -9
  586. package/types/utils/isUnnecessaryReactCall.d.ts +0 -3
  587. package/types/utils/isUnnecessaryReactCall.js +0 -75
  588. package/types/utils/removeDangerousCode.d.ts +0 -4
  589. package/types/utils/removeDangerousCode.js +0 -326
  590. package/types/utils/replaceImportMetaEnv.d.ts +0 -3
  591. package/types/utils/replaceImportMetaEnv.js +0 -39
  592. package/types/utils/scopeHelpers.d.ts +0 -12
  593. package/types/utils/scopeHelpers.js +0 -580
  594. package/types/utils/traversalCache.d.ts +0 -4
  595. package/types/utils/traversalCache.js +0 -27
  596. package/types/utils/unwrapExpression.d.ts +0 -2
  597. package/types/utils/unwrapExpression.js +0 -57
  598. package/types/utils/unwrapSequence.d.ts +0 -8
  599. package/types/utils/unwrapSequence.js +0 -16
  600. package/types/utils/valueToLiteral.d.ts +0 -3
  601. package/types/utils/valueToLiteral.js +0 -63
  602. package/types/utils/visitors/JSXElementsRemover.d.ts +0 -3
  603. package/types/utils/visitors/JSXElementsRemover.js +0 -51
@@ -1,12 +1,6 @@
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.analyzeBarrelFile = analyzeBarrelFile;
7
1
  /* eslint-disable no-continue, @typescript-eslint/no-use-before-define */
8
- const traverse_1 = __importDefault(require("@babel/traverse"));
9
- const types_1 = require("@babel/types");
2
+ import { parseSync } from 'oxc-parser';
3
+ const nameFromModuleExport = (node) => node.type === 'Literal' ? String(node.value) : node.name;
10
4
  const isTypeOnlyImport = (statement) => {
11
5
  if (statement.importKind === 'type') {
12
6
  return true;
@@ -16,8 +10,7 @@ const isTypeOnlyImport = (statement) => {
16
10
  }
17
11
  return statement.specifiers.every((specifier) => specifier.type === 'ImportSpecifier' && specifier.importKind === 'type');
18
12
  };
19
- const isTypeOnlyExport = (statement) => statement.exportKind === 'type';
20
- const getModuleExportName = (node) => node.type === 'Identifier' ? node.name : node.value;
13
+ const isTypeOnlyExport = (statement) => 'exportKind' in statement && statement.exportKind === 'type';
21
14
  const isTypeOnlyStatement = (statement) => {
22
15
  switch (statement.type) {
23
16
  case 'EmptyStatement':
@@ -29,60 +22,71 @@ const isTypeOnlyStatement = (statement) => {
29
22
  return false;
30
23
  }
31
24
  };
32
- function collectExportNamedDeclaration(statement, reexports, explicitExports) {
33
- if (!statement.source) {
34
- return isTypeOnlyExport(statement);
35
- }
36
- if (isTypeOnlyExport(statement)) {
37
- return true;
38
- }
39
- const source = statement.source.value;
40
- for (const specifier of statement.specifiers) {
41
- if (specifier.type === 'ExportSpecifier') {
42
- if (specifier.exportKind === 'type') {
43
- continue;
44
- }
45
- explicitExports.add(getModuleExportName(specifier.exported));
46
- reexports.push(getNamedReexport(specifier, source));
47
- continue;
25
+ const getChildren = (node) => {
26
+ const result = [];
27
+ const record = node;
28
+ Object.keys(record).forEach((key) => {
29
+ if (key === 'type' || key === 'start' || key === 'end' || key === 'range') {
30
+ return;
48
31
  }
49
- if (specifier.type === 'ExportDefaultSpecifier') {
50
- explicitExports.add(getModuleExportName(specifier.exported));
51
- reexports.push(getDefaultReexport(specifier, source));
52
- continue;
53
- }
54
- if (specifier.type === 'ExportNamespaceSpecifier') {
55
- explicitExports.add(getModuleExportName(specifier.exported));
56
- reexports.push(getNamespaceReexport(specifier, source));
57
- continue;
32
+ const value = record[key];
33
+ if (value && typeof value === 'object') {
34
+ if (Array.isArray(value)) {
35
+ value.forEach((item) => {
36
+ if (item && typeof item === 'object' && 'type' in item) {
37
+ result.push({ key, node: item });
38
+ }
39
+ });
40
+ return;
41
+ }
42
+ if ('type' in value) {
43
+ result.push({ key, node: value });
44
+ }
58
45
  }
59
- return false;
46
+ });
47
+ return result;
48
+ };
49
+ const collectBindingNames = (pattern) => {
50
+ if (!pattern) {
51
+ return [];
60
52
  }
61
- return statement.specifiers.length > 0;
62
- }
63
- function getNamedReexport(specifier, source) {
64
- return {
65
- exported: getModuleExportName(specifier.exported),
66
- imported: getModuleExportName(specifier.local),
67
- kind: 'named',
68
- source,
69
- };
70
- }
71
- function getDefaultReexport(specifier, source) {
72
- return {
73
- exported: getModuleExportName(specifier.exported),
74
- imported: 'default',
75
- kind: 'named',
76
- source,
77
- };
78
- }
79
- function getNamespaceReexport(specifier, source) {
80
- return {
81
- exported: getModuleExportName(specifier.exported),
82
- kind: 'namespace',
83
- source,
84
- };
85
- }
53
+ if (pattern.type === 'Identifier') {
54
+ return [pattern.name];
55
+ }
56
+ if (pattern.type === 'RestElement') {
57
+ return collectBindingNames(pattern.argument);
58
+ }
59
+ if (pattern.type === 'AssignmentPattern') {
60
+ return collectBindingNames(pattern.left);
61
+ }
62
+ if (pattern.type === 'ObjectPattern') {
63
+ return pattern.properties.flatMap((property) => property.type === 'RestElement'
64
+ ? collectBindingNames(property.argument)
65
+ : collectBindingNames(property.value));
66
+ }
67
+ if (pattern.type === 'ArrayPattern') {
68
+ return pattern.elements.flatMap((element) => collectBindingNames(element));
69
+ }
70
+ return [];
71
+ };
72
+ const getLocalDeclarationNames = (declaration) => {
73
+ if (!declaration) {
74
+ return [];
75
+ }
76
+ if (declaration.type === 'VariableDeclaration') {
77
+ return declaration.declarations.flatMap((declarator) => collectBindingNames(declarator.id));
78
+ }
79
+ if ((declaration.type === 'FunctionDeclaration' ||
80
+ declaration.type === 'ClassDeclaration') &&
81
+ declaration.id) {
82
+ return [declaration.id.name];
83
+ }
84
+ if (declaration.type === 'TSEnumDeclaration' ||
85
+ declaration.type === 'TSModuleDeclaration') {
86
+ return null;
87
+ }
88
+ return [];
89
+ };
86
90
  const collectImportBinding = (statement, imports) => {
87
91
  if (statement.importKind === 'type') {
88
92
  return true;
@@ -99,7 +103,7 @@ const collectImportBinding = (statement, imports) => {
99
103
  sawValueImport = true;
100
104
  if (specifier.type === 'ImportSpecifier') {
101
105
  imports.set(specifier.local.name, {
102
- imported: getImportSpecifierName(specifier),
106
+ imported: nameFromModuleExport(specifier.imported),
103
107
  kind: 'named',
104
108
  source: statement.source.value,
105
109
  });
@@ -120,18 +124,31 @@ const collectImportBinding = (statement, imports) => {
120
124
  }
121
125
  return sawValueImport || isTypeOnlyImport(statement);
122
126
  };
123
- const getImportSpecifierName = (specifier) => getModuleExportName(specifier.imported);
124
- const getLocalDeclarationNames = (declaration) => {
125
- if (declaration.type === 'VariableDeclaration' ||
126
- declaration.type === 'FunctionDeclaration' ||
127
- declaration.type === 'ClassDeclaration') {
128
- return Object.keys((0, types_1.getBindingIdentifiers)(declaration));
127
+ const getNamedReexport = (specifier, source) => ({
128
+ exported: nameFromModuleExport(specifier.exported),
129
+ imported: nameFromModuleExport(specifier.local),
130
+ kind: 'named',
131
+ source,
132
+ });
133
+ const collectExportNamedDeclaration = (statement, reexports, explicitExports) => {
134
+ if (!statement.source) {
135
+ return isTypeOnlyExport(statement);
129
136
  }
130
- if (declaration.type === 'TSEnumDeclaration' ||
131
- declaration.type === 'TSModuleDeclaration') {
132
- return null;
137
+ if (isTypeOnlyExport(statement)) {
138
+ return true;
133
139
  }
134
- return [];
140
+ const source = statement.source.value;
141
+ for (const specifier of statement.specifiers) {
142
+ if (specifier.type !== 'ExportSpecifier') {
143
+ return false;
144
+ }
145
+ if (specifier.exportKind === 'type') {
146
+ continue;
147
+ }
148
+ explicitExports.add(nameFromModuleExport(specifier.exported));
149
+ reexports.push(getNamedReexport(specifier, source));
150
+ }
151
+ return statement.specifiers.length > 0;
135
152
  };
136
153
  const collectLocalExportNamedDeclaration = (statement, importedBindings, passthroughCandidates, explicitExports) => {
137
154
  let complete = true;
@@ -149,9 +166,7 @@ const collectLocalExportNamedDeclaration = (statement, importedBindings, passthr
149
166
  ok: false,
150
167
  };
151
168
  }
152
- for (const name of names) {
153
- explicitExports.add(name);
154
- }
169
+ names.forEach((name) => explicitExports.add(name));
155
170
  return {
156
171
  complete: names.length === 0,
157
172
  ok: true,
@@ -167,7 +182,7 @@ const collectLocalExportNamedDeclaration = (statement, importedBindings, passthr
167
182
  if (specifier.exportKind === 'type') {
168
183
  continue;
169
184
  }
170
- const exported = getModuleExportName(specifier.exported);
185
+ const exported = nameFromModuleExport(specifier.exported);
171
186
  explicitExports.add(exported);
172
187
  if (specifier.local.type !== 'Identifier') {
173
188
  complete = false;
@@ -187,19 +202,46 @@ const collectLocalExportNamedDeclaration = (statement, importedBindings, passthr
187
202
  ok: true,
188
203
  };
189
204
  };
190
- const collectPassthroughReexports = (ast, importedBindings, passthroughCandidates, reexports) => {
205
+ const isBindingIdentifier = (node, parent, key) => {
206
+ if (!parent) {
207
+ return false;
208
+ }
209
+ if ((parent.type === 'ImportSpecifier' ||
210
+ parent.type === 'ImportDefaultSpecifier' ||
211
+ parent.type === 'ImportNamespaceSpecifier') &&
212
+ key === 'local') {
213
+ return true;
214
+ }
215
+ if (parent.type === 'VariableDeclarator' && key === 'id') {
216
+ return true;
217
+ }
218
+ if ((parent.type === 'FunctionDeclaration' ||
219
+ parent.type === 'ClassDeclaration') &&
220
+ key === 'id') {
221
+ return true;
222
+ }
223
+ return false;
224
+ };
225
+ const countBindingReferences = (node, names, counts, parent = null, key = '') => {
226
+ if (node.type === 'ImportDeclaration' || node.type.startsWith('TS')) {
227
+ return;
228
+ }
229
+ if (node.type === 'Identifier' &&
230
+ names.has(node.name) &&
231
+ !isBindingIdentifier(node, parent, key) &&
232
+ !(parent?.type === 'ExportSpecifier' && key === 'exported') &&
233
+ !(parent?.type === 'Property' && parent.key === node && !parent.computed)) {
234
+ counts.set(node.name, (counts.get(node.name) ?? 0) + 1);
235
+ }
236
+ getChildren(node).forEach((child) => countBindingReferences(child.node, names, counts, node, child.key));
237
+ };
238
+ const collectPassthroughReexports = (program, importedBindings, passthroughCandidates, reexports) => {
191
239
  let complete = true;
240
+ const candidateNames = new Set(passthroughCandidates.keys());
192
241
  const bindingReferenceCounts = new Map();
193
- (0, traverse_1.default)(ast, {
194
- Program(path) {
195
- for (const localName of passthroughCandidates.keys()) {
196
- bindingReferenceCounts.set(localName, path.scope.getBinding(localName)?.referencePaths.length ?? -1);
197
- }
198
- path.stop();
199
- },
200
- });
242
+ countBindingReferences(program, candidateNames, bindingReferenceCounts);
201
243
  for (const [localName, exportedNames] of passthroughCandidates) {
202
- if (bindingReferenceCounts.get(localName) !== exportedNames.length) {
244
+ if ((bindingReferenceCounts.get(localName) ?? 0) !== exportedNames.length) {
203
245
  complete = false;
204
246
  continue;
205
247
  }
@@ -226,14 +268,26 @@ const collectPassthroughReexports = (ast, importedBindings, passthroughCandidate
226
268
  ok: true,
227
269
  };
228
270
  };
229
- function analyzeBarrelProgram(ast) {
271
+ const parseProgram = (code, filename) => {
272
+ const parsed = parseSync(filename, code, {
273
+ astType: filename.endsWith('.ts') || filename.endsWith('.tsx') ? 'ts' : 'js',
274
+ range: true,
275
+ sourceType: 'module',
276
+ });
277
+ const fatalError = parsed.errors.find((error) => error.severity === 'Error');
278
+ if (fatalError) {
279
+ throw new Error(fatalError.message);
280
+ }
281
+ return parsed.program;
282
+ };
283
+ const analyzeBarrelProgram = (program) => {
230
284
  const reexports = [];
231
285
  const explicitExports = new Set();
232
286
  const exportAll = [];
233
287
  const importedBindings = new Map();
234
288
  const passthroughCandidates = new Map();
235
289
  let complete = true;
236
- for (const statement of ast.program.body) {
290
+ for (const statement of program.body) {
237
291
  if (statement.type === 'ImportDeclaration') {
238
292
  if (!collectImportBinding(statement, importedBindings)) {
239
293
  return null;
@@ -255,13 +309,19 @@ function analyzeBarrelProgram(ast) {
255
309
  continue;
256
310
  }
257
311
  if (statement.type === 'ExportAllDeclaration') {
258
- if (statement.exportKind === 'type') {
312
+ if (isTypeOnlyExport(statement)) {
259
313
  continue;
260
314
  }
261
- if (!statement.source) {
262
- return null;
315
+ if (statement.exported) {
316
+ explicitExports.add(nameFromModuleExport(statement.exported));
317
+ reexports.push({
318
+ exported: nameFromModuleExport(statement.exported),
319
+ kind: 'namespace',
320
+ source: statement.source.value,
321
+ });
322
+ continue;
263
323
  }
264
- exportAll.push(getExportAllSource(statement));
324
+ exportAll.push(statement.source.value);
265
325
  continue;
266
326
  }
267
327
  if (statement.type === 'ExportDefaultDeclaration') {
@@ -271,7 +331,7 @@ function analyzeBarrelProgram(ast) {
271
331
  return null;
272
332
  }
273
333
  }
274
- const passthroughResult = collectPassthroughReexports(ast, importedBindings, passthroughCandidates, reexports);
334
+ const passthroughResult = collectPassthroughReexports(program, importedBindings, passthroughCandidates, reexports);
275
335
  if (!passthroughResult.ok) {
276
336
  return null;
277
337
  }
@@ -286,10 +346,9 @@ function analyzeBarrelProgram(ast) {
286
346
  kind: 'barrel',
287
347
  reexports,
288
348
  };
289
- }
290
- const getExportAllSource = (statement) => statement.source.value;
291
- function analyzeBarrelFile(ast) {
292
- const result = analyzeBarrelProgram(ast);
349
+ };
350
+ export function analyzeOxcBarrelFile(code, filename) {
351
+ const result = analyzeBarrelProgram(parseProgram(code, filename));
293
352
  if (!result) {
294
353
  return {
295
354
  kind: 'ineligible',
@@ -1,5 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rootLog = void 0;
4
- const shared_1 = require("@wyw-in-js/shared");
5
- exports.rootLog = shared_1.logger.extend('transform');
1
+ import { logger } from '@wyw-in-js/shared';
2
+ export const rootLog = logger.extend('transform');
@@ -0,0 +1,38 @@
1
+ export type SyntaxEngine = 'oxc';
2
+ export type SyntaxSourceLocation = {
3
+ column: number;
4
+ line: number;
5
+ };
6
+ export type SyntaxSourceRange = {
7
+ end: SyntaxSourceLocation;
8
+ start: SyntaxSourceLocation;
9
+ };
10
+ export type ParsedModule<TAst = unknown> = {
11
+ ast: TAst;
12
+ code: string;
13
+ engine: SyntaxEngine;
14
+ filename: string;
15
+ };
16
+ export type ModuleImport = {
17
+ imported: string;
18
+ source: string;
19
+ };
20
+ export type ModuleReexport = {
21
+ exported: string;
22
+ source: string;
23
+ };
24
+ export type ModuleAnalysis = {
25
+ exports: readonly string[];
26
+ imports: readonly ModuleImport[];
27
+ reexports: readonly ModuleReexport[];
28
+ };
29
+ export type EmittedModule<TSourceMap = unknown> = {
30
+ code: string;
31
+ map?: TSourceMap | null;
32
+ };
33
+ export type SyntaxAdapter<TAst = unknown, TParseOptions = unknown, TEmitOptions = unknown> = {
34
+ engine: SyntaxEngine;
35
+ analyze(module: ParsedModule<TAst>): ModuleAnalysis;
36
+ emit(module: ParsedModule<TAst>, options?: TEmitOptions): EmittedModule;
37
+ parse(code: string, filename: string, options?: TParseOptions): ParsedModule<TAst>;
38
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,7 +1,6 @@
1
- import type { BabelFileResult } from '@babel/core';
2
1
  import type { ValueCache } from '@wyw-in-js/processor-utils';
3
2
  import type { Debugger, Artifact, StrictOptions } from '@wyw-in-js/shared';
4
- import type { Core } from '../babel';
3
+ import type { RawSourceMap } from 'source-map';
5
4
  import type { TransformCacheCollection } from '../cache';
6
5
  import type { Options, ITransformFileResult } from '../types';
7
6
  import type { EventEmitter } from '../utils/EventEmitter';
@@ -10,8 +9,8 @@ import type { Entrypoint } from './Entrypoint';
10
9
  import type { LoadAndParseFn, IEntrypointDependency } from './Entrypoint.types';
11
10
  import type { BaseAction } from './actions/BaseAction';
12
11
  import type { IExtracted, IWorkflowActionLinariaResult, IWorkflowActionNonLinariaResult } from './actions/types';
12
+ import type { EvalBroker } from '../eval/broker';
13
13
  export type Services = {
14
- babel: Core;
15
14
  cache: TransformCacheCollection;
16
15
  emitWarning?: (message: string) => void;
17
16
  eventEmitter: EventEmitter;
@@ -20,6 +19,9 @@ export type Services = {
20
19
  options: Options & {
21
20
  pluginOptions: StrictOptions;
22
21
  };
22
+ asyncResolve?: (what: string, importer: string, stack: string[]) => Promise<string | null>;
23
+ asyncResolveKey?: string;
24
+ evalBroker?: EvalBroker;
23
25
  };
24
26
  export interface IBaseNode {
25
27
  type: ActionTypes;
@@ -88,9 +90,9 @@ export type GetNext = <TType extends ActionTypes, TNextAction extends ActionByTy
88
90
  AbortSignal | null
89
91
  ], TypeOfResult<TNextAction>, YieldResult>;
90
92
  export interface ICollectActionResult {
91
- ast: BabelFileResult['ast'];
92
- code: BabelFileResult['code'];
93
- map?: BabelFileResult['map'];
93
+ ast: unknown;
94
+ code: string | null | undefined;
95
+ map?: RawSourceMap | null;
94
96
  metadata?: WYWTransformMetadata | null;
95
97
  }
96
98
  export interface ICollectAction extends IBaseAction<ICollectAction, ICollectActionResult, {
@@ -119,6 +121,7 @@ export interface IProcessEntrypointAction extends IBaseAction<IProcessEntrypoint
119
121
  }
120
122
  export interface IProcessImportsAction extends IBaseAction<IProcessImportsAction, void, {
121
123
  resolved: IEntrypointDependency[];
124
+ skipParentDependencyTracking?: string[];
122
125
  }> {
123
126
  type: 'processImports';
124
127
  }
@@ -1,4 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Pending = void 0;
4
- exports.Pending = Symbol('pending');
1
+ export const Pending = Symbol('pending');
@@ -5,7 +5,7 @@
5
5
  * - shakes each dependency and removes unused code
6
6
  * - runs generated code in a sandbox
7
7
  * - collects artifacts
8
- * - returns transformed code (without WYW template literals), generated CSS, source maps and babel metadata from transform step.
8
+ * - returns transformed code (without WYW template literals), generated CSS, source maps and transform metadata.
9
9
  */
10
10
  import type { PartialOptions } from './transform/helpers/loadWywOptions';
11
11
  import type { Handlers, Services } from './transform/types';
@@ -16,6 +16,6 @@ type PartialServices = Partial<Omit<Services, 'options'>> & {
16
16
  };
17
17
  };
18
18
  type AllHandlers<TMode extends 'async' | 'sync'> = Handlers<TMode>;
19
- export declare function transformSync(partialServices: PartialServices, originalCode: string, syncResolve: (what: string, importer: string, stack: string[]) => string, customHandlers?: Partial<AllHandlers<'sync'>>): Result;
19
+ export declare function transformSync(_partialServices: PartialServices, _originalCode: string, _syncResolve: (what: string, importer: string, stack: string[]) => string, _customHandlers?: Partial<AllHandlers<'sync'>>): Result;
20
20
  export declare function transform(partialServices: PartialServices, originalCode: string, asyncResolve: (what: string, importer: string, stack: string[]) => Promise<string | null>, customHandlers?: Partial<AllHandlers<'sync'>>): Promise<Result>;
21
21
  export {};