@wyw-in-js/transform 1.0.8 → 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 -28
  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 -79
  78. package/esm/transform/generators/workflow.js.map +1 -1
  79. package/esm/transform/helpers/loadWywOptions.js +154 -73
  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 +10 -0
  102. package/esm/utils/TransformDiagnostics.js.map +1 -0
  103. package/esm/utils/TransformMetadata.js +28 -10
  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 +7 -8
  178. package/types/index.js +24 -77
  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 +6 -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 -37
  222. package/types/transform/helpers/loadWywOptions.js +95 -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 +4 -24
  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.d.ts +9 -0
  241. package/types/utils/TransformDiagnostics.js +11 -0
  242. package/types/utils/TransformMetadata.d.ts +22 -4
  243. package/types/utils/TransformMetadata.js +23 -8
  244. package/types/utils/applyOxcProcessors.d.ts +16 -0
  245. package/types/utils/applyOxcProcessors.js +1391 -0
  246. package/types/utils/collectOxcExportsAndImports.d.ts +35 -0
  247. package/types/utils/collectOxcExportsAndImports.js +957 -0
  248. package/types/utils/collectOxcRuntime.d.ts +14 -0
  249. package/types/utils/collectOxcRuntime.js +250 -0
  250. package/types/utils/collectOxcTemplateDependencies.d.ts +38 -0
  251. package/types/utils/collectOxcTemplateDependencies.js +1580 -0
  252. package/types/utils/getFileIdx.js +1 -4
  253. package/types/utils/getPluginKey.d.ts +5 -2
  254. package/types/utils/getPluginKey.js +2 -6
  255. package/types/utils/getVisitorKeys.d.ts +4 -4
  256. package/types/utils/getVisitorKeys.js +9 -6
  257. package/types/utils/hasCachedWywPrevalExport.d.ts +14 -0
  258. package/types/utils/hasCachedWywPrevalExport.js +30 -0
  259. package/types/utils/hasWywPreval.js +1 -4
  260. package/types/utils/importOverrides.js +17 -27
  261. package/types/utils/isNode.d.ts +2 -2
  262. package/types/utils/isNode.js +2 -6
  263. package/types/utils/isNotNull.js +1 -4
  264. package/types/utils/isSerializable.js +3 -6
  265. package/types/utils/oxcAstService.d.ts +11 -0
  266. package/types/utils/oxcAstService.js +79 -0
  267. package/types/utils/oxcEmit.d.ts +19 -0
  268. package/types/utils/oxcEmit.js +506 -0
  269. package/types/utils/oxcPreevalStage.d.ts +20 -0
  270. package/types/utils/oxcPreevalStage.js +102 -0
  271. package/types/utils/oxcPreevalTransforms.d.ts +13 -0
  272. package/types/utils/oxcPreevalTransforms.js +1179 -0
  273. package/types/utils/oxcShaker.d.ts +13 -0
  274. package/types/utils/oxcShaker.js +751 -0
  275. package/types/utils/parseOxc.d.ts +11 -0
  276. package/types/utils/parseOxc.js +38 -0
  277. package/types/utils/parseRequest.js +2 -7
  278. package/types/utils/peek.js +1 -5
  279. package/types/utils/processorLookup.d.ts +8 -0
  280. package/types/utils/processorLookup.js +135 -0
  281. package/types/utils/resolveWithConditions.d.ts +12 -0
  282. package/types/utils/resolveWithConditions.js +103 -0
  283. package/types/vm/createVmContext.d.ts +2 -2
  284. package/types/vm/createVmContext.js +25 -62
  285. package/types/vm/process.js +20 -26
  286. package/esm/babel.js +0 -2
  287. package/esm/babel.js.map +0 -1
  288. package/esm/options/buildOptions.js +0 -168
  289. package/esm/options/buildOptions.js.map +0 -1
  290. package/esm/options/buildOptions.test.js +0 -138
  291. package/esm/options/buildOptions.test.js.map +0 -1
  292. package/esm/options/loadBabelOptions.js +0 -24
  293. package/esm/options/loadBabelOptions.js.map +0 -1
  294. package/esm/plugins/babel-transform.js +0 -53
  295. package/esm/plugins/babel-transform.js.map +0 -1
  296. package/esm/plugins/collector.js +0 -60
  297. package/esm/plugins/collector.js.map +0 -1
  298. package/esm/plugins/dynamic-import.js +0 -56
  299. package/esm/plugins/dynamic-import.js.map +0 -1
  300. package/esm/plugins/preeval.js +0 -73
  301. package/esm/plugins/preeval.js.map +0 -1
  302. package/esm/plugins/shaker.js +0 -680
  303. package/esm/plugins/shaker.js.map +0 -1
  304. package/esm/transform/barrelManifest.js +0 -291
  305. package/esm/transform/barrelManifest.js.map +0 -1
  306. package/esm/transform/generators/explodeReexports.js +0 -64
  307. package/esm/transform/generators/explodeReexports.js.map +0 -1
  308. package/esm/transform/generators/rewriteBarrelImports.js +0 -733
  309. package/esm/transform/generators/rewriteBarrelImports.js.map +0 -1
  310. package/esm/utils/addIdentifierToWywPreval.js +0 -68
  311. package/esm/utils/addIdentifierToWywPreval.js.map +0 -1
  312. package/esm/utils/collectExportsAndImports.js +0 -1157
  313. package/esm/utils/collectExportsAndImports.js.map +0 -1
  314. package/esm/utils/collectTemplateDependencies.js +0 -228
  315. package/esm/utils/collectTemplateDependencies.js.map +0 -1
  316. package/esm/utils/createId.js +0 -6
  317. package/esm/utils/createId.js.map +0 -1
  318. package/esm/utils/findIdentifiers.js +0 -62
  319. package/esm/utils/findIdentifiers.js.map +0 -1
  320. package/esm/utils/getConstantStringValue.js +0 -58
  321. package/esm/utils/getConstantStringValue.js.map +0 -1
  322. package/esm/utils/getMemberExpressionPropertyName.js +0 -11
  323. package/esm/utils/getMemberExpressionPropertyName.js.map +0 -1
  324. package/esm/utils/getScope.js +0 -6
  325. package/esm/utils/getScope.js.map +0 -1
  326. package/esm/utils/getSource.js +0 -15
  327. package/esm/utils/getSource.js.map +0 -1
  328. package/esm/utils/getTagProcessor.js +0 -404
  329. package/esm/utils/getTagProcessor.js.map +0 -1
  330. package/esm/utils/isExports.js +0 -22
  331. package/esm/utils/isExports.js.map +0 -1
  332. package/esm/utils/isGlobal.js +0 -6
  333. package/esm/utils/isGlobal.js.map +0 -1
  334. package/esm/utils/isNodePath.js +0 -4
  335. package/esm/utils/isNodePath.js.map +0 -1
  336. package/esm/utils/isRemoved.js +0 -46
  337. package/esm/utils/isRemoved.js.map +0 -1
  338. package/esm/utils/isRequire.js +0 -13
  339. package/esm/utils/isRequire.js.map +0 -1
  340. package/esm/utils/isTypedNode.js +0 -6
  341. package/esm/utils/isTypedNode.js.map +0 -1
  342. package/esm/utils/isUnnecessaryReactCall.js +0 -72
  343. package/esm/utils/isUnnecessaryReactCall.js.map +0 -1
  344. package/esm/utils/removeDangerousCode.js +0 -276
  345. package/esm/utils/removeDangerousCode.js.map +0 -1
  346. package/esm/utils/replaceImportMetaEnv.js +0 -44
  347. package/esm/utils/replaceImportMetaEnv.js.map +0 -1
  348. package/esm/utils/scopeHelpers.js +0 -527
  349. package/esm/utils/scopeHelpers.js.map +0 -1
  350. package/esm/utils/traversalCache.js +0 -23
  351. package/esm/utils/traversalCache.js.map +0 -1
  352. package/esm/utils/unwrapExpression.js +0 -18
  353. package/esm/utils/unwrapExpression.js.map +0 -1
  354. package/esm/utils/unwrapSequence.js +0 -14
  355. package/esm/utils/unwrapSequence.js.map +0 -1
  356. package/esm/utils/valueToLiteral.js +0 -59
  357. package/esm/utils/valueToLiteral.js.map +0 -1
  358. package/esm/utils/visitors/JSXElementsRemover.js +0 -51
  359. package/esm/utils/visitors/JSXElementsRemover.js.map +0 -1
  360. package/lib/babel.js +0 -2
  361. package/lib/babel.js.map +0 -1
  362. package/lib/cache.js +0 -308
  363. package/lib/cache.js.map +0 -1
  364. package/lib/debug/fileReporter.js +0 -153
  365. package/lib/debug/fileReporter.js.map +0 -1
  366. package/lib/evaluators/index.js +0 -20
  367. package/lib/evaluators/index.js.map +0 -1
  368. package/lib/index.js +0 -257
  369. package/lib/index.js.map +0 -1
  370. package/lib/module.js +0 -552
  371. package/lib/module.js.map +0 -1
  372. package/lib/options/buildOptions.js +0 -176
  373. package/lib/options/buildOptions.js.map +0 -1
  374. package/lib/options/buildOptions.test.js +0 -141
  375. package/lib/options/buildOptions.test.js.map +0 -1
  376. package/lib/options/loadBabelOptions.js +0 -31
  377. package/lib/options/loadBabelOptions.js.map +0 -1
  378. package/lib/plugins/babel-transform.js +0 -60
  379. package/lib/plugins/babel-transform.js.map +0 -1
  380. package/lib/plugins/collector.js +0 -70
  381. package/lib/plugins/collector.js.map +0 -1
  382. package/lib/plugins/dynamic-import.js +0 -61
  383. package/lib/plugins/dynamic-import.js.map +0 -1
  384. package/lib/plugins/preeval.js +0 -81
  385. package/lib/plugins/preeval.js.map +0 -1
  386. package/lib/plugins/shaker.js +0 -691
  387. package/lib/plugins/shaker.js.map +0 -1
  388. package/lib/shaker.js +0 -95
  389. package/lib/shaker.js.map +0 -1
  390. package/lib/transform/BaseEntrypoint.js +0 -179
  391. package/lib/transform/BaseEntrypoint.js.map +0 -1
  392. package/lib/transform/Entrypoint.helpers.js +0 -279
  393. package/lib/transform/Entrypoint.helpers.js.map +0 -1
  394. package/lib/transform/Entrypoint.js +0 -289
  395. package/lib/transform/Entrypoint.js.map +0 -1
  396. package/lib/transform/Entrypoint.types.js +0 -2
  397. package/lib/transform/Entrypoint.types.js.map +0 -1
  398. package/lib/transform/EvaluatedEntrypoint.js +0 -13
  399. package/lib/transform/EvaluatedEntrypoint.js.map +0 -1
  400. package/lib/transform/actions/AbortError.js +0 -16
  401. package/lib/transform/actions/AbortError.js.map +0 -1
  402. package/lib/transform/actions/BaseAction.js +0 -150
  403. package/lib/transform/actions/BaseAction.js.map +0 -1
  404. package/lib/transform/actions/UnprocessedEntrypointError.js +0 -16
  405. package/lib/transform/actions/UnprocessedEntrypointError.js.map +0 -1
  406. package/lib/transform/actions/actionRunner.js +0 -82
  407. package/lib/transform/actions/actionRunner.js.map +0 -1
  408. package/lib/transform/actions/types.js +0 -2
  409. package/lib/transform/actions/types.js.map +0 -1
  410. package/lib/transform/barrelManifest.js +0 -300
  411. package/lib/transform/barrelManifest.js.map +0 -1
  412. package/lib/transform/generators/baseProcessingHandlers.js +0 -27
  413. package/lib/transform/generators/baseProcessingHandlers.js.map +0 -1
  414. package/lib/transform/generators/collect.js +0 -66
  415. package/lib/transform/generators/collect.js.map +0 -1
  416. package/lib/transform/generators/createStylisPreprocessor.js +0 -372
  417. package/lib/transform/generators/createStylisPreprocessor.js.map +0 -1
  418. package/lib/transform/generators/evalFile.js +0 -57
  419. package/lib/transform/generators/evalFile.js.map +0 -1
  420. package/lib/transform/generators/explodeReexports.js +0 -71
  421. package/lib/transform/generators/explodeReexports.js.map +0 -1
  422. package/lib/transform/generators/extract.js +0 -102
  423. package/lib/transform/generators/extract.js.map +0 -1
  424. package/lib/transform/generators/getExports.js +0 -85
  425. package/lib/transform/generators/getExports.js.map +0 -1
  426. package/lib/transform/generators/index.js +0 -19
  427. package/lib/transform/generators/index.js.map +0 -1
  428. package/lib/transform/generators/processEntrypoint.js +0 -76
  429. package/lib/transform/generators/processEntrypoint.js.map +0 -1
  430. package/lib/transform/generators/processImports.js +0 -82
  431. package/lib/transform/generators/processImports.js.map +0 -1
  432. package/lib/transform/generators/resolveImports.js +0 -221
  433. package/lib/transform/generators/resolveImports.js.map +0 -1
  434. package/lib/transform/generators/rewriteBarrelImports.js +0 -743
  435. package/lib/transform/generators/rewriteBarrelImports.js.map +0 -1
  436. package/lib/transform/generators/transform.js +0 -272
  437. package/lib/transform/generators/transform.js.map +0 -1
  438. package/lib/transform/generators/workflow.js +0 -90
  439. package/lib/transform/generators/workflow.js.map +0 -1
  440. package/lib/transform/helpers/loadWywOptions.js +0 -87
  441. package/lib/transform/helpers/loadWywOptions.js.map +0 -1
  442. package/lib/transform/helpers/withDefaultServices.js +0 -31
  443. package/lib/transform/helpers/withDefaultServices.js.map +0 -1
  444. package/lib/transform/isStaticallyEvaluatableModule.js +0 -159
  445. package/lib/transform/isStaticallyEvaluatableModule.js.map +0 -1
  446. package/lib/transform/rootLog.js +0 -9
  447. package/lib/transform/rootLog.js.map +0 -1
  448. package/lib/transform/types.js +0 -8
  449. package/lib/transform/types.js.map +0 -1
  450. package/lib/transform.js +0 -160
  451. package/lib/transform.js.map +0 -1
  452. package/lib/types.js +0 -2
  453. package/lib/types.js.map +0 -1
  454. package/lib/utils/EventEmitter.js +0 -61
  455. package/lib/utils/EventEmitter.js.map +0 -1
  456. package/lib/utils/ShakerMetadata.js +0 -9
  457. package/lib/utils/ShakerMetadata.js.map +0 -1
  458. package/lib/utils/TransformMetadata.js +0 -19
  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 -20
  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 {};