@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,743 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.rewriteOptimizedBarrelImports = rewriteOptimizedBarrelImports;
7
- var _generator = _interopRequireDefault(require("@babel/generator"));
8
- var t = _interopRequireWildcard(require("@babel/types"));
9
- var _EventEmitter = require("../../utils/EventEmitter");
10
- var _shaker = require("../../shaker");
11
- var _cache = require("../../cache");
12
- var _Entrypoint = require("../Entrypoint");
13
- var _barrelManifest = require("../barrelManifest");
14
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- /* eslint-disable no-continue, @typescript-eslint/no-use-before-define, @typescript-eslint/no-explicit-any, no-param-reassign, prefer-destructuring */
17
-
18
- const createAnalysisServices = services => ({
19
- ...services,
20
- cache: new _cache.TransformCacheCollection({
21
- barrelManifests: services.cache.barrelManifests,
22
- exports: services.cache.exports
23
- }),
24
- eventEmitter: _EventEmitter.EventEmitter.dummy
25
- });
26
- const addBinding = (manifest, exported, binding, explicitExports) => {
27
- const existing = manifest[exported];
28
- if (explicitExports.has(exported)) {
29
- return;
30
- }
31
- if (!existing) {
32
- manifest[exported] = binding;
33
- return;
34
- }
35
- if (existing.kind === 'blocked') {
36
- return;
37
- }
38
- if (!isSameBinding(existing, binding)) {
39
- manifest[exported] = {
40
- kind: 'blocked',
41
- reason: 'ambiguous'
42
- };
43
- }
44
- };
45
- const addBlockedExport = (manifest, exported, reason) => {
46
- manifest[exported] = {
47
- kind: 'blocked',
48
- reason
49
- };
50
- };
51
- const buildResolvedDependencyMap = resolvedImports => new Map(resolvedImports.map(dependency => [dependency.source, dependency]));
52
- const cloneExportedName = name => t.isValidIdentifier(name) ? t.identifier(name) : t.stringLiteral(name);
53
- const cloneImportedName = name => name === 'default' || t.isValidIdentifier(name) ? t.identifier(name) : t.stringLiteral(name);
54
- const isSameBinding = (left, right) => {
55
- if (left.kind !== right.kind) {
56
- return false;
57
- }
58
- if (left.source !== right.source) {
59
- return false;
60
- }
61
- if (left.kind === 'named' && right.kind === 'named') {
62
- return left.imported === right.imported;
63
- }
64
- return true;
65
- };
66
- function createAnalysisEntrypoint(services, filename, loadedCode) {
67
- return _Entrypoint.Entrypoint.createRoot(services, filename, ['*'], loadedCode);
68
- }
69
- function getUniqueSources(raw) {
70
- return Array.from(new Set([...raw.reexports.map(reexport => reexport.source), ...raw.exportAll]));
71
- }
72
- function buildImportsForResolve(raw) {
73
- return new Map(getUniqueSources(raw).map(source => [source, []]));
74
- }
75
- function getReexportResolutionMap(resolvedImports) {
76
- return new Map(resolvedImports.map(dependency => [dependency.source, dependency.resolved]));
77
- }
78
- function isBarrelEntry(entry) {
79
- return entry.kind === 'barrel';
80
- }
81
- function isRawBarrelManifest(entry) {
82
- return 'reexports' in entry;
83
- }
84
- function shouldUseDirectExports(reason) {
85
- return reason === 'impure';
86
- }
87
- const getModuleName = node => t.isIdentifier(node) ? node.name : node.value;
88
- const canEmitNamedReexport = imported => imported === 'default' || t.isValidIdentifier(imported);
89
- function collectOptimizedImports(ast) {
90
- const imports = new Map();
91
- const addImport = (source, imported) => {
92
- if (!imports.has(source)) {
93
- imports.set(source, []);
94
- }
95
- if (!imports.get(source).includes(imported)) {
96
- imports.get(source).push(imported);
97
- }
98
- };
99
- const program = ast.program;
100
- for (const statement of program.body) {
101
- if (t.isImportDeclaration(statement) && t.isStringLiteral(statement.source)) {
102
- if (statement.specifiers.length === 0) {
103
- addImport(statement.source.value, 'side-effect');
104
- continue;
105
- }
106
- for (const specifier of statement.specifiers) {
107
- if (t.isImportDefaultSpecifier(specifier)) {
108
- addImport(statement.source.value, 'default');
109
- continue;
110
- }
111
- if (t.isImportNamespaceSpecifier(specifier)) {
112
- addImport(statement.source.value, '*');
113
- continue;
114
- }
115
- if (t.isImportSpecifier(specifier)) {
116
- addImport(statement.source.value, t.isIdentifier(specifier.imported) ? specifier.imported.name : specifier.imported.value);
117
- }
118
- }
119
- continue;
120
- }
121
- if (t.isExportNamedDeclaration(statement) && statement.source && t.isStringLiteral(statement.source)) {
122
- for (const specifier of statement.specifiers) {
123
- if (t.isExportNamespaceSpecifier(specifier)) {
124
- addImport(statement.source.value, '*');
125
- continue;
126
- }
127
- if (t.isExportDefaultSpecifier(specifier)) {
128
- addImport(statement.source.value, 'default');
129
- continue;
130
- }
131
- if (t.isExportSpecifier(specifier)) {
132
- addImport(statement.source.value, getModuleName(specifier.local));
133
- }
134
- }
135
- continue;
136
- }
137
- if (t.isExportAllDeclaration(statement) && statement.source && t.isStringLiteral(statement.source)) {
138
- addImport(statement.source.value, '*');
139
- }
140
- }
141
- return imports;
142
- }
143
- function groupImportSpecifiers(optimized) {
144
- const grouped = new Map();
145
- for (const specifier of optimized) {
146
- if (!grouped.has(specifier.source)) {
147
- grouped.set(specifier.source, {
148
- defaults: [],
149
- named: []
150
- });
151
- }
152
- const bucket = grouped.get(specifier.source);
153
- if (specifier.kind === 'default') {
154
- bucket.defaults.push(t.importDefaultSpecifier(specifier.local));
155
- continue;
156
- }
157
- bucket.named.push(t.importSpecifier(specifier.local, cloneImportedName(specifier.imported)));
158
- }
159
- const declarations = [];
160
- for (const [source, bucket] of grouped) {
161
- if (bucket.defaults.length === 0) {
162
- declarations.push(t.importDeclaration(bucket.named, t.stringLiteral(source)));
163
- continue;
164
- }
165
- declarations.push(t.importDeclaration([bucket.defaults[0], ...bucket.named], t.stringLiteral(source)));
166
- for (const defaultSpecifier of bucket.defaults.slice(1)) {
167
- declarations.push(t.importDeclaration([defaultSpecifier], t.stringLiteral(source)));
168
- }
169
- }
170
- return declarations;
171
- }
172
- function groupExportSpecifiers(optimized) {
173
- const grouped = new Map();
174
- for (const specifier of optimized) {
175
- if (!grouped.has(specifier.source)) {
176
- grouped.set(specifier.source, []);
177
- }
178
- if (specifier.kind === 'namespace') {
179
- grouped.get(specifier.source).push(t.exportNamespaceSpecifier(t.identifier(specifier.exported)));
180
- continue;
181
- }
182
- grouped.get(specifier.source).push(t.exportSpecifier(t.identifier(specifier.imported), cloneExportedName(specifier.exported)));
183
- }
184
- return Array.from(grouped.entries()).map(([source, specifiers]) => t.exportNamedDeclaration(null, specifiers, t.stringLiteral(source)));
185
- }
186
- function createImportFallback(statement, fallbackSpecifiers) {
187
- if (fallbackSpecifiers.length === 0) {
188
- return null;
189
- }
190
- return t.importDeclaration(fallbackSpecifiers, t.stringLiteral(statement.source.value));
191
- }
192
- function createExportFallback(statement, fallbackSpecifiers) {
193
- if (!statement.source || fallbackSpecifiers.length === 0) {
194
- return null;
195
- }
196
- return t.exportNamedDeclaration(null, fallbackSpecifiers, t.stringLiteral(statement.source.value));
197
- }
198
- function emitRewriteSkipped(action, source, reason) {
199
- action.services.eventEmitter.single({
200
- file: action.entrypoint.name,
201
- kind: 'barrelRewriteSkipped',
202
- reason,
203
- source
204
- });
205
- }
206
- function getManifestExport(manifest, exported) {
207
- var _manifest$exports$exp;
208
- return (_manifest$exports$exp = manifest.exports[exported]) !== null && _manifest$exports$exp !== void 0 ? _manifest$exports$exp : null;
209
- }
210
- function* getNamedBinding(analysisServices, targetResolved, imported, stack) {
211
- if (stack.has(targetResolved)) {
212
- return {
213
- kind: 'blocked',
214
- reason: 'cycle'
215
- };
216
- }
217
- const targetManifest = yield* getOrBuildBarrelManifest.call(this, analysisServices, targetResolved, stack);
218
- if (isBarrelEntry(targetManifest)) {
219
- const resolved = getManifestExport(targetManifest, imported);
220
- if (resolved) {
221
- return resolved;
222
- }
223
- return {
224
- kind: 'blocked',
225
- reason: targetManifest.complete ? 'unresolved' : 'unknown-star'
226
- };
227
- }
228
- return {
229
- kind: 'named',
230
- imported,
231
- source: targetResolved
232
- };
233
- }
234
- function* getStarCandidates(analysisServices, targetResolved, stack) {
235
- if (stack.has(targetResolved)) {
236
- return {
237
- candidates: [],
238
- complete: false
239
- };
240
- }
241
- const targetManifest = yield* getOrBuildBarrelManifest.call(this, analysisServices, targetResolved, stack);
242
- if (isBarrelEntry(targetManifest)) {
243
- if (!targetManifest.complete) {
244
- return {
245
- candidates: [],
246
- complete: false
247
- };
248
- }
249
- return {
250
- candidates: Object.entries(targetManifest.exports).filter(([exported, binding]) => exported !== 'default' && binding.kind !== 'blocked').map(([exported, binding]) => ({
251
- binding: binding,
252
- exported
253
- })),
254
- complete: true
255
- };
256
- }
257
- if (!shouldUseDirectExports(targetManifest.reason)) {
258
- return {
259
- candidates: [],
260
- complete: false
261
- };
262
- }
263
- const exports = yield* getExportsForFile.call(this, analysisServices, targetResolved);
264
- return {
265
- candidates: exports.filter(exported => exported !== 'default').map(exported => ({
266
- binding: {
267
- kind: 'named',
268
- imported: exported,
269
- source: targetResolved
270
- },
271
- exported
272
- })),
273
- complete: true
274
- };
275
- }
276
- function* getExportsForFile(services, filename) {
277
- const entrypoint = createAnalysisEntrypoint(services, filename);
278
- return yield* this.getNext('getExports', entrypoint, undefined, null);
279
- }
280
- function* getOrBuildBarrelManifest(analysisServices, filename, stack = new Set()) {
281
- const cached = this.services.cache.get('barrelManifests', filename);
282
- if (cached) {
283
- this.services.eventEmitter.single({
284
- file: filename,
285
- kind: 'barrelManifest',
286
- status: 'hit'
287
- });
288
- return cached;
289
- }
290
- const loadedAndParsed = analysisServices.loadAndParseFn(analysisServices, filename, undefined, analysisServices.log);
291
- if (loadedAndParsed.evaluator === 'ignored') {
292
- const ignoredEntry = {
293
- kind: 'ineligible',
294
- reason: 'ignored'
295
- };
296
- this.services.cache.add('barrelManifests', filename, ignoredEntry);
297
- return ignoredEntry;
298
- }
299
- if (loadedAndParsed.evaluator !== _shaker.shaker) {
300
- const customEntry = {
301
- kind: 'ineligible',
302
- reason: 'custom-evaluator'
303
- };
304
- this.services.cache.add('barrelManifests', filename, customEntry);
305
- return customEntry;
306
- }
307
- const analyzed = (0, _barrelManifest.analyzeBarrelFile)(loadedAndParsed.ast);
308
- if (!isRawBarrelManifest(analyzed)) {
309
- this.services.cache.add('barrelManifests', filename, analyzed);
310
- return analyzed;
311
- }
312
- const resolveEntrypoint = createAnalysisEntrypoint(analysisServices, filename, loadedAndParsed.code);
313
- const resolvedImports = yield* this.getNext('resolveImports', resolveEntrypoint, {
314
- imports: buildImportsForResolve(analyzed)
315
- }, null);
316
- const manifestDependencies = resolvedImports.flatMap(dependency => dependency.resolved ? [dependency.resolved] : []);
317
- const resolutionMap = getReexportResolutionMap(resolvedImports);
318
- const manifest = {
319
- complete: analyzed.complete,
320
- exports: {},
321
- kind: 'barrel'
322
- };
323
- const explicitExports = new Set(analyzed.explicitExports);
324
- const nextStack = new Set(stack);
325
- nextStack.add(filename);
326
- for (const reexport of analyzed.reexports) {
327
- explicitExports.add(reexport.exported);
328
- const targetResolved = resolutionMap.get(reexport.source);
329
- if (!targetResolved) {
330
- manifest.complete = false;
331
- addBlockedExport(manifest.exports, reexport.exported, 'unresolved');
332
- continue;
333
- }
334
- if (reexport.kind === 'namespace') {
335
- const namespaceBinding = yield* getNamespaceBinding.call(this, analysisServices, targetResolved, nextStack);
336
- manifest.exports[reexport.exported] = namespaceBinding;
337
- if (namespaceBinding.kind === 'blocked') {
338
- manifest.complete = false;
339
- }
340
- continue;
341
- }
342
- const binding = yield* getNamedBinding.call(this, analysisServices, targetResolved, reexport.imported, nextStack);
343
- manifest.exports[reexport.exported] = binding;
344
- if (binding.kind === 'blocked') {
345
- manifest.complete = false;
346
- }
347
- }
348
- for (const exportAllSource of analyzed.exportAll) {
349
- const targetResolved = resolutionMap.get(exportAllSource);
350
- if (!targetResolved) {
351
- manifest.complete = false;
352
- continue;
353
- }
354
- const {
355
- candidates,
356
- complete
357
- } = yield* getStarCandidates.call(this, analysisServices, targetResolved, nextStack);
358
- if (!complete) {
359
- manifest.complete = false;
360
- continue;
361
- }
362
- for (const candidate of candidates) {
363
- addBinding(manifest.exports, candidate.exported, candidate.binding, explicitExports);
364
- }
365
- }
366
- this.services.cache.add('barrelManifests', filename, manifest);
367
- this.services.cache.setCacheDependencies('barrelManifests', filename, manifestDependencies);
368
- this.services.eventEmitter.single({
369
- complete: manifest.complete,
370
- file: filename,
371
- kind: 'barrelManifest',
372
- status: 'built'
373
- });
374
- return manifest;
375
- }
376
- function* getNamespaceBinding(analysisServices, targetResolved, stack) {
377
- if (stack.has(targetResolved)) {
378
- return {
379
- kind: 'blocked',
380
- reason: 'cycle'
381
- };
382
- }
383
- const targetManifest = yield* getOrBuildBarrelManifest.call(this, analysisServices, targetResolved, stack);
384
- if (isBarrelEntry(targetManifest)) {
385
- return {
386
- kind: 'blocked',
387
- reason: 'namespace-barrel'
388
- };
389
- }
390
- return {
391
- kind: 'namespace',
392
- source: targetResolved
393
- };
394
- }
395
- function getResolvedDependency(dependencies, source) {
396
- return dependencies.get(source);
397
- }
398
- function* rewriteImportDeclaration(analysisServices, statement, dependencies) {
399
- const dependency = getResolvedDependency(dependencies, statement.source.value);
400
- if (!(dependency !== null && dependency !== void 0 && dependency.resolved)) {
401
- return {
402
- generatedSources: [],
403
- mode: 'unchanged',
404
- statements: [statement]
405
- };
406
- }
407
- const manifest = yield* getOrBuildBarrelManifest.call(this, analysisServices, dependency.resolved);
408
- if (!isBarrelEntry(manifest)) {
409
- return {
410
- generatedSources: [],
411
- mode: 'unchanged',
412
- statements: [statement]
413
- };
414
- }
415
- const optimized = [];
416
- const fallback = [];
417
- for (const specifier of statement.specifiers) {
418
- if (t.isImportNamespaceSpecifier(specifier)) {
419
- fallback.push(specifier);
420
- continue;
421
- }
422
- if (t.isImportDefaultSpecifier(specifier)) {
423
- const binding = getManifestExport(manifest, 'default');
424
- if ((binding === null || binding === void 0 ? void 0 : binding.kind) === 'named' && binding.imported === 'default') {
425
- optimized.push({
426
- kind: 'default',
427
- local: specifier.local,
428
- source: binding.source
429
- });
430
- continue;
431
- }
432
- if ((binding === null || binding === void 0 ? void 0 : binding.kind) === 'blocked') {
433
- emitRewriteSkipped(this, statement.source.value, binding.reason);
434
- }
435
- fallback.push(specifier);
436
- continue;
437
- }
438
- const imported = t.isIdentifier(specifier.imported) ? specifier.imported.name : specifier.imported.value;
439
- const binding = getManifestExport(manifest, imported);
440
- if ((binding === null || binding === void 0 ? void 0 : binding.kind) === 'named') {
441
- optimized.push({
442
- imported: binding.imported,
443
- kind: 'named',
444
- local: specifier.local,
445
- source: binding.source
446
- });
447
- continue;
448
- }
449
- if ((binding === null || binding === void 0 ? void 0 : binding.kind) === 'blocked') {
450
- emitRewriteSkipped(this, statement.source.value, binding.reason);
451
- }
452
- fallback.push(specifier);
453
- }
454
- if (optimized.length === 0) {
455
- return {
456
- generatedSources: [],
457
- mode: 'unchanged',
458
- statements: [statement]
459
- };
460
- }
461
- const rewritten = groupImportSpecifiers(optimized);
462
- const fallbackDeclaration = createImportFallback(statement, fallback);
463
- const mode = fallbackDeclaration ? 'partial' : 'full';
464
- this.services.eventEmitter.single({
465
- file: this.entrypoint.name,
466
- kind: 'barrelRewrite',
467
- mode,
468
- optimized: optimized.length,
469
- source: statement.source.value
470
- });
471
- return {
472
- generatedSources: Array.from(new Set(optimized.map(specifier => specifier.source))),
473
- mode,
474
- statements: fallbackDeclaration ? [fallbackDeclaration, ...rewritten] : rewritten
475
- };
476
- }
477
- function* rewriteExportNamedDeclaration(analysisServices, statement, dependencies) {
478
- if (!statement.source || !t.isStringLiteral(statement.source)) {
479
- return {
480
- generatedSources: [],
481
- mode: 'unchanged',
482
- statements: [statement]
483
- };
484
- }
485
- const dependency = getResolvedDependency(dependencies, statement.source.value);
486
- if (!(dependency !== null && dependency !== void 0 && dependency.resolved)) {
487
- return {
488
- generatedSources: [],
489
- mode: 'unchanged',
490
- statements: [statement]
491
- };
492
- }
493
- const manifest = yield* getOrBuildBarrelManifest.call(this, analysisServices, dependency.resolved);
494
- if (!isBarrelEntry(manifest)) {
495
- return {
496
- generatedSources: [],
497
- mode: 'unchanged',
498
- statements: [statement]
499
- };
500
- }
501
- const optimized = [];
502
- const fallback = [];
503
- for (const specifier of statement.specifiers) {
504
- if (t.isExportNamespaceSpecifier(specifier)) {
505
- fallback.push(specifier);
506
- continue;
507
- }
508
- if (t.isExportDefaultSpecifier(specifier)) {
509
- const binding = getManifestExport(manifest, 'default');
510
- if ((binding === null || binding === void 0 ? void 0 : binding.kind) === 'named' && binding.imported === 'default') {
511
- optimized.push({
512
- exported: getModuleName(specifier.exported),
513
- imported: 'default',
514
- kind: 'named',
515
- source: binding.source
516
- });
517
- continue;
518
- }
519
- if ((binding === null || binding === void 0 ? void 0 : binding.kind) === 'blocked') {
520
- emitRewriteSkipped(this, statement.source.value, binding.reason);
521
- }
522
- fallback.push(specifier);
523
- continue;
524
- }
525
- const imported = getModuleName(specifier.local);
526
- const exported = getModuleName(specifier.exported);
527
- const binding = getManifestExport(manifest, imported);
528
- if ((binding === null || binding === void 0 ? void 0 : binding.kind) === 'named' && canEmitNamedReexport(binding.imported)) {
529
- optimized.push({
530
- exported,
531
- imported: binding.imported,
532
- kind: 'named',
533
- source: binding.source
534
- });
535
- continue;
536
- }
537
- if ((binding === null || binding === void 0 ? void 0 : binding.kind) === 'namespace' && t.isValidIdentifier(exported)) {
538
- optimized.push({
539
- exported,
540
- kind: 'namespace',
541
- source: binding.source
542
- });
543
- continue;
544
- }
545
- if ((binding === null || binding === void 0 ? void 0 : binding.kind) === 'blocked') {
546
- emitRewriteSkipped(this, statement.source.value, binding.reason);
547
- }
548
- fallback.push(specifier);
549
- }
550
- if (optimized.length === 0) {
551
- return {
552
- generatedSources: [],
553
- mode: 'unchanged',
554
- statements: [statement]
555
- };
556
- }
557
- const rewritten = groupExportSpecifiers(optimized);
558
- const fallbackDeclaration = createExportFallback(statement, fallback);
559
- const mode = fallbackDeclaration ? 'partial' : 'full';
560
- this.services.eventEmitter.single({
561
- file: this.entrypoint.name,
562
- kind: 'barrelRewrite',
563
- mode,
564
- optimized: optimized.length,
565
- source: statement.source.value
566
- });
567
- return {
568
- generatedSources: Array.from(new Set(optimized.map(specifier => specifier.source))),
569
- mode,
570
- statements: fallbackDeclaration ? [fallbackDeclaration, ...rewritten] : rewritten
571
- };
572
- }
573
- function* rewriteExportAllDeclaration(analysisServices, statement, dependencies) {
574
- const dependency = getResolvedDependency(dependencies, statement.source.value);
575
- if (!(dependency !== null && dependency !== void 0 && dependency.resolved)) {
576
- return {
577
- generatedSources: [],
578
- mode: 'unchanged',
579
- statements: [statement]
580
- };
581
- }
582
- const manifest = yield* getOrBuildBarrelManifest.call(this, analysisServices, dependency.resolved);
583
- if (!isBarrelEntry(manifest) || !manifest.complete) {
584
- return {
585
- generatedSources: [],
586
- mode: 'unchanged',
587
- statements: [statement]
588
- };
589
- }
590
- const optimized = [];
591
- let hasUnrewritableExport = false;
592
- for (const [exported, binding] of Object.entries(manifest.exports)) {
593
- if (exported === 'default' || binding.kind === 'blocked') {
594
- continue;
595
- }
596
- if (binding.kind === 'namespace') {
597
- if (!t.isValidIdentifier(exported)) {
598
- emitRewriteSkipped(this, statement.source.value, 'namespace-barrel');
599
- hasUnrewritableExport = true;
600
- continue;
601
- }
602
- optimized.push({
603
- exported,
604
- kind: 'namespace',
605
- source: binding.source
606
- });
607
- continue;
608
- }
609
- if (!canEmitNamedReexport(binding.imported)) {
610
- emitRewriteSkipped(this, statement.source.value, 'unknown-star');
611
- hasUnrewritableExport = true;
612
- continue;
613
- }
614
- optimized.push({
615
- exported,
616
- imported: binding.imported,
617
- kind: 'named',
618
- source: binding.source
619
- });
620
- }
621
- if (hasUnrewritableExport) {
622
- return {
623
- generatedSources: [],
624
- mode: 'unchanged',
625
- statements: [statement]
626
- };
627
- }
628
- if (optimized.length === 0) {
629
- this.services.eventEmitter.single({
630
- file: this.entrypoint.name,
631
- kind: 'barrelRewrite',
632
- mode: 'full',
633
- optimized: 0,
634
- source: statement.source.value
635
- });
636
- return {
637
- generatedSources: [],
638
- mode: 'full',
639
- statements: []
640
- };
641
- }
642
- this.services.eventEmitter.single({
643
- complete: true,
644
- file: this.entrypoint.name,
645
- kind: 'barrelRewrite',
646
- mode: 'full',
647
- optimized: optimized.length,
648
- source: statement.source.value
649
- });
650
- return {
651
- generatedSources: Array.from(new Set(optimized.map(specifier => specifier.source))),
652
- mode: 'full',
653
- statements: groupExportSpecifiers(optimized)
654
- };
655
- }
656
- function* rewriteOptimizedBarrelImports(ast, code, resolvedImports) {
657
- const dependencies = buildResolvedDependencyMap(resolvedImports);
658
- const analysisServices = createAnalysisServices(this.services);
659
- const nextBody = [];
660
- const generatedSources = new Set();
661
- let optimizedCount = 0;
662
- const sourceModes = new Map();
663
- let skippedCount = 0;
664
- const recordSourceMode = (source, mode, statementChanged) => {
665
- if (mode === 'unchanged') {
666
- return;
667
- }
668
- if (statementChanged) {
669
- optimizedCount += 1;
670
- }
671
- if (mode === 'partial') {
672
- sourceModes.set(source, 'partial');
673
- return;
674
- }
675
- if (!sourceModes.has(source)) {
676
- sourceModes.set(source, 'full');
677
- }
678
- };
679
- for (const statement of ast.program.body) {
680
- if (t.isImportDeclaration(statement) && t.isStringLiteral(statement.source)) {
681
- const rewritten = yield* rewriteImportDeclaration.call(this, analysisServices, statement, dependencies);
682
- recordSourceMode(statement.source.value, rewritten.mode, !(rewritten.statements.length === 1 && rewritten.statements[0] === statement));
683
- for (const source of rewritten.generatedSources) {
684
- generatedSources.add(source);
685
- }
686
- nextBody.push(...rewritten.statements);
687
- continue;
688
- }
689
- if (t.isExportNamedDeclaration(statement) && statement.source && t.isStringLiteral(statement.source)) {
690
- const rewritten = yield* rewriteExportNamedDeclaration.call(this, analysisServices, statement, dependencies);
691
- recordSourceMode(statement.source.value, rewritten.mode, !(rewritten.statements.length === 1 && rewritten.statements[0] === statement));
692
- for (const source of rewritten.generatedSources) {
693
- generatedSources.add(source);
694
- }
695
- nextBody.push(...rewritten.statements);
696
- continue;
697
- }
698
- if (t.isExportAllDeclaration(statement) && statement.source && t.isStringLiteral(statement.source)) {
699
- const rewritten = yield* rewriteExportAllDeclaration.call(this, analysisServices, statement, dependencies);
700
- if (rewritten.mode === 'unchanged' && rewritten.statements.length === 1 && rewritten.statements[0] === statement) {
701
- skippedCount += 1;
702
- }
703
- recordSourceMode(statement.source.value, rewritten.mode, !(rewritten.statements.length === 1 && rewritten.statements[0] === statement));
704
- for (const source of rewritten.generatedSources) {
705
- generatedSources.add(source);
706
- }
707
- nextBody.push(...rewritten.statements);
708
- continue;
709
- }
710
- nextBody.push(statement);
711
- }
712
- ast.program.body = nextBody;
713
- const rewrittenCode = (0, _generator.default)(ast).code;
714
- const imports = collectOptimizedImports(ast);
715
- const preResolvedImports = Array.from(imports.entries()).flatMap(([source, only]) => {
716
- const dependency = dependencies.get(source);
717
- if (dependency) {
718
- return [{
719
- ...dependency,
720
- only
721
- }];
722
- }
723
- if (generatedSources.has(source)) {
724
- return [{
725
- only,
726
- resolved: source,
727
- source
728
- }];
729
- }
730
- return [];
731
- });
732
- return {
733
- ast,
734
- code: rewrittenCode,
735
- fullyRewrittenSources: Array.from(sourceModes.entries()).filter(([, mode]) => mode === 'full').map(([source]) => source),
736
- imports,
737
- optimizedCount,
738
- partialFallbackSources: Array.from(sourceModes.entries()).filter(([, mode]) => mode === 'partial').map(([source]) => source),
739
- preResolvedImports,
740
- skippedCount
741
- };
742
- }
743
- //# sourceMappingURL=rewriteBarrelImports.js.map