@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,178 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildOptions = buildOptions;
4
- const isNotNull_1 = require("../utils/isNotNull");
5
- const cache = new WeakMap();
6
- const isPlainObject = (value) => {
7
- if (typeof value !== 'object' || value === null)
8
- return false;
9
- const prototype = Object.getPrototypeOf(value);
10
- return prototype === Object.prototype || prototype === null;
11
- };
12
- const mergeArraysUnique = (source = [], overrides = []) => [
13
- ...new Set([...source, ...overrides]),
14
- ];
15
- const mergeUnknown = (source, overrides) => {
16
- if (Array.isArray(source) && Array.isArray(overrides)) {
17
- return mergeArraysUnique(source, overrides);
18
- }
19
- if (isPlainObject(source) && isPlainObject(overrides)) {
20
- const result = { ...source };
21
- for (const [key, value] of Object.entries(overrides)) {
22
- result[key] = key in source ? mergeUnknown(source[key], value) : value;
23
- }
24
- return result;
25
- }
26
- return overrides;
27
- };
28
- const getItemKey = (item) => {
29
- if (typeof item === 'string')
30
- return item;
31
- if (Array.isArray(item))
32
- return getItemKey(item[0]);
33
- if (typeof item === 'object' && item !== null && 'key' in item) {
34
- const { key } = item;
35
- return typeof key === 'string' ? key : null;
36
- }
37
- return null;
38
- };
39
- const getItemOptions = (item) => {
40
- if (!Array.isArray(item))
41
- return {};
42
- const options = item[1];
43
- return isPlainObject(options) ? options : {};
44
- };
45
- const toItemWithOptions = (key, options) => Object.keys(options).length ? [key, options] : key;
46
- const normalizeKey = (key) => key.replace(/\\/g, '/');
47
- const extractPackageNameFromPath = (key) => {
48
- const normalized = normalizeKey(key);
49
- const token = '/node_modules/';
50
- let nodeModulesIndex = normalized.lastIndexOf(token);
51
- while (nodeModulesIndex !== -1) {
52
- const start = nodeModulesIndex + token.length;
53
- const firstChar = normalized[start];
54
- if (!firstChar)
55
- return null;
56
- let packageName = null;
57
- if (firstChar === '@') {
58
- const scopeEnd = normalized.indexOf('/', start);
59
- if (scopeEnd === -1)
60
- return null;
61
- const nameEnd = normalized.indexOf('/', scopeEnd + 1);
62
- if (nameEnd === -1)
63
- return null;
64
- packageName = normalized.slice(start, nameEnd);
65
- }
66
- else {
67
- const nameEnd = normalized.indexOf('/', start);
68
- if (nameEnd === -1)
69
- return null;
70
- packageName = normalized.slice(start, nameEnd);
71
- }
72
- if (!packageName.startsWith('.'))
73
- return packageName;
74
- nodeModulesIndex = normalized.lastIndexOf(token, nodeModulesIndex - 1);
75
- }
76
- return null;
77
- };
78
- const addBabelVariants = (kind, variants, key) => {
79
- const prefix = kind === 'preset'
80
- ? ['@babel/preset-', 'babel-preset-']
81
- : ['@babel/plugin-', 'babel-plugin-'];
82
- const normalized = normalizeKey(key);
83
- variants.add(normalized);
84
- const packageNameFromPath = extractPackageNameFromPath(normalized);
85
- if (packageNameFromPath) {
86
- variants.add(packageNameFromPath);
87
- }
88
- for (const p of prefix) {
89
- if (normalized.startsWith(p)) {
90
- variants.add(normalized.slice(p.length));
91
- }
92
- }
93
- if (!normalized.includes('/') && !normalized.startsWith('.')) {
94
- variants.add(`${prefix[0]}${normalized}`);
95
- variants.add(`${prefix[1]}${normalized}`);
96
- }
97
- };
98
- const areKeysCompatible = (kind, a, b) => {
99
- const aVariants = new Set();
100
- addBabelVariants(kind, aVariants, a);
101
- const bVariants = new Set();
102
- addBabelVariants(kind, bVariants, b);
103
- for (const aVar of aVariants) {
104
- if (bVariants.has(aVar))
105
- return true;
106
- }
107
- return false;
108
- };
109
- const mergeConfigItems = (kind, source, overrides) => {
110
- const combined = [...(source ?? []), ...(overrides ?? [])];
111
- return combined.reduce((reduction, override) => {
112
- const overrideKey = getItemKey(override);
113
- if (!overrideKey) {
114
- reduction.push(override);
115
- return reduction;
116
- }
117
- const overrideOptions = getItemOptions(override);
118
- const base = reduction.find((candidate) => {
119
- const baseKey = getItemKey(candidate);
120
- return baseKey ? areKeysCompatible(kind, baseKey, overrideKey) : false;
121
- });
122
- if (!base) {
123
- reduction.push(toItemWithOptions(overrideKey, overrideOptions));
124
- return reduction;
125
- }
126
- const index = reduction.indexOf(base);
127
- const baseKey = getItemKey(base) ?? overrideKey;
128
- const baseOptions = getItemOptions(base);
129
- const options = mergeUnknown(baseOptions, overrideOptions);
130
- reduction.splice(index, 1, toItemWithOptions(baseKey, options));
131
- return reduction;
132
- }, []);
133
- };
134
- const babelMerge = (source, overrides) => {
135
- const { plugins: sourcePlugins, presets: sourcePresets, env: sourceEnv, ...sourceRest } = source;
136
- const { plugins: overridesPlugins, presets: overridesPresets, env: overridesEnv, ...overridesRest } = overrides;
137
- const plugins = mergeConfigItems('plugin', sourcePlugins, overridesPlugins);
138
- const presets = mergeConfigItems('preset', sourcePresets, overridesPresets);
139
- const merged = mergeUnknown(sourceRest, overridesRest);
140
- if (presets.length)
141
- merged.presets = presets;
142
- if (plugins.length)
143
- merged.plugins = plugins;
144
- const envNames = new Set([
145
- ...Object.keys(sourceEnv ?? {}),
146
- ...Object.keys(overridesEnv ?? {}),
147
- ]);
148
- if (envNames.size) {
149
- merged.env = {};
150
- for (const name of envNames) {
151
- merged.env[name] = babelMerge(sourceEnv?.[name] ?? {}, overridesEnv?.[name] ?? {});
152
- }
153
- }
154
- return merged;
155
- };
156
- const merge = (a, b) => {
157
- if (!cache.has(a)) {
158
- cache.set(a, new WeakMap());
159
- }
160
- const cacheForA = cache.get(a);
161
- if (cacheForA.has(b)) {
162
- return cacheForA.get(b);
163
- }
164
- const result = babelMerge(a, b);
165
- cacheForA.set(b, result);
166
- return result;
167
- };
168
- /**
169
- * Merges babel configs together. If a pair of configs were merged before,
170
- * it will return the cached result.
171
- */
172
- function buildOptions(...configs) {
173
- // Merge all configs together
174
- return configs
175
- .map((i) => i ?? null)
176
- .filter(isNotNull_1.isNotNull)
177
- .reduce(merge);
178
- }
@@ -1,3 +0,0 @@
1
- import type { TransformOptions } from '@babel/core';
2
- import type { Core } from '../babel';
3
- export declare function loadBabelOptions(babel: Core, filename: string, overrides?: TransformOptions): TransformOptions;
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadBabelOptions = loadBabelOptions;
4
- const cache = new WeakMap();
5
- const empty = {};
6
- function loadBabelOptions(babel, filename, overrides = empty) {
7
- const fileCache = cache.get(overrides) ?? new Map();
8
- if (fileCache.has(filename)) {
9
- return fileCache.get(filename);
10
- }
11
- const babelOptions = babel.loadOptions({
12
- ...overrides,
13
- filename,
14
- caller: {
15
- name: 'wyw-in-js',
16
- // Indicates for @babel/preset-env to support all ESM syntax and avoid transforms before it's needed
17
- supportsStaticESM: true,
18
- supportsDynamicImport: true,
19
- supportsTopLevelAwait: true,
20
- supportsExportNamespaceFrom: true,
21
- },
22
- }) ?? {};
23
- fileCache.set(filename, babelOptions);
24
- cache.set(overrides, fileCache);
25
- return babelOptions;
26
- }
@@ -1,4 +0,0 @@
1
- import type { PluginObj } from '@babel/core';
2
- import type { Core } from '../babel';
3
- import type { IPluginState, PluginOptions } from '../types';
4
- export default function babelTransform(babel: Core, options: Partial<PluginOptions>): PluginObj<IPluginState>;
@@ -1,49 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = babelTransform;
4
- const shared_1 = require("@wyw-in-js/shared");
5
- const loadWywOptions_1 = require("../transform/helpers/loadWywOptions");
6
- const cache_1 = require("../cache");
7
- const transform_1 = require("../transform");
8
- const collector_1 = require("./collector");
9
- function babelTransform(babel, options) {
10
- const cache = new cache_1.TransformCacheCollection();
11
- const debug = shared_1.logger.extend('babel-transform');
12
- return {
13
- name: '@wyw-in-js/transform/babel-transform',
14
- pre(file) {
15
- // eslint-disable-next-line require-yield
16
- function* collect() {
17
- const { valueCache } = this.data;
18
- const { loadedAndParsed } = this.entrypoint;
19
- const { pluginOptions } = this.services.options;
20
- if (loadedAndParsed.evaluator === 'ignored') {
21
- throw new Error('entrypoint was ignored');
22
- }
23
- (0, collector_1.collector)(file, pluginOptions, valueCache);
24
- return {
25
- ast: loadedAndParsed.ast,
26
- code: loadedAndParsed.code,
27
- };
28
- }
29
- debug('start %s', file.opts.filename);
30
- const pluginOptions = (0, loadWywOptions_1.loadWywOptions)(options);
31
- (0, transform_1.transformSync)({
32
- babel,
33
- cache,
34
- options: {
35
- filename: file.opts.filename,
36
- root: file.opts.root ?? undefined,
37
- inputSourceMap: file.opts.inputSourceMap ?? undefined,
38
- pluginOptions,
39
- },
40
- }, file.code, shared_1.syncResolve, {
41
- collect,
42
- });
43
- },
44
- visitor: {},
45
- post(file) {
46
- debug('end %s', file.opts.filename);
47
- },
48
- };
49
- }
@@ -1,23 +0,0 @@
1
- /**
2
- * Collector traverses the AST and collects information about imports and
3
- * all usages of WYW-processors.
4
- */
5
- import type { BabelFile, PluginObj } from '@babel/core';
6
- import type { ValueCache } from '@wyw-in-js/processor-utils';
7
- import type { StrictOptions } from '@wyw-in-js/shared';
8
- import { EventEmitter } from '../utils/EventEmitter';
9
- import type { Core } from '../babel';
10
- import type { IPluginState } from '../types';
11
- export declare const filename: string;
12
- export declare function collector(file: BabelFile, options: Pick<StrictOptions, 'classNameSlug' | 'displayName' | 'extensions' | 'evaluate' | 'tagResolver'> & {
13
- eventEmitter?: EventEmitter;
14
- }, values: ValueCache): {
15
- readonly artifacts: import("@wyw-in-js/shared").Artifact[];
16
- readonly className: string;
17
- readonly displayName: string;
18
- readonly location: import("@babel/types").SourceLocation | null;
19
- }[];
20
- export default function collectorPlugin(babel: Core, options: StrictOptions & {
21
- eventEmitter?: EventEmitter;
22
- values?: ValueCache;
23
- }): PluginObj<IPluginState>;
@@ -1,62 +0,0 @@
1
- "use strict";
2
- /**
3
- * Collector traverses the AST and collects information about imports and
4
- * all usages of WYW-processors.
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.filename = void 0;
8
- exports.collector = collector;
9
- exports.default = collectorPlugin;
10
- const shared_1 = require("@wyw-in-js/shared");
11
- const EventEmitter_1 = require("../utils/EventEmitter");
12
- const getTagProcessor_1 = require("../utils/getTagProcessor");
13
- const scopeHelpers_1 = require("../utils/scopeHelpers");
14
- const traversalCache_1 = require("../utils/traversalCache");
15
- exports.filename = __filename;
16
- function collector(file, options, values) {
17
- const eventEmitter = options.eventEmitter ?? EventEmitter_1.EventEmitter.dummy;
18
- const processors = [];
19
- eventEmitter.perf('transform:collector:processTemplate', () => {
20
- (0, getTagProcessor_1.applyProcessors)(file.path, file.opts, options, (processor) => {
21
- processor.build(values);
22
- processor.doRuntimeReplacement();
23
- processors.push(processor);
24
- });
25
- });
26
- if (processors.length === 0) {
27
- // We didn't find any processors.
28
- return processors;
29
- }
30
- // We can remove __wywPreval export and all related code
31
- const prevalExport = file.path.scope.getData('__wywPreval')?.findParent((p) => p.isExpressionStatement());
32
- if (prevalExport) {
33
- (0, scopeHelpers_1.removeWithRelated)([prevalExport]);
34
- }
35
- return processors;
36
- }
37
- function collectorPlugin(babel, options) {
38
- const values = options.values ?? new Map();
39
- const debug = shared_1.logger.extend('collector');
40
- return {
41
- name: '@wyw-in-js/transform/collector',
42
- pre(file) {
43
- debug('start %s', file.opts.filename);
44
- const processors = collector(file, options, values);
45
- if (processors.length === 0) {
46
- // We didn't find any wyw-in-js template literals.
47
- return;
48
- }
49
- this.file.metadata.wywInJS = {
50
- processors,
51
- replacements: [],
52
- rules: {},
53
- dependencies: [],
54
- };
55
- debug('end %s', file.opts.filename);
56
- },
57
- visitor: {},
58
- post(file) {
59
- (0, traversalCache_1.invalidateTraversalCache)(file.path);
60
- },
61
- };
62
- }
@@ -1,6 +0,0 @@
1
- import type { PluginObj } from '@babel/core';
2
- import type { Core } from '../babel';
3
- /**
4
- * The plugin that replaces `import()` with `__wyw_dynamic_import` as Node VM does not support dynamic imports yet.
5
- */
6
- export default function dynamicImport(babel: Core): PluginObj;
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = dynamicImport;
4
- const getMemberExpressionPropertyName_1 = require("../utils/getMemberExpressionPropertyName");
5
- const unwrapExpression_1 = require("../utils/unwrapExpression");
6
- /**
7
- * The plugin that replaces `import()` with `__wyw_dynamic_import` as Node VM does not support dynamic imports yet.
8
- */
9
- function dynamicImport(babel) {
10
- const { types: t } = babel;
11
- const isStringLikeExpression = (node) => {
12
- const expression = (0, unwrapExpression_1.unwrapExpression)(node);
13
- if (t.isStringLiteral(expression) || t.isTemplateLiteral(expression)) {
14
- return true;
15
- }
16
- if (t.isBinaryExpression(expression) && expression.operator === '+') {
17
- return ((t.isExpression(expression.left) &&
18
- isStringLikeExpression(expression.left)) ||
19
- (t.isExpression(expression.right) &&
20
- isStringLikeExpression(expression.right)));
21
- }
22
- if (t.isCallExpression(expression)) {
23
- const { callee } = expression;
24
- if (!t.isMemberExpression(callee)) {
25
- return false;
26
- }
27
- const propertyName = (0, getMemberExpressionPropertyName_1.getMemberExpressionPropertyName)(callee);
28
- if (propertyName !== 'concat') {
29
- return false;
30
- }
31
- if (!t.isExpression(callee.object)) {
32
- return false;
33
- }
34
- return isStringLikeExpression(callee.object);
35
- }
36
- return false;
37
- };
38
- return {
39
- name: '@wyw-in-js/transform/dynamic-import',
40
- visitor: {
41
- CallExpression(path) {
42
- if (path.get('callee').isImport()) {
43
- const moduleName = path.get('arguments.0');
44
- const argument = moduleName.isExpression() ? moduleName.node : null;
45
- if (argument) {
46
- const unwrappedArgument = (0, unwrapExpression_1.unwrapExpression)(argument);
47
- const nextArgument = isStringLikeExpression(argument)
48
- ? t.cloneNode(unwrappedArgument, true, true)
49
- : t.cloneNode(argument, true, true);
50
- path.replaceWith(t.callExpression(t.identifier('__wyw_dynamic_import'), [
51
- nextArgument,
52
- ]));
53
- return;
54
- }
55
- path.replaceWith(t.callExpression(t.identifier('__wyw_dynamic_import'), []));
56
- }
57
- },
58
- },
59
- };
60
- }
@@ -1,16 +0,0 @@
1
- /**
2
- * This file is a babel preset used to transform files inside evaluators.
3
- * It works the same as main `babel/extract` preset, but do not evaluate lazy dependencies.
4
- */
5
- import type { PluginObj } from '@babel/core';
6
- import type { StrictOptions } from '@wyw-in-js/shared';
7
- import type { Core } from '../babel';
8
- import type { IPluginState } from '../types';
9
- import { EventEmitter } from '../utils/EventEmitter';
10
- export type PreevalOptions = Pick<StrictOptions, 'classNameSlug' | 'codeRemover' | 'displayName' | 'extensions' | 'evaluate' | 'features' | 'tagResolver'> & {
11
- eventEmitter?: EventEmitter;
12
- };
13
- export declare function preeval(babel: Core, options: PreevalOptions): PluginObj<IPluginState & {
14
- onFinish: () => void;
15
- }>;
16
- export default preeval;
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.preeval = preeval;
4
- const shared_1 = require("@wyw-in-js/shared");
5
- const getTagProcessor_1 = require("../utils/getTagProcessor");
6
- const EventEmitter_1 = require("../utils/EventEmitter");
7
- const addIdentifierToWywPreval_1 = require("../utils/addIdentifierToWywPreval");
8
- const getFileIdx_1 = require("../utils/getFileIdx");
9
- const removeDangerousCode_1 = require("../utils/removeDangerousCode");
10
- const replaceImportMetaEnv_1 = require("../utils/replaceImportMetaEnv");
11
- const traversalCache_1 = require("../utils/traversalCache");
12
- function preeval(babel, options) {
13
- const { types: t } = babel;
14
- const eventEmitter = options.eventEmitter ?? EventEmitter_1.EventEmitter.dummy;
15
- return {
16
- name: '@wyw-in-js/transform/preeval',
17
- pre(file) {
18
- const filename = file.opts.filename;
19
- const log = shared_1.logger.extend('preeval').extend((0, getFileIdx_1.getFileIdx)(filename));
20
- log('start', 'Looking for template literals…');
21
- const rootScope = file.scope;
22
- this.processors = [];
23
- eventEmitter.perf('transform:preeval:processTemplate', () => {
24
- (0, getTagProcessor_1.applyProcessors)(file.path, file.opts, options, (processor) => {
25
- processor.dependencies.forEach((dependency) => {
26
- if (dependency.ex.type === 'Identifier') {
27
- (0, addIdentifierToWywPreval_1.addIdentifierToWywPreval)(rootScope, dependency.ex.name);
28
- }
29
- });
30
- processor.doEvaltimeReplacement();
31
- this.processors.push(processor);
32
- });
33
- });
34
- eventEmitter.perf('transform:preeval:importMetaEnv', () => {
35
- (0, replaceImportMetaEnv_1.replaceImportMetaEnv)(file.path, t);
36
- });
37
- if ((0, shared_1.isFeatureEnabled)(options.features, 'dangerousCodeRemover', filename)) {
38
- log('start', 'Strip all JSX and browser related stuff');
39
- eventEmitter.perf('transform:preeval:removeDangerousCode', () => (0, removeDangerousCode_1.removeDangerousCode)(file.path, options.codeRemover));
40
- }
41
- },
42
- visitor: {},
43
- post(file) {
44
- const log = shared_1.logger
45
- .extend('preeval')
46
- .extend((0, getFileIdx_1.getFileIdx)(file.opts.filename));
47
- (0, traversalCache_1.invalidateTraversalCache)(file.path);
48
- if (this.processors.length === 0) {
49
- log('end', "We didn't find any wyw-in-js template literals");
50
- // We didn't find any wyw-in-js template literals.
51
- return;
52
- }
53
- this.file.metadata.wywInJS = {
54
- processors: this.processors,
55
- replacements: [],
56
- rules: {},
57
- dependencies: [],
58
- };
59
- const wywPreval = file.path.getData('__wywPreval');
60
- if (!wywPreval) {
61
- // Event if there is no dependencies, we still need to add __wywPreval
62
- const wywExport = t.expressionStatement(t.assignmentExpression('=', t.memberExpression(t.identifier('exports'), t.identifier('__wywPreval')), t.objectExpression([])));
63
- file.path.pushContainer('body', wywExport);
64
- }
65
- log('end', '__wywPreval has been added');
66
- },
67
- };
68
- }
69
- exports.default = preeval;
@@ -1,14 +0,0 @@
1
- import type { PluginObj } from '@babel/core';
2
- import type { ImportOverrides } from '@wyw-in-js/shared';
3
- import type { Core } from '../babel';
4
- import type { IState } from '../utils/collectExportsAndImports';
5
- export interface IShakerOptions {
6
- ifUnknownExport?: 'error' | 'ignore' | 'reexport-all' | 'skip-shaking';
7
- importOverrides?: ImportOverrides;
8
- keepSideEffects?: boolean;
9
- onlyExports: string[];
10
- root?: string;
11
- }
12
- export default function shakerPlugin(babel: Core, { keepSideEffects, ifUnknownExport, importOverrides, onlyExports, root, }: IShakerOptions): PluginObj<IState & {
13
- filename: string;
14
- }>;