@wyw-in-js/transform 0.8.0 → 1.0.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 (327) hide show
  1. package/esm/babel.js.map +1 -1
  2. package/esm/cache.js +15 -4
  3. package/esm/cache.js.map +1 -1
  4. package/esm/debug/fileReporter.js.map +1 -1
  5. package/esm/evaluators/index.js.map +1 -1
  6. package/esm/index.js.map +1 -1
  7. package/esm/module.js +174 -15
  8. package/esm/module.js.map +1 -1
  9. package/esm/options/buildOptions.js +123 -4
  10. package/esm/options/buildOptions.js.map +1 -1
  11. package/esm/options/buildOptions.test.js +41 -0
  12. package/esm/options/buildOptions.test.js.map +1 -0
  13. package/esm/options/loadBabelOptions.js.map +1 -1
  14. package/esm/plugins/babel-transform.js.map +1 -1
  15. package/esm/plugins/collector.js.map +1 -1
  16. package/esm/plugins/dynamic-import.js +35 -12
  17. package/esm/plugins/dynamic-import.js.map +1 -1
  18. package/esm/plugins/preeval.js +4 -0
  19. package/esm/plugins/preeval.js.map +1 -1
  20. package/esm/plugins/shaker.js +170 -23
  21. package/esm/plugins/shaker.js.map +1 -1
  22. package/esm/shaker.js +6 -3
  23. package/esm/shaker.js.map +1 -1
  24. package/esm/transform/BaseEntrypoint.js.map +1 -1
  25. package/esm/transform/Entrypoint.helpers.js +105 -15
  26. package/esm/transform/Entrypoint.helpers.js.map +1 -1
  27. package/esm/transform/Entrypoint.js +13 -2
  28. package/esm/transform/Entrypoint.js.map +1 -1
  29. package/esm/transform/Entrypoint.types.js.map +1 -1
  30. package/esm/transform/EvaluatedEntrypoint.js.map +1 -1
  31. package/esm/transform/actions/AbortError.js.map +1 -1
  32. package/esm/transform/actions/BaseAction.js +5 -0
  33. package/esm/transform/actions/BaseAction.js.map +1 -1
  34. package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -1
  35. package/esm/transform/actions/actionRunner.js.map +1 -1
  36. package/esm/transform/actions/types.js.map +1 -1
  37. package/esm/transform/generators/baseProcessingHandlers.js.map +1 -1
  38. package/esm/transform/generators/collect.js.map +1 -1
  39. package/esm/transform/generators/createStylisPreprocessor.js +118 -2
  40. package/esm/transform/generators/createStylisPreprocessor.js.map +1 -1
  41. package/esm/transform/generators/evalFile.js.map +1 -1
  42. package/esm/transform/generators/explodeReexports.js +10 -10
  43. package/esm/transform/generators/explodeReexports.js.map +1 -1
  44. package/esm/transform/generators/extract.js.map +1 -1
  45. package/esm/transform/generators/getExports.js.map +1 -1
  46. package/esm/transform/generators/index.js.map +1 -1
  47. package/esm/transform/generators/processEntrypoint.js +5 -8
  48. package/esm/transform/generators/processEntrypoint.js.map +1 -1
  49. package/esm/transform/generators/processImports.js.map +1 -1
  50. package/esm/transform/generators/resolveImports.js +41 -2
  51. package/esm/transform/generators/resolveImports.js.map +1 -1
  52. package/esm/transform/generators/transform.js +7 -3
  53. package/esm/transform/generators/transform.js.map +1 -1
  54. package/esm/transform/generators/workflow.js.map +1 -1
  55. package/esm/transform/helpers/loadWywOptions.js +15 -2
  56. package/esm/transform/helpers/loadWywOptions.js.map +1 -1
  57. package/esm/transform/helpers/withDefaultServices.js +2 -0
  58. package/esm/transform/helpers/withDefaultServices.js.map +1 -1
  59. package/esm/transform/isStaticallyEvaluatableModule.js +153 -0
  60. package/esm/transform/isStaticallyEvaluatableModule.js.map +1 -0
  61. package/esm/transform/rootLog.js.map +1 -1
  62. package/esm/transform/types.js.map +1 -1
  63. package/esm/transform.js +15 -6
  64. package/esm/transform.js.map +1 -1
  65. package/esm/types.js.map +1 -1
  66. package/esm/utils/EventEmitter.js.map +1 -1
  67. package/esm/utils/ShakerMetadata.js.map +1 -1
  68. package/esm/utils/TransformMetadata.js.map +1 -1
  69. package/esm/utils/addIdentifierToWywPreval.js.map +1 -1
  70. package/esm/utils/collectExportsAndImports.js +97 -6
  71. package/esm/utils/collectExportsAndImports.js.map +1 -1
  72. package/esm/utils/collectTemplateDependencies.js +1 -1
  73. package/esm/utils/collectTemplateDependencies.js.map +1 -1
  74. package/esm/utils/createId.js.map +1 -1
  75. package/esm/utils/dispose-polyfill.js.map +1 -1
  76. package/esm/utils/findIdentifiers.js.map +1 -1
  77. package/esm/utils/getConstantStringValue.js +58 -0
  78. package/esm/utils/getConstantStringValue.js.map +1 -0
  79. package/esm/utils/getFileIdx.js.map +1 -1
  80. package/esm/utils/getMemberExpressionPropertyName.js +11 -0
  81. package/esm/utils/getMemberExpressionPropertyName.js.map +1 -0
  82. package/esm/utils/getPluginKey.js.map +1 -1
  83. package/esm/utils/getScope.js.map +1 -1
  84. package/esm/utils/getSource.js.map +1 -1
  85. package/esm/utils/getTagProcessor.js +34 -6
  86. package/esm/utils/getTagProcessor.js.map +1 -1
  87. package/esm/utils/getVisitorKeys.js.map +1 -1
  88. package/esm/utils/hasWywPreval.js.map +1 -1
  89. package/esm/utils/importOverrides.js +47 -0
  90. package/esm/utils/importOverrides.js.map +1 -0
  91. package/esm/utils/isExports.js.map +1 -1
  92. package/esm/utils/isGlobal.js.map +1 -1
  93. package/esm/utils/isNode.js.map +1 -1
  94. package/esm/utils/isNodePath.js.map +1 -1
  95. package/esm/utils/isNotNull.js.map +1 -1
  96. package/esm/utils/isRemoved.js.map +1 -1
  97. package/esm/utils/isRequire.js.map +1 -1
  98. package/esm/utils/isSerializable.js.map +1 -1
  99. package/esm/utils/isTypedNode.js.map +1 -1
  100. package/esm/utils/isUnnecessaryReactCall.js.map +1 -1
  101. package/esm/utils/parseRequest.js +29 -0
  102. package/esm/utils/parseRequest.js.map +1 -0
  103. package/esm/utils/peek.js.map +1 -1
  104. package/esm/utils/removeDangerousCode.js +32 -2
  105. package/esm/utils/removeDangerousCode.js.map +1 -1
  106. package/esm/utils/replaceImportMetaEnv.js +44 -0
  107. package/esm/utils/replaceImportMetaEnv.js.map +1 -0
  108. package/esm/utils/scopeHelpers.js.map +1 -1
  109. package/esm/utils/traversalCache.js.map +1 -1
  110. package/esm/utils/unwrapExpression.js +18 -0
  111. package/esm/utils/unwrapExpression.js.map +1 -0
  112. package/esm/utils/unwrapSequence.js.map +1 -1
  113. package/esm/utils/valueToLiteral.js.map +1 -1
  114. package/esm/utils/visitors/JSXElementsRemover.js.map +1 -1
  115. package/esm/vm/createVmContext.js +44 -0
  116. package/esm/vm/createVmContext.js.map +1 -1
  117. package/esm/vm/process.js.map +1 -1
  118. package/lib/babel.js.map +1 -1
  119. package/lib/cache.js +16 -5
  120. package/lib/cache.js.map +1 -1
  121. package/lib/debug/fileReporter.js +1 -1
  122. package/lib/debug/fileReporter.js.map +1 -1
  123. package/lib/evaluators/index.js.map +1 -1
  124. package/lib/index.js +1 -1
  125. package/lib/index.js.map +1 -1
  126. package/lib/module.js +177 -16
  127. package/lib/module.js.map +1 -1
  128. package/lib/options/buildOptions.js +127 -6
  129. package/lib/options/buildOptions.js.map +1 -1
  130. package/lib/options/buildOptions.test.js +44 -0
  131. package/lib/options/buildOptions.test.js.map +1 -0
  132. package/lib/options/loadBabelOptions.js.map +1 -1
  133. package/lib/plugins/babel-transform.js.map +1 -1
  134. package/lib/plugins/collector.js.map +1 -1
  135. package/lib/plugins/dynamic-import.js +34 -12
  136. package/lib/plugins/dynamic-import.js.map +1 -1
  137. package/lib/plugins/preeval.js +4 -0
  138. package/lib/plugins/preeval.js.map +1 -1
  139. package/lib/plugins/shaker.js +172 -22
  140. package/lib/plugins/shaker.js.map +1 -1
  141. package/lib/shaker.js +8 -4
  142. package/lib/shaker.js.map +1 -1
  143. package/lib/transform/BaseEntrypoint.js.map +1 -1
  144. package/lib/transform/Entrypoint.helpers.js +106 -15
  145. package/lib/transform/Entrypoint.helpers.js.map +1 -1
  146. package/lib/transform/Entrypoint.js +13 -2
  147. package/lib/transform/Entrypoint.js.map +1 -1
  148. package/lib/transform/Entrypoint.types.js.map +1 -1
  149. package/lib/transform/EvaluatedEntrypoint.js.map +1 -1
  150. package/lib/transform/actions/AbortError.js.map +1 -1
  151. package/lib/transform/actions/BaseAction.js +5 -0
  152. package/lib/transform/actions/BaseAction.js.map +1 -1
  153. package/lib/transform/actions/UnprocessedEntrypointError.js.map +1 -1
  154. package/lib/transform/actions/actionRunner.js.map +1 -1
  155. package/lib/transform/actions/types.js.map +1 -1
  156. package/lib/transform/generators/baseProcessingHandlers.js.map +1 -1
  157. package/lib/transform/generators/collect.js.map +1 -1
  158. package/lib/transform/generators/createStylisPreprocessor.js +119 -3
  159. package/lib/transform/generators/createStylisPreprocessor.js.map +1 -1
  160. package/lib/transform/generators/evalFile.js +1 -1
  161. package/lib/transform/generators/evalFile.js.map +1 -1
  162. package/lib/transform/generators/explodeReexports.js +11 -11
  163. package/lib/transform/generators/explodeReexports.js.map +1 -1
  164. package/lib/transform/generators/extract.js.map +1 -1
  165. package/lib/transform/generators/getExports.js.map +1 -1
  166. package/lib/transform/generators/index.js.map +1 -1
  167. package/lib/transform/generators/processEntrypoint.js +5 -8
  168. package/lib/transform/generators/processEntrypoint.js.map +1 -1
  169. package/lib/transform/generators/processImports.js.map +1 -1
  170. package/lib/transform/generators/resolveImports.js +41 -2
  171. package/lib/transform/generators/resolveImports.js.map +1 -1
  172. package/lib/transform/generators/transform.js +8 -3
  173. package/lib/transform/generators/transform.js.map +1 -1
  174. package/lib/transform/generators/workflow.js.map +1 -1
  175. package/lib/transform/helpers/loadWywOptions.js +16 -2
  176. package/lib/transform/helpers/loadWywOptions.js.map +1 -1
  177. package/lib/transform/helpers/withDefaultServices.js +3 -2
  178. package/lib/transform/helpers/withDefaultServices.js.map +1 -1
  179. package/lib/transform/isStaticallyEvaluatableModule.js +159 -0
  180. package/lib/transform/isStaticallyEvaluatableModule.js.map +1 -0
  181. package/lib/transform/rootLog.js.map +1 -1
  182. package/lib/transform/types.js.map +1 -1
  183. package/lib/transform.js +15 -6
  184. package/lib/transform.js.map +1 -1
  185. package/lib/types.js.map +1 -1
  186. package/lib/utils/EventEmitter.js.map +1 -1
  187. package/lib/utils/ShakerMetadata.js.map +1 -1
  188. package/lib/utils/TransformMetadata.js.map +1 -1
  189. package/lib/utils/addIdentifierToWywPreval.js.map +1 -1
  190. package/lib/utils/collectExportsAndImports.js +97 -6
  191. package/lib/utils/collectExportsAndImports.js.map +1 -1
  192. package/lib/utils/collectTemplateDependencies.js +1 -1
  193. package/lib/utils/collectTemplateDependencies.js.map +1 -1
  194. package/lib/utils/createId.js.map +1 -1
  195. package/lib/utils/dispose-polyfill.js.map +1 -1
  196. package/lib/utils/findIdentifiers.js.map +1 -1
  197. package/lib/utils/getConstantStringValue.js +66 -0
  198. package/lib/utils/getConstantStringValue.js.map +1 -0
  199. package/lib/utils/getFileIdx.js.map +1 -1
  200. package/lib/utils/getMemberExpressionPropertyName.js +18 -0
  201. package/lib/utils/getMemberExpressionPropertyName.js.map +1 -0
  202. package/lib/utils/getPluginKey.js.map +1 -1
  203. package/lib/utils/getScope.js.map +1 -1
  204. package/lib/utils/getSource.js +1 -1
  205. package/lib/utils/getSource.js.map +1 -1
  206. package/lib/utils/getTagProcessor.js +33 -6
  207. package/lib/utils/getTagProcessor.js.map +1 -1
  208. package/lib/utils/getVisitorKeys.js.map +1 -1
  209. package/lib/utils/hasWywPreval.js.map +1 -1
  210. package/lib/utils/importOverrides.js +57 -0
  211. package/lib/utils/importOverrides.js.map +1 -0
  212. package/lib/utils/isExports.js.map +1 -1
  213. package/lib/utils/isGlobal.js.map +1 -1
  214. package/lib/utils/isNode.js.map +1 -1
  215. package/lib/utils/isNodePath.js.map +1 -1
  216. package/lib/utils/isNotNull.js.map +1 -1
  217. package/lib/utils/isRemoved.js.map +1 -1
  218. package/lib/utils/isRequire.js.map +1 -1
  219. package/lib/utils/isSerializable.js.map +1 -1
  220. package/lib/utils/isTypedNode.js.map +1 -1
  221. package/lib/utils/isUnnecessaryReactCall.js.map +1 -1
  222. package/lib/utils/parseRequest.js +37 -0
  223. package/lib/utils/parseRequest.js.map +1 -0
  224. package/lib/utils/peek.js.map +1 -1
  225. package/lib/utils/removeDangerousCode.js +32 -2
  226. package/lib/utils/removeDangerousCode.js.map +1 -1
  227. package/lib/utils/replaceImportMetaEnv.js +50 -0
  228. package/lib/utils/replaceImportMetaEnv.js.map +1 -0
  229. package/lib/utils/scopeHelpers.js.map +1 -1
  230. package/lib/utils/traversalCache.js.map +1 -1
  231. package/lib/utils/unwrapExpression.js +25 -0
  232. package/lib/utils/unwrapExpression.js.map +1 -0
  233. package/lib/utils/unwrapSequence.js.map +1 -1
  234. package/lib/utils/valueToLiteral.js.map +1 -1
  235. package/lib/utils/visitors/JSXElementsRemover.js.map +1 -1
  236. package/lib/vm/createVmContext.js +45 -2
  237. package/lib/vm/createVmContext.js.map +1 -1
  238. package/lib/vm/process.js.map +1 -1
  239. package/package.json +13 -15
  240. package/types/cache.d.ts +1 -1
  241. package/types/cache.js +15 -4
  242. package/types/evaluators/index.js +1 -1
  243. package/types/module.d.ts +1 -2
  244. package/types/module.js +189 -11
  245. package/types/options/buildOptions.d.ts +0 -1
  246. package/types/options/buildOptions.js +125 -9
  247. package/types/options/loadBabelOptions.js +1 -2
  248. package/types/plugins/babel-transform.js +1 -1
  249. package/types/plugins/collector.js +3 -3
  250. package/types/plugins/dynamic-import.js +38 -18
  251. package/types/plugins/preeval.js +5 -2
  252. package/types/plugins/shaker.d.ts +4 -1
  253. package/types/plugins/shaker.js +189 -24
  254. package/types/shaker.js +9 -3
  255. package/types/transform/BaseEntrypoint.d.ts +0 -1
  256. package/types/transform/Entrypoint.helpers.d.ts +0 -1
  257. package/types/transform/Entrypoint.helpers.js +122 -25
  258. package/types/transform/Entrypoint.js +14 -2
  259. package/types/transform/Entrypoint.types.d.ts +0 -1
  260. package/types/transform/EvaluatedEntrypoint.d.ts +0 -1
  261. package/types/transform/actions/BaseAction.d.ts +1 -1
  262. package/types/transform/actions/BaseAction.js +5 -0
  263. package/types/transform/actions/actionRunner.js +2 -3
  264. package/types/transform/generators/collect.js +1 -2
  265. package/types/transform/generators/createStylisPreprocessor.d.ts +0 -1
  266. package/types/transform/generators/createStylisPreprocessor.js +168 -13
  267. package/types/transform/generators/evalFile.js +1 -2
  268. package/types/transform/generators/explodeReexports.js +12 -15
  269. package/types/transform/generators/extract.js +1 -2
  270. package/types/transform/generators/getExports.js +2 -3
  271. package/types/transform/generators/processEntrypoint.js +13 -7
  272. package/types/transform/generators/processImports.js +1 -2
  273. package/types/transform/generators/resolveImports.js +41 -5
  274. package/types/transform/generators/transform.d.ts +1 -1
  275. package/types/transform/generators/transform.js +16 -6
  276. package/types/transform/generators/workflow.js +1 -2
  277. package/types/transform/helpers/loadWywOptions.js +16 -5
  278. package/types/transform/helpers/withDefaultServices.d.ts +1 -1
  279. package/types/transform/helpers/withDefaultServices.js +19 -8
  280. package/types/transform/isStaticallyEvaluatableModule.d.ts +2 -0
  281. package/types/transform/isStaticallyEvaluatableModule.js +177 -0
  282. package/types/transform/rootLog.d.ts +0 -1
  283. package/types/transform/types.d.ts +1 -1
  284. package/types/transform.js +17 -9
  285. package/types/types.d.ts +1 -1
  286. package/types/utils/addIdentifierToWywPreval.js +2 -3
  287. package/types/utils/collectExportsAndImports.js +102 -20
  288. package/types/utils/collectTemplateDependencies.js +3 -4
  289. package/types/utils/findIdentifiers.js +2 -3
  290. package/types/utils/getConstantStringValue.d.ts +2 -0
  291. package/types/utils/getConstantStringValue.js +94 -0
  292. package/types/utils/getFileIdx.js +1 -2
  293. package/types/utils/getMemberExpressionPropertyName.d.ts +2 -0
  294. package/types/utils/getMemberExpressionPropertyName.js +46 -0
  295. package/types/utils/getScope.js +1 -2
  296. package/types/utils/getTagProcessor.js +35 -9
  297. package/types/utils/getVisitorKeys.js +1 -2
  298. package/types/utils/hasWywPreval.js +1 -1
  299. package/types/utils/importOverrides.d.ts +19 -0
  300. package/types/utils/importOverrides.js +40 -0
  301. package/types/utils/isExports.js +1 -2
  302. package/types/utils/isNodePath.js +1 -2
  303. package/types/utils/isNotNull.js +1 -2
  304. package/types/utils/isRemoved.js +1 -2
  305. package/types/utils/isRequire.js +1 -2
  306. package/types/utils/isSerializable.js +1 -2
  307. package/types/utils/isUnnecessaryReactCall.js +1 -2
  308. package/types/utils/parseRequest.d.ts +7 -0
  309. package/types/utils/parseRequest.js +29 -0
  310. package/types/utils/removeDangerousCode.js +37 -2
  311. package/types/utils/replaceImportMetaEnv.d.ts +3 -0
  312. package/types/utils/replaceImportMetaEnv.js +39 -0
  313. package/types/utils/scopeHelpers.js +7 -8
  314. package/types/utils/traversalCache.d.ts +1 -1
  315. package/types/utils/unwrapExpression.d.ts +2 -0
  316. package/types/utils/unwrapExpression.js +57 -0
  317. package/types/utils/unwrapSequence.js +1 -2
  318. package/types/utils/valueToLiteral.js +1 -2
  319. package/types/utils/visitors/JSXElementsRemover.js +1 -2
  320. package/types/vm/createVmContext.d.ts +0 -1
  321. package/types/vm/createVmContext.js +68 -9
  322. package/types/vm/process.d.ts +0 -2
  323. package/LICENSE +0 -21
  324. package/esm/options/babel-merge.d.js +0 -2
  325. package/esm/options/babel-merge.d.js.map +0 -1
  326. package/lib/options/babel-merge.d.js +0 -2
  327. package/lib/options/babel-merge.d.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"actionRunner.js","names":["_types","require","_AbortError","getHandler","action","actionHandlers","handler","type","Error","getActionRef","entrypoint","ref","ACTION_ERROR","Symbol","isActionError","e","Array","isArray","asyncActionRunner","stack","result","Pending","log","generator","run","actionResult","_action$abortSignal","abortSignal","aborted","throw","AbortError","next","done","value","data","nextAction","createAction","syncActionRunner","_action$abortSignal2"],"sources":["../../../src/transform/actions/actionRunner.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport type {\n ActionQueueItem,\n Handler,\n Handlers,\n TypeOfResult,\n} from '../types';\nimport { Pending } from '../types';\n\nimport { AbortError } from './AbortError';\nimport type { BaseAction } from './BaseAction';\n\nfunction getHandler<\n TMode extends 'async' | 'sync',\n TAction extends ActionQueueItem,\n>(\n action: BaseAction<TAction>,\n actionHandlers: Handlers<TMode>\n): Handler<TMode, TAction> {\n const handler = actionHandlers[action.type];\n if (!handler) {\n throw new Error(`No handler for action ${action.type}`);\n }\n\n // FIXME Handlers<TMode>[TAction['type']] is not assignable to Handler<TMode, TAction>\n return handler as unknown as Handler<TMode, TAction>;\n}\n\nconst getActionRef = (type: string, entrypoint: { ref: string }) =>\n `${type}@${entrypoint.ref}`;\n\nconst ACTION_ERROR = Symbol('ACTION_ERROR');\ntype ActionError = [marker: typeof ACTION_ERROR, err: unknown];\nconst isActionError = (e: unknown): e is ActionError =>\n Array.isArray(e) && e[0] === ACTION_ERROR;\n\nexport async function asyncActionRunner<TAction extends ActionQueueItem>(\n action: BaseAction<TAction>,\n actionHandlers: Handlers<'async' | 'sync'>,\n stack: string[] = [getActionRef(action.type, action.entrypoint)]\n): Promise<TypeOfResult<TAction>> {\n if (action.result !== Pending) {\n action.log('result is cached');\n return action.result as TypeOfResult<TAction>;\n }\n\n const handler = getHandler(action, actionHandlers);\n const generator = action.run<'async' | 'sync'>(handler);\n let actionResult: TypeOfResult<ActionQueueItem> | ActionError | undefined;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (action.abortSignal?.aborted) {\n action.log('action is aborted');\n generator.throw(new AbortError(stack[0]));\n }\n\n const result = await (isActionError(actionResult)\n ? generator.throw(actionResult[1])\n : generator.next(actionResult));\n if (result.done) {\n return result.value as TypeOfResult<TAction>;\n }\n\n const [type, entrypoint, data, abortSignal] = result.value;\n const nextAction = entrypoint.createAction(type, data, abortSignal);\n\n try {\n actionResult = await asyncActionRunner(nextAction, actionHandlers, [\n ...stack,\n getActionRef(type, entrypoint),\n ]);\n } catch (e) {\n nextAction.log('error', e);\n actionResult = [ACTION_ERROR, e];\n }\n }\n}\n\nexport function syncActionRunner<TAction extends ActionQueueItem>(\n action: BaseAction<TAction>,\n actionHandlers: Handlers<'sync'>,\n stack: string[] = [getActionRef(action.type, action.entrypoint)]\n): TypeOfResult<TAction> {\n if (action.result !== Pending) {\n action.log('result is cached');\n return action.result as TypeOfResult<TAction>;\n }\n\n const handler = getHandler(action, actionHandlers);\n const generator = action.run<'sync'>(handler);\n let actionResult: TypeOfResult<ActionQueueItem> | ActionError | undefined;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (action.abortSignal?.aborted) {\n action.log('action is aborted');\n generator.throw(new AbortError(stack[0]));\n }\n\n const result = isActionError(actionResult)\n ? generator.throw(actionResult[1])\n : generator.next(actionResult);\n if (result.done) {\n return result.value as TypeOfResult<TAction>;\n }\n\n const [type, entrypoint, data, abortSignal] = result.value;\n const nextAction = entrypoint.createAction(type, data, abortSignal);\n\n try {\n actionResult = syncActionRunner(nextAction, actionHandlers, [\n ...stack,\n getActionRef(type, entrypoint),\n ]);\n } catch (e) {\n nextAction.log('error', e);\n actionResult = [ACTION_ERROR, e];\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"actionRunner.js","names":["_types","require","_AbortError","getHandler","action","actionHandlers","handler","type","Error","getActionRef","entrypoint","ref","ACTION_ERROR","Symbol","isActionError","e","Array","isArray","asyncActionRunner","stack","result","Pending","log","generator","run","actionResult","_action$abortSignal","abortSignal","aborted","throw","AbortError","next","done","value","data","nextAction","createAction","syncActionRunner","_action$abortSignal2"],"sources":["../../../src/transform/actions/actionRunner.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport type {\n ActionQueueItem,\n Handler,\n Handlers,\n TypeOfResult,\n} from '../types';\nimport { Pending } from '../types';\n\nimport { AbortError } from './AbortError';\nimport type { BaseAction } from './BaseAction';\n\nfunction getHandler<\n TMode extends 'async' | 'sync',\n TAction extends ActionQueueItem,\n>(\n action: BaseAction<TAction>,\n actionHandlers: Handlers<TMode>\n): Handler<TMode, TAction> {\n const handler = actionHandlers[action.type];\n if (!handler) {\n throw new Error(`No handler for action ${action.type}`);\n }\n\n // FIXME Handlers<TMode>[TAction['type']] is not assignable to Handler<TMode, TAction>\n return handler as unknown as Handler<TMode, TAction>;\n}\n\nconst getActionRef = (type: string, entrypoint: { ref: string }) =>\n `${type}@${entrypoint.ref}`;\n\nconst ACTION_ERROR = Symbol('ACTION_ERROR');\ntype ActionError = [marker: typeof ACTION_ERROR, err: unknown];\nconst isActionError = (e: unknown): e is ActionError =>\n Array.isArray(e) && e[0] === ACTION_ERROR;\n\nexport async function asyncActionRunner<TAction extends ActionQueueItem>(\n action: BaseAction<TAction>,\n actionHandlers: Handlers<'async' | 'sync'>,\n stack: string[] = [getActionRef(action.type, action.entrypoint)]\n): Promise<TypeOfResult<TAction>> {\n if (action.result !== Pending) {\n action.log('result is cached');\n return action.result as TypeOfResult<TAction>;\n }\n\n const handler = getHandler(action, actionHandlers);\n const generator = action.run<'async' | 'sync'>(handler);\n let actionResult: TypeOfResult<ActionQueueItem> | ActionError | undefined;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (action.abortSignal?.aborted) {\n action.log('action is aborted');\n generator.throw(new AbortError(stack[0]));\n }\n\n const result = await (isActionError(actionResult)\n ? generator.throw(actionResult[1])\n : generator.next(actionResult));\n if (result.done) {\n return result.value as TypeOfResult<TAction>;\n }\n\n const [type, entrypoint, data, abortSignal] = result.value;\n const nextAction = entrypoint.createAction(type, data, abortSignal);\n\n try {\n actionResult = await asyncActionRunner(nextAction, actionHandlers, [\n ...stack,\n getActionRef(type, entrypoint),\n ]);\n } catch (e) {\n nextAction.log('error', e);\n actionResult = [ACTION_ERROR, e];\n }\n }\n}\n\nexport function syncActionRunner<TAction extends ActionQueueItem>(\n action: BaseAction<TAction>,\n actionHandlers: Handlers<'sync'>,\n stack: string[] = [getActionRef(action.type, action.entrypoint)]\n): TypeOfResult<TAction> {\n if (action.result !== Pending) {\n action.log('result is cached');\n return action.result as TypeOfResult<TAction>;\n }\n\n const handler = getHandler(action, actionHandlers);\n const generator = action.run<'sync'>(handler);\n let actionResult: TypeOfResult<ActionQueueItem> | ActionError | undefined;\n // eslint-disable-next-line no-constant-condition\n while (true) {\n if (action.abortSignal?.aborted) {\n action.log('action is aborted');\n generator.throw(new AbortError(stack[0]));\n }\n\n const result = isActionError(actionResult)\n ? generator.throw(actionResult[1])\n : generator.next(actionResult);\n if (result.done) {\n return result.value as TypeOfResult<TAction>;\n }\n\n const [type, entrypoint, data, abortSignal] = result.value;\n const nextAction = entrypoint.createAction(type, data, abortSignal);\n\n try {\n actionResult = syncActionRunner(nextAction, actionHandlers, [\n ...stack,\n getActionRef(type, entrypoint),\n ]);\n } catch (e) {\n nextAction.log('error', e);\n actionResult = [ACTION_ERROR, e];\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/transform/actions/types.ts"],"sourcesContent":["import type { BabelFileResult } from '@babel/core';\n\nimport type { Replacements, Rules } from '@wyw-in-js/shared';\n\nexport interface IExtracted {\n cssSourceMapText: string;\n cssText: string;\n replacements: Replacements;\n rules: Rules;\n}\n\nexport interface IWorkflowActionNonLinariaResult {\n code: string;\n sourceMap: BabelFileResult['map'];\n}\n\nexport interface IWorkflowActionLinariaResult\n extends IExtracted,\n IWorkflowActionNonLinariaResult {\n dependencies: string[];\n}\n"],"mappings":""}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/transform/actions/types.ts"],"sourcesContent":["import type { BabelFileResult } from '@babel/core';\n\nimport type { Replacements, Rules } from '@wyw-in-js/shared';\n\nexport interface IExtracted {\n cssSourceMapText: string;\n cssText: string;\n replacements: Replacements;\n rules: Rules;\n}\n\nexport interface IWorkflowActionNonLinariaResult {\n code: string;\n sourceMap: BabelFileResult['map'];\n}\n\nexport interface IWorkflowActionLinariaResult\n extends IExtracted,\n IWorkflowActionNonLinariaResult {\n dependencies: string[];\n}\n"],"mappings":"","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"baseProcessingHandlers.js","names":["_explodeReexports","require","_getExports","_processEntrypoint","_processImports","_transform","emptyHandler","Error","type","baseProcessingHandlers","exports","collect","evalFile","extract","workflow","explodeReexports","getExports","processEntrypoint","processImports","transform"],"sources":["../../../src/transform/generators/baseProcessingHandlers.ts"],"sourcesContent":["import type {\n SyncScenarioForAction,\n ICollectAction,\n IEvalAction,\n IExtractAction,\n IWorkflowAction,\n ActionQueueItem,\n} from '../types';\n\nimport { explodeReexports } from './explodeReexports';\nimport { getExports } from './getExports';\nimport { processEntrypoint } from './processEntrypoint';\nimport { processImports } from './processImports';\nimport { transform } from './transform';\n\n// eslint-disable-next-line require-yield\nfunction* emptyHandler<T extends ActionQueueItem>(\n this: T\n): SyncScenarioForAction<T> {\n throw new Error(`Handler for ${this.type} is not implemented`);\n}\n\nexport const baseProcessingHandlers = {\n collect: emptyHandler<ICollectAction>,\n evalFile: emptyHandler<IEvalAction>,\n extract: emptyHandler<IExtractAction>,\n workflow: emptyHandler<IWorkflowAction>,\n explodeReexports,\n getExports,\n processEntrypoint,\n processImports,\n transform,\n};\n"],"mappings":";;;;;;AASA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAEA;AACA,UAAUK,YAAYA,CAAA,EAEM;EAC1B,MAAM,IAAIC,KAAK,CAAE,eAAc,IAAI,CAACC,IAAK,qBAAoB,CAAC;AAChE;AAEO,MAAMC,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;EACpCE,OAAO,EAAEL,YAA4B;EACrCM,QAAQ,EAAEN,YAAyB;EACnCO,OAAO,EAAEP,YAA4B;EACrCQ,QAAQ,EAAER,YAA6B;EACvCS,gBAAgB,EAAhBA,kCAAgB;EAChBC,UAAU,EAAVA,sBAAU;EACVC,iBAAiB,EAAjBA,oCAAiB;EACjBC,cAAc,EAAdA,8BAAc;EACdC,SAAS,EAATA;AACF,CAAC"}
1
+ {"version":3,"file":"baseProcessingHandlers.js","names":["_explodeReexports","require","_getExports","_processEntrypoint","_processImports","_transform","emptyHandler","Error","type","baseProcessingHandlers","exports","collect","evalFile","extract","workflow","explodeReexports","getExports","processEntrypoint","processImports","transform"],"sources":["../../../src/transform/generators/baseProcessingHandlers.ts"],"sourcesContent":["import type {\n SyncScenarioForAction,\n ICollectAction,\n IEvalAction,\n IExtractAction,\n IWorkflowAction,\n ActionQueueItem,\n} from '../types';\n\nimport { explodeReexports } from './explodeReexports';\nimport { getExports } from './getExports';\nimport { processEntrypoint } from './processEntrypoint';\nimport { processImports } from './processImports';\nimport { transform } from './transform';\n\n// eslint-disable-next-line require-yield\nfunction* emptyHandler<T extends ActionQueueItem>(\n this: T\n): SyncScenarioForAction<T> {\n throw new Error(`Handler for ${this.type} is not implemented`);\n}\n\nexport const baseProcessingHandlers = {\n collect: emptyHandler<ICollectAction>,\n evalFile: emptyHandler<IEvalAction>,\n extract: emptyHandler<IExtractAction>,\n workflow: emptyHandler<IWorkflowAction>,\n explodeReexports,\n getExports,\n processEntrypoint,\n processImports,\n transform,\n};\n"],"mappings":";;;;;;AASA,IAAAA,iBAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAEA;AACA,UAAUK,YAAYA,CAAA,EAEM;EAC1B,MAAM,IAAIC,KAAK,CAAC,eAAe,IAAI,CAACC,IAAI,qBAAqB,CAAC;AAChE;AAEO,MAAMC,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,GAAG;EACpCE,OAAO,EAAEL,YAA4B;EACrCM,QAAQ,EAAEN,YAAyB;EACnCO,OAAO,EAAEP,YAA4B;EACrCQ,QAAQ,EAAER,YAA6B;EACvCS,gBAAgB,EAAhBA,kCAAgB;EAChBC,UAAU,EAAVA,sBAAU;EACVC,iBAAiB,EAAjBA,oCAAiB;EACjBC,cAAc,EAAdA,8BAAc;EACdC,SAAS,EAATA;AACF,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"collect.js","names":["_buildOptions","require","_collector","_TransformMetadata","collect","_result$ast","babel","options","services","valueCache","data","entrypoint","loadedAndParsed","name","evaluator","Error","transformPlugins","collectorPlugin","pluginOptions","values","transformConfig","buildOptions","envName","plugins","sourceMaps","sourceFileName","inputSourceMap","root","ast","babelrc","configFile","sourceType","result","transformFromAstSync","code","cwd","filename","program","transformMetadata","getTransformMetadata","metadata","map"],"sources":["../../../src/transform/generators/collect.ts"],"sourcesContent":["import type { PluginItem } from '@babel/core';\n\nimport { buildOptions } from '../../options/buildOptions';\nimport { filename as collectorPlugin } from '../../plugins/collector';\nimport { getTransformMetadata } from '../../utils/TransformMetadata';\nimport type { ICollectAction, SyncScenarioForAction } from '../types';\n\n/**\n * Parses the specified file, finds tags, applies run-time replacements,\n * removes dead code.\n */\n// eslint-disable-next-line require-yield\nexport function* collect(\n this: ICollectAction\n): SyncScenarioForAction<ICollectAction> {\n const { babel, options } = this.services;\n const { valueCache } = this.data;\n const { entrypoint } = this;\n const { loadedAndParsed, name } = entrypoint;\n\n if (loadedAndParsed.evaluator === 'ignored') {\n throw new Error('entrypoint was ignored');\n }\n\n const transformPlugins: PluginItem[] = [\n [\n collectorPlugin,\n {\n ...options.pluginOptions,\n values: valueCache,\n },\n ],\n ];\n\n const transformConfig = buildOptions({\n envName: 'wyw-in-js',\n plugins: transformPlugins,\n sourceMaps: true,\n sourceFileName: name,\n inputSourceMap: options.inputSourceMap,\n root: options.root,\n ast: true,\n babelrc: false,\n configFile: false,\n sourceType: 'unambiguous',\n });\n\n const result = babel.transformFromAstSync(\n loadedAndParsed.ast,\n loadedAndParsed.code,\n {\n ...transformConfig,\n cwd: options.root,\n filename: name,\n }\n );\n\n if (!result || !result.ast?.program) {\n throw new Error('Babel transform failed');\n }\n\n const transformMetadata = getTransformMetadata(result.metadata);\n\n return {\n ast: result.ast,\n code: result.code,\n map: result.map,\n metadata: transformMetadata ?? null,\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAGA;AACA;AACA;AACA;AACA;AACO,UAAUG,OAAOA,CAAA,EAEiB;EAAA,IAAAC,WAAA;EACvC,MAAM;IAAEC,KAAK;IAAEC;EAAQ,CAAC,GAAG,IAAI,CAACC,QAAQ;EACxC,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAI,CAACC,IAAI;EAChC,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAI;EAC3B,MAAM;IAAEC,eAAe;IAAEC;EAAK,CAAC,GAAGF,UAAU;EAE5C,IAAIC,eAAe,CAACE,SAAS,KAAK,SAAS,EAAE;IAC3C,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAAC;EAC3C;EAEA,MAAMC,gBAA8B,GAAG,CACrC,CACEC,mBAAe,EACf;IACE,GAAGV,OAAO,CAACW,aAAa;IACxBC,MAAM,EAAEV;EACV,CAAC,CACF,CACF;EAED,MAAMW,eAAe,GAAG,IAAAC,0BAAY,EAAC;IACnCC,OAAO,EAAE,WAAW;IACpBC,OAAO,EAAEP,gBAAgB;IACzBQ,UAAU,EAAE,IAAI;IAChBC,cAAc,EAAEZ,IAAI;IACpBa,cAAc,EAAEnB,OAAO,CAACmB,cAAc;IACtCC,IAAI,EAAEpB,OAAO,CAACoB,IAAI;IAClBC,GAAG,EAAE,IAAI;IACTC,OAAO,EAAE,KAAK;IACdC,UAAU,EAAE,KAAK;IACjBC,UAAU,EAAE;EACd,CAAC,CAAC;EAEF,MAAMC,MAAM,GAAG1B,KAAK,CAAC2B,oBAAoB,CACvCrB,eAAe,CAACgB,GAAG,EACnBhB,eAAe,CAACsB,IAAI,EACpB;IACE,GAAGd,eAAe;IAClBe,GAAG,EAAE5B,OAAO,CAACoB,IAAI;IACjBS,QAAQ,EAAEvB;EACZ,CACF,CAAC;EAED,IAAI,CAACmB,MAAM,IAAI,GAAA3B,WAAA,GAAC2B,MAAM,CAACJ,GAAG,cAAAvB,WAAA,eAAVA,WAAA,CAAYgC,OAAO,GAAE;IACnC,MAAM,IAAItB,KAAK,CAAC,wBAAwB,CAAC;EAC3C;EAEA,MAAMuB,iBAAiB,GAAG,IAAAC,uCAAoB,EAACP,MAAM,CAACQ,QAAQ,CAAC;EAE/D,OAAO;IACLZ,GAAG,EAAEI,MAAM,CAACJ,GAAG;IACfM,IAAI,EAAEF,MAAM,CAACE,IAAI;IACjBO,GAAG,EAAET,MAAM,CAACS,GAAG;IACfD,QAAQ,EAAEF,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAI;EACjC,CAAC;AACH"}
1
+ {"version":3,"file":"collect.js","names":["_buildOptions","require","_collector","_TransformMetadata","collect","_result$ast","babel","options","services","valueCache","data","entrypoint","loadedAndParsed","name","evaluator","Error","transformPlugins","collectorPlugin","pluginOptions","values","transformConfig","buildOptions","envName","plugins","sourceMaps","sourceFileName","inputSourceMap","root","ast","babelrc","configFile","sourceType","result","transformFromAstSync","code","cwd","filename","program","transformMetadata","getTransformMetadata","metadata","map"],"sources":["../../../src/transform/generators/collect.ts"],"sourcesContent":["import type { PluginItem } from '@babel/core';\n\nimport { buildOptions } from '../../options/buildOptions';\nimport { filename as collectorPlugin } from '../../plugins/collector';\nimport { getTransformMetadata } from '../../utils/TransformMetadata';\nimport type { ICollectAction, SyncScenarioForAction } from '../types';\n\n/**\n * Parses the specified file, finds tags, applies run-time replacements,\n * removes dead code.\n */\n// eslint-disable-next-line require-yield\nexport function* collect(\n this: ICollectAction\n): SyncScenarioForAction<ICollectAction> {\n const { babel, options } = this.services;\n const { valueCache } = this.data;\n const { entrypoint } = this;\n const { loadedAndParsed, name } = entrypoint;\n\n if (loadedAndParsed.evaluator === 'ignored') {\n throw new Error('entrypoint was ignored');\n }\n\n const transformPlugins: PluginItem[] = [\n [\n collectorPlugin,\n {\n ...options.pluginOptions,\n values: valueCache,\n },\n ],\n ];\n\n const transformConfig = buildOptions({\n envName: 'wyw-in-js',\n plugins: transformPlugins,\n sourceMaps: true,\n sourceFileName: name,\n inputSourceMap: options.inputSourceMap,\n root: options.root,\n ast: true,\n babelrc: false,\n configFile: false,\n sourceType: 'unambiguous',\n });\n\n const result = babel.transformFromAstSync(\n loadedAndParsed.ast,\n loadedAndParsed.code,\n {\n ...transformConfig,\n cwd: options.root,\n filename: name,\n }\n );\n\n if (!result || !result.ast?.program) {\n throw new Error('Babel transform failed');\n }\n\n const transformMetadata = getTransformMetadata(result.metadata);\n\n return {\n ast: result.ast,\n code: result.code,\n map: result.map,\n metadata: transformMetadata ?? null,\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AAGA;AACA;AACA;AACA;AACA;AACO,UAAUG,OAAOA,CAAA,EAEiB;EAAA,IAAAC,WAAA;EACvC,MAAM;IAAEC,KAAK;IAAEC;EAAQ,CAAC,GAAG,IAAI,CAACC,QAAQ;EACxC,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAI,CAACC,IAAI;EAChC,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAI;EAC3B,MAAM;IAAEC,eAAe;IAAEC;EAAK,CAAC,GAAGF,UAAU;EAE5C,IAAIC,eAAe,CAACE,SAAS,KAAK,SAAS,EAAE;IAC3C,MAAM,IAAIC,KAAK,CAAC,wBAAwB,CAAC;EAC3C;EAEA,MAAMC,gBAA8B,GAAG,CACrC,CACEC,mBAAe,EACf;IACE,GAAGV,OAAO,CAACW,aAAa;IACxBC,MAAM,EAAEV;EACV,CAAC,CACF,CACF;EAED,MAAMW,eAAe,GAAG,IAAAC,0BAAY,EAAC;IACnCC,OAAO,EAAE,WAAW;IACpBC,OAAO,EAAEP,gBAAgB;IACzBQ,UAAU,EAAE,IAAI;IAChBC,cAAc,EAAEZ,IAAI;IACpBa,cAAc,EAAEnB,OAAO,CAACmB,cAAc;IACtCC,IAAI,EAAEpB,OAAO,CAACoB,IAAI;IAClBC,GAAG,EAAE,IAAI;IACTC,OAAO,EAAE,KAAK;IACdC,UAAU,EAAE,KAAK;IACjBC,UAAU,EAAE;EACd,CAAC,CAAC;EAEF,MAAMC,MAAM,GAAG1B,KAAK,CAAC2B,oBAAoB,CACvCrB,eAAe,CAACgB,GAAG,EACnBhB,eAAe,CAACsB,IAAI,EACpB;IACE,GAAGd,eAAe;IAClBe,GAAG,EAAE5B,OAAO,CAACoB,IAAI;IACjBS,QAAQ,EAAEvB;EACZ,CACF,CAAC;EAED,IAAI,CAACmB,MAAM,IAAI,GAAA3B,WAAA,GAAC2B,MAAM,CAACJ,GAAG,cAAAvB,WAAA,eAAVA,WAAA,CAAYgC,OAAO,GAAE;IACnC,MAAM,IAAItB,KAAK,CAAC,wBAAwB,CAAC;EAC3C;EAEA,MAAMuB,iBAAiB,GAAG,IAAAC,uCAAoB,EAACP,MAAM,CAACQ,QAAQ,CAAC;EAE/D,OAAO;IACLZ,GAAG,EAAEI,MAAM,CAACJ,GAAG;IACfM,IAAI,EAAEF,MAAM,CAACE,IAAI;IACjBO,GAAG,EAAET,MAAM,CAACS,GAAG;IACfD,QAAQ,EAAEF,iBAAiB,aAAjBA,iBAAiB,cAAjBA,iBAAiB,GAAI;EACjC,CAAC;AACH","ignoreList":[]}
@@ -10,8 +10,7 @@ exports.stylisGlobalPlugin = void 0;
10
10
  exports.transformUrl = transformUrl;
11
11
  var path = _interopRequireWildcard(require("path"));
12
12
  var _stylis = require("stylis");
13
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
14
  /* eslint-disable no-continue */
16
15
 
17
16
  const POSIX_SEP = path.posix.sep;
@@ -246,10 +245,127 @@ function createKeyframeSuffixerPlugin() {
246
245
  };
247
246
  }
248
247
  const isMiddleware = obj => obj !== null;
248
+ const displayKeywordRegexp = /^[a-z-]+$/;
249
+ const knownMultiKeywordDisplayTokens = new Set(['block', 'inline', 'flow', 'flow-root', 'flex', 'grid', 'table', 'list-item']);
250
+ function normalizeMultiKeywordDisplayValue(value) {
251
+ var _insideCandidates$;
252
+ const trimmed = value.trim();
253
+ if (trimmed === '' || !/\s/.test(trimmed)) {
254
+ return null;
255
+ }
256
+ const importantRegexp = /!\s*important\s*$/i;
257
+ const hasImportant = importantRegexp.test(trimmed);
258
+ const withoutImportant = trimmed.replace(importantRegexp, '').trim();
259
+ const tokens = withoutImportant.split(/\s+/).filter(Boolean);
260
+ if (tokens.length < 2) {
261
+ return null;
262
+ }
263
+ const normalizedTokens = tokens.map(token => token.toLowerCase());
264
+ if (!normalizedTokens.every(token => displayKeywordRegexp.test(token))) {
265
+ return null;
266
+ }
267
+ const tokenSet = new Set(normalizedTokens);
268
+ const hasInline = tokenSet.has('inline');
269
+ const hasBlock = tokenSet.has('block');
270
+ if (hasInline && hasBlock) {
271
+ return null;
272
+ }
273
+ let outside = null;
274
+ if (hasInline) {
275
+ outside = 'inline';
276
+ } else if (hasBlock) {
277
+ outside = 'block';
278
+ }
279
+ const insideCandidates = ['flow-root', 'flow', 'flex', 'grid', 'table'].filter(candidate => tokenSet.has(candidate));
280
+ if (insideCandidates.length > 1) {
281
+ return null;
282
+ }
283
+ const inside = (_insideCandidates$ = insideCandidates[0]) !== null && _insideCandidates$ !== void 0 ? _insideCandidates$ : null;
284
+ const hasListItem = tokenSet.has('list-item');
285
+ const canCanonicalize = normalizedTokens.every(token => knownMultiKeywordDisplayTokens.has(token));
286
+ if (canCanonicalize) {
287
+ const canonicalOutside = outside !== null && outside !== void 0 ? outside : 'block';
288
+ const canonicalInside = inside !== null && inside !== void 0 ? inside : hasListItem ? 'flow' : null;
289
+ if (canonicalInside) {
290
+ let canonical = null;
291
+ if (hasListItem) {
292
+ if (canonicalInside === 'flow' && canonicalOutside === 'block') {
293
+ canonical = 'list-item';
294
+ }
295
+ } else {
296
+ switch (canonicalInside) {
297
+ case 'flex':
298
+ canonical = canonicalOutside === 'inline' ? 'inline-flex' : 'flex';
299
+ break;
300
+ case 'grid':
301
+ canonical = canonicalOutside === 'inline' ? 'inline-grid' : 'grid';
302
+ break;
303
+ case 'table':
304
+ canonical = canonicalOutside === 'inline' ? 'inline-table' : 'table';
305
+ break;
306
+ case 'flow-root':
307
+ canonical = canonicalOutside === 'block' ? 'flow-root' : null;
308
+ break;
309
+ case 'flow':
310
+ canonical = canonicalOutside === 'inline' ? 'inline' : 'block';
311
+ break;
312
+ default:
313
+ break;
314
+ }
315
+ }
316
+ if (canonical) {
317
+ return hasImportant ? `${canonical}!important` : canonical;
318
+ }
319
+ }
320
+ }
321
+ const innerDisplay = inside === 'flex' || inside === 'grid' ? inside : null;
322
+ if (innerDisplay && normalizedTokens[0] === innerDisplay && normalizedTokens.length > 1) {
323
+ const reordered = [...(outside ? [outside] : []), ...normalizedTokens.filter(token => token !== innerDisplay && token !== outside), innerDisplay].join(' ');
324
+ return hasImportant ? `${reordered}!important` : reordered;
325
+ }
326
+ return null;
327
+ }
328
+ function createStylisDisplayNormalizationPlugin() {
329
+ return element => {
330
+ if (!isDeclaration(element) || element.props !== 'display') {
331
+ return;
332
+ }
333
+ const normalized = normalizeMultiKeywordDisplayValue(element.children);
334
+ if (!normalized) {
335
+ return;
336
+ }
337
+ const decl = `display:${normalized};`;
338
+ Object.assign(element, {
339
+ children: normalized,
340
+ value: decl
341
+ });
342
+ };
343
+ }
344
+ function createStylisStringifier(keepComments) {
345
+ if (!keepComments) {
346
+ return _stylis.stringify;
347
+ }
348
+ const keepAllComments = keepComments === true;
349
+ const keepCommentsFilter = keepComments instanceof RegExp ? keepComments : null;
350
+ return (element, index, children, callback) => {
351
+ if (element.type === _stylis.COMMENT) {
352
+ if (!keepAllComments && keepCommentsFilter) {
353
+ const commentValue = typeof element.children === 'string' ? element.children : element.value;
354
+ keepCommentsFilter.lastIndex = 0;
355
+ if (!keepCommentsFilter.test(commentValue)) {
356
+ return '';
357
+ }
358
+ }
359
+ return element.value;
360
+ }
361
+ return (0, _stylis.stringify)(element, index, children, callback);
362
+ };
363
+ }
249
364
  function createStylisPreprocessor(options) {
365
+ const stringifier = createStylisStringifier(options.keepComments);
250
366
  function stylisPreprocess(selector, text) {
251
367
  const compiled = (0, _stylis.compile)(`${selector} {${text}}\n`);
252
- return (0, _stylis.serialize)(compiled, (0, _stylis.middleware)([createStylisUrlReplacePlugin(options.filename, options.outputFilename), stylisGlobalPlugin, options.prefixer === false ? null : _stylis.prefixer, createKeyframeSuffixerPlugin(), _stylis.stringify].filter(isMiddleware)));
368
+ return (0, _stylis.serialize)(compiled, (0, _stylis.middleware)([createStylisUrlReplacePlugin(options.filename, options.outputFilename), stylisGlobalPlugin, options.prefixer === false ? null : createStylisDisplayNormalizationPlugin(), options.prefixer === false ? null : _stylis.prefixer, createKeyframeSuffixerPlugin(), stringifier].filter(isMiddleware)));
253
369
  }
254
370
  return stylisPreprocess;
255
371
  }
@@ -1 +1 @@
1
- {"version":3,"file":"createStylisPreprocessor.js","names":["path","_interopRequireWildcard","require","_stylis","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","POSIX_SEP","posix","sep","transformUrl","url","outputFilename","sourceFilename","platformPath","relative","dirname","resolve","split","join","DEFINED_KEYFRAMES","Symbol","ORIGINAL_KEYFRAME_NAME","ORIGINAL_VALUE_KEY","IS_GLOBAL_KEYFRAMES","getOriginalElementValue","element","_element$ORIGINAL_VAL","value","throwIfNotProd","key","type","process","env","NODE_ENV","Error","JSON","stringify","childrenIsString","children","propsAreStrings","props","Array","isArray","propsIsString","isDeclaration","DECLARATION","isKeyframes","KEYFRAMES","isRuleset","RULESET","nonMediaParent","parent","stylisGlobalPlugin","getGlobalSelectorModifiers","el","parentValue","length","includes","match","baseSelector","spaceDelimiter","includeBaseSelector","includeSpaceDelimiter","assign","map","cssSelector","tokens","tokenize","selector","len","token","slice","exports","createStylisUrlReplacePlugin","filename","return","replace","_match","p1","_p2","p3","p4","createKeyframeSuffixerPlugin","prefixes","getPrefixedProp","prop","prefix","buildPropsRegexp","isAtRule","at","colon","RegExp","animationNameRegexp","getReplacer","startsWith","searchValue","replacer","input","_input$match","fullMatch","undefined","rest","elementToKeyframeSuffix","replaceAll","animationPropsSet","Set","getDefinedKeyframes","keyframes","sibling","_element$siblings","siblings","add","name","_originalName$startsW","suffix","replaceFn","globalMatch","scopedMatch","originalName","isGlobal","keys","scopedKeyframes","patch","fromEntries","result","globalName","substring","isMiddleware","obj","createStylisPreprocessor","options","stylisPreprocess","text","compiled","compile","serialize","middleware","prefixer","filter"],"sources":["../../../src/transform/generators/createStylisPreprocessor.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport * as path from 'path';\nimport {\n compile,\n middleware,\n prefixer,\n serialize,\n stringify,\n tokenize,\n RULESET,\n KEYFRAMES,\n DECLARATION,\n} from 'stylis';\nimport type { Middleware, Element } from 'stylis';\n\nimport type { Options } from '../../types';\n\nconst POSIX_SEP = path.posix.sep;\n\nexport function transformUrl(\n url: string,\n outputFilename: string,\n sourceFilename: string,\n platformPath: typeof path = path\n) {\n // Replace asset path with new path relative to the output CSS\n const relative = platformPath.relative(\n platformPath.dirname(outputFilename),\n // Get the absolute path to the asset from the path relative to the JS file\n platformPath.resolve(platformPath.dirname(sourceFilename), url)\n );\n\n if (platformPath.sep === POSIX_SEP) {\n return relative;\n }\n\n return relative.split(platformPath.sep).join(POSIX_SEP);\n}\n\ninterface IGlobalSelectorModifiers {\n includeBaseSelector: boolean;\n includeSpaceDelimiter: boolean;\n}\n\nconst DEFINED_KEYFRAMES = Symbol('definedKeyframes');\nconst ORIGINAL_KEYFRAME_NAME = Symbol('originalKeyframeName');\nconst ORIGINAL_VALUE_KEY = Symbol('originalValue');\nconst IS_GLOBAL_KEYFRAMES = Symbol('isGlobalKeyframes');\n\nconst getOriginalElementValue = (\n element: (Element & { [ORIGINAL_VALUE_KEY]?: string }) | null\n) => {\n return element ? element[ORIGINAL_VALUE_KEY] ?? element.value : '';\n};\n\nfunction throwIfNotProd(key: string, value: unknown, type: string): false {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `\"element.${key}\" has type \"${type}\" (${JSON.stringify(\n value,\n null,\n 2\n )}), it's not expected. Please report a bug if it happens.`\n );\n }\n\n return false;\n}\n\ntype SpecificElement<TFields> = Omit<Element, keyof TFields> & TFields;\ntype Declaration = SpecificElement<{\n children: string;\n props: string;\n type: typeof DECLARATION;\n}>;\ntype Keyframes = SpecificElement<{\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n props: string[];\n type: typeof KEYFRAMES;\n}>;\ntype Ruleset = SpecificElement<{\n props: string[];\n type: typeof RULESET;\n}>;\n\nfunction childrenIsString(children: string | Element[]): children is string {\n return (\n typeof children === 'string' ||\n throwIfNotProd('children', children, 'Element[]')\n );\n}\n\nfunction propsAreStrings(props: string | string[]): props is string[] {\n return Array.isArray(props) || throwIfNotProd('props', props, 'string');\n}\n\nfunction propsIsString(props: string | string[]): props is string {\n return (\n typeof props === 'string' || throwIfNotProd('props', props, 'string[]')\n );\n}\n\nconst isDeclaration = (element: Element): element is Declaration => {\n return (\n element.type === DECLARATION &&\n propsIsString(element.props) &&\n childrenIsString(element.children)\n );\n};\n\nconst isKeyframes = (element: Element): element is Keyframes => {\n return element.type === KEYFRAMES && propsAreStrings(element.props);\n};\n\nconst isRuleset = (element: Element): element is Ruleset => {\n return element.type === RULESET && propsAreStrings(element.props);\n};\n\nfunction nonMediaParent(element: Element): Element | null {\n let { parent } = element;\n\n while (parent) {\n if (parent.type !== '@media') {\n return parent;\n }\n\n parent = parent.parent;\n }\n\n return null;\n}\n\n/**\n * Stylis plugin that mimics :global() selector behavior from Stylis v3.\n */\nexport const stylisGlobalPlugin: Middleware = (element) => {\n function getGlobalSelectorModifiers(el: Element): IGlobalSelectorModifiers {\n const parent = nonMediaParent(el);\n\n const value = getOriginalElementValue(el);\n const parentValue = getOriginalElementValue(parent);\n\n if (\n (parent?.children.length === 0 && parentValue.includes(':global(')) ||\n (parent && !value.includes(':global('))\n ) {\n return getGlobalSelectorModifiers(parent);\n }\n\n const match = value.match(/(&\\f( )?)?:global\\(/);\n\n if (match === null) {\n throw new Error(\n `Failed to match :global() selector in \"${value}\". Please report a bug if it happens.`\n );\n }\n\n const [, baseSelector, spaceDelimiter] = match;\n\n return {\n includeBaseSelector: !!baseSelector,\n includeSpaceDelimiter: !!spaceDelimiter,\n };\n }\n\n if (!isRuleset(element)) {\n return;\n }\n\n Object.assign(element, {\n props: element.props.map((cssSelector) => {\n // The value can be changed by other middlewares, but we need an original one with `&`\n Object.assign(element, { [ORIGINAL_VALUE_KEY]: element.value });\n\n // Avoids calling tokenize() on every string\n if (!cssSelector.includes(':global(')) {\n return cssSelector;\n }\n\n if (element.children.length === 0) {\n return cssSelector;\n }\n\n const { includeBaseSelector, includeSpaceDelimiter } =\n getGlobalSelectorModifiers(element);\n\n const tokens = tokenize(cssSelector);\n let selector = '';\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n\n //\n // Match for \":global(\"\n if (token === ':' && tokens[i + 1] === 'global') {\n //\n // Match for \":global()\"\n if (tokens[i + 2] === '()') {\n selector = [\n ...tokens.slice(i + 4),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n\n //\n // Match for \":global(selector)\"\n selector = [\n tokens[i + 2].slice(1, -1),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n }\n\n return selector;\n }),\n });\n};\n\nexport function createStylisUrlReplacePlugin(\n filename: string,\n outputFilename: string | undefined\n): Middleware {\n return (element) => {\n if (element.type === 'decl' && outputFilename) {\n // When writing to a file, we need to adjust the relative paths inside url(..) expressions.\n // It'll allow css-loader to resolve an imported asset properly.\n // eslint-disable-next-line no-param-reassign\n element.return = element.value.replace(\n /\\b(url\\(([\"']?))(\\.[^)]+?)(\\2\\))/g,\n (_match, p1, _p2, p3, p4) =>\n p1 + transformUrl(p3, outputFilename, filename) + p4\n );\n }\n };\n}\n\nexport function createKeyframeSuffixerPlugin(): Middleware {\n const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map((i) =>\n i ? `-${i}-` : ''\n );\n\n const getPrefixedProp = (prop: string): string[] =>\n prefixes.map((prefix) => `${prefix}${prop}`);\n\n const buildPropsRegexp = (prop: string, isAtRule: boolean) => {\n const [at, colon] = isAtRule ? ['@', ''] : ['', ':'];\n return new RegExp(\n `^(${at}(?:${getPrefixedProp(prop).join('|')})${colon})\\\\s*`\n );\n };\n\n const animationNameRegexp = /:global\\(([\\w_-]+)\\)|([\\w_-]+)/;\n\n const getReplacer = (\n startsWith: RegExp,\n searchValue: RegExp,\n replacer: (substring: string, ...matches: string[]) => string\n ): ((input: string) => string) => {\n return (input) => {\n const [fullMatch] = input.match(startsWith) ?? [];\n if (fullMatch === undefined) {\n return input;\n }\n\n const rest = input.slice(fullMatch.length);\n return fullMatch + rest.replace(searchValue, replacer);\n };\n };\n\n const elementToKeyframeSuffix = (el: Element): string => {\n if (el.parent) {\n return elementToKeyframeSuffix(el.parent);\n }\n\n return el.value.replaceAll(/[^a-zA-Z0-9_-]/g, '');\n };\n\n const animationPropsSet = new Set([\n ...getPrefixedProp('animation'),\n ...getPrefixedProp('animation-name'),\n ]);\n\n const getDefinedKeyframes = (\n element: Element & {\n [DEFINED_KEYFRAMES]?: Set<string>;\n siblings?: (Element & {\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n [ORIGINAL_KEYFRAME_NAME]?: string;\n })[];\n }\n ): Set<string> => {\n if (element[DEFINED_KEYFRAMES]) {\n return element[DEFINED_KEYFRAMES];\n }\n\n if (element.parent) {\n return getDefinedKeyframes(element.parent);\n }\n\n const keyframes = new Set<string>();\n for (const sibling of element.siblings ?? []) {\n if (sibling[ORIGINAL_KEYFRAME_NAME]) {\n keyframes.add(sibling[ORIGINAL_KEYFRAME_NAME]);\n continue;\n }\n\n const name = sibling.props[0];\n if (\n !isKeyframes(sibling) ||\n sibling[IS_GLOBAL_KEYFRAMES] === true ||\n name?.startsWith(':global(')\n ) {\n continue;\n }\n\n keyframes.add(sibling.props[0]);\n }\n\n Object.assign(element, { [DEFINED_KEYFRAMES]: keyframes });\n\n return keyframes;\n };\n\n return (element) => {\n if (isKeyframes(element) && element.parent) {\n const suffix = elementToKeyframeSuffix(element);\n\n const replaceFn = (\n _match: string,\n globalMatch: string,\n scopedMatch: string\n ): string => globalMatch || `${scopedMatch}-${suffix}`;\n\n const originalName = element.props[0];\n const isGlobal = originalName?.startsWith(':global(') ?? false;\n\n Object.assign(element, {\n [ORIGINAL_KEYFRAME_NAME]: isGlobal ? undefined : originalName,\n [IS_GLOBAL_KEYFRAMES]: isGlobal,\n props: element.props.map(\n getReplacer(/^\\s*/, animationNameRegexp, replaceFn)\n ),\n value: getReplacer(\n buildPropsRegexp('keyframes', true),\n animationNameRegexp,\n replaceFn\n )(element.value),\n });\n\n return;\n }\n\n if (isDeclaration(element)) {\n const suffix = elementToKeyframeSuffix(element);\n const keys = [\n 'children',\n 'return',\n 'value',\n ] satisfies (keyof Declaration)[];\n\n if (animationPropsSet.has(element.props)) {\n const scopedKeyframes = getDefinedKeyframes(element);\n const patch = Object.fromEntries(\n keys.map((key) => {\n const tokens = tokenize(element[key]);\n let result = '';\n for (let i = 0; i < tokens.length; i += 1) {\n if (\n tokens[i] === ':' &&\n tokens[i + 1] === 'global' &&\n tokens[i + 2].startsWith('(')\n ) {\n const globalName = tokens[i + 2].substring(\n 1,\n tokens[i + 2].length - 1\n );\n i += 2;\n\n result += globalName;\n if (tokens[i + 1] !== ';') {\n result += ' ';\n }\n continue;\n }\n\n if (scopedKeyframes.has(tokens[i])) {\n result += `${tokens[i]}-${suffix}`;\n continue;\n }\n\n result += tokens[i];\n }\n\n return [key, result];\n })\n );\n\n Object.assign(element, patch);\n }\n }\n };\n}\n\nconst isMiddleware = (obj: Middleware | null): obj is Middleware =>\n obj !== null;\n\nexport function createStylisPreprocessor(\n options: Options & { prefixer?: boolean }\n) {\n function stylisPreprocess(selector: string, text: string): string {\n const compiled = compile(`${selector} {${text}}\\n`);\n\n return serialize(\n compiled,\n middleware(\n [\n createStylisUrlReplacePlugin(\n options.filename,\n options.outputFilename\n ),\n stylisGlobalPlugin,\n options.prefixer === false ? null : prefixer,\n createKeyframeSuffixerPlugin(),\n stringify,\n ].filter(isMiddleware)\n )\n );\n }\n\n return stylisPreprocess;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"createStylisPreprocessor.js","names":["path","_interopRequireWildcard","require","_stylis","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","POSIX_SEP","posix","sep","transformUrl","url","outputFilename","sourceFilename","platformPath","relative","dirname","resolve","split","join","DEFINED_KEYFRAMES","Symbol","ORIGINAL_KEYFRAME_NAME","ORIGINAL_VALUE_KEY","IS_GLOBAL_KEYFRAMES","getOriginalElementValue","element","_element$ORIGINAL_VAL","value","throwIfNotProd","key","type","process","env","NODE_ENV","Error","JSON","stringify","childrenIsString","children","propsAreStrings","props","Array","isArray","propsIsString","isDeclaration","DECLARATION","isKeyframes","KEYFRAMES","isRuleset","RULESET","nonMediaParent","parent","stylisGlobalPlugin","getGlobalSelectorModifiers","el","parentValue","length","includes","match","baseSelector","spaceDelimiter","includeBaseSelector","includeSpaceDelimiter","assign","map","cssSelector","tokens","tokenize","selector","len","token","slice","exports","createStylisUrlReplacePlugin","filename","return","replace","_match","p1","_p2","p3","p4","createKeyframeSuffixerPlugin","prefixes","getPrefixedProp","prop","prefix","buildPropsRegexp","isAtRule","at","colon","RegExp","animationNameRegexp","getReplacer","startsWith","searchValue","replacer","input","_input$match","fullMatch","undefined","rest","elementToKeyframeSuffix","replaceAll","animationPropsSet","Set","getDefinedKeyframes","keyframes","sibling","_element$siblings","siblings","add","name","_originalName$startsW","suffix","replaceFn","globalMatch","scopedMatch","originalName","isGlobal","keys","scopedKeyframes","patch","fromEntries","result","globalName","substring","isMiddleware","obj","displayKeywordRegexp","knownMultiKeywordDisplayTokens","normalizeMultiKeywordDisplayValue","_insideCandidates$","trimmed","trim","test","importantRegexp","hasImportant","withoutImportant","filter","Boolean","normalizedTokens","toLowerCase","every","tokenSet","hasInline","hasBlock","outside","insideCandidates","candidate","inside","hasListItem","canCanonicalize","canonicalOutside","canonicalInside","canonical","innerDisplay","reordered","createStylisDisplayNormalizationPlugin","normalized","decl","createStylisStringifier","keepComments","keepAllComments","keepCommentsFilter","index","callback","COMMENT","commentValue","lastIndex","createStylisPreprocessor","options","stringifier","stylisPreprocess","text","compiled","compile","serialize","middleware","prefixer"],"sources":["../../../src/transform/generators/createStylisPreprocessor.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport * as path from 'path';\nimport {\n compile,\n middleware,\n prefixer,\n serialize,\n stringify,\n tokenize,\n COMMENT,\n RULESET,\n KEYFRAMES,\n DECLARATION,\n} from 'stylis';\nimport type { Middleware, Element } from 'stylis';\n\nimport type { Options } from '../../types';\n\nconst POSIX_SEP = path.posix.sep;\n\nexport function transformUrl(\n url: string,\n outputFilename: string,\n sourceFilename: string,\n platformPath: typeof path = path\n) {\n // Replace asset path with new path relative to the output CSS\n const relative = platformPath.relative(\n platformPath.dirname(outputFilename),\n // Get the absolute path to the asset from the path relative to the JS file\n platformPath.resolve(platformPath.dirname(sourceFilename), url)\n );\n\n if (platformPath.sep === POSIX_SEP) {\n return relative;\n }\n\n return relative.split(platformPath.sep).join(POSIX_SEP);\n}\n\ninterface IGlobalSelectorModifiers {\n includeBaseSelector: boolean;\n includeSpaceDelimiter: boolean;\n}\n\nconst DEFINED_KEYFRAMES = Symbol('definedKeyframes');\nconst ORIGINAL_KEYFRAME_NAME = Symbol('originalKeyframeName');\nconst ORIGINAL_VALUE_KEY = Symbol('originalValue');\nconst IS_GLOBAL_KEYFRAMES = Symbol('isGlobalKeyframes');\n\nconst getOriginalElementValue = (\n element: (Element & { [ORIGINAL_VALUE_KEY]?: string }) | null\n) => {\n return element ? element[ORIGINAL_VALUE_KEY] ?? element.value : '';\n};\n\nfunction throwIfNotProd(key: string, value: unknown, type: string): false {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `\"element.${key}\" has type \"${type}\" (${JSON.stringify(\n value,\n null,\n 2\n )}), it's not expected. Please report a bug if it happens.`\n );\n }\n\n return false;\n}\n\ntype SpecificElement<TFields> = Omit<Element, keyof TFields> & TFields;\ntype Declaration = SpecificElement<{\n children: string;\n props: string;\n type: typeof DECLARATION;\n}>;\ntype Keyframes = SpecificElement<{\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n props: string[];\n type: typeof KEYFRAMES;\n}>;\ntype Ruleset = SpecificElement<{\n props: string[];\n type: typeof RULESET;\n}>;\n\nfunction childrenIsString(children: string | Element[]): children is string {\n return (\n typeof children === 'string' ||\n throwIfNotProd('children', children, 'Element[]')\n );\n}\n\nfunction propsAreStrings(props: string | string[]): props is string[] {\n return Array.isArray(props) || throwIfNotProd('props', props, 'string');\n}\n\nfunction propsIsString(props: string | string[]): props is string {\n return (\n typeof props === 'string' || throwIfNotProd('props', props, 'string[]')\n );\n}\n\nconst isDeclaration = (element: Element): element is Declaration => {\n return (\n element.type === DECLARATION &&\n propsIsString(element.props) &&\n childrenIsString(element.children)\n );\n};\n\nconst isKeyframes = (element: Element): element is Keyframes => {\n return element.type === KEYFRAMES && propsAreStrings(element.props);\n};\n\nconst isRuleset = (element: Element): element is Ruleset => {\n return element.type === RULESET && propsAreStrings(element.props);\n};\n\nfunction nonMediaParent(element: Element): Element | null {\n let { parent } = element;\n\n while (parent) {\n if (parent.type !== '@media') {\n return parent;\n }\n\n parent = parent.parent;\n }\n\n return null;\n}\n\n/**\n * Stylis plugin that mimics :global() selector behavior from Stylis v3.\n */\nexport const stylisGlobalPlugin: Middleware = (element) => {\n function getGlobalSelectorModifiers(el: Element): IGlobalSelectorModifiers {\n const parent = nonMediaParent(el);\n\n const value = getOriginalElementValue(el);\n const parentValue = getOriginalElementValue(parent);\n\n if (\n (parent?.children.length === 0 && parentValue.includes(':global(')) ||\n (parent && !value.includes(':global('))\n ) {\n return getGlobalSelectorModifiers(parent);\n }\n\n const match = value.match(/(&\\f( )?)?:global\\(/);\n\n if (match === null) {\n throw new Error(\n `Failed to match :global() selector in \"${value}\". Please report a bug if it happens.`\n );\n }\n\n const [, baseSelector, spaceDelimiter] = match;\n\n return {\n includeBaseSelector: !!baseSelector,\n includeSpaceDelimiter: !!spaceDelimiter,\n };\n }\n\n if (!isRuleset(element)) {\n return;\n }\n\n Object.assign(element, {\n props: element.props.map((cssSelector) => {\n // The value can be changed by other middlewares, but we need an original one with `&`\n Object.assign(element, { [ORIGINAL_VALUE_KEY]: element.value });\n\n // Avoids calling tokenize() on every string\n if (!cssSelector.includes(':global(')) {\n return cssSelector;\n }\n\n if (element.children.length === 0) {\n return cssSelector;\n }\n\n const { includeBaseSelector, includeSpaceDelimiter } =\n getGlobalSelectorModifiers(element);\n\n const tokens = tokenize(cssSelector);\n let selector = '';\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n\n //\n // Match for \":global(\"\n if (token === ':' && tokens[i + 1] === 'global') {\n //\n // Match for \":global()\"\n if (tokens[i + 2] === '()') {\n selector = [\n ...tokens.slice(i + 4),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n\n //\n // Match for \":global(selector)\"\n selector = [\n tokens[i + 2].slice(1, -1),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n }\n\n return selector;\n }),\n });\n};\n\nexport function createStylisUrlReplacePlugin(\n filename: string,\n outputFilename: string | undefined\n): Middleware {\n return (element) => {\n if (element.type === 'decl' && outputFilename) {\n // When writing to a file, we need to adjust the relative paths inside url(..) expressions.\n // It'll allow css-loader to resolve an imported asset properly.\n // eslint-disable-next-line no-param-reassign\n element.return = element.value.replace(\n /\\b(url\\(([\"']?))(\\.[^)]+?)(\\2\\))/g,\n (_match, p1, _p2, p3, p4) =>\n p1 + transformUrl(p3, outputFilename, filename) + p4\n );\n }\n };\n}\n\nexport function createKeyframeSuffixerPlugin(): Middleware {\n const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map((i) =>\n i ? `-${i}-` : ''\n );\n\n const getPrefixedProp = (prop: string): string[] =>\n prefixes.map((prefix) => `${prefix}${prop}`);\n\n const buildPropsRegexp = (prop: string, isAtRule: boolean) => {\n const [at, colon] = isAtRule ? ['@', ''] : ['', ':'];\n return new RegExp(\n `^(${at}(?:${getPrefixedProp(prop).join('|')})${colon})\\\\s*`\n );\n };\n\n const animationNameRegexp = /:global\\(([\\w_-]+)\\)|([\\w_-]+)/;\n\n const getReplacer = (\n startsWith: RegExp,\n searchValue: RegExp,\n replacer: (substring: string, ...matches: string[]) => string\n ): ((input: string) => string) => {\n return (input) => {\n const [fullMatch] = input.match(startsWith) ?? [];\n if (fullMatch === undefined) {\n return input;\n }\n\n const rest = input.slice(fullMatch.length);\n return fullMatch + rest.replace(searchValue, replacer);\n };\n };\n\n const elementToKeyframeSuffix = (el: Element): string => {\n if (el.parent) {\n return elementToKeyframeSuffix(el.parent);\n }\n\n return el.value.replaceAll(/[^a-zA-Z0-9_-]/g, '');\n };\n\n const animationPropsSet = new Set([\n ...getPrefixedProp('animation'),\n ...getPrefixedProp('animation-name'),\n ]);\n\n const getDefinedKeyframes = (\n element: Element & {\n [DEFINED_KEYFRAMES]?: Set<string>;\n siblings?: (Element & {\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n [ORIGINAL_KEYFRAME_NAME]?: string;\n })[];\n }\n ): Set<string> => {\n if (element[DEFINED_KEYFRAMES]) {\n return element[DEFINED_KEYFRAMES];\n }\n\n if (element.parent) {\n return getDefinedKeyframes(element.parent);\n }\n\n const keyframes = new Set<string>();\n for (const sibling of element.siblings ?? []) {\n if (sibling[ORIGINAL_KEYFRAME_NAME]) {\n keyframes.add(sibling[ORIGINAL_KEYFRAME_NAME]);\n continue;\n }\n\n const name = sibling.props[0];\n if (\n !isKeyframes(sibling) ||\n sibling[IS_GLOBAL_KEYFRAMES] === true ||\n name?.startsWith(':global(')\n ) {\n continue;\n }\n\n keyframes.add(sibling.props[0]);\n }\n\n Object.assign(element, { [DEFINED_KEYFRAMES]: keyframes });\n\n return keyframes;\n };\n\n return (element) => {\n if (isKeyframes(element) && element.parent) {\n const suffix = elementToKeyframeSuffix(element);\n\n const replaceFn = (\n _match: string,\n globalMatch: string,\n scopedMatch: string\n ): string => globalMatch || `${scopedMatch}-${suffix}`;\n\n const originalName = element.props[0];\n const isGlobal = originalName?.startsWith(':global(') ?? false;\n\n Object.assign(element, {\n [ORIGINAL_KEYFRAME_NAME]: isGlobal ? undefined : originalName,\n [IS_GLOBAL_KEYFRAMES]: isGlobal,\n props: element.props.map(\n getReplacer(/^\\s*/, animationNameRegexp, replaceFn)\n ),\n value: getReplacer(\n buildPropsRegexp('keyframes', true),\n animationNameRegexp,\n replaceFn\n )(element.value),\n });\n\n return;\n }\n\n if (isDeclaration(element)) {\n const suffix = elementToKeyframeSuffix(element);\n const keys = [\n 'children',\n 'return',\n 'value',\n ] satisfies (keyof Declaration)[];\n\n if (animationPropsSet.has(element.props)) {\n const scopedKeyframes = getDefinedKeyframes(element);\n const patch = Object.fromEntries(\n keys.map((key) => {\n const tokens = tokenize(element[key]);\n let result = '';\n for (let i = 0; i < tokens.length; i += 1) {\n if (\n tokens[i] === ':' &&\n tokens[i + 1] === 'global' &&\n tokens[i + 2].startsWith('(')\n ) {\n const globalName = tokens[i + 2].substring(\n 1,\n tokens[i + 2].length - 1\n );\n i += 2;\n\n result += globalName;\n if (tokens[i + 1] !== ';') {\n result += ' ';\n }\n continue;\n }\n\n if (scopedKeyframes.has(tokens[i])) {\n result += `${tokens[i]}-${suffix}`;\n continue;\n }\n\n result += tokens[i];\n }\n\n return [key, result];\n })\n );\n\n Object.assign(element, patch);\n }\n }\n };\n}\n\nconst isMiddleware = (obj: Middleware | null): obj is Middleware =>\n obj !== null;\n\nconst displayKeywordRegexp = /^[a-z-]+$/;\nconst knownMultiKeywordDisplayTokens = new Set([\n 'block',\n 'inline',\n 'flow',\n 'flow-root',\n 'flex',\n 'grid',\n 'table',\n 'list-item',\n]);\n\nfunction normalizeMultiKeywordDisplayValue(value: string): string | null {\n const trimmed = value.trim();\n if (trimmed === '' || !/\\s/.test(trimmed)) {\n return null;\n }\n\n const importantRegexp = /!\\s*important\\s*$/i;\n const hasImportant = importantRegexp.test(trimmed);\n const withoutImportant = trimmed.replace(importantRegexp, '').trim();\n\n const tokens = withoutImportant.split(/\\s+/).filter(Boolean);\n if (tokens.length < 2) {\n return null;\n }\n\n const normalizedTokens = tokens.map((token) => token.toLowerCase());\n if (!normalizedTokens.every((token) => displayKeywordRegexp.test(token))) {\n return null;\n }\n\n const tokenSet = new Set(normalizedTokens);\n const hasInline = tokenSet.has('inline');\n const hasBlock = tokenSet.has('block');\n if (hasInline && hasBlock) {\n return null;\n }\n\n let outside: 'block' | 'inline' | null = null;\n if (hasInline) {\n outside = 'inline';\n } else if (hasBlock) {\n outside = 'block';\n }\n\n const insideCandidates = [\n 'flow-root',\n 'flow',\n 'flex',\n 'grid',\n 'table',\n ].filter((candidate) => tokenSet.has(candidate));\n if (insideCandidates.length > 1) {\n return null;\n }\n\n const inside = insideCandidates[0] ?? null;\n const hasListItem = tokenSet.has('list-item');\n\n const canCanonicalize = normalizedTokens.every((token) =>\n knownMultiKeywordDisplayTokens.has(token)\n );\n\n if (canCanonicalize) {\n const canonicalOutside = outside ?? 'block';\n const canonicalInside = inside ?? (hasListItem ? 'flow' : null);\n if (canonicalInside) {\n let canonical: string | null = null;\n if (hasListItem) {\n if (canonicalInside === 'flow' && canonicalOutside === 'block') {\n canonical = 'list-item';\n }\n } else {\n switch (canonicalInside) {\n case 'flex':\n canonical = canonicalOutside === 'inline' ? 'inline-flex' : 'flex';\n break;\n case 'grid':\n canonical = canonicalOutside === 'inline' ? 'inline-grid' : 'grid';\n break;\n case 'table':\n canonical =\n canonicalOutside === 'inline' ? 'inline-table' : 'table';\n break;\n case 'flow-root':\n canonical = canonicalOutside === 'block' ? 'flow-root' : null;\n break;\n case 'flow':\n canonical = canonicalOutside === 'inline' ? 'inline' : 'block';\n break;\n default:\n break;\n }\n }\n\n if (canonical) {\n return hasImportant ? `${canonical}!important` : canonical;\n }\n }\n }\n\n const innerDisplay = inside === 'flex' || inside === 'grid' ? inside : null;\n if (\n innerDisplay &&\n normalizedTokens[0] === innerDisplay &&\n normalizedTokens.length > 1\n ) {\n const reordered = [\n ...(outside ? [outside] : []),\n ...normalizedTokens.filter(\n (token) => token !== innerDisplay && token !== outside\n ),\n innerDisplay,\n ].join(' ');\n\n return hasImportant ? `${reordered}!important` : reordered;\n }\n\n return null;\n}\n\nfunction createStylisDisplayNormalizationPlugin(): Middleware {\n return (element) => {\n if (!isDeclaration(element) || element.props !== 'display') {\n return;\n }\n\n const normalized = normalizeMultiKeywordDisplayValue(element.children);\n if (!normalized) {\n return;\n }\n\n const decl = `display:${normalized};`;\n Object.assign(element, {\n children: normalized,\n value: decl,\n });\n };\n}\n\nfunction createStylisStringifier(\n keepComments: boolean | RegExp | undefined\n): Middleware {\n if (!keepComments) {\n return stringify;\n }\n\n const keepAllComments = keepComments === true;\n const keepCommentsFilter =\n keepComments instanceof RegExp ? keepComments : null;\n\n return (element, index, children, callback) => {\n if (element.type === COMMENT) {\n if (!keepAllComments && keepCommentsFilter) {\n const commentValue =\n typeof element.children === 'string'\n ? element.children\n : element.value;\n keepCommentsFilter.lastIndex = 0;\n if (!keepCommentsFilter.test(commentValue)) {\n return '';\n }\n }\n return element.value;\n }\n\n return stringify(element, index, children, callback);\n };\n}\n\nexport function createStylisPreprocessor(\n options: Options & { prefixer?: boolean }\n) {\n const stringifier = createStylisStringifier(options.keepComments);\n\n function stylisPreprocess(selector: string, text: string): string {\n const compiled = compile(`${selector} {${text}}\\n`);\n\n return serialize(\n compiled,\n middleware(\n [\n createStylisUrlReplacePlugin(\n options.filename,\n options.outputFilename\n ),\n stylisGlobalPlugin,\n options.prefixer === false\n ? null\n : createStylisDisplayNormalizationPlugin(),\n options.prefixer === false ? null : prefixer,\n createKeyframeSuffixerPlugin(),\n stringifier,\n ].filter(isMiddleware)\n )\n );\n }\n\n return stylisPreprocess;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ exports.evalFile = evalFile;
7
7
  var _evaluators = _interopRequireDefault(require("../../evaluators"));
8
8
  var _hasWywPreval = _interopRequireDefault(require("../../utils/hasWywPreval"));
9
9
  var _UnprocessedEntrypointError = require("../actions/UnprocessedEntrypointError");
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
11
  const wrap = fn => {
12
12
  try {
13
13
  return fn();
@@ -1 +1 @@
1
- {"version":3,"file":"evalFile.js","names":["_evaluators","_interopRequireDefault","require","_hasWywPreval","_UnprocessedEntrypointError","obj","__esModule","default","wrap","fn","e","evalFile","entrypoint","log","evaluated","undefined","evaluate","services","isUnprocessedEntrypointError","wywPreval","hasWywPreval","value","__wywPreval","valueCache","Map","Object","entries","forEach","key","lazyValue","set","dependencies"],"sources":["../../../src/transform/generators/evalFile.ts"],"sourcesContent":["import type { ValueCache } from '@wyw-in-js/processor-utils';\n\nimport type { IEvaluateResult } from '../../evaluators';\nimport evaluate from '../../evaluators';\nimport hasWywPreval from '../../utils/hasWywPreval';\nimport { isUnprocessedEntrypointError } from '../actions/UnprocessedEntrypointError';\nimport type { IEvalAction, SyncScenarioForAction } from '../types';\n\nconst wrap = <T>(fn: () => T): T | Error => {\n try {\n return fn();\n } catch (e) {\n return e as Error;\n }\n};\n\n/**\n * Executes the code prepared in previous steps within the current `Entrypoint`.\n * Returns all exports that were requested in `only`.\n */\n// eslint-disable-next-line require-yield\nexport function* evalFile(\n this: IEvalAction\n): SyncScenarioForAction<IEvalAction> {\n const { entrypoint } = this;\n const { log } = entrypoint;\n\n log(`>> evaluate __wywPreval`);\n\n let evaluated: IEvaluateResult | undefined;\n\n while (evaluated === undefined) {\n try {\n evaluated = evaluate(this.services, entrypoint);\n } catch (e) {\n if (isUnprocessedEntrypointError(e)) {\n entrypoint.log(\n 'Evaluation has been aborted because one if the required files is not processed. Schedule reprocessing and repeat evaluation.'\n );\n yield ['processEntrypoint', e.entrypoint, undefined];\n } else {\n throw e;\n }\n }\n }\n\n const wywPreval = hasWywPreval(evaluated.value)\n ? evaluated.value.__wywPreval\n : undefined;\n\n if (!wywPreval) {\n return null;\n }\n\n const valueCache: ValueCache = new Map();\n Object.entries(wywPreval).forEach(([key, lazyValue]) => {\n const value = wrap(lazyValue);\n valueCache.set(key, value);\n });\n\n log(`<< evaluated __wywPreval %O`, valueCache);\n\n return [valueCache, evaluated.dependencies];\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AAAqF,SAAAD,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGrF,MAAMG,IAAI,GAAOC,EAAW,IAAgB;EAC1C,IAAI;IACF,OAAOA,EAAE,CAAC,CAAC;EACb,CAAC,CAAC,OAAOC,CAAC,EAAE;IACV,OAAOA,CAAC;EACV;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,UAAUC,QAAQA,CAAA,EAEa;EACpC,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAI;EAC3B,MAAM;IAAEC;EAAI,CAAC,GAAGD,UAAU;EAE1BC,GAAG,CAAE,yBAAwB,CAAC;EAE9B,IAAIC,SAAsC;EAE1C,OAAOA,SAAS,KAAKC,SAAS,EAAE;IAC9B,IAAI;MACFD,SAAS,GAAG,IAAAE,mBAAQ,EAAC,IAAI,CAACC,QAAQ,EAAEL,UAAU,CAAC;IACjD,CAAC,CAAC,OAAOF,CAAC,EAAE;MACV,IAAI,IAAAQ,wDAA4B,EAACR,CAAC,CAAC,EAAE;QACnCE,UAAU,CAACC,GAAG,CACZ,8HACF,CAAC;QACD,MAAM,CAAC,mBAAmB,EAAEH,CAAC,CAACE,UAAU,EAAEG,SAAS,CAAC;MACtD,CAAC,MAAM;QACL,MAAML,CAAC;MACT;IACF;EACF;EAEA,MAAMS,SAAS,GAAG,IAAAC,qBAAY,EAACN,SAAS,CAACO,KAAK,CAAC,GAC3CP,SAAS,CAACO,KAAK,CAACC,WAAW,GAC3BP,SAAS;EAEb,IAAI,CAACI,SAAS,EAAE;IACd,OAAO,IAAI;EACb;EAEA,MAAMI,UAAsB,GAAG,IAAIC,GAAG,CAAC,CAAC;EACxCC,MAAM,CAACC,OAAO,CAACP,SAAS,CAAC,CAACQ,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,SAAS,CAAC,KAAK;IACtD,MAAMR,KAAK,GAAGb,IAAI,CAACqB,SAAS,CAAC;IAC7BN,UAAU,CAACO,GAAG,CAACF,GAAG,EAAEP,KAAK,CAAC;EAC5B,CAAC,CAAC;EAEFR,GAAG,CAAE,6BAA4B,EAAEU,UAAU,CAAC;EAE9C,OAAO,CAACA,UAAU,EAAET,SAAS,CAACiB,YAAY,CAAC;AAC7C"}
1
+ {"version":3,"file":"evalFile.js","names":["_evaluators","_interopRequireDefault","require","_hasWywPreval","_UnprocessedEntrypointError","e","__esModule","default","wrap","fn","evalFile","entrypoint","log","evaluated","undefined","evaluate","services","isUnprocessedEntrypointError","wywPreval","hasWywPreval","value","__wywPreval","valueCache","Map","Object","entries","forEach","key","lazyValue","set","dependencies"],"sources":["../../../src/transform/generators/evalFile.ts"],"sourcesContent":["import type { ValueCache } from '@wyw-in-js/processor-utils';\n\nimport type { IEvaluateResult } from '../../evaluators';\nimport evaluate from '../../evaluators';\nimport hasWywPreval from '../../utils/hasWywPreval';\nimport { isUnprocessedEntrypointError } from '../actions/UnprocessedEntrypointError';\nimport type { IEvalAction, SyncScenarioForAction } from '../types';\n\nconst wrap = <T>(fn: () => T): T | Error => {\n try {\n return fn();\n } catch (e) {\n return e as Error;\n }\n};\n\n/**\n * Executes the code prepared in previous steps within the current `Entrypoint`.\n * Returns all exports that were requested in `only`.\n */\n// eslint-disable-next-line require-yield\nexport function* evalFile(\n this: IEvalAction\n): SyncScenarioForAction<IEvalAction> {\n const { entrypoint } = this;\n const { log } = entrypoint;\n\n log(`>> evaluate __wywPreval`);\n\n let evaluated: IEvaluateResult | undefined;\n\n while (evaluated === undefined) {\n try {\n evaluated = evaluate(this.services, entrypoint);\n } catch (e) {\n if (isUnprocessedEntrypointError(e)) {\n entrypoint.log(\n 'Evaluation has been aborted because one if the required files is not processed. Schedule reprocessing and repeat evaluation.'\n );\n yield ['processEntrypoint', e.entrypoint, undefined];\n } else {\n throw e;\n }\n }\n }\n\n const wywPreval = hasWywPreval(evaluated.value)\n ? evaluated.value.__wywPreval\n : undefined;\n\n if (!wywPreval) {\n return null;\n }\n\n const valueCache: ValueCache = new Map();\n Object.entries(wywPreval).forEach(([key, lazyValue]) => {\n const value = wrap(lazyValue);\n valueCache.set(key, value);\n });\n\n log(`<< evaluated __wywPreval %O`, valueCache);\n\n return [valueCache, evaluated.dependencies];\n}\n"],"mappings":";;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AAAqF,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGrF,MAAMG,IAAI,GAAOC,EAAW,IAAgB;EAC1C,IAAI;IACF,OAAOA,EAAE,CAAC,CAAC;EACb,CAAC,CAAC,OAAOJ,CAAC,EAAE;IACV,OAAOA,CAAC;EACV;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,UAAUK,QAAQA,CAAA,EAEa;EACpC,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAI;EAC3B,MAAM;IAAEC;EAAI,CAAC,GAAGD,UAAU;EAE1BC,GAAG,CAAC,yBAAyB,CAAC;EAE9B,IAAIC,SAAsC;EAE1C,OAAOA,SAAS,KAAKC,SAAS,EAAE;IAC9B,IAAI;MACFD,SAAS,GAAG,IAAAE,mBAAQ,EAAC,IAAI,CAACC,QAAQ,EAAEL,UAAU,CAAC;IACjD,CAAC,CAAC,OAAON,CAAC,EAAE;MACV,IAAI,IAAAY,wDAA4B,EAACZ,CAAC,CAAC,EAAE;QACnCM,UAAU,CAACC,GAAG,CACZ,8HACF,CAAC;QACD,MAAM,CAAC,mBAAmB,EAAEP,CAAC,CAACM,UAAU,EAAEG,SAAS,CAAC;MACtD,CAAC,MAAM;QACL,MAAMT,CAAC;MACT;IACF;EACF;EAEA,MAAMa,SAAS,GAAG,IAAAC,qBAAY,EAACN,SAAS,CAACO,KAAK,CAAC,GAC3CP,SAAS,CAACO,KAAK,CAACC,WAAW,GAC3BP,SAAS;EAEb,IAAI,CAACI,SAAS,EAAE;IACd,OAAO,IAAI;EACb;EAEA,MAAMI,UAAsB,GAAG,IAAIC,GAAG,CAAC,CAAC;EACxCC,MAAM,CAACC,OAAO,CAACP,SAAS,CAAC,CAACQ,OAAO,CAAC,CAAC,CAACC,GAAG,EAAEC,SAAS,CAAC,KAAK;IACtD,MAAMR,KAAK,GAAGZ,IAAI,CAACoB,SAAS,CAAC;IAC7BN,UAAU,CAACO,GAAG,CAACF,GAAG,EAAEP,KAAK,CAAC;EAC5B,CAAC,CAAC;EAEFR,GAAG,CAAC,6BAA6B,EAAEU,UAAU,CAAC;EAE9C,OAAO,CAACA,UAAU,EAAET,SAAS,CAACiB,YAAY,CAAC;AAC7C","ignoreList":[]}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.explodeReexports = explodeReexports;
7
7
  var _generator = _interopRequireDefault(require("@babel/generator"));
8
8
  var _getExports = require("./getExports");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
10
  const getWildcardReexport = (babel, ast) => {
11
11
  const reexportsFrom = [];
12
12
  ast.program.body.forEach(node => {
@@ -47,22 +47,22 @@ function* explodeReexports() {
47
47
  const importedEntrypoints = (0, _getExports.findExportsInImports)(this.entrypoint, resolvedImports);
48
48
  const replacements = new Map();
49
49
  for (const importedEntrypoint of importedEntrypoints) {
50
- const exports = yield* this.getNext('getExports', importedEntrypoint.entrypoint, undefined);
51
- const reexport = reexportsFrom.find(i => i.source === importedEntrypoint.import);
52
- if (reexport) {
53
- replacements.set(reexport.node, exports.length ? babel.types.exportNamedDeclaration(null, exports.map(i => babel.types.exportSpecifier(babel.types.identifier(i), babel.types.identifier(i))), babel.types.stringLiteral(importedEntrypoint.import)) : null);
50
+ if (importedEntrypoint.entrypoint.loadedAndParsed.evaluator !== 'ignored') {
51
+ const reexport = reexportsFrom.find(i => i.source === importedEntrypoint.import);
52
+ if (reexport) {
53
+ const exports = yield* this.getNext('getExports', importedEntrypoint.entrypoint, undefined);
54
+ if (exports.length !== 0) {
55
+ replacements.set(reexport.node, babel.types.exportNamedDeclaration(null, exports.map(i => babel.types.exportSpecifier(babel.types.identifier(i), babel.types.identifier(i))), babel.types.stringLiteral(importedEntrypoint.import)));
56
+ }
57
+ }
54
58
  }
55
59
  }
56
60
 
57
61
  // Replace wildcard reexport with named reexports
58
62
  babel.traverse(loadedAndParsed.ast, {
59
63
  ExportAllDeclaration(path) {
60
- const replacement = replacements.get(path.node);
61
- if (replacement) {
62
- path.replaceWith(replacement);
63
- } else {
64
- path.remove();
65
- }
64
+ if (!replacements.has(path.node)) return;
65
+ path.replaceWith(replacements.get(path.node));
66
66
  }
67
67
  });
68
68
  loadedAndParsed.code = (0, _generator.default)(loadedAndParsed.ast).code;
@@ -1 +1 @@
1
- {"version":3,"file":"explodeReexports.js","names":["_generator","_interopRequireDefault","require","_getExports","obj","__esModule","default","getWildcardReexport","babel","ast","reexportsFrom","program","body","forEach","node","types","isExportAllDeclaration","source","isStringLiteral","push","value","explodeReexports","services","log","loadedAndParsed","entrypoint","evaluator","length","resolvedImports","getNext","imports","Map","map","i","importedEntrypoints","findExportsInImports","replacements","importedEntrypoint","exports","undefined","reexport","find","import","set","exportNamedDeclaration","exportSpecifier","identifier","stringLiteral","traverse","ExportAllDeclaration","path","replacement","get","replaceWith","remove","code","generate"],"sources":["../../../src/transform/generators/explodeReexports.ts"],"sourcesContent":["import generate from '@babel/generator';\nimport type { ExportAllDeclaration, File, Node } from '@babel/types';\n\nimport type { Core } from '../../babel';\nimport type { IExplodeReexportsAction, SyncScenarioForAction } from '../types';\n\nimport { findExportsInImports } from './getExports';\n\nconst getWildcardReexport = (babel: Core, ast: File) => {\n const reexportsFrom: { node: ExportAllDeclaration; source: string }[] = [];\n ast.program.body.forEach((node) => {\n if (\n babel.types.isExportAllDeclaration(node) &&\n node.source &&\n babel.types.isStringLiteral(node.source)\n ) {\n reexportsFrom.push({\n source: node.source.value,\n node,\n });\n }\n });\n\n return reexportsFrom;\n};\n\n/**\n * Replaces wildcard reexports with named reexports.\n * Recursively emits getExports for each reexported module,\n * and replaces wildcard with resolved named.\n */\nexport function* explodeReexports(\n this: IExplodeReexportsAction\n): SyncScenarioForAction<IExplodeReexportsAction> {\n const { babel } = this.services;\n const { log, loadedAndParsed } = this.entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n return;\n }\n\n const reexportsFrom = getWildcardReexport(babel, loadedAndParsed.ast);\n if (!reexportsFrom.length) {\n return;\n }\n\n log('has wildcard reexport from %o', reexportsFrom);\n\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports: new Map(reexportsFrom.map((i) => [i.source, []])),\n }\n );\n\n const importedEntrypoints = findExportsInImports(\n this.entrypoint,\n resolvedImports\n );\n\n const replacements = new Map<ExportAllDeclaration, Node | null>();\n for (const importedEntrypoint of importedEntrypoints) {\n const exports = yield* this.getNext(\n 'getExports',\n importedEntrypoint.entrypoint,\n undefined\n );\n\n const reexport = reexportsFrom.find(\n (i) => i.source === importedEntrypoint.import\n );\n if (reexport) {\n replacements.set(\n reexport.node,\n exports.length\n ? babel.types.exportNamedDeclaration(\n null,\n exports.map((i) =>\n babel.types.exportSpecifier(\n babel.types.identifier(i),\n babel.types.identifier(i)\n )\n ),\n babel.types.stringLiteral(importedEntrypoint.import)\n )\n : null\n );\n }\n }\n\n // Replace wildcard reexport with named reexports\n babel.traverse(loadedAndParsed.ast, {\n ExportAllDeclaration(path) {\n const replacement = replacements.get(path.node);\n if (replacement) {\n path.replaceWith(replacement);\n } else {\n path.remove();\n }\n },\n });\n\n loadedAndParsed.code = generate(loadedAndParsed.ast).code;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,WAAA,GAAAD,OAAA;AAAoD,SAAAD,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAEpD,MAAMG,mBAAmB,GAAGA,CAACC,KAAW,EAAEC,GAAS,KAAK;EACtD,MAAMC,aAA+D,GAAG,EAAE;EAC1ED,GAAG,CAACE,OAAO,CAACC,IAAI,CAACC,OAAO,CAAEC,IAAI,IAAK;IACjC,IACEN,KAAK,CAACO,KAAK,CAACC,sBAAsB,CAACF,IAAI,CAAC,IACxCA,IAAI,CAACG,MAAM,IACXT,KAAK,CAACO,KAAK,CAACG,eAAe,CAACJ,IAAI,CAACG,MAAM,CAAC,EACxC;MACAP,aAAa,CAACS,IAAI,CAAC;QACjBF,MAAM,EAAEH,IAAI,CAACG,MAAM,CAACG,KAAK;QACzBN;MACF,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEF,OAAOJ,aAAa;AACtB,CAAC;;AAED;AACA;AACA;AACA;AACA;AACO,UAAUW,gBAAgBA,CAAA,EAEiB;EAChD,MAAM;IAAEb;EAAM,CAAC,GAAG,IAAI,CAACc,QAAQ;EAC/B,MAAM;IAAEC,GAAG;IAAEC;EAAgB,CAAC,GAAG,IAAI,CAACC,UAAU;EAChD,IAAID,eAAe,CAACE,SAAS,KAAK,SAAS,EAAE;IAC3C;EACF;EAEA,MAAMhB,aAAa,GAAGH,mBAAmB,CAACC,KAAK,EAAEgB,eAAe,CAACf,GAAG,CAAC;EACrE,IAAI,CAACC,aAAa,CAACiB,MAAM,EAAE;IACzB;EACF;EAEAJ,GAAG,CAAC,+BAA+B,EAAEb,aAAa,CAAC;EAEnD,MAAMkB,eAAe,GAAG,OAAO,IAAI,CAACC,OAAO,CACzC,gBAAgB,EAChB,IAAI,CAACJ,UAAU,EACf;IACEK,OAAO,EAAE,IAAIC,GAAG,CAACrB,aAAa,CAACsB,GAAG,CAAEC,CAAC,IAAK,CAACA,CAAC,CAAChB,MAAM,EAAE,EAAE,CAAC,CAAC;EAC3D,CACF,CAAC;EAED,MAAMiB,mBAAmB,GAAG,IAAAC,gCAAoB,EAC9C,IAAI,CAACV,UAAU,EACfG,eACF,CAAC;EAED,MAAMQ,YAAY,GAAG,IAAIL,GAAG,CAAoC,CAAC;EACjE,KAAK,MAAMM,kBAAkB,IAAIH,mBAAmB,EAAE;IACpD,MAAMI,OAAO,GAAG,OAAO,IAAI,CAACT,OAAO,CACjC,YAAY,EACZQ,kBAAkB,CAACZ,UAAU,EAC7Bc,SACF,CAAC;IAED,MAAMC,QAAQ,GAAG9B,aAAa,CAAC+B,IAAI,CAChCR,CAAC,IAAKA,CAAC,CAAChB,MAAM,KAAKoB,kBAAkB,CAACK,MACzC,CAAC;IACD,IAAIF,QAAQ,EAAE;MACZJ,YAAY,CAACO,GAAG,CACdH,QAAQ,CAAC1B,IAAI,EACbwB,OAAO,CAACX,MAAM,GACVnB,KAAK,CAACO,KAAK,CAAC6B,sBAAsB,CAChC,IAAI,EACJN,OAAO,CAACN,GAAG,CAAEC,CAAC,IACZzB,KAAK,CAACO,KAAK,CAAC8B,eAAe,CACzBrC,KAAK,CAACO,KAAK,CAAC+B,UAAU,CAACb,CAAC,CAAC,EACzBzB,KAAK,CAACO,KAAK,CAAC+B,UAAU,CAACb,CAAC,CAC1B,CACF,CAAC,EACDzB,KAAK,CAACO,KAAK,CAACgC,aAAa,CAACV,kBAAkB,CAACK,MAAM,CACrD,CAAC,GACD,IACN,CAAC;IACH;EACF;;EAEA;EACAlC,KAAK,CAACwC,QAAQ,CAACxB,eAAe,CAACf,GAAG,EAAE;IAClCwC,oBAAoBA,CAACC,IAAI,EAAE;MACzB,MAAMC,WAAW,GAAGf,YAAY,CAACgB,GAAG,CAACF,IAAI,CAACpC,IAAI,CAAC;MAC/C,IAAIqC,WAAW,EAAE;QACfD,IAAI,CAACG,WAAW,CAACF,WAAW,CAAC;MAC/B,CAAC,MAAM;QACLD,IAAI,CAACI,MAAM,CAAC,CAAC;MACf;IACF;EACF,CAAC,CAAC;EAEF9B,eAAe,CAAC+B,IAAI,GAAG,IAAAC,kBAAQ,EAAChC,eAAe,CAACf,GAAG,CAAC,CAAC8C,IAAI;AAC3D"}
1
+ {"version":3,"file":"explodeReexports.js","names":["_generator","_interopRequireDefault","require","_getExports","e","__esModule","default","getWildcardReexport","babel","ast","reexportsFrom","program","body","forEach","node","types","isExportAllDeclaration","source","isStringLiteral","push","value","explodeReexports","services","log","loadedAndParsed","entrypoint","evaluator","length","resolvedImports","getNext","imports","Map","map","i","importedEntrypoints","findExportsInImports","replacements","importedEntrypoint","reexport","find","import","exports","undefined","set","exportNamedDeclaration","exportSpecifier","identifier","stringLiteral","traverse","ExportAllDeclaration","path","has","replaceWith","get","code","generate"],"sources":["../../../src/transform/generators/explodeReexports.ts"],"sourcesContent":["import generate from '@babel/generator';\nimport type { ExportAllDeclaration, File, Node } from '@babel/types';\n\nimport type { Core } from '../../babel';\nimport type { IExplodeReexportsAction, SyncScenarioForAction } from '../types';\n\nimport { findExportsInImports } from './getExports';\n\nconst getWildcardReexport = (babel: Core, ast: File) => {\n const reexportsFrom: { node: ExportAllDeclaration; source: string }[] = [];\n ast.program.body.forEach((node) => {\n if (\n babel.types.isExportAllDeclaration(node) &&\n node.source &&\n babel.types.isStringLiteral(node.source)\n ) {\n reexportsFrom.push({\n source: node.source.value,\n node,\n });\n }\n });\n\n return reexportsFrom;\n};\n\n/**\n * Replaces wildcard reexports with named reexports.\n * Recursively emits getExports for each reexported module,\n * and replaces wildcard with resolved named.\n */\nexport function* explodeReexports(\n this: IExplodeReexportsAction\n): SyncScenarioForAction<IExplodeReexportsAction> {\n const { babel } = this.services;\n const { log, loadedAndParsed } = this.entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n return;\n }\n\n const reexportsFrom = getWildcardReexport(babel, loadedAndParsed.ast);\n if (!reexportsFrom.length) {\n return;\n }\n\n log('has wildcard reexport from %o', reexportsFrom);\n\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports: new Map(reexportsFrom.map((i) => [i.source, []])),\n }\n );\n\n const importedEntrypoints = findExportsInImports(\n this.entrypoint,\n resolvedImports\n );\n\n const replacements = new Map<ExportAllDeclaration, Node>();\n for (const importedEntrypoint of importedEntrypoints) {\n if (importedEntrypoint.entrypoint.loadedAndParsed.evaluator !== 'ignored') {\n const reexport = reexportsFrom.find(\n (i) => i.source === importedEntrypoint.import\n );\n if (reexport) {\n const exports = yield* this.getNext(\n 'getExports',\n importedEntrypoint.entrypoint,\n undefined\n );\n\n if (exports.length !== 0) {\n replacements.set(\n reexport.node,\n babel.types.exportNamedDeclaration(\n null,\n exports.map((i) =>\n babel.types.exportSpecifier(\n babel.types.identifier(i),\n babel.types.identifier(i)\n )\n ),\n babel.types.stringLiteral(importedEntrypoint.import)\n )\n );\n }\n }\n }\n }\n\n // Replace wildcard reexport with named reexports\n babel.traverse(loadedAndParsed.ast, {\n ExportAllDeclaration(path) {\n if (!replacements.has(path.node)) return;\n path.replaceWith(replacements.get(path.node)!);\n },\n });\n\n loadedAndParsed.code = generate(loadedAndParsed.ast).code;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","names":["_sourceMap","require","_createStylisPreprocessor","extractCssFromAst","rules","originalCode","options","mappings","cssText","preprocessor","selector","text","createStylisPreprocessor","Object","keys","forEach","index","push","generated","line","column","original","start","name","source","atom","cssSourceMapText","length","generator","SourceMapGenerator","file","filename","replace","mapping","addMapping","setSourceContent","toString","extract","services","entrypoint","processors","data","loadedAndParsed","evaluator","Error","allRules","allReplacements","processor","artifacts","artifact","replacements","code"],"sources":["../../../src/transform/generators/extract.ts"],"sourcesContent":["import type { Mapping } from 'source-map';\nimport { SourceMapGenerator } from 'source-map';\n\nimport type { Replacements, Rules } from '@wyw-in-js/shared';\n\nimport type { Options, PreprocessorFn } from '../../types';\nimport type { IExtractAction, SyncScenarioForAction } from '../types';\nimport { createStylisPreprocessor } from './createStylisPreprocessor';\n\nfunction extractCssFromAst(\n rules: Rules,\n originalCode: string,\n options: Pick<\n Options,\n 'preprocessor' | 'filename' | 'outputFilename' | 'prefixer'\n >\n): { cssSourceMapText: string; cssText: string; rules: Rules } {\n const mappings: Mapping[] = [];\n\n let cssText = '';\n\n let preprocessor: PreprocessorFn;\n if (typeof options.preprocessor === 'function') {\n // eslint-disable-next-line prefer-destructuring\n preprocessor = options.preprocessor;\n } else {\n switch (options.preprocessor) {\n case 'none':\n preprocessor = (selector, text) => `${selector} {${text}}\\n`;\n break;\n case 'stylis':\n default:\n preprocessor = createStylisPreprocessor(options);\n }\n }\n\n Object.keys(rules).forEach((selector, index) => {\n mappings.push({\n generated: {\n line: index + 1,\n column: 0,\n },\n original: rules[selector].start!,\n name: selector,\n source: '',\n });\n\n if (rules[selector].atom) {\n // For atoms, we just directly insert cssText, to give the atomizer full control over the rules\n cssText += `${rules[selector].cssText}\\n`;\n } else {\n // Run each rule through stylis to support nesting\n cssText += `${preprocessor(selector, rules[selector].cssText)}\\n`;\n }\n });\n\n return {\n cssText,\n rules,\n\n get cssSourceMapText() {\n if (mappings?.length) {\n const generator = new SourceMapGenerator({\n file: options.filename.replace(/\\.js$/, '.css'),\n });\n\n mappings.forEach((mapping) =>\n generator.addMapping({ ...mapping, source: options.filename })\n );\n\n generator.setSourceContent(options.filename, originalCode);\n\n return generator.toString();\n }\n\n return '';\n },\n };\n}\n\n/**\n * Extract artifacts (e.g. CSS) from processors\n */\n// eslint-disable-next-line require-yield\nexport function* extract(\n this: IExtractAction\n): SyncScenarioForAction<IExtractAction> {\n const { options } = this.services;\n const { entrypoint } = this;\n const { processors } = this.data;\n const { loadedAndParsed } = entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n throw new Error('entrypoint was ignored');\n }\n\n let allRules: Rules = {};\n const allReplacements: Replacements = [];\n processors.forEach((processor) => {\n processor.artifacts.forEach((artifact) => {\n if (artifact[0] !== 'css') return;\n const [rules, replacements] = artifact[1] as [\n rules: Rules,\n sourceMapReplacements: Replacements,\n ];\n\n allRules = {\n ...allRules,\n ...rules,\n };\n\n allReplacements.push(...replacements);\n });\n });\n\n return {\n ...extractCssFromAst(allRules, loadedAndParsed.code, options),\n replacements: allReplacements,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","names":["_sourceMap","require","_createStylisPreprocessor","extractCssFromAst","rules","originalCode","options","mappings","cssText","preprocessor","selector","text","createStylisPreprocessor","Object","keys","forEach","index","push","generated","line","column","original","start","name","source","atom","cssSourceMapText","length","generator","SourceMapGenerator","file","filename","replace","mapping","addMapping","setSourceContent","toString","extract","services","entrypoint","processors","data","loadedAndParsed","evaluator","Error","allRules","allReplacements","processor","artifacts","artifact","replacements","code"],"sources":["../../../src/transform/generators/extract.ts"],"sourcesContent":["import type { Mapping } from 'source-map';\nimport { SourceMapGenerator } from 'source-map';\n\nimport type { Replacements, Rules } from '@wyw-in-js/shared';\n\nimport type { Options, PreprocessorFn } from '../../types';\nimport type { IExtractAction, SyncScenarioForAction } from '../types';\nimport { createStylisPreprocessor } from './createStylisPreprocessor';\n\nfunction extractCssFromAst(\n rules: Rules,\n originalCode: string,\n options: Pick<\n Options,\n 'preprocessor' | 'filename' | 'outputFilename' | 'prefixer' | 'keepComments'\n >\n): { cssSourceMapText: string; cssText: string; rules: Rules } {\n const mappings: Mapping[] = [];\n\n let cssText = '';\n\n let preprocessor: PreprocessorFn;\n if (typeof options.preprocessor === 'function') {\n // eslint-disable-next-line prefer-destructuring\n preprocessor = options.preprocessor;\n } else {\n switch (options.preprocessor) {\n case 'none':\n preprocessor = (selector, text) => `${selector} {${text}}\\n`;\n break;\n case 'stylis':\n default:\n preprocessor = createStylisPreprocessor(options);\n }\n }\n\n Object.keys(rules).forEach((selector, index) => {\n mappings.push({\n generated: {\n line: index + 1,\n column: 0,\n },\n original: rules[selector].start!,\n name: selector,\n source: '',\n });\n\n if (rules[selector].atom) {\n // For atoms, we just directly insert cssText, to give the atomizer full control over the rules\n cssText += `${rules[selector].cssText}\\n`;\n } else {\n // Run each rule through stylis to support nesting\n cssText += `${preprocessor(selector, rules[selector].cssText)}\\n`;\n }\n });\n\n return {\n cssText,\n rules,\n\n get cssSourceMapText() {\n if (mappings?.length) {\n const generator = new SourceMapGenerator({\n file: options.filename.replace(/\\.js$/, '.css'),\n });\n\n mappings.forEach((mapping) =>\n generator.addMapping({ ...mapping, source: options.filename })\n );\n\n generator.setSourceContent(options.filename, originalCode);\n\n return generator.toString();\n }\n\n return '';\n },\n };\n}\n\n/**\n * Extract artifacts (e.g. CSS) from processors\n */\n// eslint-disable-next-line require-yield\nexport function* extract(\n this: IExtractAction\n): SyncScenarioForAction<IExtractAction> {\n const { options } = this.services;\n const { entrypoint } = this;\n const { processors } = this.data;\n const { loadedAndParsed } = entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n throw new Error('entrypoint was ignored');\n }\n\n let allRules: Rules = {};\n const allReplacements: Replacements = [];\n processors.forEach((processor) => {\n processor.artifacts.forEach((artifact) => {\n if (artifact[0] !== 'css') return;\n const [rules, replacements] = artifact[1] as [\n rules: Rules,\n sourceMapReplacements: Replacements,\n ];\n\n allRules = {\n ...allRules,\n ...rules,\n };\n\n allReplacements.push(...replacements);\n });\n });\n\n return {\n ...extractCssFromAst(allRules, loadedAndParsed.code, options),\n replacements: allReplacements,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getExports.js","names":["_collectExportsAndImports","require","findExportsInImports","entrypoint","imports","results","imp","resolved","Error","source","newEntrypoint","createChild","push","import","getExports","services","cache","loadedAndParsed","ast","undefined","log","name","has","get","withWildcardReexport","result","babel","traverse","Program","path","exports","reexports","collectExportsAndImports","Object","keys","forEach","token","e","exported","filter","length","resolvedImports","getNext","Map","map","i","importedEntrypoints","importedEntrypoint","add"],"sources":["../../../src/transform/generators/getExports.ts"],"sourcesContent":["import type { IReexport } from '../../utils/collectExportsAndImports';\nimport { collectExportsAndImports } from '../../utils/collectExportsAndImports';\nimport type { Entrypoint } from '../Entrypoint';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport type { IGetExportsAction, SyncScenarioForAction } from '../types';\n\nexport function findExportsInImports(\n entrypoint: Entrypoint,\n imports: IEntrypointDependency[]\n): { entrypoint: Entrypoint; import: string }[] {\n const results: {\n entrypoint: Entrypoint;\n import: string;\n }[] = [];\n\n for (const imp of imports) {\n const { resolved } = imp;\n if (!resolved) {\n throw new Error(`Could not resolve import ${imp.source}`);\n }\n\n const newEntrypoint = entrypoint.createChild(resolved, []);\n\n if (newEntrypoint === 'loop') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n results.push({\n entrypoint: newEntrypoint,\n import: imp.source,\n });\n }\n\n return results;\n}\n\nexport function* getExports(\n this: IGetExportsAction\n): SyncScenarioForAction<IGetExportsAction> {\n const {\n entrypoint,\n services: { cache },\n } = this;\n const { loadedAndParsed } = entrypoint;\n if (loadedAndParsed.ast === undefined) {\n return [];\n }\n\n entrypoint.log(`get exports from %s`, entrypoint.name);\n\n if (cache.has('exports', entrypoint.name)) {\n return cache.get('exports', entrypoint.name)!;\n }\n\n let withWildcardReexport: IReexport[] = [];\n const result: string[] = [];\n\n this.services.babel.traverse(loadedAndParsed.ast!, {\n Program(path) {\n const { exports, reexports } = collectExportsAndImports(path, 'disabled');\n Object.keys(exports).forEach((token) => {\n result.push(token);\n });\n\n reexports.forEach((e) => {\n if (e.exported !== '*') {\n result.push(e.exported);\n }\n });\n\n withWildcardReexport = reexports.filter((e) => e.exported === '*');\n },\n });\n\n if (withWildcardReexport.length) {\n const resolvedImports = yield* this.getNext('resolveImports', entrypoint, {\n imports: new Map(withWildcardReexport.map((i) => [i.source, []])),\n });\n\n const importedEntrypoints = findExportsInImports(\n entrypoint,\n resolvedImports\n );\n\n for (const importedEntrypoint of importedEntrypoints) {\n const exports = yield* this.getNext(\n 'getExports',\n importedEntrypoint.entrypoint,\n undefined\n );\n\n result.push(...exports);\n }\n }\n\n entrypoint.log(`exports: %o`, result);\n\n cache.add('exports', entrypoint.name, result);\n\n return result;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"getExports.js","names":["_collectExportsAndImports","require","findExportsInImports","entrypoint","imports","results","imp","resolved","Error","source","newEntrypoint","createChild","push","import","getExports","services","cache","loadedAndParsed","ast","undefined","log","name","has","get","withWildcardReexport","result","babel","traverse","Program","path","exports","reexports","collectExportsAndImports","Object","keys","forEach","token","e","exported","filter","length","resolvedImports","getNext","Map","map","i","importedEntrypoints","importedEntrypoint","add"],"sources":["../../../src/transform/generators/getExports.ts"],"sourcesContent":["import type { IReexport } from '../../utils/collectExportsAndImports';\nimport { collectExportsAndImports } from '../../utils/collectExportsAndImports';\nimport type { Entrypoint } from '../Entrypoint';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport type { IGetExportsAction, SyncScenarioForAction } from '../types';\n\nexport function findExportsInImports(\n entrypoint: Entrypoint,\n imports: IEntrypointDependency[]\n): { entrypoint: Entrypoint; import: string }[] {\n const results: {\n entrypoint: Entrypoint;\n import: string;\n }[] = [];\n\n for (const imp of imports) {\n const { resolved } = imp;\n if (!resolved) {\n throw new Error(`Could not resolve import ${imp.source}`);\n }\n\n const newEntrypoint = entrypoint.createChild(resolved, []);\n\n if (newEntrypoint === 'loop') {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n results.push({\n entrypoint: newEntrypoint,\n import: imp.source,\n });\n }\n\n return results;\n}\n\nexport function* getExports(\n this: IGetExportsAction\n): SyncScenarioForAction<IGetExportsAction> {\n const {\n entrypoint,\n services: { cache },\n } = this;\n const { loadedAndParsed } = entrypoint;\n if (loadedAndParsed.ast === undefined) {\n return [];\n }\n\n entrypoint.log(`get exports from %s`, entrypoint.name);\n\n if (cache.has('exports', entrypoint.name)) {\n return cache.get('exports', entrypoint.name)!;\n }\n\n let withWildcardReexport: IReexport[] = [];\n const result: string[] = [];\n\n this.services.babel.traverse(loadedAndParsed.ast!, {\n Program(path) {\n const { exports, reexports } = collectExportsAndImports(path, 'disabled');\n Object.keys(exports).forEach((token) => {\n result.push(token);\n });\n\n reexports.forEach((e) => {\n if (e.exported !== '*') {\n result.push(e.exported);\n }\n });\n\n withWildcardReexport = reexports.filter((e) => e.exported === '*');\n },\n });\n\n if (withWildcardReexport.length) {\n const resolvedImports = yield* this.getNext('resolveImports', entrypoint, {\n imports: new Map(withWildcardReexport.map((i) => [i.source, []])),\n });\n\n const importedEntrypoints = findExportsInImports(\n entrypoint,\n resolvedImports\n );\n\n for (const importedEntrypoint of importedEntrypoints) {\n const exports = yield* this.getNext(\n 'getExports',\n importedEntrypoint.entrypoint,\n undefined\n );\n\n result.push(...exports);\n }\n }\n\n entrypoint.log(`exports: %o`, result);\n\n cache.add('exports', entrypoint.name, result);\n\n return result;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_baseProcessingHandlers","require","_collect","_evalFile","_extract","_workflow","baseHandlers","exports","baseProcessingHandlers","collect","evalFile","extract","workflow"],"sources":["../../../src/transform/generators/index.ts"],"sourcesContent":["import { baseProcessingHandlers } from './baseProcessingHandlers';\nimport { collect } from './collect';\nimport { evalFile } from './evalFile';\nimport { extract } from './extract';\nimport { workflow } from './workflow';\n\nexport const baseHandlers = {\n ...baseProcessingHandlers,\n collect,\n evalFile,\n extract,\n workflow,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEO,MAAMK,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1B,GAAGE,8CAAsB;EACzBC,OAAO,EAAPA,gBAAO;EACPC,QAAQ,EAARA,kBAAQ;EACRC,OAAO,EAAPA,gBAAO;EACPC,QAAQ,EAARA;AACF,CAAC"}
1
+ {"version":3,"file":"index.js","names":["_baseProcessingHandlers","require","_collect","_evalFile","_extract","_workflow","baseHandlers","exports","baseProcessingHandlers","collect","evalFile","extract","workflow"],"sources":["../../../src/transform/generators/index.ts"],"sourcesContent":["import { baseProcessingHandlers } from './baseProcessingHandlers';\nimport { collect } from './collect';\nimport { evalFile } from './evalFile';\nimport { extract } from './extract';\nimport { workflow } from './workflow';\n\nexport const baseHandlers = {\n ...baseProcessingHandlers,\n collect,\n evalFile,\n extract,\n workflow,\n};\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,SAAA,GAAAJ,OAAA;AAEO,MAAMK,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1B,GAAGE,8CAAsB;EACzBC,OAAO,EAAPA,gBAAO;EACPC,QAAQ,EAARA,kBAAQ;EACRC,OAAO,EAAPA,gBAAO;EACPC,QAAQ,EAARA;AACF,CAAC","ignoreList":[]}