@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,411 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProcessorForImport = getProcessorForImport;
4
- exports.getDefinedProcessors = getDefinedProcessors;
5
- exports.applyProcessors = applyProcessors;
6
- const fs_1 = require("fs");
7
- const path_1 = require("path");
8
- const core_1 = require("@babel/core");
9
- const helper_module_imports_1 = require("@babel/helper-module-imports");
10
- const processor_utils_1 = require("@wyw-in-js/processor-utils");
11
- const shared_1 = require("@wyw-in-js/shared");
12
- const collectExportsAndImports_1 = require("./collectExportsAndImports");
13
- const collectTemplateDependencies_1 = require("./collectTemplateDependencies");
14
- const getSource_1 = require("./getSource");
15
- const isNotNull_1 = require("./isNotNull");
16
- const scopeHelpers_1 = require("./scopeHelpers");
17
- const traversalCache_1 = require("./traversalCache");
18
- const last = (arr) => arr[arr.length - 1];
19
- function zip(arr1, arr2) {
20
- const result = [];
21
- for (let i = 0; i < arr1.length; i++) {
22
- result.push(arr1[i]);
23
- if (arr2[i])
24
- result.push(arr2[i]);
25
- }
26
- return result;
27
- }
28
- function buildCodeFrameError(path, message) {
29
- try {
30
- return path.buildCodeFrameError(message);
31
- }
32
- catch {
33
- return new Error(message);
34
- }
35
- }
36
- const definedTagsCache = new Map();
37
- const resolvedTagResolverSourceCache = new Map();
38
- let didWarnSkipSymbolMismatch = false;
39
- const getResolvedTagResolverSource = (source, sourceFile) => {
40
- if (!sourceFile) {
41
- return undefined;
42
- }
43
- const key = `${sourceFile}\0${source}`;
44
- if (resolvedTagResolverSourceCache.has(key)) {
45
- return resolvedTagResolverSourceCache.get(key);
46
- }
47
- try {
48
- const resolved = (0, shared_1.syncResolve)(source, sourceFile, []);
49
- resolvedTagResolverSourceCache.set(key, resolved);
50
- return resolved;
51
- }
52
- catch {
53
- resolvedTagResolverSourceCache.set(key, undefined);
54
- return undefined;
55
- }
56
- };
57
- const getDefinedTagsFromPackage = (pkgName, filename) => {
58
- if (definedTagsCache.has(pkgName)) {
59
- return definedTagsCache.get(pkgName);
60
- }
61
- const packageJSONPath = (0, shared_1.findPackageJSON)(pkgName, filename);
62
- if (!packageJSONPath) {
63
- return undefined;
64
- }
65
- const packageDir = (0, path_1.dirname)(packageJSONPath);
66
- const packageJSON = JSON.parse((0, fs_1.readFileSync)(packageJSONPath, 'utf8'));
67
- const definedTags = packageJSON['wyw-in-js']?.tags;
68
- const normalizedTags = definedTags
69
- ? Object.entries(definedTags).reduce((acc, [key, value]) => ({
70
- ...acc,
71
- [key]: value.startsWith('.')
72
- ? (0, path_1.join)(packageDir, value)
73
- : require.resolve(value, { paths: [packageDir] }),
74
- }), {})
75
- : undefined;
76
- definedTagsCache.set(pkgName, normalizedTags);
77
- return normalizedTags;
78
- };
79
- function isValidProcessorClass(module) {
80
- return module instanceof processor_utils_1.BaseProcessor.constructor;
81
- }
82
- function getProcessorFromPackage(packageName, tagName, filename) {
83
- const definedTags = getDefinedTagsFromPackage(packageName, filename);
84
- const processorPath = definedTags?.[tagName];
85
- if (!processorPath) {
86
- return null;
87
- }
88
- const Processor = require(processorPath).default;
89
- if (!isValidProcessorClass(Processor)) {
90
- return null;
91
- }
92
- return Processor;
93
- }
94
- function getProcessorFromFile(processorPath) {
95
- const Processor = require(processorPath).default;
96
- if (!isValidProcessorClass(Processor)) {
97
- return null;
98
- }
99
- return Processor;
100
- }
101
- function getProcessorForImport({ imported, source }, filename, options) {
102
- const { tagResolver } = options;
103
- let customFile = null;
104
- if (tagResolver) {
105
- const tagResolverMeta = {
106
- sourceFile: filename,
107
- resolvedSource: getResolvedTagResolverSource(source, filename),
108
- };
109
- customFile = tagResolver(source, imported, tagResolverMeta);
110
- }
111
- const processor = customFile
112
- ? getProcessorFromFile(customFile)
113
- : getProcessorFromPackage(source, imported, filename);
114
- return [processor, { imported, source }];
115
- }
116
- function getBuilderForIdentifier(definedProcessor, path, imports, options) {
117
- const [Processor, tagSource] = definedProcessor;
118
- let tagPath = path;
119
- if (tagPath.parentPath?.isMemberExpression({ property: tagPath.node })) {
120
- tagPath = tagPath.parentPath;
121
- }
122
- if (!Processor || !tagSource || !tagPath) {
123
- return null;
124
- }
125
- const params = [['callee', tagPath.node]];
126
- let prev = tagPath;
127
- let current = tagPath.parentPath;
128
- while (current && current !== path) {
129
- if (current?.isSequenceExpression() &&
130
- last(current.node.expressions) === prev.node) {
131
- prev = current;
132
- current = current.parentPath;
133
- // eslint-disable-next-line no-continue
134
- continue;
135
- }
136
- if (current?.isCallExpression({ callee: prev.node })) {
137
- const args = current.get('arguments');
138
- const cookedArgs = args
139
- .map((arg) => {
140
- const buildError = arg.buildCodeFrameError.bind(arg);
141
- if (!arg.isExpression()) {
142
- throw buildError(`Unexpected type of an argument ${arg.type}`);
143
- }
144
- const source = (0, getSource_1.getSource)(arg);
145
- const extracted = (0, collectTemplateDependencies_1.extractExpression)(arg, options.evaluate, imports);
146
- return {
147
- ...extracted,
148
- source,
149
- buildCodeFrameError: buildError,
150
- };
151
- })
152
- .filter(isNotNull_1.isNotNull);
153
- params.push(['call', ...cookedArgs]);
154
- prev = current;
155
- current = current.parentPath;
156
- // eslint-disable-next-line no-continue
157
- continue;
158
- }
159
- if (current?.isMemberExpression({ object: prev.node })) {
160
- const property = current.get('property');
161
- if (property.isIdentifier() && !current.node.computed) {
162
- params.push(['member', property.node.name]);
163
- }
164
- else if (property.isStringLiteral()) {
165
- params.push(['member', property.node.value]);
166
- }
167
- else {
168
- throw property.buildCodeFrameError(`Unexpected type of a property`);
169
- }
170
- prev = current;
171
- current = current.parentPath;
172
- // eslint-disable-next-line no-continue
173
- continue;
174
- }
175
- if (current?.isTaggedTemplateExpression({ tag: prev.node })) {
176
- const [quasis, expressionValues] = (0, collectTemplateDependencies_1.collectTemplateDependencies)(current, options.evaluate);
177
- params.push(['template', zip(quasis, expressionValues)]);
178
- prev = current;
179
- current = current.parentPath;
180
- // eslint-disable-next-line no-continue
181
- continue;
182
- }
183
- break;
184
- }
185
- const replacer = (replacement, isPure) => {
186
- (0, scopeHelpers_1.mutate)(prev, (p) => {
187
- const next = typeof replacement === 'function' ? replacement(p) : replacement;
188
- p.replaceWith(next);
189
- if (isPure && (p.isCallExpression() || p.isNewExpression())) {
190
- p.addComment('leading', '#__PURE__');
191
- }
192
- });
193
- };
194
- const importHelpers = {
195
- addDefaultImport: (importedSource, nameHint) => (0, helper_module_imports_1.addDefault)(path, importedSource, { nameHint }),
196
- addNamedImport: (name, importedSource, nameHint = name) => (0, helper_module_imports_1.addNamed)(path, name, importedSource, { nameHint }),
197
- };
198
- const astService = new Proxy(core_1.types, {
199
- get(target, prop, receiver) {
200
- if (prop in importHelpers) {
201
- return importHelpers[prop];
202
- }
203
- return Reflect.get(target, prop, receiver);
204
- },
205
- });
206
- return (...args) => new Processor(params, tagSource, astService, tagPath.node.loc ?? null, replacer, ...args);
207
- }
208
- function getDisplayName(path, idx, filename) {
209
- let displayName;
210
- const parent = path.findParent((p) => p.isObjectProperty() ||
211
- p.isJSXOpeningElement() ||
212
- p.isVariableDeclarator());
213
- if (parent) {
214
- if (parent.isObjectProperty()) {
215
- if ('name' in parent.node.key) {
216
- displayName = parent.node.key.name;
217
- }
218
- else if ('value' in parent.node.key) {
219
- displayName = parent.node.key.value.toString();
220
- }
221
- else {
222
- const keyPath = parent.get('key');
223
- displayName = (0, getSource_1.getSource)(keyPath);
224
- }
225
- }
226
- else if (parent.isJSXOpeningElement()) {
227
- const name = parent.get('name');
228
- if (name.isJSXIdentifier()) {
229
- displayName = name.node.name;
230
- }
231
- }
232
- else if (parent.isVariableDeclarator()) {
233
- const id = parent.get('id');
234
- if (id.isIdentifier()) {
235
- displayName = id.node.name;
236
- }
237
- }
238
- }
239
- if (!displayName) {
240
- // Try to derive the path from the filename
241
- displayName = (0, path_1.basename)(filename ?? 'unknown');
242
- if (filename && /^index\.[a-z\d]+$/.test(displayName)) {
243
- // If the file name is 'index', better to get name from parent folder
244
- displayName = (0, path_1.basename)((0, path_1.dirname)(filename));
245
- }
246
- // Remove the file extension
247
- displayName = displayName.replace(/\.[a-z\d]+$/, '');
248
- if (displayName) {
249
- displayName += idx;
250
- }
251
- else {
252
- throw new Error("Couldn't determine a name for the component. Ensure that it's either:\n" +
253
- '- Assigned to a variable\n' +
254
- '- Is an object property\n' +
255
- '- Is a prop in a JSX element\n');
256
- }
257
- }
258
- return displayName;
259
- }
260
- function isTagReferenced(path) {
261
- // Check if the variable is referenced anywhere for basic DCE
262
- // Only works when it's assigned to a variable
263
- let isReferenced = true;
264
- const parent = path.findParent((p) => p.isObjectProperty() ||
265
- p.isJSXOpeningElement() ||
266
- p.isVariableDeclarator());
267
- if (parent) {
268
- if (parent.isVariableDeclarator()) {
269
- const id = parent.get('id');
270
- // FIXME: replace with id.isReferencedIdentifier()
271
- if (id.isIdentifier()) {
272
- const { referencePaths } = id.scope.getBinding(id.node.name) || {
273
- referencePaths: [],
274
- };
275
- isReferenced = referencePaths.length !== 0;
276
- }
277
- }
278
- }
279
- return isReferenced;
280
- }
281
- const counters = new WeakMap();
282
- const getNextIndex = (state) => {
283
- const counter = counters.get(state) ?? 0;
284
- counters.set(state, counter + 1);
285
- return counter;
286
- };
287
- function getDefinedProcessors(imports, path, filename, options) {
288
- const cache = (0, traversalCache_1.getTraversalCache)(path, 'getDefinedProcessors');
289
- if (!cache.has(path)) {
290
- const defined = new Map();
291
- imports.forEach((i) => {
292
- const [processor, tagSource] = getProcessorForImport(i, filename, options);
293
- const { local } = i;
294
- if (!processor) {
295
- return;
296
- }
297
- let name = null;
298
- if (local.isIdentifier()) {
299
- name = local.node.name;
300
- }
301
- if (name === null && local.isMemberExpression()) {
302
- const property = local.get('property');
303
- const object = local.get('object');
304
- if (property.isIdentifier() && object.isIdentifier()) {
305
- name = `${object.node.name}.${property.node.name}`;
306
- }
307
- }
308
- if (name === null) {
309
- return;
310
- }
311
- defined.set(name, [processor, tagSource]);
312
- });
313
- cache.set(path, defined);
314
- }
315
- return cache.get(path);
316
- }
317
- function createProcessorInstance(definedProcessor, imports, path, fileContext, options) {
318
- const cache = (0, traversalCache_1.getTraversalCache)(path, 'createProcessorInstance');
319
- if (!cache.has(path.node)) {
320
- try {
321
- const builder = getBuilderForIdentifier(definedProcessor, path, imports, options);
322
- if (builder) {
323
- // Increment the index of the style we're processing
324
- // This is used for slug generation to prevent collision
325
- // Also used for display name if it couldn't be determined
326
- const idx = getNextIndex(fileContext);
327
- const displayName = getDisplayName(path, idx, fileContext.filename);
328
- const processor = builder(displayName, isTagReferenced(path), idx, options, fileContext);
329
- cache.set(path.node, processor);
330
- }
331
- else {
332
- cache.set(path.node, null);
333
- }
334
- }
335
- catch (e) {
336
- if (e === processor_utils_1.BaseProcessor.SKIP) {
337
- cache.set(path.node, null);
338
- return null;
339
- }
340
- if (typeof e === 'symbol' &&
341
- e.description === processor_utils_1.BaseProcessor.SKIP.description) {
342
- if (!didWarnSkipSymbolMismatch) {
343
- didWarnSkipSymbolMismatch = true;
344
- // eslint-disable-next-line no-console
345
- console.warn([
346
- "[wyw-in-js] Processor threw Symbol('skip') that does not match BaseProcessor.SKIP identity.",
347
- 'This usually means duplicate copies of @wyw-in-js/processor-utils (or the processor) are bundled/installed.',
348
- 'Consider deduping dependencies to avoid subtle issues (instanceof checks, sentinels, etc).',
349
- ].join('\n'));
350
- }
351
- cache.set(path.node, null);
352
- return null;
353
- }
354
- if (e instanceof Error) {
355
- throw buildCodeFrameError(path, e.message);
356
- }
357
- throw e;
358
- }
359
- }
360
- return cache.get(path.node) ?? null;
361
- }
362
- function applyProcessors(path, fileContext, options, callback) {
363
- const imports = (0, collectExportsAndImports_1.collectExportsAndImports)(path).imports.filter(collectExportsAndImports_1.explicitImport);
364
- const definedProcessors = getDefinedProcessors(imports, path, fileContext.filename, options);
365
- const usages = [];
366
- definedProcessors.forEach((processor, idName) => {
367
- if (idName.includes('.')) {
368
- // It's a member expression
369
- const [object, property] = idName.split('.');
370
- const objBinding = path.scope.getBinding(object);
371
- if (!objBinding) {
372
- return;
373
- }
374
- objBinding.referencePaths.forEach((p) => {
375
- const parent = p.parentPath;
376
- if (!parent?.isMemberExpression()) {
377
- return;
378
- }
379
- const identifier = parent.get('property');
380
- if (identifier.isIdentifier({ name: property })) {
381
- usages.push({
382
- identifier,
383
- processor,
384
- });
385
- }
386
- });
387
- return;
388
- }
389
- path.scope.getBinding(idName)?.referencePaths.forEach((identifier) => {
390
- if (identifier.isIdentifier()) {
391
- usages.push({
392
- identifier,
393
- processor,
394
- });
395
- }
396
- });
397
- });
398
- // The same order, the same slugs
399
- usages.sort((a, b) => (a.identifier.node.start ?? 0) - (b.identifier.node.start ?? 0));
400
- usages.forEach((usage) => {
401
- const definedProcessor = usage.processor;
402
- if (!definedProcessor) {
403
- return;
404
- }
405
- const instance = createProcessorInstance(definedProcessor, imports, usage.identifier, fileContext, options);
406
- if (instance === null) {
407
- return;
408
- }
409
- callback(instance);
410
- });
411
- }
@@ -1,6 +0,0 @@
1
- import type { NodePath } from '@babel/traverse';
2
- /**
3
- * Checks that specified Identifier is a global `exports` or `module.exports`
4
- * @param node
5
- */
6
- export declare function isExports(node: NodePath | null | undefined): boolean;
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isExports = isExports;
4
- const isGlobal_1 = require("./isGlobal");
5
- /**
6
- * Checks that specified Identifier is a global `exports` or `module.exports`
7
- * @param node
8
- */
9
- function isExports(node) {
10
- if (node?.isIdentifier({ name: 'exports' })) {
11
- return (0, isGlobal_1.isGlobal)(node, 'exports');
12
- }
13
- if (node?.isMemberExpression() &&
14
- node.get('object').isIdentifier({ name: 'module' }) &&
15
- node.get('property').isIdentifier({ name: 'exports' })) {
16
- return (0, isGlobal_1.isGlobal)(node, 'module');
17
- }
18
- return false;
19
- }
@@ -1,2 +0,0 @@
1
- import type { NodePath } from '@babel/traverse';
2
- export declare const isGlobal: (node: NodePath, name: string) => boolean;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isGlobal = void 0;
4
- const getScope_1 = require("./getScope");
5
- const isGlobal = (node, name) => {
6
- const scope = (0, getScope_1.getScope)(node);
7
- return scope.getBinding(name) === undefined && scope.hasGlobal(name);
8
- };
9
- exports.isGlobal = isGlobal;
@@ -1,3 +0,0 @@
1
- import type { NodePath } from '@babel/traverse';
2
- import type { Node } from '@babel/types';
3
- export declare function isNodePath<T extends Node>(obj: NodePath<T> | T): obj is NodePath<T>;
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isNodePath = isNodePath;
4
- function isNodePath(obj) {
5
- return 'node' in obj && obj?.node !== undefined;
6
- }
@@ -1,5 +0,0 @@
1
- import type { NodePath } from '@babel/traverse';
2
- /**
3
- * Checks if a given path has been removed from the AST.
4
- */
5
- export declare function isRemoved(path: NodePath): boolean;
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isRemoved = isRemoved;
4
- /**
5
- * Checks if a given path has been removed from the AST.
6
- */
7
- function isRemoved(path) {
8
- // Check if the input path has already been removed
9
- if (path.removed) {
10
- return true;
11
- }
12
- // Check if any of the parent paths have been removed
13
- let currentPath = path;
14
- while (currentPath) {
15
- const parent = currentPath.parentPath;
16
- if (parent) {
17
- // If the parent path has been removed, return true
18
- if (parent.removed || parent.node === null) {
19
- return true;
20
- }
21
- const { listKey, key, node } = currentPath;
22
- if (listKey) {
23
- // If the current path is part of a list and the current node
24
- // is not presented in this list, return true
25
- const found = parent.get(listKey).find((p) => p.node === node);
26
- if (!found) {
27
- return true;
28
- }
29
- }
30
- // If the current path is not part of a list and its node is not the same
31
- // as the node in the parent object at the same key, return true
32
- else if (parent.get(key).node !== node) {
33
- return true;
34
- }
35
- }
36
- // Set the current path to its parent path and continue the loop
37
- currentPath = parent;
38
- }
39
- // If the function has not returned true by this point, return false
40
- return false;
41
- }
@@ -1,6 +0,0 @@
1
- import type { NodePath } from '@babel/traverse';
2
- /**
3
- * Checks that specified Identifier is a global `require`
4
- * @param id
5
- */
6
- export declare function isRequire(id: NodePath | null | undefined): boolean;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isRequire = isRequire;
4
- const isGlobal_1 = require("./isGlobal");
5
- /**
6
- * Checks that specified Identifier is a global `require`
7
- * @param id
8
- */
9
- function isRequire(id) {
10
- if (!id?.isIdentifier() || id.node.name !== 'require') {
11
- return false;
12
- }
13
- return (0, isGlobal_1.isGlobal)(id, 'require');
14
- }
@@ -1,5 +0,0 @@
1
- import type { NodePath } from '@babel/traverse';
2
- import type { Node } from '@babel/types';
3
- export declare const isTypedNode: <T extends NodePath['type']>(type: T) => (p: NodePath) => p is NodePath<Extract<Node, {
4
- type: T;
5
- }>>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isTypedNode = void 0;
4
- const isTypedNode = (type) => {
5
- return (p) => {
6
- return p.type === type;
7
- };
8
- };
9
- exports.isTypedNode = isTypedNode;
@@ -1,3 +0,0 @@
1
- import type { NodePath } from '@babel/core';
2
- import type { CallExpression } from '@babel/types';
3
- export declare function isUnnecessaryReactCall(path: NodePath<CallExpression>): boolean;
@@ -1,75 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isUnnecessaryReactCall = isUnnecessaryReactCall;
4
- const collectExportsAndImports_1 = require("./collectExportsAndImports");
5
- const getScope_1 = require("./getScope");
6
- function getCallee(p) {
7
- const callee = p.get('callee');
8
- if (callee.isSequenceExpression()) {
9
- const expressions = callee.get('expressions');
10
- if (expressions.length === 2 &&
11
- expressions[0].isNumericLiteral({ value: 0 })) {
12
- return expressions[1];
13
- }
14
- return callee;
15
- }
16
- return callee;
17
- }
18
- const JSXRuntimeSource = 'react/jsx-runtime';
19
- function isJSXRuntime(p, imports) {
20
- const jsxRuntime = imports.find((i) => i.source === JSXRuntimeSource);
21
- const jsxRuntimeName = jsxRuntime?.local?.isIdentifier() && jsxRuntime?.local?.node?.name;
22
- if (jsxRuntime) {
23
- const callee = getCallee(p);
24
- if (jsxRuntimeName && callee.isIdentifier({ name: jsxRuntimeName })) {
25
- return true;
26
- }
27
- if (callee.isMemberExpression() &&
28
- imports.find((i) => i.source === JSXRuntimeSource && i.local === callee)) {
29
- return true;
30
- }
31
- }
32
- return false;
33
- }
34
- function isHookOrCreateElement(name) {
35
- return name === 'createElement' || /use[A-Z]/.test(name);
36
- }
37
- function isClassicReactRuntime(p, imports) {
38
- const reactImports = imports.filter((i) => i.source === 'react' &&
39
- (i.imported === 'default' ||
40
- (i.imported && isHookOrCreateElement(i.imported))));
41
- if (reactImports.length === 0)
42
- return false;
43
- const callee = getCallee(p);
44
- if (callee.isIdentifier() && isHookOrCreateElement(callee.node.name)) {
45
- const bindingPath = (0, getScope_1.getScope)(callee).getBinding(callee.node.name)?.path;
46
- return reactImports.some((i) => bindingPath?.isAncestor(i.local));
47
- }
48
- if (callee.isMemberExpression()) {
49
- if (reactImports.some((i) => i.local === callee)) {
50
- // It's React.createElement in CJS
51
- return true;
52
- }
53
- const object = callee.get('object');
54
- const property = callee.get('property');
55
- const defaultImport = reactImports.find((i) => i.imported === 'default');
56
- if (!defaultImport ||
57
- !defaultImport.local.isIdentifier() ||
58
- !property.isIdentifier() ||
59
- !isHookOrCreateElement(property.node.name) ||
60
- !object.isIdentifier({ name: defaultImport.local.node.name })) {
61
- return false;
62
- }
63
- const bindingPath = (0, getScope_1.getScope)(object).getBinding(object.node.name)?.path;
64
- return bindingPath?.isAncestor(defaultImport.local) ?? false;
65
- }
66
- return false;
67
- }
68
- function isUnnecessaryReactCall(path) {
69
- const programPath = path.findParent((p) => p.isProgram());
70
- if (!programPath) {
71
- return false;
72
- }
73
- const { imports } = (0, collectExportsAndImports_1.collectExportsAndImports)(programPath);
74
- return isJSXRuntime(path, imports) || isClassicReactRuntime(path, imports);
75
- }
@@ -1,4 +0,0 @@
1
- import type { NodePath } from '@babel/core';
2
- import type { Program } from '@babel/types';
3
- import type { CodeRemoverOptions } from '@wyw-in-js/shared';
4
- export declare const removeDangerousCode: (programPath: NodePath<Program>, options?: CodeRemoverOptions) => void;