@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 +1 @@
1
- {"version":3,"file":"getExports.js","names":["collectExportsAndImports","findExportsInImports","entrypoint","imports","results","imp","resolved","Error","source","newEntrypoint","createChild","push","import","getExports","services","cache","loadedAndParsed","ast","undefined","log","name","has","get","withWildcardReexport","result","babel","traverse","Program","path","exports","reexports","Object","keys","forEach","token","e","exported","filter","length","resolvedImports","getNext","Map","map","i","dependencyFilenames","flatMap","dependency","importedEntrypoints","importedEntrypoint","add","setCacheDependencies"],"sources":["../../../src/transform/generators/getExports.ts"],"sourcesContent":["import type { IReexport } from '../../utils/collectExportsAndImports';\nimport { collectExportsAndImports } from '../../utils/collectExportsAndImports';\nimport type { Entrypoint } from '../Entrypoint';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport type { IGetExportsAction, SyncScenarioForAction } from '../types';\n\nexport function findExportsInImports(\n entrypoint: Entrypoint,\n imports: IEntrypointDependency[]\n): { entrypoint: Entrypoint; import: string }[] {\n const results: {\n entrypoint: Entrypoint;\n import: string;\n }[] = [];\n\n for (const imp of imports) {\n const { resolved } = imp;\n if (!resolved) {\n throw new Error(`Could not resolve import ${imp.source}`);\n }\n\n const newEntrypoint = entrypoint.createChild(resolved, []);\n\n if (newEntrypoint === 'loop') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n results.push({\n entrypoint: newEntrypoint,\n import: imp.source,\n });\n }\n\n return results;\n}\n\nexport function* getExports(\n this: IGetExportsAction\n): SyncScenarioForAction<IGetExportsAction> {\n const {\n entrypoint,\n services: { cache },\n } = this;\n const { loadedAndParsed } = entrypoint;\n if (loadedAndParsed.ast === undefined) {\n return [];\n }\n\n entrypoint.log(`get exports from %s`, entrypoint.name);\n\n if (cache.has('exports', entrypoint.name)) {\n return cache.get('exports', entrypoint.name)!;\n }\n\n let withWildcardReexport: IReexport[] = [];\n const result: string[] = [];\n\n this.services.babel.traverse(loadedAndParsed.ast!, {\n Program(path) {\n const { exports, reexports } = collectExportsAndImports(path, 'disabled');\n Object.keys(exports).forEach((token) => {\n result.push(token);\n });\n\n reexports.forEach((e) => {\n if (e.exported !== '*') {\n result.push(e.exported);\n }\n });\n\n withWildcardReexport = reexports.filter((e) => e.exported === '*');\n },\n });\n\n if (withWildcardReexport.length) {\n const resolvedImports = yield* this.getNext('resolveImports', entrypoint, {\n imports: new Map(withWildcardReexport.map((i) => [i.source, []])),\n });\n const dependencyFilenames = resolvedImports.flatMap((dependency) =>\n dependency.resolved ? [dependency.resolved] : []\n );\n\n const importedEntrypoints = findExportsInImports(\n entrypoint,\n resolvedImports\n );\n\n for (const importedEntrypoint of importedEntrypoints) {\n const exports = yield* this.getNext(\n 'getExports',\n importedEntrypoint.entrypoint,\n undefined\n );\n\n result.push(...exports);\n }\n\n cache.add('exports', entrypoint.name, result);\n cache.setCacheDependencies('exports', entrypoint.name, dependencyFilenames);\n\n entrypoint.log(`exports: %o`, result);\n\n return result;\n }\n\n entrypoint.log(`exports: %o`, result);\n\n cache.add('exports', entrypoint.name, result);\n\n return result;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"mappings":";AACA,SAAS,mCAAmC;AAC5C,SAAS,iBAAiB;AAS1B,OAAO,SAAS,qBACd,YACA,SAC8C;CAC9C,MAAM,UAGA,EAAE;AAER,MAAK,MAAM,OAAO,SAAS;EACzB,MAAM,EAAE,aAAa;AACrB,MAAI,CAAC,UAAU;AACb,SAAM,IAAI,MAAM,4BAA4B,IAAI,SAAS;;EAG3D,MAAM,gBAAgB,WAAW,YAAY,UAAU,EAAE,CAAC;AAE1D,MAAI,kBAAkB,QAAQ;AAC5B;;AAGF,UAAQ,KAAK;GACX,YAAY;GACZ,QAAQ,IAAI;GACb,CAAC;;AAGJ,QAAO;;AAGT,OAAO,UAAU,aAE2B;CAC1C,MAAM,EACJ,YACA,UAAU,EAAE,YACV;CACJ,MAAM,EAAE,oBAAoB;AAE5B,YAAW,IAAI,uBAAuB,WAAW,KAAK;AAEtD,KAAI,MAAM,IAAI,WAAW,WAAW,KAAK,EAAE;AACzC,SAAO,MAAM,IAAI,WAAW,WAAW,KAAK;;CAG9C,IAAI,uBAA2C,EAAE;CACjD,MAAM,SAAmB,EAAE;AAE3B,KAAI,gBAAgB,cAAc,WAAW;AAC3C,QAAM,IAAI,MACR,eAAe,WAAW,KAAK,4FAChC;;CAGH,MAAM,EAAE,SAAS,cAAc,4BAC7B,gBAAgB,MAChB,gBAAgB,WAAW,YAAY,WAAW,KACnD;AACD,QAAO,KAAK,QAAQ,CAAC,SAAS,UAAU;AACtC,SAAO,KAAK,MAAM;GAClB;AAEF,WAAU,SAAS,aAAa;AAC9B,MAAI,SAAS,aAAa,KAAK;AAC7B,UAAO,KAAK,SAAS,SAAS;;GAEhC;AAEF,wBAAuB,UAAU,QAC9B,aAAa,SAAS,aAAa,IACrC;AAED,KAAI,qBAAqB,QAAQ;EAC/B,MAAM,kBAAkB,OAAO,KAAK,QAAQ,kBAAkB,YAAY,EACxE,SAAS,IAAI,IAAI,qBAAqB,KAAK,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC,CAAC,CAAC,EACxE,CAAC;EACF,MAAM,sBAAsB,gBAAgB,SAAS,eACnD,WAAW,WAAW,CAAC,WAAW,SAAS,GAAG,EAAE,CACjD;EAED,MAAM,sBAAsB,qBAC1B,YACA,gBACD;AAED,OAAK,MAAM,sBAAsB,qBAAqB;GACpD,MAAM,eAAe,OAAO,KAAK,QAC/B,cACA,mBAAmB,YACnB,UACD;AAED,UAAO,KAAK,GAAG,aAAa;;AAG9B,QAAM,IAAI,WAAW,WAAW,MAAM,OAAO;AAC7C,QAAM,qBAAqB,WAAW,WAAW,MAAM,oBAAoB;AAE3E,aAAW,IAAI,eAAe,OAAO;AAErC,SAAO;;AAGT,YAAW,IAAI,eAAe,OAAO;AACrC,OAAM,IAAI,WAAW,WAAW,MAAM,OAAO;AAE7C,QAAO","names":[],"sources":["../../../src/transform/generators/getExports.ts"],"version":3,"sourcesContent":["/* eslint-disable no-continue */\nimport { collectOxcExportsAndImports } from '../../utils/collectOxcExportsAndImports';\nimport { oxcShaker } from '../../shaker';\nimport type { Entrypoint } from '../Entrypoint';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport type { IGetExportsAction, SyncScenarioForAction } from '../types';\n\ntype WildcardReexport = {\n source: string;\n};\n\nexport function findExportsInImports(\n entrypoint: Entrypoint,\n imports: IEntrypointDependency[]\n): { entrypoint: Entrypoint; import: string }[] {\n const results: {\n entrypoint: Entrypoint;\n import: string;\n }[] = [];\n\n for (const imp of imports) {\n const { resolved } = imp;\n if (!resolved) {\n throw new Error(`Could not resolve import ${imp.source}`);\n }\n\n const newEntrypoint = entrypoint.createChild(resolved, []);\n\n if (newEntrypoint === 'loop') {\n continue;\n }\n\n results.push({\n entrypoint: newEntrypoint,\n import: imp.source,\n });\n }\n\n return results;\n}\n\nexport function* getExports(\n this: IGetExportsAction\n): SyncScenarioForAction<IGetExportsAction> {\n const {\n entrypoint,\n services: { cache },\n } = this;\n const { loadedAndParsed } = entrypoint;\n\n entrypoint.log('get exports from %s', entrypoint.name);\n\n if (cache.has('exports', entrypoint.name)) {\n return cache.get('exports', entrypoint.name)!;\n }\n\n let withWildcardReexport: WildcardReexport[] = [];\n const result: string[] = [];\n\n if (loadedAndParsed.evaluator !== oxcShaker) {\n throw new Error(\n `[wyw-in-js] ${entrypoint.name} matched a legacy evaluator. The Oxc runtime path supports only the default Oxc evaluator.`\n );\n }\n\n const { exports, reexports } = collectOxcExportsAndImports(\n loadedAndParsed.code,\n loadedAndParsed.evalConfig.filename ?? entrypoint.name\n );\n Object.keys(exports).forEach((token) => {\n result.push(token);\n });\n\n reexports.forEach((reexport) => {\n if (reexport.exported !== '*') {\n result.push(reexport.exported);\n }\n });\n\n withWildcardReexport = reexports.filter(\n (reexport) => reexport.exported === '*'\n );\n\n if (withWildcardReexport.length) {\n const resolvedImports = yield* this.getNext('resolveImports', entrypoint, {\n imports: new Map(withWildcardReexport.map((item) => [item.source, []])),\n });\n const dependencyFilenames = resolvedImports.flatMap((dependency) =>\n dependency.resolved ? [dependency.resolved] : []\n );\n\n const importedEntrypoints = findExportsInImports(\n entrypoint,\n resolvedImports\n );\n\n for (const importedEntrypoint of importedEntrypoints) {\n const childExports = yield* this.getNext(\n 'getExports',\n importedEntrypoint.entrypoint,\n undefined\n );\n\n result.push(...childExports);\n }\n\n cache.add('exports', entrypoint.name, result);\n cache.setCacheDependencies('exports', entrypoint.name, dependencyFilenames);\n\n entrypoint.log('exports: %o', result);\n\n return result;\n }\n\n entrypoint.log('exports: %o', result);\n cache.add('exports', entrypoint.name, result);\n\n return result;\n}\n"],"file":"getExports.js"}
@@ -1,13 +1,13 @@
1
- import { baseProcessingHandlers } from './baseProcessingHandlers';
2
- import { collect } from './collect';
3
- import { evalFile } from './evalFile';
4
- import { extract } from './extract';
5
- import { workflow } from './workflow';
1
+ import { baseProcessingHandlers } from "./baseProcessingHandlers.js";
2
+ import { collect } from "./collect.js";
3
+ import { evalFile } from "./evalFile.js";
4
+ import { extract } from "./extract.js";
5
+ import { workflow } from "./workflow.js";
6
6
  export const baseHandlers = {
7
- ...baseProcessingHandlers,
8
- collect,
9
- evalFile,
10
- extract,
11
- workflow
7
+ ...baseProcessingHandlers,
8
+ collect,
9
+ evalFile,
10
+ extract,
11
+ workflow
12
12
  };
13
- //# sourceMappingURL=index.js.map
13
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["baseProcessingHandlers","collect","evalFile","extract","workflow","baseHandlers"],"sources":["../../../src/transform/generators/index.ts"],"sourcesContent":["import { baseProcessingHandlers } from './baseProcessingHandlers';\nimport { collect } from './collect';\nimport { evalFile } from './evalFile';\nimport { extract } from './extract';\nimport { workflow } from './workflow';\n\nexport const baseHandlers = {\n ...baseProcessingHandlers,\n collect,\n evalFile,\n extract,\n workflow,\n};\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,0BAA0B;AACjE,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,QAAQ,QAAQ,YAAY;AAErC,OAAO,MAAMC,YAAY,GAAG;EAC1B,GAAGL,sBAAsB;EACzBC,OAAO;EACPC,QAAQ;EACRC,OAAO;EACPC;AACF,CAAC","ignoreList":[]}
1
+ {"mappings":"AAAA,SAAS,8BAA8B;AACvC,SAAS,eAAe;AACxB,SAAS,gBAAgB;AACzB,SAAS,eAAe;AACxB,SAAS,gBAAgB;AAEzB,OAAO,MAAM,eAAe;CAC1B,GAAG;CACH;CACA;CACA;CACA;CACD","names":[],"sources":["../../../src/transform/generators/index.ts"],"version":3,"sourcesContent":["import { baseProcessingHandlers } from './baseProcessingHandlers';\nimport { collect } from './collect';\nimport { evalFile } from './evalFile';\nimport { extract } from './extract';\nimport { workflow } from './workflow';\n\nexport const baseHandlers = {\n ...baseProcessingHandlers,\n collect,\n evalFile,\n extract,\n workflow,\n};\n"],"file":"index.js"}
@@ -1,70 +1,81 @@
1
- function _usingCtx2() { var r = "function" == typeof SuppressedError ? SuppressedError : function (r, e) { var n = Error(); return n.name = "SuppressedError", n.error = r, n.suppressed = e, n; }, e = {}, n = []; function using(r, e) { if (null != e) { if (Object(e) !== e) throw new TypeError("using declarations can only be used with objects, functions, null, or undefined."); if (r) var o = e[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")]; if (void 0 === o && (o = e[Symbol.dispose || Symbol.for("Symbol.dispose")], r)) var t = o; if ("function" != typeof o) throw new TypeError("Object is not disposable."); t && (o = function () { try { t.call(e); } catch (r) { return Promise.reject(r); } }), n.push({ v: e, d: o, a: r }); } else r && n.push({ d: e, a: r }); return e; } return { e: e, u: using.bind(null, !1), a: using.bind(null, !0), d: function () { var o, t = this.e, s = 0; function next() { for (; o = n.pop();) try { if (!o.a && 1 === s) return s = 0, n.push(o), Promise.resolve().then(next); if (o.d) { var r = o.d.call(o.v); if (o.a) return s |= 2, Promise.resolve(r).then(next, err); } else s |= 1; } catch (r) { return err(r); } if (1 === s) return t !== e ? Promise.reject(t) : Promise.resolve(); if (t !== e) throw t; } function err(n) { return t = t !== e ? new r(n, t) : n, next(); } return next(); } }; }
2
- import { shaker } from '../../shaker';
3
- import { isAborted } from '../actions/AbortError';
4
- import { analyzeBarrelFile } from '../barrelManifest';
5
- const shouldSkipExplodeReexports = action => {
6
- const {
7
- loadedAndParsed,
8
- only
9
- } = action.entrypoint;
10
- if (only.length === 1 && only[0] === '__wywPreval') {
11
- return true;
12
- }
13
- if (loadedAndParsed.evaluator !== shaker || !loadedAndParsed.ast) {
14
- return false;
15
- }
16
- const barrelAnalysis = analyzeBarrelFile(loadedAndParsed.ast);
17
- return barrelAnalysis.kind === 'barrel' && barrelAnalysis.complete;
18
- };
19
-
1
+ import { isAborted } from "../actions/AbortError.js";
20
2
  /**
21
- * The first stage of processing an entrypoint.
22
- * This stage is responsible for:
23
- * - scheduling the explodeReexports action
24
- * - scheduling the transform action
25
- * - rescheduling itself if the entrypoint is superseded
26
- */
3
+ * The first stage of processing an entrypoint.
4
+ * This stage is responsible for:
5
+ * - scheduling the transform action
6
+ * - rescheduling itself if the entrypoint is superseded
7
+ */
27
8
  export function* processEntrypoint() {
28
- const {
29
- only,
30
- log
31
- } = this.entrypoint;
32
- log('start processing (only: %o)', only);
33
- this.entrypoint.beginProcessing();
34
- try {
35
- try {
36
- var _usingCtx = _usingCtx2();
37
- const abortSignal = _usingCtx.u(this.createAbortSignal());
38
- if (shouldSkipExplodeReexports(this)) {
39
- log('skip explodeReexports for pure barrel');
40
- } else {
41
- yield ['explodeReexports', this.entrypoint, undefined, abortSignal];
42
- }
43
- const result = yield* this.getNext('transform', this.entrypoint, undefined, abortSignal);
44
- this.entrypoint.assertNotSuperseded();
45
- this.entrypoint.setTransformResult(result);
46
- const supersededWith = this.entrypoint.applyDeferredSupersede();
47
- if (supersededWith) {
48
- log('processing finished, deferred only detected; schedule next attempt');
49
- yield* this.getNext('processEntrypoint', supersededWith, undefined, null);
50
- return;
51
- }
52
- log('entrypoint processing finished');
53
- } catch (_) {
54
- _usingCtx.e = _;
55
- } finally {
56
- _usingCtx.d();
57
- }
58
- } catch (e) {
59
- if (isAborted(e) && this.entrypoint.supersededWith) {
60
- log('processing aborted, schedule the next attempt');
61
- yield* this.getNext('processEntrypoint', this.entrypoint.supersededWith, undefined, null);
62
- return;
63
- }
64
- log(`Unhandled error: %O`, e);
65
- throw e;
66
- } finally {
67
- this.entrypoint.endProcessing();
68
- }
9
+ const { only, log } = this.entrypoint;
10
+ log("start processing (only: %o)", only);
11
+ if (this.entrypoint.transformed) {
12
+ log("already transformed, skip processing");
13
+ return;
14
+ }
15
+ if (this.entrypoint.isProcessing) {
16
+ log("already processing, skip duplicate request");
17
+ return;
18
+ }
19
+ this.entrypoint.beginProcessing();
20
+ try {
21
+ using abortSignal = this.createAbortSignal();
22
+ const result = yield* this.getNext("transform", this.entrypoint, undefined, abortSignal);
23
+ this.entrypoint.assertNotSuperseded();
24
+ this.entrypoint.setTransformResult(result);
25
+ const supersededWith = this.entrypoint.applyDeferredSupersede();
26
+ if (supersededWith) {
27
+ log("processing finished, deferred only detected; schedule next attempt");
28
+ yield* this.getNext("processEntrypoint", supersededWith, undefined, null);
29
+ return;
30
+ }
31
+ log("entrypoint processing finished");
32
+ } catch (e) {
33
+ if (isAborted(e) && this.entrypoint.supersededWith) {
34
+ log("processing aborted, schedule the next attempt");
35
+ yield* this.getNext("processEntrypoint", this.entrypoint.supersededWith, undefined, null);
36
+ return;
37
+ }
38
+ log(`Unhandled error: %O`, e);
39
+ throw e;
40
+ } finally {
41
+ this.entrypoint.endProcessing();
42
+ }
69
43
  }
70
- //# sourceMappingURL=processEntrypoint.js.map
44
+ export async function* processEntrypointAsync() {
45
+ const { only, log } = this.entrypoint;
46
+ log("start processing (only: %o)", only);
47
+ if (this.entrypoint.transformed) {
48
+ log("already transformed, skip processing");
49
+ return;
50
+ }
51
+ if (this.entrypoint.isProcessing) {
52
+ log("already processing, wait for existing request");
53
+ await this.entrypoint.waitForProcessing();
54
+ return;
55
+ }
56
+ this.entrypoint.beginProcessing();
57
+ try {
58
+ using abortSignal = this.createAbortSignal();
59
+ const result = yield* this.getNext("transform", this.entrypoint, undefined, abortSignal);
60
+ this.entrypoint.assertNotSuperseded();
61
+ this.entrypoint.setTransformResult(result);
62
+ const supersededWith = this.entrypoint.applyDeferredSupersede();
63
+ if (supersededWith) {
64
+ log("processing finished, deferred only detected; schedule next attempt");
65
+ yield* this.getNext("processEntrypoint", supersededWith, undefined, null);
66
+ return;
67
+ }
68
+ log("entrypoint processing finished");
69
+ } catch (e) {
70
+ if (isAborted(e) && this.entrypoint.supersededWith) {
71
+ log("processing aborted, schedule the next attempt");
72
+ yield* this.getNext("processEntrypoint", this.entrypoint.supersededWith, undefined, null);
73
+ return;
74
+ }
75
+ log(`Unhandled error: %O`, e);
76
+ throw e;
77
+ } finally {
78
+ this.entrypoint.endProcessing();
79
+ }
80
+ }
81
+ //# sourceMappingURL=processEntrypoint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processEntrypoint.js","names":["shaker","isAborted","analyzeBarrelFile","shouldSkipExplodeReexports","action","loadedAndParsed","only","entrypoint","length","evaluator","ast","barrelAnalysis","kind","complete","processEntrypoint","log","beginProcessing","_usingCtx","_usingCtx2","abortSignal","u","createAbortSignal","undefined","result","getNext","assertNotSuperseded","setTransformResult","supersededWith","applyDeferredSupersede","_","e","d","endProcessing"],"sources":["../../../src/transform/generators/processEntrypoint.ts"],"sourcesContent":["import { shaker } from '../../shaker';\nimport { isAborted } from '../actions/AbortError';\nimport { analyzeBarrelFile } from '../barrelManifest';\nimport type { IProcessEntrypointAction, SyncScenarioForAction } from '../types';\n\nconst shouldSkipExplodeReexports = (\n action: IProcessEntrypointAction\n): boolean => {\n const { loadedAndParsed, only } = action.entrypoint;\n if (only.length === 1 && only[0] === '__wywPreval') {\n return true;\n }\n\n if (loadedAndParsed.evaluator !== shaker || !loadedAndParsed.ast) {\n return false;\n }\n\n const barrelAnalysis = analyzeBarrelFile(loadedAndParsed.ast);\n return barrelAnalysis.kind === 'barrel' && barrelAnalysis.complete;\n};\n\n/**\n * The first stage of processing an entrypoint.\n * This stage is responsible for:\n * - scheduling the explodeReexports action\n * - scheduling the transform action\n * - rescheduling itself if the entrypoint is superseded\n */\nexport function* processEntrypoint(\n this: IProcessEntrypointAction\n): SyncScenarioForAction<IProcessEntrypointAction> {\n const { only, log } = this.entrypoint;\n log('start processing (only: %o)', only);\n\n this.entrypoint.beginProcessing();\n\n try {\n using abortSignal = this.createAbortSignal();\n\n if (shouldSkipExplodeReexports(this)) {\n log('skip explodeReexports for pure barrel');\n } else {\n yield ['explodeReexports', this.entrypoint, undefined, abortSignal];\n }\n const result = yield* this.getNext(\n 'transform',\n this.entrypoint,\n undefined,\n abortSignal\n );\n\n this.entrypoint.assertNotSuperseded();\n\n this.entrypoint.setTransformResult(result);\n\n const supersededWith = this.entrypoint.applyDeferredSupersede();\n if (supersededWith) {\n log('processing finished, deferred only detected; schedule next attempt');\n yield* this.getNext('processEntrypoint', supersededWith, undefined, null);\n return;\n }\n\n log('entrypoint processing finished');\n } catch (e) {\n if (isAborted(e) && this.entrypoint.supersededWith) {\n log('processing aborted, schedule the next attempt');\n yield* this.getNext(\n 'processEntrypoint',\n this.entrypoint.supersededWith,\n undefined,\n null\n );\n\n return;\n }\n\n log(`Unhandled error: %O`, e);\n throw e;\n } finally {\n this.entrypoint.endProcessing();\n }\n}\n"],"mappings":";AAAA,SAASA,MAAM,QAAQ,cAAc;AACrC,SAASC,SAAS,QAAQ,uBAAuB;AACjD,SAASC,iBAAiB,QAAQ,mBAAmB;AAGrD,MAAMC,0BAA0B,GAC9BC,MAAgC,IACpB;EACZ,MAAM;IAAEC,eAAe;IAAEC;EAAK,CAAC,GAAGF,MAAM,CAACG,UAAU;EACnD,IAAID,IAAI,CAACE,MAAM,KAAK,CAAC,IAAIF,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE;IAClD,OAAO,IAAI;EACb;EAEA,IAAID,eAAe,CAACI,SAAS,KAAKT,MAAM,IAAI,CAACK,eAAe,CAACK,GAAG,EAAE;IAChE,OAAO,KAAK;EACd;EAEA,MAAMC,cAAc,GAAGT,iBAAiB,CAACG,eAAe,CAACK,GAAG,CAAC;EAC7D,OAAOC,cAAc,CAACC,IAAI,KAAK,QAAQ,IAAID,cAAc,CAACE,QAAQ;AACpE,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,UAAUC,iBAAiBA,CAAA,EAEiB;EACjD,MAAM;IAAER,IAAI;IAAES;EAAI,CAAC,GAAG,IAAI,CAACR,UAAU;EACrCQ,GAAG,CAAC,6BAA6B,EAAET,IAAI,CAAC;EAExC,IAAI,CAACC,UAAU,CAACS,eAAe,CAAC,CAAC;EAEjC;IAAI;MAAA,IAAAC,SAAA,GAAAC,UAAA;MACF,MAAMC,WAAW,GAAAF,SAAA,CAAAG,CAAA,CAAG,IAAI,CAACC,iBAAiB,CAAC,CAAC;MAE5C,IAAIlB,0BAA0B,CAAC,IAAI,CAAC,EAAE;QACpCY,GAAG,CAAC,uCAAuC,CAAC;MAC9C,CAAC,MAAM;QACL,MAAM,CAAC,kBAAkB,EAAE,IAAI,CAACR,UAAU,EAAEe,SAAS,EAAEH,WAAW,CAAC;MACrE;MACA,MAAMI,MAAM,GAAG,OAAO,IAAI,CAACC,OAAO,CAChC,WAAW,EACX,IAAI,CAACjB,UAAU,EACfe,SAAS,EACTH,WACF,CAAC;MAED,IAAI,CAACZ,UAAU,CAACkB,mBAAmB,CAAC,CAAC;MAErC,IAAI,CAAClB,UAAU,CAACmB,kBAAkB,CAACH,MAAM,CAAC;MAE1C,MAAMI,cAAc,GAAG,IAAI,CAACpB,UAAU,CAACqB,sBAAsB,CAAC,CAAC;MAC/D,IAAID,cAAc,EAAE;QAClBZ,GAAG,CAAC,oEAAoE,CAAC;QACzE,OAAO,IAAI,CAACS,OAAO,CAAC,mBAAmB,EAAEG,cAAc,EAAEL,SAAS,EAAE,IAAI,CAAC;QACzE;MACF;MAEAP,GAAG,CAAC,gCAAgC,CAAC;IAAC,SAAAc,CAAA;MAAAZ,SAAA,CAAAa,CAAA,GAAAD,CAAA;IAAA;MAAAZ,SAAA,CAAAc,CAAA;IAAA;EACvC,EAAC,OAAOD,CAAC,EAAE;IACV,IAAI7B,SAAS,CAAC6B,CAAC,CAAC,IAAI,IAAI,CAACvB,UAAU,CAACoB,cAAc,EAAE;MAClDZ,GAAG,CAAC,+CAA+C,CAAC;MACpD,OAAO,IAAI,CAACS,OAAO,CACjB,mBAAmB,EACnB,IAAI,CAACjB,UAAU,CAACoB,cAAc,EAC9BL,SAAS,EACT,IACF,CAAC;MAED;IACF;IAEAP,GAAG,CAAC,qBAAqB,EAAEe,CAAC,CAAC;IAC7B,MAAMA,CAAC;EACT,CAAC,SAAS;IACR,IAAI,CAACvB,UAAU,CAACyB,aAAa,CAAC,CAAC;EACjC;AACF","ignoreList":[]}
1
+ {"mappings":"AAAA,SAAS,iBAAiB;;;;;;;AAa1B,OAAO,UAAU,oBAEkC;CACjD,MAAM,EAAE,MAAM,QAAQ,KAAK;AAC3B,KAAI,+BAA+B,KAAK;AAExC,KAAI,KAAK,WAAW,aAAa;AAC/B,MAAI,uCAAuC;AAC3C;;AAGF,KAAI,KAAK,WAAW,cAAc;AAChC,MAAI,6CAA6C;AACjD;;AAGF,MAAK,WAAW,iBAAiB;AAEjC,KAAI;EACF,MAAM,cAAc,KAAK,mBAAmB;EAE5C,MAAM,SAAS,OAAO,KAAK,QACzB,aACA,KAAK,YACL,WACA,YACD;AAED,OAAK,WAAW,qBAAqB;AAErC,OAAK,WAAW,mBAAmB,OAAO;EAE1C,MAAM,iBAAiB,KAAK,WAAW,wBAAwB;AAC/D,MAAI,gBAAgB;AAClB,OAAI,qEAAqE;AACzE,UAAO,KAAK,QAAQ,qBAAqB,gBAAgB,WAAW,KAAK;AACzE;;AAGF,MAAI,iCAAiC;UAC9B,GAAG;AACV,MAAI,UAAU,EAAE,IAAI,KAAK,WAAW,gBAAgB;AAClD,OAAI,gDAAgD;AACpD,UAAO,KAAK,QACV,qBACA,KAAK,WAAW,gBAChB,WACA,KACD;AAED;;AAGF,MAAI,uBAAuB,EAAE;AAC7B,QAAM;WACE;AACR,OAAK,WAAW,eAAe;;;AAInC,OAAO,gBAAgB,yBAE6B;CAClD,MAAM,EAAE,MAAM,QAAQ,KAAK;AAC3B,KAAI,+BAA+B,KAAK;AAExC,KAAI,KAAK,WAAW,aAAa;AAC/B,MAAI,uCAAuC;AAC3C;;AAGF,KAAI,KAAK,WAAW,cAAc;AAChC,MAAI,gDAAgD;AACpD,QAAM,KAAK,WAAW,mBAAmB;AACzC;;AAGF,MAAK,WAAW,iBAAiB;AAEjC,KAAI;EACF,MAAM,cAAc,KAAK,mBAAmB;EAE5C,MAAM,SAAS,OAAO,KAAK,QACzB,aACA,KAAK,YACL,WACA,YACD;AAED,OAAK,WAAW,qBAAqB;AAErC,OAAK,WAAW,mBAAmB,OAAO;EAE1C,MAAM,iBAAiB,KAAK,WAAW,wBAAwB;AAC/D,MAAI,gBAAgB;AAClB,OAAI,qEAAqE;AACzE,UAAO,KAAK,QAAQ,qBAAqB,gBAAgB,WAAW,KAAK;AACzE;;AAGF,MAAI,iCAAiC;UAC9B,GAAG;AACV,MAAI,UAAU,EAAE,IAAI,KAAK,WAAW,gBAAgB;AAClD,OAAI,gDAAgD;AACpD,UAAO,KAAK,QACV,qBACA,KAAK,WAAW,gBAChB,WACA,KACD;AAED;;AAGF,MAAI,uBAAuB,EAAE;AAC7B,QAAM;WACE;AACR,OAAK,WAAW,eAAe","names":[],"sources":["../../../src/transform/generators/processEntrypoint.ts"],"version":3,"sourcesContent":["import { isAborted } from '../actions/AbortError';\nimport type {\n AsyncScenarioForAction,\n IProcessEntrypointAction,\n SyncScenarioForAction,\n} from '../types';\n\n/**\n * The first stage of processing an entrypoint.\n * This stage is responsible for:\n * - scheduling the transform action\n * - rescheduling itself if the entrypoint is superseded\n */\nexport function* processEntrypoint(\n this: IProcessEntrypointAction\n): SyncScenarioForAction<IProcessEntrypointAction> {\n const { only, log } = this.entrypoint;\n log('start processing (only: %o)', only);\n\n if (this.entrypoint.transformed) {\n log('already transformed, skip processing');\n return;\n }\n\n if (this.entrypoint.isProcessing) {\n log('already processing, skip duplicate request');\n return;\n }\n\n this.entrypoint.beginProcessing();\n\n try {\n using abortSignal = this.createAbortSignal();\n\n const result = yield* this.getNext(\n 'transform',\n this.entrypoint,\n undefined,\n abortSignal\n );\n\n this.entrypoint.assertNotSuperseded();\n\n this.entrypoint.setTransformResult(result);\n\n const supersededWith = this.entrypoint.applyDeferredSupersede();\n if (supersededWith) {\n log('processing finished, deferred only detected; schedule next attempt');\n yield* this.getNext('processEntrypoint', supersededWith, undefined, null);\n return;\n }\n\n log('entrypoint processing finished');\n } catch (e) {\n if (isAborted(e) && this.entrypoint.supersededWith) {\n log('processing aborted, schedule the next attempt');\n yield* this.getNext(\n 'processEntrypoint',\n this.entrypoint.supersededWith,\n undefined,\n null\n );\n\n return;\n }\n\n log(`Unhandled error: %O`, e);\n throw e;\n } finally {\n this.entrypoint.endProcessing();\n }\n}\n\nexport async function* processEntrypointAsync(\n this: IProcessEntrypointAction\n): AsyncScenarioForAction<IProcessEntrypointAction> {\n const { only, log } = this.entrypoint;\n log('start processing (only: %o)', only);\n\n if (this.entrypoint.transformed) {\n log('already transformed, skip processing');\n return;\n }\n\n if (this.entrypoint.isProcessing) {\n log('already processing, wait for existing request');\n await this.entrypoint.waitForProcessing();\n return;\n }\n\n this.entrypoint.beginProcessing();\n\n try {\n using abortSignal = this.createAbortSignal();\n\n const result = yield* this.getNext(\n 'transform',\n this.entrypoint,\n undefined,\n abortSignal\n );\n\n this.entrypoint.assertNotSuperseded();\n\n this.entrypoint.setTransformResult(result);\n\n const supersededWith = this.entrypoint.applyDeferredSupersede();\n if (supersededWith) {\n log('processing finished, deferred only detected; schedule next attempt');\n yield* this.getNext('processEntrypoint', supersededWith, undefined, null);\n return;\n }\n\n log('entrypoint processing finished');\n } catch (e) {\n if (isAborted(e) && this.entrypoint.supersededWith) {\n log('processing aborted, schedule the next attempt');\n yield* this.getNext(\n 'processEntrypoint',\n this.entrypoint.supersededWith,\n undefined,\n null\n );\n\n return;\n }\n\n log(`Unhandled error: %O`, e);\n throw e;\n } finally {\n this.entrypoint.endProcessing();\n }\n}\n"],"file":"processEntrypoint.js"}
@@ -1,76 +1,111 @@
1
- /* eslint-disable no-continue */
2
-
3
- import { toImportKey } from '../../utils/importOverrides';
1
+ import { hasCachedWywPrevalExport } from "../../utils/hasCachedWywPrevalExport.js";
2
+ import { toImportKey } from "../../utils/importOverrides.js";
3
+ import { stripQueryAndHash } from "../../utils/parseRequest.js";
4
+ import { isSuperSet, mergeOnly } from "../Entrypoint.helpers.js";
4
5
  const warnedSlowImportsByServices = new WeakMap();
5
6
  function emitWarning(services, message) {
6
- if (services.emitWarning) {
7
- services.emitWarning(message);
8
- return;
9
- }
10
-
11
- // eslint-disable-next-line no-console
12
- console.warn(message);
7
+ if (services.emitWarning) {
8
+ services.emitWarning(message);
9
+ return;
10
+ }
11
+ // eslint-disable-next-line no-console
12
+ console.warn(message);
13
13
  }
14
14
  function getWarnedSlowImports(services) {
15
- const cached = warnedSlowImportsByServices.get(services);
16
- if (cached) return cached;
17
- const created = new Set();
18
- warnedSlowImportsByServices.set(services, created);
19
- return created;
15
+ const cached = warnedSlowImportsByServices.get(services);
16
+ if (cached) return cached;
17
+ const created = new Set();
18
+ warnedSlowImportsByServices.set(services, created);
19
+ return created;
20
20
  }
21
21
  function isWarningEnabled(value) {
22
- return Boolean(value) && value !== '0' && value !== 'false';
22
+ return Boolean(value) && value !== "0" && value !== "false";
23
+ }
24
+ function hasLoop(name, parent, processed = []) {
25
+ if (parent.name === name || processed.includes(parent.name)) {
26
+ return true;
27
+ }
28
+ for (const nextParent of parent.parents) {
29
+ if (hasLoop(name, nextParent, [...processed, parent.name])) {
30
+ return true;
31
+ }
32
+ }
33
+ return false;
23
34
  }
24
-
25
- /**
26
- * Creates new entrypoints and emits processEntrypoint for each resolved import
27
- */
28
35
  export function* processImports() {
29
- const slowImportWarningsEnabled = isWarningEnabled(process.env.WYW_WARN_SLOW_IMPORTS);
30
- const slowImportThresholdMs = (() => {
31
- const raw = process.env.WYW_WARN_SLOW_IMPORTS_MS;
32
- if (!raw) return 50;
33
- const parsed = Number(raw);
34
- if (!Number.isFinite(parsed)) return 50;
35
- return parsed;
36
- })();
37
- const warnedSlowImports = slowImportWarningsEnabled ? getWarnedSlowImports(this.services) : null;
38
- const {
39
- root
40
- } = this.services.options;
41
- for (const dependency of this.data.resolved) {
42
- const {
43
- resolved,
44
- only
45
- } = dependency;
46
- if (!resolved) {
47
- continue;
48
- }
49
- this.entrypoint.addDependency(dependency);
50
- const nextEntrypoint = this.entrypoint.createChild(resolved, only);
51
- if (nextEntrypoint === 'loop' || nextEntrypoint.ignored) {
52
- continue;
53
- }
54
- const startedAt = slowImportWarningsEnabled ? performance.now() : 0;
55
- yield* this.getNext('processEntrypoint', nextEntrypoint, undefined, null);
56
- if (slowImportWarningsEnabled && warnedSlowImports && slowImportThresholdMs > 0) {
57
- const durationMs = performance.now() - startedAt;
58
- if (durationMs >= slowImportThresholdMs) {
59
- const {
60
- key: importKey
61
- } = toImportKey({
62
- source: dependency.source,
63
- resolved,
64
- root
65
- });
66
- const dedupeKey = `${this.entrypoint.name}::${importKey}`;
67
- if (!warnedSlowImports.has(dedupeKey)) {
68
- warnedSlowImports.add(dedupeKey);
69
- const warning = [`[wyw-in-js] Slow import during prepare stage`, ``, `file: ${this.entrypoint.name}`, `import: ${dependency.source}`, `resolved: ${resolved}`, `duration: ${durationMs.toFixed(1)}ms`, ``, `tip: if this import is runtime-only or heavy, mock it during evaluation via importOverrides:`, ` importOverrides: {`, ` '${importKey}': { mock: './path/to/mock' },`, ` }`, ``, `note: importOverrides affects only build-time evaluation (it does not change your bundler runtime behavior)`, ``, `note: configure threshold with WYW_WARN_SLOW_IMPORTS_MS (current: ${slowImportThresholdMs}ms)`].join('\n');
70
- emitWarning(this.services, warning);
71
- }
72
- }
73
- }
74
- }
36
+ const slowImportWarningsEnabled = isWarningEnabled(process.env.WYW_WARN_SLOW_IMPORTS);
37
+ const slowImportThresholdMs = (() => {
38
+ const raw = process.env.WYW_WARN_SLOW_IMPORTS_MS;
39
+ if (!raw) return 50;
40
+ const parsed = Number(raw);
41
+ if (!Number.isFinite(parsed)) return 50;
42
+ return parsed;
43
+ })();
44
+ const warnedSlowImports = slowImportWarningsEnabled ? getWarnedSlowImports(this.services) : null;
45
+ const { root } = this.services.options;
46
+ const prepareStageRequiresEvaluatedDeps = this.entrypoint.only.includes("__wywPreval");
47
+ const skippedParentDependencySources = new Set(this.data.skipParentDependencyTracking ?? []);
48
+ for (const dependency of this.data.resolved) {
49
+ const { resolved, only } = dependency;
50
+ if (!resolved) {
51
+ continue;
52
+ }
53
+ const cached = this.services.cache.get("entrypoints", resolved);
54
+ const shouldRequireWywPreval = prepareStageRequiresEvaluatedDeps && (!cached?.evaluated || cached.ignored || hasCachedWywPrevalExport(this.services, resolved, cached));
55
+ const requiredOnly = shouldRequireWywPreval ? mergeOnly(only, ["__wywPreval"]) : only;
56
+ if (!skippedParentDependencySources.has(dependency.source)) {
57
+ this.entrypoint.addDependency({
58
+ ...dependency,
59
+ only: requiredOnly
60
+ });
61
+ }
62
+ const canReuseTransformedDependency = !prepareStageRequiresEvaluatedDeps && Boolean(cached && !cached.evaluated && cached.transformed);
63
+ if (cached && (cached.evaluated || canReuseTransformedDependency) && isSuperSet(cached.only, requiredOnly) && !hasLoop(resolved, this.entrypoint) && !this.services.cache.checkFreshness(resolved, stripQueryAndHash(resolved))) {
64
+ if (Array.isArray(cached.parents)) {
65
+ if (!cached.parents.map((parent) => parent.name).includes(this.entrypoint.name)) {
66
+ cached.parents.push(this.entrypoint);
67
+ }
68
+ }
69
+ continue;
70
+ }
71
+ const nextEntrypoint = this.entrypoint.createChild(resolved, requiredOnly);
72
+ if (nextEntrypoint === "loop" || nextEntrypoint.ignored) {
73
+ continue;
74
+ }
75
+ const startedAt = slowImportWarningsEnabled ? performance.now() : 0;
76
+ yield* this.getNext("processEntrypoint", nextEntrypoint, undefined, null);
77
+ if (slowImportWarningsEnabled && warnedSlowImports && slowImportThresholdMs > 0) {
78
+ const durationMs = performance.now() - startedAt;
79
+ if (durationMs >= slowImportThresholdMs) {
80
+ const { key: importKey } = toImportKey({
81
+ source: dependency.source,
82
+ resolved,
83
+ root
84
+ });
85
+ const dedupeKey = `${this.entrypoint.name}::${importKey}`;
86
+ if (!warnedSlowImports.has(dedupeKey)) {
87
+ warnedSlowImports.add(dedupeKey);
88
+ const warning = [
89
+ "[wyw-in-js] Slow import during prepare stage",
90
+ "",
91
+ `file: ${this.entrypoint.name}`,
92
+ `import: ${dependency.source}`,
93
+ `resolved: ${resolved}`,
94
+ `duration: ${durationMs.toFixed(1)}ms`,
95
+ "",
96
+ "tip: if this import is runtime-only or heavy, mock it during evaluation via importOverrides:",
97
+ " importOverrides: {",
98
+ ` '${importKey}': { mock: './path/to/mock' },`,
99
+ " }",
100
+ "",
101
+ "note: importOverrides affects only build-time evaluation (it does not change your bundler runtime behavior)",
102
+ "",
103
+ `note: configure threshold with WYW_WARN_SLOW_IMPORTS_MS (current: ${slowImportThresholdMs}ms)`
104
+ ].join("\n");
105
+ emitWarning(this.services, warning);
106
+ }
107
+ }
108
+ }
109
+ }
75
110
  }
76
- //# sourceMappingURL=processImports.js.map
111
+ //# sourceMappingURL=processImports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processImports.js","names":["toImportKey","warnedSlowImportsByServices","WeakMap","emitWarning","services","message","console","warn","getWarnedSlowImports","cached","get","created","Set","set","isWarningEnabled","value","Boolean","processImports","slowImportWarningsEnabled","process","env","WYW_WARN_SLOW_IMPORTS","slowImportThresholdMs","raw","WYW_WARN_SLOW_IMPORTS_MS","parsed","Number","isFinite","warnedSlowImports","root","options","dependency","data","resolved","only","entrypoint","addDependency","nextEntrypoint","createChild","ignored","startedAt","performance","now","getNext","undefined","durationMs","key","importKey","source","dedupeKey","name","has","add","warning","toFixed","join"],"sources":["../../../src/transform/generators/processImports.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport type {\n IProcessImportsAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nimport { toImportKey } from '../../utils/importOverrides';\n\nconst warnedSlowImportsByServices = new WeakMap<Services, Set<string>>();\n\nfunction emitWarning(services: Services, message: string) {\n if (services.emitWarning) {\n services.emitWarning(message);\n return;\n }\n\n // eslint-disable-next-line no-console\n console.warn(message);\n}\n\nfunction getWarnedSlowImports(services: Services): Set<string> {\n const cached = warnedSlowImportsByServices.get(services);\n if (cached) return cached;\n\n const created = new Set<string>();\n warnedSlowImportsByServices.set(services, created);\n return created;\n}\n\nfunction isWarningEnabled(value: string | undefined): boolean {\n return Boolean(value) && value !== '0' && value !== 'false';\n}\n\n/**\n * Creates new entrypoints and emits processEntrypoint for each resolved import\n */\nexport function* processImports(\n this: IProcessImportsAction\n): SyncScenarioForAction<IProcessImportsAction> {\n const slowImportWarningsEnabled = isWarningEnabled(\n process.env.WYW_WARN_SLOW_IMPORTS\n );\n const slowImportThresholdMs = (() => {\n const raw = process.env.WYW_WARN_SLOW_IMPORTS_MS;\n if (!raw) return 50;\n\n const parsed = Number(raw);\n if (!Number.isFinite(parsed)) return 50;\n return parsed;\n })();\n\n const warnedSlowImports = slowImportWarningsEnabled\n ? getWarnedSlowImports(this.services)\n : null;\n\n const { root } = this.services.options;\n\n for (const dependency of this.data.resolved) {\n const { resolved, only } = dependency;\n if (!resolved) {\n continue;\n }\n\n this.entrypoint.addDependency(dependency);\n\n const nextEntrypoint = this.entrypoint.createChild(resolved, only);\n if (nextEntrypoint === 'loop' || nextEntrypoint.ignored) {\n continue;\n }\n\n const startedAt = slowImportWarningsEnabled ? performance.now() : 0;\n yield* this.getNext('processEntrypoint', nextEntrypoint, undefined, null);\n\n if (\n slowImportWarningsEnabled &&\n warnedSlowImports &&\n slowImportThresholdMs > 0\n ) {\n const durationMs = performance.now() - startedAt;\n if (durationMs >= slowImportThresholdMs) {\n const { key: importKey } = toImportKey({\n source: dependency.source,\n resolved,\n root,\n });\n const dedupeKey = `${this.entrypoint.name}::${importKey}`;\n\n if (!warnedSlowImports.has(dedupeKey)) {\n warnedSlowImports.add(dedupeKey);\n\n const warning = [\n `[wyw-in-js] Slow import during prepare stage`,\n ``,\n `file: ${this.entrypoint.name}`,\n `import: ${dependency.source}`,\n `resolved: ${resolved}`,\n `duration: ${durationMs.toFixed(1)}ms`,\n ``,\n `tip: if this import is runtime-only or heavy, mock it during evaluation via importOverrides:`,\n ` importOverrides: {`,\n ` '${importKey}': { mock: './path/to/mock' },`,\n ` }`,\n ``,\n `note: importOverrides affects only build-time evaluation (it does not change your bundler runtime behavior)`,\n ``,\n `note: configure threshold with WYW_WARN_SLOW_IMPORTS_MS (current: ${slowImportThresholdMs}ms)`,\n ].join('\\n');\n\n emitWarning(this.services, warning);\n }\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"mappings":"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","names":[],"sources":["../../../src/transform/generators/processImports.ts"],"version":3,"sourcesContent":["/* eslint-disable no-continue */\n\nimport type {\n IProcessImportsAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nimport {\n hasCachedWywPrevalExport,\n type CachedEntrypointLike,\n} from '../../utils/hasCachedWywPrevalExport';\nimport { toImportKey } from '../../utils/importOverrides';\nimport { stripQueryAndHash } from '../../utils/parseRequest';\nimport { isSuperSet, mergeOnly } from '../Entrypoint.helpers';\n\ntype ProcessImportsCachedEntrypoint = CachedEntrypointLike & {\n only: string[];\n parents?: Array<{ name: string }>;\n transformed?: boolean;\n};\n\nconst warnedSlowImportsByServices = new WeakMap<Services, Set<string>>();\n\nfunction emitWarning(services: Services, message: string) {\n if (services.emitWarning) {\n services.emitWarning(message);\n return;\n }\n\n // eslint-disable-next-line no-console\n console.warn(message);\n}\n\nfunction getWarnedSlowImports(services: Services): Set<string> {\n const cached = warnedSlowImportsByServices.get(services);\n if (cached) return cached;\n\n const created = new Set<string>();\n warnedSlowImportsByServices.set(services, created);\n return created;\n}\n\nfunction isWarningEnabled(value: string | undefined): boolean {\n return Boolean(value) && value !== '0' && value !== 'false';\n}\n\nfunction hasLoop(\n name: string,\n parent: {\n name: string;\n parents: { name: string; parents: { name: string }[] }[];\n },\n processed: string[] = []\n): boolean {\n if (parent.name === name || processed.includes(parent.name)) {\n return true;\n }\n\n for (const nextParent of parent.parents) {\n if (\n hasLoop(name, nextParent as typeof parent, [...processed, parent.name])\n ) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function* processImports(\n this: IProcessImportsAction\n): SyncScenarioForAction<IProcessImportsAction> {\n const slowImportWarningsEnabled = isWarningEnabled(\n process.env.WYW_WARN_SLOW_IMPORTS\n );\n const slowImportThresholdMs = (() => {\n const raw = process.env.WYW_WARN_SLOW_IMPORTS_MS;\n if (!raw) return 50;\n\n const parsed = Number(raw);\n if (!Number.isFinite(parsed)) return 50;\n return parsed;\n })();\n\n const warnedSlowImports = slowImportWarningsEnabled\n ? getWarnedSlowImports(this.services)\n : null;\n\n const { root } = this.services.options;\n const prepareStageRequiresEvaluatedDeps =\n this.entrypoint.only.includes('__wywPreval');\n const skippedParentDependencySources = new Set(\n this.data.skipParentDependencyTracking ?? []\n );\n\n for (const dependency of this.data.resolved) {\n const { resolved, only } = dependency;\n if (!resolved) {\n continue;\n }\n\n const cached = this.services.cache.get('entrypoints', resolved) as\n | ProcessImportsCachedEntrypoint\n | undefined;\n const shouldRequireWywPreval =\n prepareStageRequiresEvaluatedDeps &&\n (!cached?.evaluated ||\n cached.ignored ||\n hasCachedWywPrevalExport(this.services, resolved, cached));\n const requiredOnly = shouldRequireWywPreval\n ? mergeOnly(only, ['__wywPreval'])\n : only;\n\n if (!skippedParentDependencySources.has(dependency.source)) {\n this.entrypoint.addDependency({\n ...dependency,\n only: requiredOnly,\n });\n }\n\n const canReuseTransformedDependency =\n !prepareStageRequiresEvaluatedDeps &&\n Boolean(cached && !cached.evaluated && cached.transformed);\n if (\n cached &&\n (cached.evaluated || canReuseTransformedDependency) &&\n isSuperSet(cached.only, requiredOnly) &&\n !hasLoop(resolved, this.entrypoint) &&\n !this.services.cache.checkFreshness(resolved, stripQueryAndHash(resolved))\n ) {\n if (Array.isArray(cached.parents)) {\n if (\n !cached.parents\n .map((parent) => parent.name)\n .includes(this.entrypoint.name)\n ) {\n cached.parents.push(this.entrypoint);\n }\n }\n\n continue;\n }\n\n const nextEntrypoint = this.entrypoint.createChild(resolved, requiredOnly);\n if (nextEntrypoint === 'loop' || nextEntrypoint.ignored) {\n continue;\n }\n\n const startedAt = slowImportWarningsEnabled ? performance.now() : 0;\n yield* this.getNext('processEntrypoint', nextEntrypoint, undefined, null);\n\n if (\n slowImportWarningsEnabled &&\n warnedSlowImports &&\n slowImportThresholdMs > 0\n ) {\n const durationMs = performance.now() - startedAt;\n if (durationMs >= slowImportThresholdMs) {\n const { key: importKey } = toImportKey({\n source: dependency.source,\n resolved,\n root,\n });\n const dedupeKey = `${this.entrypoint.name}::${importKey}`;\n\n if (!warnedSlowImports.has(dedupeKey)) {\n warnedSlowImports.add(dedupeKey);\n\n const warning = [\n '[wyw-in-js] Slow import during prepare stage',\n '',\n `file: ${this.entrypoint.name}`,\n `import: ${dependency.source}`,\n `resolved: ${resolved}`,\n `duration: ${durationMs.toFixed(1)}ms`,\n '',\n 'tip: if this import is runtime-only or heavy, mock it during evaluation via importOverrides:',\n ' importOverrides: {',\n ` '${importKey}': { mock: './path/to/mock' },`,\n ' }',\n '',\n 'note: importOverrides affects only build-time evaluation (it does not change your bundler runtime behavior)',\n '',\n `note: configure threshold with WYW_WARN_SLOW_IMPORTS_MS (current: ${slowImportThresholdMs}ms)`,\n ].join('\\n');\n\n emitWarning(this.services, warning);\n }\n }\n }\n }\n}\n"],"file":"processImports.js"}