@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 +0,0 @@
1
- {"version":3,"file":"unwrapExpression.js","names":["t","unwrapOnce","node","isTSAsExpression","expression","isTSTypeAssertion","isTSNonNullExpression","isParenthesizedExpression","unwrapExpression","current","next"],"sources":["../../src/utils/unwrapExpression.ts"],"sourcesContent":["import type { Expression } from '@babel/types';\nimport * as t from '@babel/types';\n\nconst unwrapOnce = (node: Expression): Expression => {\n if (t.isTSAsExpression(node)) return node.expression;\n if (t.isTSTypeAssertion(node)) return node.expression;\n if (t.isTSNonNullExpression(node)) return node.expression;\n if (t.isParenthesizedExpression(node)) return node.expression;\n return node;\n};\n\nexport function unwrapExpression(node: Expression): Expression {\n let current = node;\n let next = unwrapOnce(current);\n\n while (next !== current) {\n current = next;\n next = unwrapOnce(current);\n }\n\n return current;\n}\n"],"mappings":"AACA,OAAO,KAAKA,CAAC,MAAM,cAAc;AAEjC,MAAMC,UAAU,GAAIC,IAAgB,IAAiB;EACnD,IAAIF,CAAC,CAACG,gBAAgB,CAACD,IAAI,CAAC,EAAE,OAAOA,IAAI,CAACE,UAAU;EACpD,IAAIJ,CAAC,CAACK,iBAAiB,CAACH,IAAI,CAAC,EAAE,OAAOA,IAAI,CAACE,UAAU;EACrD,IAAIJ,CAAC,CAACM,qBAAqB,CAACJ,IAAI,CAAC,EAAE,OAAOA,IAAI,CAACE,UAAU;EACzD,IAAIJ,CAAC,CAACO,yBAAyB,CAACL,IAAI,CAAC,EAAE,OAAOA,IAAI,CAACE,UAAU;EAC7D,OAAOF,IAAI;AACb,CAAC;AAED,OAAO,SAASM,gBAAgBA,CAACN,IAAgB,EAAc;EAC7D,IAAIO,OAAO,GAAGP,IAAI;EAClB,IAAIQ,IAAI,GAAGT,UAAU,CAACQ,OAAO,CAAC;EAE9B,OAAOC,IAAI,KAAKD,OAAO,EAAE;IACvBA,OAAO,GAAGC,IAAI;IACdA,IAAI,GAAGT,UAAU,CAACQ,OAAO,CAAC;EAC5B;EAEA,OAAOA,OAAO;AAChB","ignoreList":[]}
@@ -1,14 +0,0 @@
1
- /**
2
- * If expression is a sequence like `(a, b, c)`, returns `c`
3
- * otherwise returns an original expression
4
- * @param path
5
- */
6
- export function unwrapSequence(path) {
7
- if (path.isSequenceExpression()) {
8
- const [...expressions] = path.get('expressions');
9
- const lastExpression = expressions.pop();
10
- return lastExpression ? unwrapSequence(lastExpression) : undefined;
11
- }
12
- return path;
13
- }
14
- //# sourceMappingURL=unwrapSequence.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unwrapSequence.js","names":["unwrapSequence","path","isSequenceExpression","expressions","get","lastExpression","pop","undefined"],"sources":["../../src/utils/unwrapSequence.ts"],"sourcesContent":["import type { NodePath } from '@babel/traverse';\nimport type { Expression, V8IntrinsicIdentifier } from '@babel/types';\n\n/**\n * If expression is a sequence like `(a, b, c)`, returns `c`\n * otherwise returns an original expression\n * @param path\n */\nexport function unwrapSequence(\n path: NodePath<Expression | V8IntrinsicIdentifier>\n): NodePath<Expression | V8IntrinsicIdentifier> | undefined {\n if (path.isSequenceExpression()) {\n const [...expressions] = path.get('expressions');\n const lastExpression = expressions.pop();\n return lastExpression ? unwrapSequence(lastExpression) : undefined;\n }\n\n return path;\n}\n"],"mappings":"AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,cAAcA,CAC5BC,IAAkD,EACQ;EAC1D,IAAIA,IAAI,CAACC,oBAAoB,CAAC,CAAC,EAAE;IAC/B,MAAM,CAAC,GAAGC,WAAW,CAAC,GAAGF,IAAI,CAACG,GAAG,CAAC,aAAa,CAAC;IAChD,MAAMC,cAAc,GAAGF,WAAW,CAACG,GAAG,CAAC,CAAC;IACxC,OAAOD,cAAc,GAAGL,cAAc,CAACK,cAAc,CAAC,GAAGE,SAAS;EACpE;EAEA,OAAON,IAAI;AACb","ignoreList":[]}
@@ -1,59 +0,0 @@
1
- import { getSource } from './getSource';
2
- import { isSerializable } from './isSerializable';
3
- export function valueToLiteral(value, ex) {
4
- if (value === undefined) {
5
- return {
6
- type: 'Identifier',
7
- name: 'undefined'
8
- };
9
- }
10
- if (isSerializable(value)) {
11
- if (value === null) {
12
- return {
13
- type: 'NullLiteral'
14
- };
15
- }
16
- if (typeof value === 'string') {
17
- return {
18
- type: 'StringLiteral',
19
- value
20
- };
21
- }
22
- if (typeof value === 'number') {
23
- return {
24
- type: 'NumericLiteral',
25
- value
26
- };
27
- }
28
- if (typeof value === 'boolean') {
29
- return {
30
- type: 'BooleanLiteral',
31
- value
32
- };
33
- }
34
- if (Array.isArray(value)) {
35
- return {
36
- type: 'ArrayExpression',
37
- elements: value.map(v => valueToLiteral(v, ex))
38
- };
39
- }
40
- return {
41
- type: 'ObjectExpression',
42
- properties: Object.entries(value).map(([key, v]) => ({
43
- type: 'ObjectProperty',
44
- key: key.match(/^[a-zA-Z]\w*$/) ? {
45
- type: 'Identifier',
46
- name: key
47
- } : {
48
- type: 'StringLiteral',
49
- value: key
50
- },
51
- value: valueToLiteral(v, ex),
52
- computed: false,
53
- shorthand: false
54
- }))
55
- };
56
- }
57
- throw ex.buildCodeFrameError(`The expression evaluated to '${value}', which is probably a mistake. If you want it to be inserted into CSS, explicitly cast or transform the value to a string, e.g. - 'String(${getSource(ex)})'.`);
58
- }
59
- //# sourceMappingURL=valueToLiteral.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"valueToLiteral.js","names":["getSource","isSerializable","valueToLiteral","value","ex","undefined","type","name","Array","isArray","elements","map","v","properties","Object","entries","key","match","computed","shorthand","buildCodeFrameError"],"sources":["../../src/utils/valueToLiteral.ts"],"sourcesContent":["import type { NodePath } from '@babel/traverse';\nimport type { Expression } from '@babel/types';\n\nimport { getSource } from './getSource';\nimport { isSerializable } from './isSerializable';\n\nexport function valueToLiteral(value: unknown, ex: NodePath): Expression {\n if (value === undefined) {\n return {\n type: 'Identifier',\n name: 'undefined',\n };\n }\n\n if (isSerializable(value)) {\n if (value === null) {\n return {\n type: 'NullLiteral',\n };\n }\n\n if (typeof value === 'string') {\n return {\n type: 'StringLiteral',\n value,\n };\n }\n\n if (typeof value === 'number') {\n return {\n type: 'NumericLiteral',\n value,\n };\n }\n\n if (typeof value === 'boolean') {\n return {\n type: 'BooleanLiteral',\n value,\n };\n }\n\n if (Array.isArray(value)) {\n return {\n type: 'ArrayExpression',\n elements: value.map((v) => valueToLiteral(v, ex)),\n };\n }\n\n return {\n type: 'ObjectExpression',\n properties: Object.entries(value).map(([key, v]) => ({\n type: 'ObjectProperty',\n key: key.match(/^[a-zA-Z]\\w*$/)\n ? {\n type: 'Identifier',\n name: key,\n }\n : {\n type: 'StringLiteral',\n value: key,\n },\n value: valueToLiteral(v, ex),\n computed: false,\n shorthand: false,\n })),\n };\n }\n\n throw ex.buildCodeFrameError(\n `The expression evaluated to '${value}', which is probably a mistake. If you want it to be inserted into CSS, explicitly cast or transform the value to a string, e.g. - 'String(${getSource(\n ex\n )})'.`\n );\n}\n"],"mappings":"AAGA,SAASA,SAAS,QAAQ,aAAa;AACvC,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,OAAO,SAASC,cAAcA,CAACC,KAAc,EAAEC,EAAY,EAAc;EACvE,IAAID,KAAK,KAAKE,SAAS,EAAE;IACvB,OAAO;MACLC,IAAI,EAAE,YAAY;MAClBC,IAAI,EAAE;IACR,CAAC;EACH;EAEA,IAAIN,cAAc,CAACE,KAAK,CAAC,EAAE;IACzB,IAAIA,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO;QACLG,IAAI,EAAE;MACR,CAAC;IACH;IAEA,IAAI,OAAOH,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAO;QACLG,IAAI,EAAE,eAAe;QACrBH;MACF,CAAC;IACH;IAEA,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MAC7B,OAAO;QACLG,IAAI,EAAE,gBAAgB;QACtBH;MACF,CAAC;IACH;IAEA,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE;MAC9B,OAAO;QACLG,IAAI,EAAE,gBAAgB;QACtBH;MACF,CAAC;IACH;IAEA,IAAIK,KAAK,CAACC,OAAO,CAACN,KAAK,CAAC,EAAE;MACxB,OAAO;QACLG,IAAI,EAAE,iBAAiB;QACvBI,QAAQ,EAAEP,KAAK,CAACQ,GAAG,CAAEC,CAAC,IAAKV,cAAc,CAACU,CAAC,EAAER,EAAE,CAAC;MAClD,CAAC;IACH;IAEA,OAAO;MACLE,IAAI,EAAE,kBAAkB;MACxBO,UAAU,EAAEC,MAAM,CAACC,OAAO,CAACZ,KAAK,CAAC,CAACQ,GAAG,CAAC,CAAC,CAACK,GAAG,EAAEJ,CAAC,CAAC,MAAM;QACnDN,IAAI,EAAE,gBAAgB;QACtBU,GAAG,EAAEA,GAAG,CAACC,KAAK,CAAC,eAAe,CAAC,GAC3B;UACEX,IAAI,EAAE,YAAY;UAClBC,IAAI,EAAES;QACR,CAAC,GACD;UACEV,IAAI,EAAE,eAAe;UACrBH,KAAK,EAAEa;QACT,CAAC;QACLb,KAAK,EAAED,cAAc,CAACU,CAAC,EAAER,EAAE,CAAC;QAC5Bc,QAAQ,EAAE,KAAK;QACfC,SAAS,EAAE;MACb,CAAC,CAAC;IACJ,CAAC;EACH;EAEA,MAAMf,EAAE,CAACgB,mBAAmB,CAC1B,gCAAgCjB,KAAK,8IAA8IH,SAAS,CAC1LI,EACF,CAAC,KACH,CAAC;AACH","ignoreList":[]}
@@ -1,51 +0,0 @@
1
- import { types as t } from '@babel/core';
2
- import { getScope } from '../getScope';
3
- import { mutate } from '../scopeHelpers';
4
- function getFunctionName(path) {
5
- if (path.isClassMethod() && t.isIdentifier(path.node.key)) {
6
- return path.node.key.name;
7
- }
8
- return null;
9
- }
10
- export function JSXElementsRemover(path) {
11
- // JSX can be safely replaced with null because it is unnecessary for styles
12
- const nullLiteral = t.nullLiteral();
13
-
14
- // We can do even more
15
- // If that JSX is a result of a function, we can replace the function body.
16
- const functionScope = getScope(path).getFunctionParent();
17
- const scopePath = functionScope?.path;
18
- if (scopePath?.isFunction()) {
19
- const emptyBody = t.blockStatement([t.returnStatement(nullLiteral)]);
20
-
21
- // Is it not just a function, but a method `render`?
22
- if (getFunctionName(scopePath) === 'render') {
23
- const decl = scopePath.findParent(p => p.isClassDeclaration());
24
-
25
- // Replace the whole component
26
- if (decl?.isClassDeclaration()) {
27
- mutate(decl, p => {
28
- p.replaceWith(t.functionDeclaration(decl.node.id, [], emptyBody));
29
- });
30
- return;
31
- }
32
- }
33
- const body = scopePath.get('body');
34
- if (Array.isArray(body)) {
35
- throw new Error("A body of a function is expected to be a single element but an array was returned. It's possible if JS syntax has been changed since that code was written.");
36
- }
37
- const node = {
38
- ...scopePath.node,
39
- body: emptyBody,
40
- params: []
41
- };
42
- mutate(scopePath, p => {
43
- p.replaceWith(node);
44
- });
45
- } else {
46
- mutate(path, p => {
47
- p.replaceWith(nullLiteral);
48
- });
49
- }
50
- }
51
- //# sourceMappingURL=JSXElementsRemover.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JSXElementsRemover.js","names":["types","t","getScope","mutate","getFunctionName","path","isClassMethod","isIdentifier","node","key","name","JSXElementsRemover","nullLiteral","functionScope","getFunctionParent","scopePath","isFunction","emptyBody","blockStatement","returnStatement","decl","findParent","p","isClassDeclaration","replaceWith","functionDeclaration","id","body","get","Array","isArray","Error","params"],"sources":["../../../src/utils/visitors/JSXElementsRemover.ts"],"sourcesContent":["import { types as t } from '@babel/core';\nimport type { NodePath } from '@babel/traverse';\nimport type {\n CallExpression,\n Function as FunctionNode,\n JSX,\n} from '@babel/types';\n\nimport { getScope } from '../getScope';\nimport { mutate } from '../scopeHelpers';\n\nfunction getFunctionName(path: NodePath<FunctionNode>): string | null {\n if (path.isClassMethod() && t.isIdentifier(path.node.key)) {\n return path.node.key.name;\n }\n\n return null;\n}\n\nexport function JSXElementsRemover(path: NodePath<JSX | CallExpression>) {\n // JSX can be safely replaced with null because it is unnecessary for styles\n const nullLiteral = t.nullLiteral();\n\n // We can do even more\n // If that JSX is a result of a function, we can replace the function body.\n const functionScope = getScope(path).getFunctionParent();\n const scopePath = functionScope?.path;\n if (scopePath?.isFunction()) {\n const emptyBody = t.blockStatement([t.returnStatement(nullLiteral)]);\n\n // Is it not just a function, but a method `render`?\n if (getFunctionName(scopePath) === 'render') {\n const decl = scopePath.findParent((p) => p.isClassDeclaration());\n\n // Replace the whole component\n if (decl?.isClassDeclaration()) {\n mutate(decl, (p) => {\n p.replaceWith(t.functionDeclaration(decl.node.id, [], emptyBody));\n });\n\n return;\n }\n }\n\n const body = scopePath.get('body');\n if (Array.isArray(body)) {\n throw new Error(\n \"A body of a function is expected to be a single element but an array was returned. It's possible if JS syntax has been changed since that code was written.\"\n );\n }\n\n const node: typeof scopePath.node = {\n ...scopePath.node,\n body: emptyBody,\n params: [],\n };\n\n mutate(scopePath, (p) => {\n p.replaceWith(node);\n });\n } else {\n mutate(path, (p) => {\n p.replaceWith(nullLiteral);\n });\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,IAAIC,CAAC,QAAQ,aAAa;AAQxC,SAASC,QAAQ,QAAQ,aAAa;AACtC,SAASC,MAAM,QAAQ,iBAAiB;AAExC,SAASC,eAAeA,CAACC,IAA4B,EAAiB;EACpE,IAAIA,IAAI,CAACC,aAAa,CAAC,CAAC,IAAIL,CAAC,CAACM,YAAY,CAACF,IAAI,CAACG,IAAI,CAACC,GAAG,CAAC,EAAE;IACzD,OAAOJ,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,IAAI;EAC3B;EAEA,OAAO,IAAI;AACb;AAEA,OAAO,SAASC,kBAAkBA,CAACN,IAAoC,EAAE;EACvE;EACA,MAAMO,WAAW,GAAGX,CAAC,CAACW,WAAW,CAAC,CAAC;;EAEnC;EACA;EACA,MAAMC,aAAa,GAAGX,QAAQ,CAACG,IAAI,CAAC,CAACS,iBAAiB,CAAC,CAAC;EACxD,MAAMC,SAAS,GAAGF,aAAa,EAAER,IAAI;EACrC,IAAIU,SAAS,EAAEC,UAAU,CAAC,CAAC,EAAE;IAC3B,MAAMC,SAAS,GAAGhB,CAAC,CAACiB,cAAc,CAAC,CAACjB,CAAC,CAACkB,eAAe,CAACP,WAAW,CAAC,CAAC,CAAC;;IAEpE;IACA,IAAIR,eAAe,CAACW,SAAS,CAAC,KAAK,QAAQ,EAAE;MAC3C,MAAMK,IAAI,GAAGL,SAAS,CAACM,UAAU,CAAEC,CAAC,IAAKA,CAAC,CAACC,kBAAkB,CAAC,CAAC,CAAC;;MAEhE;MACA,IAAIH,IAAI,EAAEG,kBAAkB,CAAC,CAAC,EAAE;QAC9BpB,MAAM,CAACiB,IAAI,EAAGE,CAAC,IAAK;UAClBA,CAAC,CAACE,WAAW,CAACvB,CAAC,CAACwB,mBAAmB,CAACL,IAAI,CAACZ,IAAI,CAACkB,EAAE,EAAE,EAAE,EAAET,SAAS,CAAC,CAAC;QACnE,CAAC,CAAC;QAEF;MACF;IACF;IAEA,MAAMU,IAAI,GAAGZ,SAAS,CAACa,GAAG,CAAC,MAAM,CAAC;IAClC,IAAIC,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,EAAE;MACvB,MAAM,IAAII,KAAK,CACb,6JACF,CAAC;IACH;IAEA,MAAMvB,IAA2B,GAAG;MAClC,GAAGO,SAAS,CAACP,IAAI;MACjBmB,IAAI,EAAEV,SAAS;MACfe,MAAM,EAAE;IACV,CAAC;IAED7B,MAAM,CAACY,SAAS,EAAGO,CAAC,IAAK;MACvBA,CAAC,CAACE,WAAW,CAAChB,IAAI,CAAC;IACrB,CAAC,CAAC;EACJ,CAAC,MAAM;IACLL,MAAM,CAACE,IAAI,EAAGiB,CAAC,IAAK;MAClBA,CAAC,CAACE,WAAW,CAACZ,WAAW,CAAC;IAC5B,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
package/lib/babel.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=babel.js.map
package/lib/babel.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"babel.js","names":[],"sources":["../src/babel.ts"],"sourcesContent":["import type core from '@babel/core';\n\nexport type Core = typeof core;\n"],"mappings":"","ignoreList":[]}
package/lib/cache.js DELETED
@@ -1,308 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TransformCacheCollection = void 0;
7
- var _crypto = require("crypto");
8
- var _nodeFs = _interopRequireDefault(require("node:fs"));
9
- var _shared = require("@wyw-in-js/shared");
10
- var _getFileIdx = require("./utils/getFileIdx");
11
- var _parseRequest = require("./utils/parseRequest");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- function hashContent(content) {
14
- return (0, _crypto.createHash)('sha256').update(content).digest('hex');
15
- }
16
- function isMissingFileError(error) {
17
- if (!error || typeof error !== 'object') {
18
- return false;
19
- }
20
- const {
21
- code
22
- } = error;
23
- return code === 'ENOENT' || code === 'ENOTDIR';
24
- }
25
- const cacheLogger = _shared.logger.extend('cache');
26
- const cacheNames = ['barrelManifests', 'entrypoints', 'exports'];
27
- const loggers = cacheNames.reduce((acc, key) => ({
28
- ...acc,
29
- [key]: cacheLogger.extend(key)
30
- }), {});
31
- class TransformCacheCollection {
32
- barrelManifestDependencies = new Map();
33
- contentHashes = new Map();
34
- fileMtimes = new Map();
35
- exportDependencies = new Map();
36
- constructor(caches = {}) {
37
- this.barrelManifests = caches.barrelManifests || new Map();
38
- this.entrypoints = caches.entrypoints || new Map();
39
- this.exports = caches.exports || new Map();
40
- }
41
- add(cacheName, key, value) {
42
- const cache = this[cacheName];
43
- loggers[cacheName]('%s:add %s %f', (0, _getFileIdx.getFileIdx)(key), key, () => {
44
- if (value === undefined) {
45
- return cache.has(key) ? 'removed' : 'noop';
46
- }
47
- if (!cache.has(key)) {
48
- return 'added';
49
- }
50
- return cache.get(key) === value ? 'unchanged' : 'updated';
51
- });
52
- if (value === undefined) {
53
- cache.delete(key);
54
- this.contentHashes.delete(key);
55
- this.clearCacheDependencies(cacheName, key);
56
- return;
57
- }
58
- this.clearCacheDependencies(cacheName, key);
59
- cache.set(key, value);
60
- if ('initialCode' in value) {
61
- const maybeOriginalCode = value.originalCode;
62
- const isLoaded = typeof value.initialCode === 'string';
63
- const source = isLoaded ? 'loaded' : 'fs';
64
- let resolvedCode;
65
- if (isLoaded) {
66
- resolvedCode = value.initialCode;
67
- } else if (typeof maybeOriginalCode === 'string') {
68
- resolvedCode = maybeOriginalCode;
69
- }
70
- if (resolvedCode !== undefined) {
71
- this.setContentHash(key, source, hashContent(resolvedCode));
72
- return;
73
- }
74
- try {
75
- const fileContent = _nodeFs.default.readFileSync((0, _parseRequest.stripQueryAndHash)(key), 'utf8');
76
- this.setContentHash(key, source, hashContent(fileContent));
77
- } catch {
78
- this.setContentHash(key, source, hashContent(''));
79
- }
80
- return;
81
- }
82
- if (cacheName === 'barrelManifests') {
83
- try {
84
- const fileContent = _nodeFs.default.readFileSync((0, _parseRequest.stripQueryAndHash)(key), 'utf8');
85
- this.setContentHash(key, 'fs', hashContent(fileContent));
86
- } catch {
87
- this.setContentHash(key, 'fs', hashContent(''));
88
- }
89
- }
90
- }
91
- clear(cacheName) {
92
- if (cacheName === 'all') {
93
- cacheNames.forEach(name => {
94
- this.clear(name);
95
- });
96
- return;
97
- }
98
- loggers[cacheName]('clear');
99
- const cache = this[cacheName];
100
- cache.clear();
101
- this.clearCacheDependencies(cacheName);
102
- }
103
- delete(cacheName, key) {
104
- this.invalidate(cacheName, key);
105
- }
106
- get(cacheName, key) {
107
- const cache = this[cacheName];
108
- const res = cache.get(key);
109
- loggers[cacheName]('get', key, res === undefined ? 'miss' : 'hit');
110
- return res;
111
- }
112
- has(cacheName, key) {
113
- const cache = this[cacheName];
114
- const res = cache.has(key);
115
- loggers[cacheName]('has', key, res);
116
- return res;
117
- }
118
- invalidate(cacheName, key) {
119
- const cache = this[cacheName];
120
- if (!cache.has(key)) {
121
- return;
122
- }
123
- loggers[cacheName]('invalidate', key);
124
- cache.delete(key);
125
- this.clearCacheDependencies(cacheName, key);
126
- }
127
- invalidateForFile(filename) {
128
- cacheNames.forEach(cacheName => {
129
- this.invalidate(cacheName, filename);
130
- });
131
- }
132
- invalidateIfChanged(filename, content, previousVisitedFiles, source = 'loaded', changedFiles = new Set()) {
133
- if (changedFiles.has(filename)) {
134
- return true;
135
- }
136
- const visitedFiles = new Set(previousVisitedFiles);
137
- const fileEntrypoint = this.get('entrypoints', filename);
138
- let anyDepChanged = false;
139
-
140
- // We need to check all dependencies of the file
141
- // because they might have changed as well.
142
- if (!visitedFiles.has(filename) && (fileEntrypoint || this.hasCachedDependencies(filename))) {
143
- visitedFiles.add(filename);
144
- const invalidateOnDependencyChange = fileEntrypoint === null || fileEntrypoint === void 0 ? void 0 : fileEntrypoint.invalidateOnDependencyChange;
145
- const dependenciesToCheck = new Map();
146
- for (const [key, dependency] of (_fileEntrypoint$depen = fileEntrypoint === null || fileEntrypoint === void 0 ? void 0 : fileEntrypoint.dependencies) !== null && _fileEntrypoint$depen !== void 0 ? _fileEntrypoint$depen : []) {
147
- var _fileEntrypoint$depen;
148
- dependenciesToCheck.set(key, dependency);
149
- }
150
- for (const [key, dependency] of (_fileEntrypoint$inval = fileEntrypoint === null || fileEntrypoint === void 0 ? void 0 : fileEntrypoint.invalidationDependencies) !== null && _fileEntrypoint$inval !== void 0 ? _fileEntrypoint$inval : []) {
151
- var _fileEntrypoint$inval;
152
- if (!dependenciesToCheck.has(key)) {
153
- dependenciesToCheck.set(key, dependency);
154
- }
155
- }
156
- for (const dependencyFilename of this.getCachedDependencies(filename)) {
157
- if (![...dependenciesToCheck.values()].some(dependency => dependency.resolved === dependencyFilename)) {
158
- dependenciesToCheck.set(dependencyFilename, {
159
- resolved: dependencyFilename
160
- });
161
- }
162
- }
163
- for (const [, dependency] of dependenciesToCheck) {
164
- const dependencyFilename = dependency.resolved;
165
- if (dependencyFilename) {
166
- let dependencyContent;
167
- try {
168
- dependencyContent = _nodeFs.default.readFileSync((0, _parseRequest.stripQueryAndHash)(dependencyFilename), 'utf8');
169
- } catch (error) {
170
- if (!isMissingFileError(error)) {
171
- throw error;
172
- }
173
- this.invalidateForFile(dependencyFilename);
174
- anyDepChanged = true;
175
- // eslint-disable-next-line no-continue
176
- continue;
177
- }
178
- const dependencyChanged = this.invalidateIfChanged(dependencyFilename, dependencyContent, visitedFiles, 'fs', changedFiles);
179
- if (dependencyChanged && invalidateOnDependencyChange !== null && invalidateOnDependencyChange !== void 0 && invalidateOnDependencyChange.has(dependencyFilename)) {
180
- cacheLogger('dependency affecting output has changed, invalidate all for %s', filename);
181
- this.invalidateForFile(filename);
182
- changedFiles.add(filename);
183
- return true;
184
- }
185
- if (dependencyChanged) {
186
- anyDepChanged = true;
187
- }
188
- }
189
- }
190
- }
191
- const existing = this.contentHashes.get(filename);
192
- const previousHash = existing === null || existing === void 0 ? void 0 : existing[source];
193
- const newHash = hashContent(content);
194
- if (previousHash === undefined) {
195
- const otherSource = source === 'fs' ? 'loaded' : 'fs';
196
- const otherHash = existing === null || existing === void 0 ? void 0 : existing[otherSource];
197
- if (otherHash !== undefined && otherHash !== newHash || anyDepChanged) {
198
- cacheLogger('content has changed, invalidate all for %s', filename);
199
- this.setContentHash(filename, source, newHash);
200
- this.invalidateForFile(filename);
201
- changedFiles.add(filename);
202
- return true;
203
- }
204
- this.setContentHash(filename, source, newHash);
205
- if (anyDepChanged) {
206
- this.invalidateForFile(filename);
207
- changedFiles.add(filename);
208
- return true;
209
- }
210
- return false;
211
- }
212
- if (previousHash !== newHash || anyDepChanged) {
213
- cacheLogger('content has changed, invalidate all for %s', filename);
214
- this.setContentHash(filename, source, newHash);
215
- this.invalidateForFile(filename);
216
- changedFiles.add(filename);
217
- return true;
218
- }
219
- return false;
220
- }
221
- setCacheDependencies(cacheName, key, dependencies) {
222
- const cache = this.getDependencyCache(cacheName);
223
- const nextDependencies = new Set([...dependencies].filter(dependency => dependency.length > 0));
224
- if (nextDependencies.size === 0) {
225
- cache.delete(key);
226
- return;
227
- }
228
- cache.set(key, nextDependencies);
229
- }
230
- clearCacheDependencies(cacheName, key) {
231
- if (cacheName === 'all') {
232
- this.barrelManifestDependencies.clear();
233
- this.exportDependencies.clear();
234
- return;
235
- }
236
- if (cacheName === 'barrelManifests') {
237
- if (key === undefined) {
238
- this.barrelManifestDependencies.clear();
239
- } else {
240
- this.barrelManifestDependencies.delete(key);
241
- }
242
- return;
243
- }
244
- if (cacheName === 'exports') {
245
- if (key === undefined) {
246
- this.exportDependencies.clear();
247
- } else {
248
- this.exportDependencies.delete(key);
249
- }
250
- }
251
- }
252
- getCachedDependencies(filename) {
253
- var _this$barrelManifestD, _this$exportDependenc;
254
- return new Set([...((_this$barrelManifestD = this.barrelManifestDependencies.get(filename)) !== null && _this$barrelManifestD !== void 0 ? _this$barrelManifestD : []), ...((_this$exportDependenc = this.exportDependencies.get(filename)) !== null && _this$exportDependenc !== void 0 ? _this$exportDependenc : [])]);
255
- }
256
- getDependencyCache(cacheName) {
257
- return cacheName === 'barrelManifests' ? this.barrelManifestDependencies : this.exportDependencies;
258
- }
259
- hasCachedDependencies(filename) {
260
- return this.getCachedDependencies(filename).size > 0;
261
- }
262
-
263
- /**
264
- * Fast check if a file changed on disk since last seen.
265
- * Uses mtime as a fast path — only reads the file if mtime differs.
266
- * Returns true if the file changed (cache was invalidated).
267
- */
268
- checkFreshness(filename, strippedFilename) {
269
- try {
270
- const currentMtime = _nodeFs.default.statSync(strippedFilename).mtimeMs;
271
- const cachedMtime = this.fileMtimes.get(filename);
272
- if (cachedMtime !== undefined && currentMtime === cachedMtime) {
273
- return false;
274
- }
275
- const content = _nodeFs.default.readFileSync(strippedFilename, 'utf-8');
276
- this.fileMtimes.set(filename, currentMtime);
277
- if (this.invalidateIfChanged(filename, content, undefined, 'fs')) {
278
- return true;
279
- }
280
- return false;
281
- } catch (error) {
282
- if (!isMissingFileError(error)) {
283
- throw error;
284
- }
285
- this.invalidateForFile(filename);
286
- return true;
287
- }
288
- }
289
- setContentHash(filename, source, hash) {
290
- const current = this.contentHashes.get(filename);
291
- if (current) {
292
- current[source] = hash;
293
- } else {
294
- this.contentHashes.set(filename, {
295
- [source]: hash
296
- });
297
- }
298
- if (source === 'fs') {
299
- try {
300
- this.fileMtimes.set(filename, _nodeFs.default.statSync((0, _parseRequest.stripQueryAndHash)(filename)).mtimeMs);
301
- } catch {
302
- // ignore
303
- }
304
- }
305
- }
306
- }
307
- exports.TransformCacheCollection = TransformCacheCollection;
308
- //# sourceMappingURL=cache.js.map
package/lib/cache.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","names":["_crypto","require","_nodeFs","_interopRequireDefault","_shared","_getFileIdx","_parseRequest","e","__esModule","default","hashContent","content","createHash","update","digest","isMissingFileError","error","code","cacheLogger","logger","extend","cacheNames","loggers","reduce","acc","key","TransformCacheCollection","barrelManifestDependencies","Map","contentHashes","fileMtimes","exportDependencies","constructor","caches","barrelManifests","entrypoints","exports","add","cacheName","value","cache","getFileIdx","undefined","has","get","delete","clearCacheDependencies","set","maybeOriginalCode","originalCode","isLoaded","initialCode","source","resolvedCode","setContentHash","fileContent","fs","readFileSync","stripQueryAndHash","clear","forEach","name","invalidate","res","invalidateForFile","filename","invalidateIfChanged","previousVisitedFiles","changedFiles","Set","visitedFiles","fileEntrypoint","anyDepChanged","hasCachedDependencies","invalidateOnDependencyChange","dependenciesToCheck","dependency","_fileEntrypoint$depen","dependencies","_fileEntrypoint$inval","invalidationDependencies","dependencyFilename","getCachedDependencies","values","some","resolved","dependencyContent","dependencyChanged","existing","previousHash","newHash","otherSource","otherHash","setCacheDependencies","getDependencyCache","nextDependencies","filter","length","size","_this$barrelManifestD","_this$exportDependenc","checkFreshness","strippedFilename","currentMtime","statSync","mtimeMs","cachedMtime","hash","current"],"sources":["../src/cache.ts"],"sourcesContent":["import { createHash } from 'crypto';\nimport fs from 'node:fs';\nimport { logger } from '@wyw-in-js/shared';\n\nimport type { BarrelManifestCacheEntry } from './transform/barrelManifest';\nimport type { Entrypoint } from './transform/Entrypoint';\nimport type { IEvaluatedEntrypoint } from './transform/EvaluatedEntrypoint';\nimport { getFileIdx } from './utils/getFileIdx';\nimport { stripQueryAndHash } from './utils/parseRequest';\n\nfunction hashContent(content: string) {\n return createHash('sha256').update(content).digest('hex');\n}\n\nfunction isMissingFileError(error: unknown): boolean {\n if (!error || typeof error !== 'object') {\n return false;\n }\n\n const { code } = error as NodeJS.ErrnoException;\n return code === 'ENOENT' || code === 'ENOTDIR';\n}\n\ninterface IBaseCachedEntrypoint {\n dependencies: Map<string, { resolved: string | null }>;\n initialCode?: string;\n invalidateOnDependencyChange?: Set<string>;\n invalidationDependencies?: Map<string, { resolved: string | null }>;\n}\n\ninterface ICaches<TEntrypoint extends IBaseCachedEntrypoint> {\n barrelManifests: Map<string, BarrelManifestCacheEntry>;\n entrypoints: Map<string, TEntrypoint>;\n exports: Map<string, string[]>;\n}\n\ntype MapValue<T> = T extends Map<string, infer V> ? V : never;\n\nconst cacheLogger = logger.extend('cache');\n\nconst cacheNames = ['barrelManifests', 'entrypoints', 'exports'] as const;\ntype CacheNames = (typeof cacheNames)[number];\n\nconst loggers = cacheNames.reduce(\n (acc, key) => ({\n ...acc,\n [key]: cacheLogger.extend(key),\n }),\n {} as Record<CacheNames, typeof logger>\n);\n\nexport class TransformCacheCollection<\n TEntrypoint extends IBaseCachedEntrypoint = Entrypoint | IEvaluatedEntrypoint,\n> {\n public readonly barrelManifests: Map<string, BarrelManifestCacheEntry>;\n\n public readonly entrypoints: Map<string, TEntrypoint>;\n\n public readonly exports: Map<string, string[]>;\n\n private readonly barrelManifestDependencies = new Map<string, Set<string>>();\n\n private contentHashes = new Map<string, { fs?: string; loaded?: string }>();\n\n private fileMtimes = new Map<string, number>();\n\n private readonly exportDependencies = new Map<string, Set<string>>();\n\n constructor(caches: Partial<ICaches<TEntrypoint>> = {}) {\n this.barrelManifests = caches.barrelManifests || new Map();\n this.entrypoints = caches.entrypoints || new Map();\n this.exports = caches.exports || new Map();\n }\n\n public add<\n TCache extends CacheNames,\n TValue extends MapValue<ICaches<TEntrypoint>[TCache]>,\n >(cacheName: TCache, key: string, value: TValue): void {\n const cache = this[cacheName] as Map<string, TValue>;\n loggers[cacheName]('%s:add %s %f', getFileIdx(key), key, () => {\n if (value === undefined) {\n return cache.has(key) ? 'removed' : 'noop';\n }\n\n if (!cache.has(key)) {\n return 'added';\n }\n\n return cache.get(key) === value ? 'unchanged' : 'updated';\n });\n\n if (value === undefined) {\n cache.delete(key);\n this.contentHashes.delete(key);\n this.clearCacheDependencies(cacheName, key);\n return;\n }\n\n this.clearCacheDependencies(cacheName, key);\n cache.set(key, value);\n\n if ('initialCode' in value) {\n const maybeOriginalCode = (value as unknown as { originalCode?: unknown })\n .originalCode;\n const isLoaded = typeof value.initialCode === 'string';\n const source = isLoaded ? 'loaded' : 'fs';\n\n let resolvedCode: string | undefined;\n if (isLoaded) {\n resolvedCode = value.initialCode;\n } else if (typeof maybeOriginalCode === 'string') {\n resolvedCode = maybeOriginalCode;\n }\n\n if (resolvedCode !== undefined) {\n this.setContentHash(key, source, hashContent(resolvedCode));\n return;\n }\n\n try {\n const fileContent = fs.readFileSync(stripQueryAndHash(key), 'utf8');\n this.setContentHash(key, source, hashContent(fileContent));\n } catch {\n this.setContentHash(key, source, hashContent(''));\n }\n\n return;\n }\n\n if (cacheName === 'barrelManifests') {\n try {\n const fileContent = fs.readFileSync(stripQueryAndHash(key), 'utf8');\n this.setContentHash(key, 'fs', hashContent(fileContent));\n } catch {\n this.setContentHash(key, 'fs', hashContent(''));\n }\n }\n }\n\n public clear(cacheName: CacheNames | 'all'): void {\n if (cacheName === 'all') {\n cacheNames.forEach((name) => {\n this.clear(name);\n });\n\n return;\n }\n\n loggers[cacheName]('clear');\n const cache = this[cacheName] as Map<string, unknown>;\n\n cache.clear();\n this.clearCacheDependencies(cacheName);\n }\n\n public delete(cacheName: CacheNames, key: string): void {\n this.invalidate(cacheName, key);\n }\n\n public get<\n TCache extends CacheNames,\n TValue extends MapValue<ICaches<TEntrypoint>[TCache]>,\n >(cacheName: TCache, key: string): TValue | undefined {\n const cache = this[cacheName] as Map<string, TValue>;\n\n const res = cache.get(key);\n loggers[cacheName]('get', key, res === undefined ? 'miss' : 'hit');\n return res;\n }\n\n public has(cacheName: CacheNames, key: string): boolean {\n const cache = this[cacheName] as Map<string, unknown>;\n\n const res = cache.has(key);\n loggers[cacheName]('has', key, res);\n return res;\n }\n\n public invalidate(cacheName: CacheNames, key: string): void {\n const cache = this[cacheName] as Map<string, unknown>;\n if (!cache.has(key)) {\n return;\n }\n\n loggers[cacheName]('invalidate', key);\n\n cache.delete(key);\n this.clearCacheDependencies(cacheName, key);\n }\n\n public invalidateForFile(filename: string) {\n cacheNames.forEach((cacheName) => {\n this.invalidate(cacheName, filename);\n });\n }\n\n public invalidateIfChanged(\n filename: string,\n content: string,\n previousVisitedFiles?: Set<string>,\n source: 'fs' | 'loaded' = 'loaded',\n changedFiles = new Set<string>()\n ) {\n if (changedFiles.has(filename)) {\n return true;\n }\n\n const visitedFiles = new Set(previousVisitedFiles);\n const fileEntrypoint = this.get('entrypoints', filename);\n let anyDepChanged = false;\n\n // We need to check all dependencies of the file\n // because they might have changed as well.\n if (\n !visitedFiles.has(filename) &&\n (fileEntrypoint || this.hasCachedDependencies(filename))\n ) {\n visitedFiles.add(filename);\n const invalidateOnDependencyChange =\n fileEntrypoint?.invalidateOnDependencyChange;\n\n const dependenciesToCheck = new Map<\n string,\n { resolved: string | null }\n >();\n\n for (const [key, dependency] of fileEntrypoint?.dependencies ?? []) {\n dependenciesToCheck.set(key, dependency);\n }\n\n for (const [\n key,\n dependency,\n ] of fileEntrypoint?.invalidationDependencies ?? []) {\n if (!dependenciesToCheck.has(key)) {\n dependenciesToCheck.set(key, dependency);\n }\n }\n\n for (const dependencyFilename of this.getCachedDependencies(filename)) {\n if (\n ![...dependenciesToCheck.values()].some(\n (dependency) => dependency.resolved === dependencyFilename\n )\n ) {\n dependenciesToCheck.set(dependencyFilename, {\n resolved: dependencyFilename,\n });\n }\n }\n\n for (const [, dependency] of dependenciesToCheck) {\n const dependencyFilename = dependency.resolved;\n\n if (dependencyFilename) {\n let dependencyContent: string;\n try {\n dependencyContent = fs.readFileSync(\n stripQueryAndHash(dependencyFilename),\n 'utf8'\n );\n } catch (error) {\n if (!isMissingFileError(error)) {\n throw error;\n }\n\n this.invalidateForFile(dependencyFilename);\n anyDepChanged = true;\n // eslint-disable-next-line no-continue\n continue;\n }\n\n const dependencyChanged = this.invalidateIfChanged(\n dependencyFilename,\n dependencyContent,\n visitedFiles,\n 'fs',\n changedFiles\n );\n\n if (\n dependencyChanged &&\n invalidateOnDependencyChange?.has(dependencyFilename)\n ) {\n cacheLogger(\n 'dependency affecting output has changed, invalidate all for %s',\n filename\n );\n this.invalidateForFile(filename);\n changedFiles.add(filename);\n\n return true;\n }\n\n if (dependencyChanged) {\n anyDepChanged = true;\n }\n }\n }\n }\n\n const existing = this.contentHashes.get(filename);\n const previousHash = existing?.[source];\n const newHash = hashContent(content);\n\n if (previousHash === undefined) {\n const otherSource = source === 'fs' ? 'loaded' : 'fs';\n const otherHash = existing?.[otherSource];\n\n if ((otherHash !== undefined && otherHash !== newHash) || anyDepChanged) {\n cacheLogger('content has changed, invalidate all for %s', filename);\n this.setContentHash(filename, source, newHash);\n this.invalidateForFile(filename);\n changedFiles.add(filename);\n\n return true;\n }\n\n this.setContentHash(filename, source, newHash);\n if (anyDepChanged) {\n this.invalidateForFile(filename);\n changedFiles.add(filename);\n return true;\n }\n return false;\n }\n\n if (previousHash !== newHash || anyDepChanged) {\n cacheLogger('content has changed, invalidate all for %s', filename);\n this.setContentHash(filename, source, newHash);\n this.invalidateForFile(filename);\n changedFiles.add(filename);\n\n return true;\n }\n\n return false;\n }\n\n public setCacheDependencies(\n cacheName: 'barrelManifests' | 'exports',\n key: string,\n dependencies: Iterable<string>\n ): void {\n const cache = this.getDependencyCache(cacheName);\n const nextDependencies = new Set(\n [...dependencies].filter((dependency) => dependency.length > 0)\n );\n\n if (nextDependencies.size === 0) {\n cache.delete(key);\n return;\n }\n\n cache.set(key, nextDependencies);\n }\n\n private clearCacheDependencies(cacheName: CacheNames | 'all', key?: string) {\n if (cacheName === 'all') {\n this.barrelManifestDependencies.clear();\n this.exportDependencies.clear();\n return;\n }\n\n if (cacheName === 'barrelManifests') {\n if (key === undefined) {\n this.barrelManifestDependencies.clear();\n } else {\n this.barrelManifestDependencies.delete(key);\n }\n return;\n }\n\n if (cacheName === 'exports') {\n if (key === undefined) {\n this.exportDependencies.clear();\n } else {\n this.exportDependencies.delete(key);\n }\n }\n }\n\n private getCachedDependencies(filename: string): Set<string> {\n return new Set([\n ...(this.barrelManifestDependencies.get(filename) ?? []),\n ...(this.exportDependencies.get(filename) ?? []),\n ]);\n }\n\n private getDependencyCache(cacheName: 'barrelManifests' | 'exports') {\n return cacheName === 'barrelManifests'\n ? this.barrelManifestDependencies\n : this.exportDependencies;\n }\n\n private hasCachedDependencies(filename: string): boolean {\n return this.getCachedDependencies(filename).size > 0;\n }\n\n /**\n * Fast check if a file changed on disk since last seen.\n * Uses mtime as a fast path — only reads the file if mtime differs.\n * Returns true if the file changed (cache was invalidated).\n */\n public checkFreshness(filename: string, strippedFilename: string): boolean {\n try {\n const currentMtime = fs.statSync(strippedFilename).mtimeMs;\n const cachedMtime = this.fileMtimes.get(filename);\n\n if (cachedMtime !== undefined && currentMtime === cachedMtime) {\n return false;\n }\n\n const content = fs.readFileSync(strippedFilename, 'utf-8');\n this.fileMtimes.set(filename, currentMtime);\n\n if (this.invalidateIfChanged(filename, content, undefined, 'fs')) {\n return true;\n }\n\n return false;\n } catch (error) {\n if (!isMissingFileError(error)) {\n throw error;\n }\n\n this.invalidateForFile(filename);\n return true;\n }\n }\n\n private setContentHash(\n filename: string,\n source: 'fs' | 'loaded',\n hash: string\n ) {\n const current = this.contentHashes.get(filename);\n if (current) {\n current[source] = hash;\n } else {\n this.contentHashes.set(filename, { [source]: hash });\n }\n\n if (source === 'fs') {\n try {\n this.fileMtimes.set(\n filename,\n fs.statSync(stripQueryAndHash(filename)).mtimeMs\n );\n } catch {\n // ignore\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}