@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,300 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.analyzeBarrelFile = analyzeBarrelFile;
7
- var _traverse = _interopRequireDefault(require("@babel/traverse"));
8
- var _types = require("@babel/types");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- /* eslint-disable no-continue, @typescript-eslint/no-use-before-define */
11
-
12
- const isTypeOnlyImport = statement => {
13
- if (statement.importKind === 'type') {
14
- return true;
15
- }
16
- if (statement.specifiers.length === 0) {
17
- return false;
18
- }
19
- return statement.specifiers.every(specifier => specifier.type === 'ImportSpecifier' && specifier.importKind === 'type');
20
- };
21
- const isTypeOnlyExport = statement => statement.exportKind === 'type';
22
- const getModuleExportName = node => node.type === 'Identifier' ? node.name : node.value;
23
- const isTypeOnlyStatement = statement => {
24
- switch (statement.type) {
25
- case 'EmptyStatement':
26
- case 'TSDeclareFunction':
27
- case 'TSInterfaceDeclaration':
28
- case 'TSTypeAliasDeclaration':
29
- return true;
30
- default:
31
- return false;
32
- }
33
- };
34
- function collectExportNamedDeclaration(statement, reexports, explicitExports) {
35
- if (!statement.source) {
36
- return isTypeOnlyExport(statement);
37
- }
38
- if (isTypeOnlyExport(statement)) {
39
- return true;
40
- }
41
- const source = statement.source.value;
42
- for (const specifier of statement.specifiers) {
43
- if (specifier.type === 'ExportSpecifier') {
44
- if (specifier.exportKind === 'type') {
45
- continue;
46
- }
47
- explicitExports.add(getModuleExportName(specifier.exported));
48
- reexports.push(getNamedReexport(specifier, source));
49
- continue;
50
- }
51
- if (specifier.type === 'ExportDefaultSpecifier') {
52
- explicitExports.add(getModuleExportName(specifier.exported));
53
- reexports.push(getDefaultReexport(specifier, source));
54
- continue;
55
- }
56
- if (specifier.type === 'ExportNamespaceSpecifier') {
57
- explicitExports.add(getModuleExportName(specifier.exported));
58
- reexports.push(getNamespaceReexport(specifier, source));
59
- continue;
60
- }
61
- return false;
62
- }
63
- return statement.specifiers.length > 0;
64
- }
65
- function getNamedReexport(specifier, source) {
66
- return {
67
- exported: getModuleExportName(specifier.exported),
68
- imported: getModuleExportName(specifier.local),
69
- kind: 'named',
70
- source
71
- };
72
- }
73
- function getDefaultReexport(specifier, source) {
74
- return {
75
- exported: getModuleExportName(specifier.exported),
76
- imported: 'default',
77
- kind: 'named',
78
- source
79
- };
80
- }
81
- function getNamespaceReexport(specifier, source) {
82
- return {
83
- exported: getModuleExportName(specifier.exported),
84
- kind: 'namespace',
85
- source
86
- };
87
- }
88
- const collectImportBinding = (statement, imports) => {
89
- if (statement.importKind === 'type') {
90
- return true;
91
- }
92
- if (statement.specifiers.length === 0) {
93
- return false;
94
- }
95
- let sawValueImport = false;
96
- for (const specifier of statement.specifiers) {
97
- if (specifier.type === 'ImportSpecifier' && specifier.importKind === 'type') {
98
- continue;
99
- }
100
- sawValueImport = true;
101
- if (specifier.type === 'ImportSpecifier') {
102
- imports.set(specifier.local.name, {
103
- imported: getImportSpecifierName(specifier),
104
- kind: 'named',
105
- source: statement.source.value
106
- });
107
- continue;
108
- }
109
- if (specifier.type === 'ImportDefaultSpecifier') {
110
- imports.set(specifier.local.name, {
111
- imported: 'default',
112
- kind: 'named',
113
- source: statement.source.value
114
- });
115
- continue;
116
- }
117
- imports.set(specifier.local.name, {
118
- kind: 'namespace',
119
- source: statement.source.value
120
- });
121
- }
122
- return sawValueImport || isTypeOnlyImport(statement);
123
- };
124
- const getImportSpecifierName = specifier => getModuleExportName(specifier.imported);
125
- const getLocalDeclarationNames = declaration => {
126
- if (declaration.type === 'VariableDeclaration' || declaration.type === 'FunctionDeclaration' || declaration.type === 'ClassDeclaration') {
127
- return Object.keys((0, _types.getBindingIdentifiers)(declaration));
128
- }
129
- if (declaration.type === 'TSEnumDeclaration' || declaration.type === 'TSModuleDeclaration') {
130
- return null;
131
- }
132
- return [];
133
- };
134
- const collectLocalExportNamedDeclaration = (statement, importedBindings, passthroughCandidates, explicitExports) => {
135
- let complete = true;
136
- if (isTypeOnlyExport(statement)) {
137
- return {
138
- complete: true,
139
- ok: true
140
- };
141
- }
142
- if (statement.declaration) {
143
- const names = getLocalDeclarationNames(statement.declaration);
144
- if (names === null) {
145
- return {
146
- complete: false,
147
- ok: false
148
- };
149
- }
150
- for (const name of names) {
151
- explicitExports.add(name);
152
- }
153
- return {
154
- complete: names.length === 0,
155
- ok: true
156
- };
157
- }
158
- for (const specifier of statement.specifiers) {
159
- if (specifier.type !== 'ExportSpecifier') {
160
- return {
161
- complete: false,
162
- ok: false
163
- };
164
- }
165
- if (specifier.exportKind === 'type') {
166
- continue;
167
- }
168
- const exported = getModuleExportName(specifier.exported);
169
- explicitExports.add(exported);
170
- if (specifier.local.type !== 'Identifier') {
171
- complete = false;
172
- continue;
173
- }
174
- if (!importedBindings.has(specifier.local.name)) {
175
- complete = false;
176
- continue;
177
- }
178
- if (!passthroughCandidates.has(specifier.local.name)) {
179
- passthroughCandidates.set(specifier.local.name, []);
180
- }
181
- passthroughCandidates.get(specifier.local.name).push(exported);
182
- }
183
- return {
184
- complete: complete && statement.specifiers.length > 0,
185
- ok: true
186
- };
187
- };
188
- const collectPassthroughReexports = (ast, importedBindings, passthroughCandidates, reexports) => {
189
- let complete = true;
190
- const bindingReferenceCounts = new Map();
191
- (0, _traverse.default)(ast, {
192
- Program(path) {
193
- for (const localName of passthroughCandidates.keys()) {
194
- var _path$scope$getBindin, _path$scope$getBindin2;
195
- bindingReferenceCounts.set(localName, (_path$scope$getBindin = (_path$scope$getBindin2 = path.scope.getBinding(localName)) === null || _path$scope$getBindin2 === void 0 ? void 0 : _path$scope$getBindin2.referencePaths.length) !== null && _path$scope$getBindin !== void 0 ? _path$scope$getBindin : -1);
196
- }
197
- path.stop();
198
- }
199
- });
200
- for (const [localName, exportedNames] of passthroughCandidates) {
201
- if (bindingReferenceCounts.get(localName) !== exportedNames.length) {
202
- complete = false;
203
- continue;
204
- }
205
- const imported = importedBindings.get(localName);
206
- for (const exported of exportedNames) {
207
- if (imported.kind === 'namespace') {
208
- reexports.push({
209
- exported,
210
- kind: 'namespace',
211
- source: imported.source
212
- });
213
- continue;
214
- }
215
- reexports.push({
216
- exported,
217
- imported: imported.imported,
218
- kind: 'named',
219
- source: imported.source
220
- });
221
- }
222
- }
223
- return {
224
- complete,
225
- ok: true
226
- };
227
- };
228
- function analyzeBarrelProgram(ast) {
229
- const reexports = [];
230
- const explicitExports = new Set();
231
- const exportAll = [];
232
- const importedBindings = new Map();
233
- const passthroughCandidates = new Map();
234
- let complete = true;
235
- for (const statement of ast.program.body) {
236
- if (statement.type === 'ImportDeclaration') {
237
- if (!collectImportBinding(statement, importedBindings)) {
238
- return null;
239
- }
240
- continue;
241
- }
242
- if (statement.type === 'ExportNamedDeclaration') {
243
- if (statement.source) {
244
- if (!collectExportNamedDeclaration(statement, reexports, explicitExports)) {
245
- return null;
246
- }
247
- continue;
248
- }
249
- const localResult = collectLocalExportNamedDeclaration(statement, importedBindings, passthroughCandidates, explicitExports);
250
- if (!localResult.ok) {
251
- return null;
252
- }
253
- complete = complete && localResult.complete;
254
- continue;
255
- }
256
- if (statement.type === 'ExportAllDeclaration') {
257
- if (statement.exportKind === 'type') {
258
- continue;
259
- }
260
- if (!statement.source) {
261
- return null;
262
- }
263
- exportAll.push(getExportAllSource(statement));
264
- continue;
265
- }
266
- if (statement.type === 'ExportDefaultDeclaration') {
267
- return null;
268
- }
269
- if (!isTypeOnlyStatement(statement)) {
270
- return null;
271
- }
272
- }
273
- const passthroughResult = collectPassthroughReexports(ast, importedBindings, passthroughCandidates, reexports);
274
- if (!passthroughResult.ok) {
275
- return null;
276
- }
277
- complete = complete && passthroughResult.complete;
278
- if (reexports.length === 0 && exportAll.length === 0) {
279
- return null;
280
- }
281
- return {
282
- complete,
283
- explicitExports: [...explicitExports],
284
- exportAll,
285
- kind: 'barrel',
286
- reexports
287
- };
288
- }
289
- const getExportAllSource = statement => statement.source.value;
290
- function analyzeBarrelFile(ast) {
291
- const result = analyzeBarrelProgram(ast);
292
- if (!result) {
293
- return {
294
- kind: 'ineligible',
295
- reason: 'impure'
296
- };
297
- }
298
- return result;
299
- }
300
- //# sourceMappingURL=barrelManifest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"barrelManifest.js","names":["_traverse","_interopRequireDefault","require","_types","e","__esModule","default","isTypeOnlyImport","statement","importKind","specifiers","length","every","specifier","type","isTypeOnlyExport","exportKind","getModuleExportName","node","name","value","isTypeOnlyStatement","collectExportNamedDeclaration","reexports","explicitExports","source","add","exported","push","getNamedReexport","getDefaultReexport","getNamespaceReexport","imported","local","kind","collectImportBinding","imports","sawValueImport","set","getImportSpecifierName","getLocalDeclarationNames","declaration","Object","keys","getBindingIdentifiers","collectLocalExportNamedDeclaration","importedBindings","passthroughCandidates","complete","ok","names","has","get","collectPassthroughReexports","ast","bindingReferenceCounts","Map","traverse","Program","path","localName","_path$scope$getBindin","_path$scope$getBindin2","scope","getBinding","referencePaths","stop","exportedNames","analyzeBarrelProgram","Set","exportAll","program","body","localResult","getExportAllSource","passthroughResult","analyzeBarrelFile","result","reason"],"sources":["../../src/transform/barrelManifest.ts"],"sourcesContent":["/* eslint-disable no-continue, @typescript-eslint/no-use-before-define */\nimport traverse from '@babel/traverse';\nimport { getBindingIdentifiers } from '@babel/types';\nimport type {\n ClassDeclaration,\n Declaration,\n ExportAllDeclaration,\n ExportDefaultSpecifier,\n ExportNamedDeclaration,\n ExportNamespaceSpecifier,\n ExportSpecifier,\n File,\n FunctionDeclaration,\n Identifier,\n ImportDeclaration,\n ImportSpecifier,\n Program,\n StringLiteral,\n VariableDeclaration,\n} from '@babel/types';\n\nexport type BarrelSkipReason =\n | 'custom-evaluator'\n | 'empty'\n | 'ignored'\n | 'impure'\n | 'namespace-barrel'\n | 'unknown-star';\n\nexport type BarrelBlockedReason =\n | 'ambiguous'\n | 'cycle'\n | 'namespace-barrel'\n | 'unknown-star'\n | 'unresolved';\n\nexport type BarrelResolvedBinding =\n | {\n imported: string;\n kind: 'named';\n source: string;\n }\n | {\n kind: 'namespace';\n source: string;\n };\n\nexport type BarrelManifestExport =\n | BarrelResolvedBinding\n | {\n kind: 'blocked';\n reason: BarrelBlockedReason;\n };\n\nexport type BarrelManifest = {\n complete: boolean;\n exports: Record<string, BarrelManifestExport>;\n kind: 'barrel';\n};\n\nexport type BarrelManifestCacheEntry =\n | BarrelManifest\n | {\n kind: 'ineligible';\n reason: BarrelSkipReason;\n };\n\nexport type RawBarrelReexport =\n | {\n exported: string;\n imported: string;\n kind: 'named';\n source: string;\n }\n | {\n exported: string;\n kind: 'namespace';\n source: string;\n };\n\nexport type RawBarrelManifest = {\n complete: boolean;\n explicitExports: string[];\n exportAll: string[];\n kind: 'barrel';\n reexports: RawBarrelReexport[];\n};\n\ntype LocalImportBinding =\n | {\n imported: string;\n kind: 'named';\n source: string;\n }\n | {\n kind: 'namespace';\n source: string;\n };\n\nconst isTypeOnlyImport = (statement: ImportDeclaration): boolean => {\n if (statement.importKind === 'type') {\n return true;\n }\n\n if (statement.specifiers.length === 0) {\n return false;\n }\n\n return statement.specifiers.every(\n (specifier) =>\n specifier.type === 'ImportSpecifier' && specifier.importKind === 'type'\n );\n};\n\nconst isTypeOnlyExport = (statement: ExportNamedDeclaration): boolean =>\n statement.exportKind === 'type';\n\nconst getModuleExportName = (node: Identifier | StringLiteral): string =>\n node.type === 'Identifier' ? node.name : node.value;\n\nconst isTypeOnlyStatement = (statement: Program['body'][number]): boolean => {\n switch (statement.type) {\n case 'EmptyStatement':\n case 'TSDeclareFunction':\n case 'TSInterfaceDeclaration':\n case 'TSTypeAliasDeclaration':\n return true;\n default:\n return false;\n }\n};\n\nfunction collectExportNamedDeclaration(\n statement: ExportNamedDeclaration,\n reexports: RawBarrelReexport[],\n explicitExports: Set<string>\n): boolean {\n if (!statement.source) {\n return isTypeOnlyExport(statement);\n }\n\n if (isTypeOnlyExport(statement)) {\n return true;\n }\n\n const source = statement.source.value;\n for (const specifier of statement.specifiers) {\n if (specifier.type === 'ExportSpecifier') {\n if (specifier.exportKind === 'type') {\n continue;\n }\n\n explicitExports.add(getModuleExportName(specifier.exported));\n reexports.push(getNamedReexport(specifier, source));\n continue;\n }\n\n if (specifier.type === 'ExportDefaultSpecifier') {\n explicitExports.add(getModuleExportName(specifier.exported));\n reexports.push(getDefaultReexport(specifier, source));\n continue;\n }\n\n if (specifier.type === 'ExportNamespaceSpecifier') {\n explicitExports.add(getModuleExportName(specifier.exported));\n reexports.push(getNamespaceReexport(specifier, source));\n continue;\n }\n\n return false;\n }\n\n return statement.specifiers.length > 0;\n}\n\nfunction getNamedReexport(\n specifier: ExportSpecifier,\n source: string\n): RawBarrelReexport {\n return {\n exported: getModuleExportName(specifier.exported),\n imported: getModuleExportName(specifier.local),\n kind: 'named',\n source,\n };\n}\n\nfunction getDefaultReexport(\n specifier: ExportDefaultSpecifier,\n source: string\n): RawBarrelReexport {\n return {\n exported: getModuleExportName(specifier.exported),\n imported: 'default',\n kind: 'named',\n source,\n };\n}\n\nfunction getNamespaceReexport(\n specifier: ExportNamespaceSpecifier,\n source: string\n): RawBarrelReexport {\n return {\n exported: getModuleExportName(specifier.exported),\n kind: 'namespace',\n source,\n };\n}\n\nconst collectImportBinding = (\n statement: ImportDeclaration,\n imports: Map<string, LocalImportBinding>\n): boolean => {\n if (statement.importKind === 'type') {\n return true;\n }\n\n if (statement.specifiers.length === 0) {\n return false;\n }\n\n let sawValueImport = false;\n for (const specifier of statement.specifiers) {\n if (\n specifier.type === 'ImportSpecifier' &&\n specifier.importKind === 'type'\n ) {\n continue;\n }\n\n sawValueImport = true;\n\n if (specifier.type === 'ImportSpecifier') {\n imports.set(specifier.local.name, {\n imported: getImportSpecifierName(specifier),\n kind: 'named',\n source: statement.source.value,\n });\n continue;\n }\n\n if (specifier.type === 'ImportDefaultSpecifier') {\n imports.set(specifier.local.name, {\n imported: 'default',\n kind: 'named',\n source: statement.source.value,\n });\n continue;\n }\n\n imports.set(specifier.local.name, {\n kind: 'namespace',\n source: statement.source.value,\n });\n }\n\n return sawValueImport || isTypeOnlyImport(statement);\n};\n\nconst getImportSpecifierName = (specifier: ImportSpecifier): string =>\n getModuleExportName(specifier.imported);\n\nconst getLocalDeclarationNames = (\n declaration: Declaration\n): string[] | null => {\n if (\n declaration.type === 'VariableDeclaration' ||\n declaration.type === 'FunctionDeclaration' ||\n declaration.type === 'ClassDeclaration'\n ) {\n return Object.keys(\n getBindingIdentifiers(\n declaration as\n | VariableDeclaration\n | FunctionDeclaration\n | ClassDeclaration\n )\n );\n }\n\n if (\n declaration.type === 'TSEnumDeclaration' ||\n declaration.type === 'TSModuleDeclaration'\n ) {\n return null;\n }\n\n return [];\n};\n\nconst collectLocalExportNamedDeclaration = (\n statement: ExportNamedDeclaration,\n importedBindings: Map<string, LocalImportBinding>,\n passthroughCandidates: Map<string, string[]>,\n explicitExports: Set<string>\n): { complete: boolean; ok: boolean } => {\n let complete = true;\n\n if (isTypeOnlyExport(statement)) {\n return {\n complete: true,\n ok: true,\n };\n }\n\n if (statement.declaration) {\n const names = getLocalDeclarationNames(statement.declaration);\n if (names === null) {\n return {\n complete: false,\n ok: false,\n };\n }\n\n for (const name of names) {\n explicitExports.add(name);\n }\n\n return {\n complete: names.length === 0,\n ok: true,\n };\n }\n\n for (const specifier of statement.specifiers) {\n if (specifier.type !== 'ExportSpecifier') {\n return {\n complete: false,\n ok: false,\n };\n }\n\n if (specifier.exportKind === 'type') {\n continue;\n }\n\n const exported = getModuleExportName(specifier.exported);\n explicitExports.add(exported);\n\n if (specifier.local.type !== 'Identifier') {\n complete = false;\n continue;\n }\n\n if (!importedBindings.has(specifier.local.name)) {\n complete = false;\n continue;\n }\n\n if (!passthroughCandidates.has(specifier.local.name)) {\n passthroughCandidates.set(specifier.local.name, []);\n }\n passthroughCandidates.get(specifier.local.name)!.push(exported);\n }\n\n return {\n complete: complete && statement.specifiers.length > 0,\n ok: true,\n };\n};\n\nconst collectPassthroughReexports = (\n ast: File,\n importedBindings: Map<string, LocalImportBinding>,\n passthroughCandidates: Map<string, string[]>,\n reexports: RawBarrelReexport[]\n): { complete: boolean; ok: boolean } => {\n let complete = true;\n const bindingReferenceCounts = new Map<string, number>();\n\n traverse(ast, {\n Program(path) {\n for (const localName of passthroughCandidates.keys()) {\n bindingReferenceCounts.set(\n localName,\n path.scope.getBinding(localName)?.referencePaths.length ?? -1\n );\n }\n path.stop();\n },\n });\n\n for (const [localName, exportedNames] of passthroughCandidates) {\n if (bindingReferenceCounts.get(localName) !== exportedNames.length) {\n complete = false;\n continue;\n }\n\n const imported = importedBindings.get(localName)!;\n for (const exported of exportedNames) {\n if (imported.kind === 'namespace') {\n reexports.push({\n exported,\n kind: 'namespace',\n source: imported.source,\n });\n continue;\n }\n\n reexports.push({\n exported,\n imported: imported.imported,\n kind: 'named',\n source: imported.source,\n });\n }\n }\n\n return {\n complete,\n ok: true,\n };\n};\n\nfunction analyzeBarrelProgram(ast: File): RawBarrelManifest | null {\n const reexports: RawBarrelReexport[] = [];\n const explicitExports = new Set<string>();\n const exportAll: string[] = [];\n const importedBindings = new Map<string, LocalImportBinding>();\n const passthroughCandidates = new Map<string, string[]>();\n let complete = true;\n\n for (const statement of ast.program.body) {\n if (statement.type === 'ImportDeclaration') {\n if (!collectImportBinding(statement, importedBindings)) {\n return null;\n }\n continue;\n }\n\n if (statement.type === 'ExportNamedDeclaration') {\n if (statement.source) {\n if (\n !collectExportNamedDeclaration(statement, reexports, explicitExports)\n ) {\n return null;\n }\n continue;\n }\n\n const localResult = collectLocalExportNamedDeclaration(\n statement,\n importedBindings,\n passthroughCandidates,\n explicitExports\n );\n if (!localResult.ok) {\n return null;\n }\n complete = complete && localResult.complete;\n continue;\n }\n\n if (statement.type === 'ExportAllDeclaration') {\n if (statement.exportKind === 'type') {\n continue;\n }\n\n if (!statement.source) {\n return null;\n }\n\n exportAll.push(getExportAllSource(statement));\n continue;\n }\n\n if (statement.type === 'ExportDefaultDeclaration') {\n return null;\n }\n\n if (!isTypeOnlyStatement(statement)) {\n return null;\n }\n }\n\n const passthroughResult = collectPassthroughReexports(\n ast,\n importedBindings,\n passthroughCandidates,\n reexports\n );\n if (!passthroughResult.ok) {\n return null;\n }\n complete = complete && passthroughResult.complete;\n\n if (reexports.length === 0 && exportAll.length === 0) {\n return null;\n }\n\n return {\n complete,\n explicitExports: [...explicitExports],\n exportAll,\n kind: 'barrel',\n reexports,\n };\n}\n\nconst getExportAllSource = (statement: ExportAllDeclaration): string =>\n statement.source.value;\n\nexport function analyzeBarrelFile(\n ast: File\n): BarrelManifestCacheEntry | RawBarrelManifest {\n const result = analyzeBarrelProgram(ast);\n\n if (!result) {\n return {\n kind: 'ineligible',\n reason: 'impure',\n };\n }\n\n return result;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.baseProcessingHandlers = void 0;
7
- var _explodeReexports = require("./explodeReexports");
8
- var _getExports = require("./getExports");
9
- var _processEntrypoint = require("./processEntrypoint");
10
- var _processImports = require("./processImports");
11
- var _transform = require("./transform");
12
- // eslint-disable-next-line require-yield
13
- function* emptyHandler() {
14
- throw new Error(`Handler for ${this.type} is not implemented`);
15
- }
16
- const baseProcessingHandlers = exports.baseProcessingHandlers = {
17
- collect: emptyHandler,
18
- evalFile: emptyHandler,
19
- extract: emptyHandler,
20
- workflow: emptyHandler,
21
- explodeReexports: _explodeReexports.explodeReexports,
22
- getExports: _getExports.getExports,
23
- processEntrypoint: _processEntrypoint.processEntrypoint,
24
- processImports: _processImports.processImports,
25
- transform: _transform.transform
26
- };
27
- //# sourceMappingURL=baseProcessingHandlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseProcessingHandlers.js","names":["_explodeReexports","require","_getExports","_processEntrypoint","_processImports","_transform","emptyHandler","Error","type","baseProcessingHandlers","exports","collect","evalFile","extract","workflow","explodeReexports","getExports","processEntrypoint","processImports","transform"],"sources":["../../../src/transform/generators/baseProcessingHandlers.ts"],"sourcesContent":["import type {\n SyncScenarioForAction,\n ICollectAction,\n IEvalAction,\n IExtractAction,\n IWorkflowAction,\n ActionQueueItem,\n} from '../types';\n\nimport { explodeReexports } from './explodeReexports';\nimport { getExports } from './getExports';\nimport { processEntrypoint } from './processEntrypoint';\nimport { processImports } from './processImports';\nimport { transform } from './transform';\n\n// eslint-disable-next-line require-yield\nfunction* emptyHandler<T extends ActionQueueItem>(\n this: T\n): SyncScenarioForAction<T> {\n throw new Error(`Handler for ${this.type} is not implemented`);\n}\n\nexport const baseProcessingHandlers = {\n collect: emptyHandler<ICollectAction>,\n evalFile: emptyHandler<IEvalAction>,\n extract: emptyHandler<IExtractAction>,\n workflow: emptyHandler<IWorkflowAction>,\n explodeReexports,\n getExports,\n processEntrypoint,\n processImports,\n transform,\n};\n"],"mappings":";;;;;;AASA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAEA;AACA,UAAUK,YAAYA,CAAA,EAEM;EAC1B,MAAM,IAAIC,KAAK,CAAC,eAAe,IAAI,CAACC,IAAI,qBAAqB,CAAC;AAChE;AAEO,MAAMC,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;EACpCE,OAAO,EAAEL,YAA4B;EACrCM,QAAQ,EAAEN,YAAyB;EACnCO,OAAO,EAAEP,YAA4B;EACrCQ,QAAQ,EAAER,YAA6B;EACvCS,gBAAgB,EAAhBA,kCAAgB;EAChBC,UAAU,EAAVA,sBAAU;EACVC,iBAAiB,EAAjBA,oCAAiB;EACjBC,cAAc,EAAdA,8BAAc;EACdC,SAAS,EAATA;AACF,CAAC","ignoreList":[]}
@@ -1,66 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.collect = collect;
7
- var _buildOptions = require("../../options/buildOptions");
8
- var _collector = require("../../plugins/collector");
9
- var _TransformMetadata = require("../../utils/TransformMetadata");
10
- /**
11
- * Parses the specified file, finds tags, applies run-time replacements,
12
- * removes dead code.
13
- */
14
- // eslint-disable-next-line require-yield
15
- function* collect() {
16
- var _result$ast;
17
- const {
18
- babel,
19
- options
20
- } = this.services;
21
- const {
22
- valueCache
23
- } = this.data;
24
- const {
25
- entrypoint
26
- } = this;
27
- const {
28
- loadedAndParsed,
29
- name
30
- } = entrypoint;
31
- if (loadedAndParsed.evaluator === 'ignored') {
32
- throw new Error('entrypoint was ignored');
33
- }
34
- const transformPlugins = [[_collector.filename, {
35
- ...options.pluginOptions,
36
- values: valueCache
37
- }]];
38
- const transformConfig = (0, _buildOptions.buildOptions)({
39
- envName: 'wyw-in-js',
40
- plugins: transformPlugins,
41
- sourceMaps: true,
42
- sourceFileName: name,
43
- inputSourceMap: options.inputSourceMap,
44
- root: options.root,
45
- ast: true,
46
- babelrc: false,
47
- configFile: false,
48
- sourceType: 'unambiguous'
49
- });
50
- const result = babel.transformFromAstSync(loadedAndParsed.ast, loadedAndParsed.code, {
51
- ...transformConfig,
52
- cwd: options.root,
53
- filename: name
54
- });
55
- if (!result || !((_result$ast = result.ast) !== null && _result$ast !== void 0 && _result$ast.program)) {
56
- throw new Error('Babel transform failed');
57
- }
58
- const transformMetadata = (0, _TransformMetadata.getTransformMetadata)(result.metadata);
59
- return {
60
- ast: result.ast,
61
- code: result.code,
62
- map: result.map,
63
- metadata: transformMetadata !== null && transformMetadata !== void 0 ? transformMetadata : null
64
- };
65
- }
66
- //# sourceMappingURL=collect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collect.js","names":["_buildOptions","require","_collector","_TransformMetadata","collect","_result$ast","babel","options","services","valueCache","data","entrypoint","loadedAndParsed","name","evaluator","Error","transformPlugins","collectorPlugin","pluginOptions","values","transformConfig","buildOptions","envName","plugins","sourceMaps","sourceFileName","inputSourceMap","root","ast","babelrc","configFile","sourceType","result","transformFromAstSync","code","cwd","filename","program","transformMetadata","getTransformMetadata","metadata","map"],"sources":["../../../src/transform/generators/collect.ts"],"sourcesContent":["import type { PluginItem } from '@babel/core';\n\nimport { buildOptions } from '../../options/buildOptions';\nimport { filename as collectorPlugin } from '../../plugins/collector';\nimport { getTransformMetadata } from '../../utils/TransformMetadata';\nimport type { ICollectAction, SyncScenarioForAction } from '../types';\n\n/**\n * Parses the specified file, finds tags, applies run-time replacements,\n * removes dead code.\n */\n// eslint-disable-next-line require-yield\nexport function* collect(\n this: ICollectAction\n): SyncScenarioForAction<ICollectAction> {\n const { babel, options } = this.services;\n const { valueCache } = this.data;\n const { entrypoint } = this;\n const { loadedAndParsed, name } = entrypoint;\n\n if (loadedAndParsed.evaluator === 'ignored') {\n throw new Error('entrypoint was ignored');\n }\n\n const transformPlugins: PluginItem[] = [\n [\n collectorPlugin,\n {\n ...options.pluginOptions,\n values: valueCache,\n },\n ],\n ];\n\n const transformConfig = buildOptions({\n envName: 'wyw-in-js',\n plugins: transformPlugins,\n sourceMaps: true,\n sourceFileName: name,\n inputSourceMap: options.inputSourceMap,\n root: options.root,\n ast: true,\n babelrc: false,\n configFile: false,\n sourceType: 'unambiguous',\n });\n\n const result = babel.transformFromAstSync(\n loadedAndParsed.ast,\n loadedAndParsed.code,\n {\n ...transformConfig,\n cwd: options.root,\n filename: name,\n }\n );\n\n if (!result || !result.ast?.program) {\n throw new Error('Babel transform failed');\n }\n\n const transformMetadata = getTransformMetadata(result.metadata);\n\n return {\n ast: result.ast,\n code: result.code,\n map: result.map,\n metadata: transformMetadata ?? null,\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAGA;AACA;AACA;AACA;AACA;AACO,UAAUG,OAAOA,CAAA,EAEiB;EAAA,IAAAC,WAAA;EACvC,MAAM;IAAEC,KAAK;IAAEC;EAAQ,CAAC,GAAG,IAAI,CAACC,QAAQ;EACxC,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAI,CAACC,IAAI;EAChC,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAI;EAC3B,MAAM;IAAEC,eAAe;IAAEC;EAAK,CAAC,GAAGF,UAAU;EAE5C,IAAIC,eAAe,CAACE,SAAS,KAAK,SAAS,EAAE;IAC3C,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAAC;EAC3C;EAEA,MAAMC,gBAA8B,GAAG,CACrC,CACEC,mBAAe,EACf;IACE,GAAGV,OAAO,CAACW,aAAa;IACxBC,MAAM,EAAEV;EACV,CAAC,CACF,CACF;EAED,MAAMW,eAAe,GAAG,IAAAC,0BAAY,EAAC;IACnCC,OAAO,EAAE,WAAW;IACpBC,OAAO,EAAEP,gBAAgB;IACzBQ,UAAU,EAAE,IAAI;IAChBC,cAAc,EAAEZ,IAAI;IACpBa,cAAc,EAAEnB,OAAO,CAACmB,cAAc;IACtCC,IAAI,EAAEpB,OAAO,CAACoB,IAAI;IAClBC,GAAG,EAAE,IAAI;IACTC,OAAO,EAAE,KAAK;IACdC,UAAU,EAAE,KAAK;IACjBC,UAAU,EAAE;EACd,CAAC,CAAC;EAEF,MAAMC,MAAM,GAAG1B,KAAK,CAAC2B,oBAAoB,CACvCrB,eAAe,CAACgB,GAAG,EACnBhB,eAAe,CAACsB,IAAI,EACpB;IACE,GAAGd,eAAe;IAClBe,GAAG,EAAE5B,OAAO,CAACoB,IAAI;IACjBS,QAAQ,EAAEvB;EACZ,CACF,CAAC;EAED,IAAI,CAACmB,MAAM,IAAI,GAAA3B,WAAA,GAAC2B,MAAM,CAACJ,GAAG,cAAAvB,WAAA,eAAVA,WAAA,CAAYgC,OAAO,GAAE;IACnC,MAAM,IAAItB,KAAK,CAAC,wBAAwB,CAAC;EAC3C;EAEA,MAAMuB,iBAAiB,GAAG,IAAAC,uCAAoB,EAACP,MAAM,CAACQ,QAAQ,CAAC;EAE/D,OAAO;IACLZ,GAAG,EAAEI,MAAM,CAACJ,GAAG;IACfM,IAAI,EAAEF,MAAM,CAACE,IAAI;IACjBO,GAAG,EAAET,MAAM,CAACS,GAAG;IACfD,QAAQ,EAAEF,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAI;EACjC,CAAC;AACH","ignoreList":[]}