@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,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * This file exposes sync and async transform functions that:
4
3
  * - parse the passed code to AST
@@ -6,105 +5,94 @@
6
5
  * - shakes each dependency and removes unused code
7
6
  * - runs generated code in a sandbox
8
7
  * - collects artifacts
9
- * - returns transformed code (without WYW template literals), generated CSS, source maps and babel metadata from transform step.
8
+ * - returns transformed code (without WYW template literals), generated CSS, source maps and transform metadata.
10
9
  */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.transformSync = transformSync;
13
- exports.transform = transform;
14
- const shared_1 = require("@wyw-in-js/shared");
15
- const loadWywOptions_1 = require("./transform/helpers/loadWywOptions");
16
- const cache_1 = require("./cache");
17
- const Entrypoint_1 = require("./transform/Entrypoint");
18
- const actionRunner_1 = require("./transform/actions/actionRunner");
19
- const generators_1 = require("./transform/generators");
20
- const resolveImports_1 = require("./transform/generators/resolveImports");
21
- const withDefaultServices_1 = require("./transform/helpers/withDefaultServices");
22
- const memoizedSyncResolve = new WeakMap();
10
+ import { createHash } from 'crypto';
11
+ import { isFeatureEnabled } from '@wyw-in-js/shared';
12
+ import { loadWywOptions } from './transform/helpers/loadWywOptions';
13
+ import { TransformCacheCollection } from './cache';
14
+ import { Entrypoint } from './transform/Entrypoint';
15
+ import { asyncActionRunner } from './transform/actions/actionRunner';
16
+ import { baseHandlers } from './transform/generators';
17
+ import { asyncResolveImports } from './transform/generators/resolveImports';
18
+ import { withDefaultServices } from './transform/helpers/withDefaultServices';
19
+ import { getEvalBroker } from './eval/broker';
20
+ import { encodeGlobals } from './eval/serialize';
23
21
  const memoizedAsyncResolve = new WeakMap();
24
- const EMPTY_CUSTOM_HANDLERS = {};
25
- const memoizedActionContexts = new WeakMap();
26
- const getActionContext = (resolveImportsHandler, customHandlers) => {
27
- const customHandlersKey = Object.keys(customHandlers).length === 0
28
- ? EMPTY_CUSTOM_HANDLERS
29
- : customHandlers;
30
- let actionContextsByHandlers = memoizedActionContexts.get(resolveImportsHandler);
31
- if (!actionContextsByHandlers) {
32
- actionContextsByHandlers = new WeakMap();
33
- memoizedActionContexts.set(resolveImportsHandler, actionContextsByHandlers);
22
+ const resolverIds = new WeakMap();
23
+ let resolverId = 0;
24
+ const getResolverId = (fn) => {
25
+ if (typeof fn !== 'function')
26
+ return null;
27
+ const resolver = fn;
28
+ const cached = resolverIds.get(resolver);
29
+ if (cached)
30
+ return cached;
31
+ resolverId += 1;
32
+ resolverIds.set(resolver, resolverId);
33
+ return resolverId;
34
+ };
35
+ const isPlainObject = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
36
+ const canonicalizeForHash = (value) => {
37
+ if (Array.isArray(value)) {
38
+ return value.map((item) => canonicalizeForHash(item));
34
39
  }
35
- let actionContext = actionContextsByHandlers.get(customHandlersKey);
36
- if (!actionContext) {
37
- actionContext = {};
38
- actionContextsByHandlers.set(customHandlersKey, actionContext);
40
+ if (isPlainObject(value)) {
41
+ return Object.fromEntries(Object.keys(value)
42
+ .sort()
43
+ .map((key) => [key, canonicalizeForHash(value[key])]));
39
44
  }
40
- return actionContext;
45
+ return value;
41
46
  };
42
- function transformSync(partialServices, originalCode, syncResolve, customHandlers = {}) {
43
- const { options } = partialServices;
44
- const pluginOptions = (0, loadWywOptions_1.loadWywOptions)(options.pluginOptions);
45
- const services = (0, withDefaultServices_1.withDefaultServices)({
46
- ...partialServices,
47
- options: {
48
- ...options,
49
- pluginOptions,
50
- },
47
+ const getEvalCacheKey = (pluginOptions, asyncResolveKey, asyncResolve) => {
48
+ const evalOptions = pluginOptions.eval ?? {};
49
+ const payload = JSON.stringify({
50
+ mode: evalOptions.mode,
51
+ resolver: evalOptions.resolver,
52
+ require: evalOptions.require,
53
+ globals: canonicalizeForHash(encodeGlobals(evalOptions.globals ?? {})),
54
+ customResolver: getResolverId(evalOptions.customResolver),
55
+ customLoader: getResolverId(evalOptions.customLoader),
56
+ // Bundlers like webpack can recreate transport resolvers per file. Allow
57
+ // them to provide a stable scope key so cache/broker reuse tracks resolver
58
+ // semantics instead of closure identity.
59
+ bundlerResolver: asyncResolveKey ?? getResolverId(asyncResolve),
60
+ overrideContext: getResolverId(pluginOptions.overrideContext),
61
+ importOverrides: pluginOptions.importOverrides ?? null,
62
+ extensions: pluginOptions.extensions,
63
+ features: pluginOptions.features,
51
64
  });
52
- if (!(0, shared_1.isFeatureEnabled)(pluginOptions.features, 'globalCache', options.filename)) {
53
- // If global cache is disabled, we need to create a new cache for each file
54
- services.cache = new cache_1.TransformCacheCollection();
55
- }
56
- if (!memoizedSyncResolve.has(syncResolve)) {
57
- memoizedSyncResolve.set(syncResolve, function resolveImports() {
58
- return resolveImports_1.syncResolveImports.call(this, syncResolve);
59
- });
60
- }
61
- const resolveImportsHandler = memoizedSyncResolve.get(syncResolve);
62
- const actionHandlers = {
63
- ...generators_1.baseHandlers,
64
- ...customHandlers,
65
- resolveImports: resolveImportsHandler,
66
- };
67
- const actionContext = getActionContext(resolveImportsHandler, customHandlers);
68
- const entrypoint = Entrypoint_1.Entrypoint.createRoot(services, options.filename, ['__wywPreval'], originalCode);
69
- if (entrypoint.ignored) {
70
- return {
71
- code: originalCode,
72
- sourceMap: options.inputSourceMap,
73
- };
74
- }
75
- const workflowAction = entrypoint.createAction('workflow', undefined, null, actionContext);
76
- try {
77
- const result = (0, actionRunner_1.syncActionRunner)(workflowAction, actionHandlers);
78
- entrypoint.log('%s is ready', entrypoint.name);
79
- return result;
80
- }
81
- catch (err) {
82
- entrypoint.log('Unhandled error %O', err);
83
- if ((0, shared_1.isFeatureEnabled)(pluginOptions.features, 'softErrors', options.filename)) {
84
- // eslint-disable-next-line no-console
85
- console.error(`Error during transform of ${entrypoint.name}:`, err);
86
- return {
87
- code: originalCode,
88
- sourceMap: options.inputSourceMap,
89
- };
90
- }
91
- throw err;
92
- }
65
+ return createHash('sha256').update(payload).digest('hex');
66
+ };
67
+ export function transformSync(
68
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
69
+ _partialServices,
70
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
71
+ _originalCode,
72
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
73
+ _syncResolve,
74
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
75
+ _customHandlers = {}) {
76
+ throw new Error('[wyw-in-js] transformSync is not supported in v2. Use transform() (async) instead.');
93
77
  }
94
- async function transform(partialServices, originalCode, asyncResolve, customHandlers = {}) {
78
+ export async function transform(partialServices, originalCode, asyncResolve, customHandlers = {}) {
95
79
  const { options } = partialServices;
96
- const pluginOptions = (0, loadWywOptions_1.loadWywOptions)(options.pluginOptions);
97
- const services = (0, withDefaultServices_1.withDefaultServices)({
80
+ const pluginOptions = loadWywOptions(options.pluginOptions);
81
+ const services = withDefaultServices({
98
82
  ...partialServices,
99
83
  options: {
100
84
  ...options,
101
85
  pluginOptions,
102
86
  },
103
87
  });
104
- if (!(0, shared_1.isFeatureEnabled)(pluginOptions.features, 'globalCache', options.filename)) {
88
+ if (!isFeatureEnabled(pluginOptions.features, 'globalCache', options.filename)) {
105
89
  // If global cache is disabled, we need to create a new cache for each file
106
- services.cache = new cache_1.TransformCacheCollection();
90
+ services.cache = new TransformCacheCollection();
107
91
  }
92
+ const evalCacheKey = getEvalCacheKey(pluginOptions, services.asyncResolveKey, asyncResolve);
93
+ services.cache.setKeySalt(evalCacheKey);
94
+ services.asyncResolve = asyncResolve;
95
+ services.evalBroker = getEvalBroker(services, asyncResolve, evalCacheKey);
108
96
  /*
109
97
  * This method can be run simultaneously for multiple files.
110
98
  * A shared cache is accessible for all runs, but each run has its own queue
@@ -113,35 +101,34 @@ async function transform(partialServices, originalCode, asyncResolve, customHand
113
101
  * but the "only" option has changed, the file will be re-processed using
114
102
  * the combined "only" option.
115
103
  */
116
- if (!memoizedAsyncResolve.has(asyncResolve)) {
117
- const resolveImports = function resolveImports() {
118
- return resolveImports_1.asyncResolveImports.call(this, asyncResolve);
119
- };
120
- memoizedAsyncResolve.set(asyncResolve, resolveImports);
121
- }
122
- const resolveImportsHandler = memoizedAsyncResolve.get(asyncResolve);
123
- const actionHandlers = {
124
- ...generators_1.baseHandlers,
125
- ...customHandlers,
126
- resolveImports: resolveImportsHandler,
127
- };
128
- const actionContext = getActionContext(resolveImportsHandler, customHandlers);
129
- const entrypoint = Entrypoint_1.Entrypoint.createRoot(services, options.filename, ['__wywPreval'], originalCode);
104
+ const entrypoint = Entrypoint.createRoot(services, options.filename, ['__wywPreval'], originalCode);
130
105
  if (entrypoint.ignored) {
131
106
  return {
132
107
  code: originalCode,
133
108
  sourceMap: options.inputSourceMap,
134
109
  };
135
110
  }
136
- const workflowAction = entrypoint.createAction('workflow', undefined, null, actionContext);
111
+ // Separate top-level runs must not share action state, even for the same
112
+ // entrypoint, otherwise concurrent transforms can collide in BaseAction.run.
113
+ const workflowAction = entrypoint.createAction('workflow', undefined, null, {});
114
+ if (!memoizedAsyncResolve.has(asyncResolve)) {
115
+ const resolveImports = function resolveImports() {
116
+ return asyncResolveImports.call(this, asyncResolve);
117
+ };
118
+ memoizedAsyncResolve.set(asyncResolve, resolveImports);
119
+ }
137
120
  try {
138
- const result = await (0, actionRunner_1.asyncActionRunner)(workflowAction, actionHandlers);
121
+ const result = await asyncActionRunner(workflowAction, {
122
+ ...baseHandlers,
123
+ ...customHandlers,
124
+ resolveImports: memoizedAsyncResolve.get(asyncResolve),
125
+ });
139
126
  entrypoint.log('%s is ready', entrypoint.name);
140
127
  return result;
141
128
  }
142
129
  catch (err) {
143
130
  entrypoint.log('Unhandled error %O', err);
144
- if ((0, shared_1.isFeatureEnabled)(pluginOptions.features, 'softErrors', options.filename)) {
131
+ if (isFeatureEnabled(pluginOptions.features, 'softErrors', options.filename)) {
145
132
  // eslint-disable-next-line no-console
146
133
  console.error(`Error during transform of ${entrypoint.name}:`, err);
147
134
  return {
package/types/types.d.ts CHANGED
@@ -1,10 +1,7 @@
1
- import type { BabelFile, PluginPass } from '@babel/core';
2
- import type { NodePath } from '@babel/traverse';
3
- import type { File, Program } from '@babel/types';
4
1
  import type { RawSourceMap } from 'source-map';
5
- import type { BaseProcessor } from '@wyw-in-js/processor-utils';
6
2
  import type { Debugger, Replacement, Rules, StrictOptions } from '@wyw-in-js/shared';
7
- import type { WYWTransformMetadata } from './utils/TransformMetadata';
3
+ import type { WYWTransformMetadata, WYWTransformResultMetadata } from './utils/TransformMetadata';
4
+ import type { WYWTransformDiagnostic } from './utils/TransformDiagnostics';
8
5
  export type PluginOptions = StrictOptions & {
9
6
  configFile?: string | false;
10
7
  stage?: Stage;
@@ -17,15 +14,6 @@ export type ParentEntrypoint = {
17
14
  seqId: number;
18
15
  };
19
16
  export type Dependencies = string[];
20
- export interface IPluginState extends PluginPass {
21
- dependencies: Dependencies;
22
- file: BabelFile & {
23
- metadata: {
24
- wywInJS?: WYWTransformMetadata;
25
- };
26
- };
27
- processors: BaseProcessor[];
28
- }
29
17
  export interface ITransformFileResult {
30
18
  code: string;
31
19
  metadata: WYWTransformMetadata | null;
@@ -36,6 +24,8 @@ export type Result = {
36
24
  cssSourceMapText?: string;
37
25
  cssText?: string;
38
26
  dependencies?: string[];
27
+ diagnostics?: WYWTransformDiagnostic[];
28
+ metadata?: WYWTransformResultMetadata;
39
29
  replacements?: Replacement[];
40
30
  rules?: Rules;
41
31
  sourceMap?: RawSourceMap | null;
@@ -52,16 +42,6 @@ export type Options = {
52
42
  };
53
43
  export type PreprocessorFn = (selector: string, cssText: string) => string;
54
44
  export type Preprocessor = 'none' | 'stylis' | PreprocessorFn | void;
55
- export type MissedBabelCoreTypes = {
56
- File: new (options: {
57
- filename: string;
58
- }, file: {
59
- ast: File;
60
- code: string;
61
- }) => {
62
- path: NodePath<Program>;
63
- };
64
- };
65
45
  export type JSONValue = null | string | number | boolean | JSONObject | JSONArray;
66
46
  export interface JSONObject {
67
47
  [x: string]: JSONValue;
package/types/types.js CHANGED
@@ -1,5 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  /**
4
3
  * CSS-related types
5
4
  */
@@ -1,15 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EventEmitter = exports.isOnActionFinishArgs = exports.isOnActionStartArgs = void 0;
4
- const isOnActionStartArgs = (args) => {
1
+ export const isOnActionStartArgs = (args) => {
5
2
  return args[0] === 'start';
6
3
  };
7
- exports.isOnActionStartArgs = isOnActionStartArgs;
8
- const isOnActionFinishArgs = (args) => {
4
+ export const isOnActionFinishArgs = (args) => {
9
5
  return args[0] === 'finish' || args[0] === 'fail';
10
6
  };
11
- exports.isOnActionFinishArgs = isOnActionFinishArgs;
12
- class EventEmitter {
7
+ export class EventEmitter {
13
8
  onEvent;
14
9
  onAction;
15
10
  onEntrypointEvent;
@@ -58,4 +53,3 @@ class EventEmitter {
58
53
  }, 'single');
59
54
  }
60
55
  }
61
- exports.EventEmitter = EventEmitter;
@@ -1,5 +1 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasShakerMetadata = void 0;
4
- const hasShakerMetadata = (metadata) => metadata !== undefined && 'wywEvaluator' in metadata;
5
- exports.hasShakerMetadata = hasShakerMetadata;
1
+ export const hasShakerMetadata = (metadata) => metadata !== undefined && 'wywEvaluator' in metadata;
@@ -0,0 +1,9 @@
1
+ import type { BaseProcessor, ProcessorDiagnostic } from '@wyw-in-js/processor-utils';
2
+ type DiagnosticProcessor = Pick<BaseProcessor, 'artifacts' | 'className' | 'displayName'>;
3
+ export type WYWTransformDiagnostic = ProcessorDiagnostic & {
4
+ className: string;
5
+ displayName: string;
6
+ filename: string;
7
+ };
8
+ export declare const collectTransformDiagnostics: (filename: string, processors: DiagnosticProcessor[]) => WYWTransformDiagnostic[];
9
+ export {};
@@ -0,0 +1,11 @@
1
+ import { isProcessorDiagnosticArtifact } from '@wyw-in-js/processor-utils';
2
+ export const collectTransformDiagnostics = (filename, processors) => processors.flatMap((processor) => processor.artifacts
3
+ .filter(isProcessorDiagnosticArtifact)
4
+ .map(([, diagnostic]) => ({
5
+ ...diagnostic,
6
+ className: processor.className,
7
+ displayName: processor.displayName,
8
+ end: diagnostic.end ?? null,
9
+ filename,
10
+ start: diagnostic.start ?? null,
11
+ })));
@@ -1,13 +1,31 @@
1
- import type { Artifact, Replacement, Rules } from '@wyw-in-js/shared';
1
+ import type { BaseProcessor } from '@wyw-in-js/processor-utils';
2
+ import type { Artifact, Location, Replacement, Rules } from '@wyw-in-js/shared';
3
+ type TransformMetadataProcessor = Pick<BaseProcessor, 'artifacts' | 'className' | 'displayName' | 'location'>;
2
4
  export type WYWTransformMetadata = {
3
5
  dependencies: string[];
4
- processors: {
5
- artifacts: Artifact[];
6
- }[];
6
+ processors: TransformMetadataProcessor[];
7
7
  replacements: Replacement[];
8
8
  rules: Rules;
9
9
  };
10
+ export type WYWTransformProcessorMetadata = {
11
+ artifacts: Artifact[];
12
+ className: string;
13
+ displayName: string;
14
+ start: Location | null | undefined;
15
+ };
16
+ export type WYWTransformResultMetadata = Omit<WYWTransformMetadata, 'processors'> & {
17
+ processors: WYWTransformProcessorMetadata[];
18
+ };
19
+ export type WYWTransformManifest = WYWTransformResultMetadata & {
20
+ cssFile?: string;
21
+ source: string;
22
+ version: 1;
23
+ };
10
24
  export declare const withTransformMetadata: (value: unknown) => value is {
11
25
  wywInJS: WYWTransformMetadata;
12
26
  };
13
27
  export declare const getTransformMetadata: (value: unknown) => WYWTransformMetadata | undefined;
28
+ export declare const toTransformResultMetadata: (metadata: WYWTransformMetadata, dependencies: string[]) => WYWTransformResultMetadata;
29
+ export declare const createTransformManifest: (metadata: WYWTransformResultMetadata, context: Pick<WYWTransformManifest, "cssFile" | "source">) => WYWTransformManifest;
30
+ export declare const stringifyTransformManifest: (manifest: WYWTransformManifest) => string;
31
+ export {};
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTransformMetadata = exports.withTransformMetadata = void 0;
4
- const withTransformMetadata = (value) => typeof value === 'object' &&
1
+ import { isProcessorDiagnosticArtifact } from '@wyw-in-js/processor-utils';
2
+ export const withTransformMetadata = (value) => typeof value === 'object' &&
5
3
  value !== null &&
6
4
  typeof value.wywInJS === 'object';
7
- exports.withTransformMetadata = withTransformMetadata;
8
- const getTransformMetadata = (value) => {
9
- if ((0, exports.withTransformMetadata)(value) && value.wywInJS !== null) {
5
+ export const getTransformMetadata = (value) => {
6
+ if (withTransformMetadata(value) && value.wywInJS !== null) {
10
7
  const metadata = value.wywInJS;
11
8
  // eslint-disable-next-line no-param-reassign
12
9
  delete value.wywInJS;
@@ -14,4 +11,22 @@ const getTransformMetadata = (value) => {
14
11
  }
15
12
  return undefined;
16
13
  };
17
- exports.getTransformMetadata = getTransformMetadata;
14
+ export const toTransformResultMetadata = (metadata, dependencies) => ({
15
+ dependencies,
16
+ processors: metadata.processors.map((processor) => ({
17
+ artifacts: processor.artifacts
18
+ .filter((artifact) => !isProcessorDiagnosticArtifact(artifact))
19
+ .map(([type, data]) => [type, data]),
20
+ className: processor.className,
21
+ displayName: processor.displayName,
22
+ start: processor.location?.start ?? null,
23
+ })),
24
+ replacements: [...metadata.replacements],
25
+ rules: { ...metadata.rules },
26
+ });
27
+ export const createTransformManifest = (metadata, context) => ({
28
+ ...metadata,
29
+ ...context,
30
+ version: 1,
31
+ });
32
+ export const stringifyTransformManifest = (manifest) => `${JSON.stringify(manifest, null, 2)}\n`;
@@ -0,0 +1,16 @@
1
+ import { BaseProcessor } from '@wyw-in-js/processor-utils';
2
+ import type { IFileContext } from '@wyw-in-js/processor-utils';
3
+ import type { StrictOptions } from '@wyw-in-js/shared';
4
+ import { EventEmitter } from './EventEmitter';
5
+ import { type OxcStaticValue, type OxcStaticValueCandidate } from './collectOxcTemplateDependencies';
6
+ type ApplyOxcProcessorsResult = {
7
+ code: string;
8
+ processors: BaseProcessor[];
9
+ staticValueCandidates: OxcStaticValueCandidate[];
10
+ staticValues: OxcStaticValue[];
11
+ };
12
+ export declare const applyOxcProcessors: (code: string, fileContext: IFileContext, options: Pick<StrictOptions, "classNameSlug" | "displayName" | "extensions" | "evaluate" | "tagResolver"> & {
13
+ eventEmitter?: EventEmitter;
14
+ preserveSideEffectImportLocals?: Set<string>;
15
+ }, callback: (processor: BaseProcessor) => void, cleanupUnused?: boolean) => ApplyOxcProcessorsResult;
16
+ export {};