@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,4 +1,3 @@
1
- /// <reference types="debug" />
2
1
  import type { Debugger } from '@wyw-in-js/shared';
3
2
  import type { ParentEntrypoint } from '../types';
4
3
  import type { Services } from './types';
@@ -1,4 +1,3 @@
1
- /// <reference types="debug" />
2
1
  import type { TransformOptions } from '@babel/core';
3
2
  import type { File } from '@babel/types';
4
3
  import type { Debugger, EvalRule } from '@wyw-in-js/shared';
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isSuperSet = exports.mergeOnly = exports.getStack = exports.loadAndParse = exports.parseFile = exports.getMatchedRule = void 0;
3
+ exports.isSuperSet = void 0;
4
+ exports.getMatchedRule = getMatchedRule;
5
+ exports.parseFile = parseFile;
6
+ exports.loadAndParse = loadAndParse;
7
+ exports.getStack = getStack;
8
+ exports.mergeOnly = mergeOnly;
4
9
  const fs_1 = require("fs");
5
10
  const path_1 = require("path");
6
11
  const shared_1 = require("@wyw-in-js/shared");
@@ -8,6 +13,7 @@ const buildOptions_1 = require("../options/buildOptions");
8
13
  const loadBabelOptions_1 = require("../options/loadBabelOptions");
9
14
  const getFileIdx_1 = require("../utils/getFileIdx");
10
15
  const getPluginKey_1 = require("../utils/getPluginKey");
16
+ const parseRequest_1 = require("../utils/parseRequest");
11
17
  function getMatchedRule(rules, filename, code) {
12
18
  for (let i = rules.length - 1; i >= 0; i--) {
13
19
  const rule = rules[i];
@@ -23,7 +29,6 @@ function getMatchedRule(rules, filename, code) {
23
29
  }
24
30
  return { action: 'ignore' };
25
31
  }
26
- exports.getMatchedRule = getMatchedRule;
27
32
  function parseFile(babel, filename, originalCode, parseConfig) {
28
33
  const log = shared_1.logger.extend('transform:parse').extend((0, getFileIdx_1.getFileIdx)(filename));
29
34
  const parseResult = babel.parseSync(originalCode, parseConfig);
@@ -33,7 +38,6 @@ function parseFile(babel, filename, originalCode, parseConfig) {
33
38
  log('stage-1', `${filename} has been parsed`);
34
39
  return parseResult;
35
40
  }
36
- exports.parseFile = parseFile;
37
41
  const isModuleResolver = (plugin) => {
38
42
  const key = (0, getPluginKey_1.getPluginKey)(plugin);
39
43
  if (!key)
@@ -44,6 +48,93 @@ const isModuleResolver = (plugin) => {
44
48
  return /([\\/])babel-plugin-module-resolver\1/.test(key);
45
49
  };
46
50
  let moduleResolverWarned = false;
51
+ const normalizeBabelKey = (key) => key.replace(/\\/g, '/');
52
+ const isBabelPresetTypescript = (key) => {
53
+ const normalized = normalizeBabelKey(key);
54
+ if (normalized === 'typescript')
55
+ return true;
56
+ return normalized.includes('preset-typescript');
57
+ };
58
+ const isBabelTransformTypescriptPlugin = (key) => {
59
+ const normalized = normalizeBabelKey(key);
60
+ if (normalized === 'transform-typescript')
61
+ return true;
62
+ return normalized.includes('plugin-transform-typescript');
63
+ };
64
+ const withAllowDeclareFields = (item) => {
65
+ if (!Array.isArray(item)) {
66
+ return [item, { allowDeclareFields: true }];
67
+ }
68
+ const [target, rawOptions, ...rest] = item;
69
+ const options = typeof rawOptions === 'object' &&
70
+ rawOptions !== null &&
71
+ !Array.isArray(rawOptions)
72
+ ? rawOptions
73
+ : {};
74
+ if ('allowDeclareFields' in options) {
75
+ return item;
76
+ }
77
+ return [target, { ...options, allowDeclareFields: true }, ...rest];
78
+ };
79
+ const ensureAllowDeclareFieldsInBabelOptions = (babelOptions, scope = 'top') => {
80
+ let presetsChanged = false;
81
+ let pluginsChanged = false;
82
+ let overridesChanged = false;
83
+ let envChanged = false;
84
+ const presets = babelOptions.presets?.map((item) => {
85
+ const key = (0, getPluginKey_1.getPluginKey)(item);
86
+ if (!key || !isBabelPresetTypescript(key)) {
87
+ return item;
88
+ }
89
+ presetsChanged = true;
90
+ return withAllowDeclareFields(item);
91
+ });
92
+ const plugins = babelOptions.plugins?.map((item) => {
93
+ const key = (0, getPluginKey_1.getPluginKey)(item);
94
+ if (!key || !isBabelTransformTypescriptPlugin(key)) {
95
+ return item;
96
+ }
97
+ pluginsChanged = true;
98
+ return withAllowDeclareFields(item);
99
+ });
100
+ const { overrides: baseOverrides } = babelOptions;
101
+ let overrides = baseOverrides;
102
+ if (scope === 'top' && baseOverrides) {
103
+ const patchedOverrides = baseOverrides.map((override) => ensureAllowDeclareFieldsInBabelOptions(override, 'override'));
104
+ if (patchedOverrides.some((patchedOverride, idx) => patchedOverride !== baseOverrides[idx])) {
105
+ overridesChanged = true;
106
+ overrides = patchedOverrides;
107
+ }
108
+ }
109
+ const { env: baseEnv } = babelOptions;
110
+ let env = baseEnv;
111
+ if (scope === 'top' && baseEnv) {
112
+ const entries = Object.entries(baseEnv);
113
+ const patchedEntries = entries.map(([envName, envOptions]) => [
114
+ envName,
115
+ envOptions
116
+ ? ensureAllowDeclareFieldsInBabelOptions(envOptions, 'env')
117
+ : envOptions,
118
+ ]);
119
+ if (patchedEntries.some(([, patched], idx) => patched !== entries[idx][1])) {
120
+ envChanged = true;
121
+ env = Object.fromEntries(patchedEntries);
122
+ }
123
+ }
124
+ if (!presetsChanged && !pluginsChanged && !overridesChanged && !envChanged) {
125
+ return babelOptions;
126
+ }
127
+ const next = { ...babelOptions };
128
+ if (presetsChanged)
129
+ next.presets = presets;
130
+ if (pluginsChanged)
131
+ next.plugins = plugins;
132
+ if (overridesChanged)
133
+ next.overrides = overrides;
134
+ if (envChanged)
135
+ next.env = env;
136
+ return next;
137
+ };
47
138
  function buildConfigs(services, name, pluginOptions, babelOptions) {
48
139
  const { babel, options } = services;
49
140
  const commonOptions = {
@@ -54,10 +145,20 @@ function buildConfigs(services, name, pluginOptions, babelOptions) {
54
145
  sourceFileName: name,
55
146
  sourceMaps: true,
56
147
  };
57
- const rawConfig = (0, buildOptions_1.buildOptions)(pluginOptions?.babelOptions, babelOptions, commonOptions);
148
+ const isTypescriptFile = name.endsWith('.ts') ||
149
+ name.endsWith('.tsx') ||
150
+ name.endsWith('.mts') ||
151
+ name.endsWith('.cts');
152
+ let rawConfig = (0, buildOptions_1.buildOptions)(pluginOptions?.babelOptions, babelOptions, commonOptions);
153
+ if (isTypescriptFile) {
154
+ rawConfig = ensureAllowDeclareFieldsInBabelOptions(rawConfig);
155
+ }
58
156
  const useBabelConfigs = (0, shared_1.isFeatureEnabled)(pluginOptions.features, 'useBabelConfigs', name);
59
157
  if (!useBabelConfigs) {
60
- rawConfig.configFile = false;
158
+ rawConfig = {
159
+ ...rawConfig,
160
+ configFile: false,
161
+ };
61
162
  }
62
163
  const parseConfig = (0, loadBabelOptions_1.loadBabelOptions)(babel, name, {
63
164
  babelrc: useBabelConfigs,
@@ -73,11 +174,14 @@ function buildConfigs(services, name, pluginOptions, babelOptions) {
73
174
  `Please add the module-resolver plugin to the babelOptions for the wyw-in-js plugin.`);
74
175
  moduleResolverWarned = true;
75
176
  }
76
- rawConfig.plugins = [
77
- ...(parseConfig.plugins?.filter((plugin) => isModuleResolver(plugin)) ??
78
- []),
79
- ...(rawConfig.plugins ?? []),
80
- ];
177
+ rawConfig = {
178
+ ...rawConfig,
179
+ plugins: [
180
+ ...(parseConfig.plugins?.filter((plugin) => isModuleResolver(plugin)) ??
181
+ []),
182
+ ...(rawConfig.plugins ?? []),
183
+ ],
184
+ };
81
185
  }
82
186
  const evalConfig = (0, loadBabelOptions_1.loadBabelOptions)(babel, name, {
83
187
  babelrc: false,
@@ -90,24 +194,20 @@ function buildConfigs(services, name, pluginOptions, babelOptions) {
90
194
  }
91
195
  function loadAndParse(services, name, loadedCode, log) {
92
196
  const { babel, eventEmitter, options: { pluginOptions }, } = services;
93
- const extension = (0, path_1.extname)(name);
197
+ const filename = (0, parseRequest_1.stripQueryAndHash)(name);
198
+ const extension = (0, path_1.extname)(filename);
94
199
  if (!pluginOptions.extensions.includes(extension)) {
95
- log('[createEntrypoint] %s is ignored. If you want it to be processed, you should add \'%s\' to the "extensions" option.', name, extension);
200
+ log('[createEntrypoint] %s is ignored. If you want it to be processed, you should add \'%s\' to the "extensions" option.', filename, extension);
96
201
  return {
97
- get code() {
98
- if ((0, path_1.isAbsolute)(name)) {
99
- return loadedCode ?? (0, fs_1.readFileSync)(name, 'utf-8');
100
- }
101
- return ''; // it is a built-in module
102
- },
202
+ code: (0, path_1.isAbsolute)(filename) ? loadedCode : '',
103
203
  evaluator: 'ignored',
104
204
  reason: 'extension',
105
205
  };
106
206
  }
107
- const code = loadedCode ?? (0, fs_1.readFileSync)(name, 'utf-8');
108
- const { action, babelOptions } = getMatchedRule(pluginOptions.rules, name, code);
207
+ const code = loadedCode ?? (0, fs_1.readFileSync)(filename, 'utf-8');
208
+ const { action, babelOptions } = getMatchedRule(pluginOptions.rules, filename, code);
109
209
  let ast;
110
- const { evalConfig, parseConfig } = buildConfigs(services, name, pluginOptions, babelOptions);
210
+ const { evalConfig, parseConfig } = buildConfigs(services, filename, pluginOptions, babelOptions);
111
211
  const getOrParse = () => {
112
212
  if (ast)
113
213
  return ast;
@@ -128,7 +228,7 @@ function loadAndParse(services, name, loadedCode, log) {
128
228
  const evaluator = typeof action === 'function'
129
229
  ? action
130
230
  : require(require.resolve(action, {
131
- paths: [(0, path_1.dirname)(name)],
231
+ paths: [(0, path_1.dirname)(filename)],
132
232
  })).default;
133
233
  return {
134
234
  get ast() {
@@ -139,7 +239,6 @@ function loadAndParse(services, name, loadedCode, log) {
139
239
  evalConfig,
140
240
  };
141
241
  }
142
- exports.loadAndParse = loadAndParse;
143
242
  function getStack(entrypoint) {
144
243
  if (!entrypoint)
145
244
  return [];
@@ -151,13 +250,11 @@ function getStack(entrypoint) {
151
250
  }
152
251
  return stack;
153
252
  }
154
- exports.getStack = getStack;
155
253
  function mergeOnly(a, b) {
156
254
  const result = new Set(a);
157
255
  b.forEach((item) => result.add(item));
158
256
  return [...result].filter((i) => i).sort();
159
257
  }
160
- exports.mergeOnly = mergeOnly;
161
258
  const isSuperSet = (a, b) => {
162
259
  if (a.includes('*'))
163
260
  return true;
@@ -4,6 +4,7 @@ exports.Entrypoint = void 0;
4
4
  const ts_invariant_1 = require("ts-invariant");
5
5
  const BaseEntrypoint_1 = require("./BaseEntrypoint");
6
6
  const Entrypoint_helpers_1 = require("./Entrypoint.helpers");
7
+ const isStaticallyEvaluatableModule_1 = require("./isStaticallyEvaluatableModule");
7
8
  const EvaluatedEntrypoint_1 = require("./EvaluatedEntrypoint");
8
9
  const AbortError_1 = require("./actions/AbortError");
9
10
  const BaseAction_1 = require("./actions/BaseAction");
@@ -105,8 +106,8 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
105
106
  return ['cached', cached];
106
107
  }
107
108
  const exports = cached?.exports;
108
- const evaluatedOnly = cached?.evaluatedOnly ?? [];
109
- const mergedOnly = cached?.only ? (0, Entrypoint_helpers_1.mergeOnly)(cached.only, only) : only;
109
+ const evaluatedOnly = changed ? [] : cached?.evaluatedOnly ?? [];
110
+ const mergedOnly = cached?.only ? (0, Entrypoint_helpers_1.mergeOnly)(cached.only, only) : [...only];
110
111
  if (cached?.evaluated) {
111
112
  cached.log('is already evaluated with', cached.evaluatedOnly);
112
113
  }
@@ -126,6 +127,17 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
126
127
  return [isLoop ? 'loop' : 'created', cached.supersede(mergedOnly)];
127
128
  }
128
129
  const newEntrypoint = new Entrypoint(services, parent ? [parent] : [], loadedCode, name, mergedOnly, exports, evaluatedOnly, undefined, cached && 'resolveTasks' in cached ? cached.resolveTasks : undefined, cached && 'dependencies' in cached ? cached.dependencies : undefined, cached ? cached.generation + 1 : 1);
130
+ if (!newEntrypoint.ignored &&
131
+ !newEntrypoint.only.includes('*') &&
132
+ !newEntrypoint.only.includes('__wywPreval') &&
133
+ !newEntrypoint.only.includes('side-effect')) {
134
+ const { ast } = newEntrypoint.loadedAndParsed;
135
+ if (ast && (0, isStaticallyEvaluatableModule_1.isStaticallyEvaluatableModule)(ast)) {
136
+ newEntrypoint.log('[entrypoint] promote `only` to "*" for statically evaluatable module');
137
+ newEntrypoint.only.length = 0;
138
+ newEntrypoint.only.push('*');
139
+ }
140
+ }
129
141
  if (cached && !cached.evaluated) {
130
142
  cached.log('is cached, but with different code');
131
143
  cached.supersede(newEntrypoint);
@@ -1,4 +1,3 @@
1
- /// <reference types="debug" />
2
1
  import type { TransformOptions } from '@babel/core';
3
2
  import type { File } from '@babel/types';
4
3
  import type { Debugger, Evaluator } from '@wyw-in-js/shared';
@@ -1,4 +1,3 @@
1
- /// <reference types="debug" />
2
1
  import type { Debugger } from '@wyw-in-js/shared';
3
2
  import { BaseEntrypoint } from './BaseEntrypoint';
4
3
  import type { IEntrypointDependency } from './Entrypoint.types';
@@ -1,4 +1,3 @@
1
- /// <reference types="debug" />
2
1
  import '../../utils/dispose-polyfill';
3
2
  import type { Debugger } from '@wyw-in-js/shared';
4
3
  import type { Entrypoint } from '../Entrypoint';
@@ -19,6 +18,7 @@ export declare class BaseAction<TAction extends ActionQueueItem> implements GetB
19
18
  private activeScenario;
20
19
  private activeScenarioError?;
21
20
  private activeScenarioNextResults;
21
+ private handler;
22
22
  constructor(type: TAction['type'], services: Services, entrypoint: Entrypoint, data: TAction['data'], abortSignal: AbortSignal | null);
23
23
  get log(): Debugger;
24
24
  get ref(): string;
@@ -16,6 +16,7 @@ class BaseAction {
16
16
  activeScenario = null;
17
17
  activeScenarioError;
18
18
  activeScenarioNextResults = [];
19
+ handler = null;
19
20
  constructor(type, services, entrypoint, data, abortSignal) {
20
21
  this.type = type;
21
22
  this.services = services;
@@ -63,6 +64,10 @@ class BaseAction {
63
64
  };
64
65
  }
65
66
  run(handler) {
67
+ if (this.handler && this.handler !== handler) {
68
+ throw new Error(`action handler is already set`);
69
+ }
70
+ this.handler = handler;
66
71
  if (!this.activeScenario) {
67
72
  this.activeScenario = handler.call(this);
68
73
  this.activeScenarioNextResults = [];
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.syncActionRunner = exports.asyncActionRunner = void 0;
3
+ exports.asyncActionRunner = asyncActionRunner;
4
+ exports.syncActionRunner = syncActionRunner;
4
5
  const types_1 = require("../types");
5
6
  const AbortError_1 = require("./AbortError");
6
7
  function getHandler(action, actionHandlers) {
@@ -48,7 +49,6 @@ async function asyncActionRunner(action, actionHandlers, stack = [getActionRef(a
48
49
  }
49
50
  }
50
51
  }
51
- exports.asyncActionRunner = asyncActionRunner;
52
52
  function syncActionRunner(action, actionHandlers, stack = [getActionRef(action.type, action.entrypoint)]) {
53
53
  if (action.result !== types_1.Pending) {
54
54
  action.log('result is cached');
@@ -83,4 +83,3 @@ function syncActionRunner(action, actionHandlers, stack = [getActionRef(action.t
83
83
  }
84
84
  }
85
85
  }
86
- exports.syncActionRunner = syncActionRunner;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collect = void 0;
3
+ exports.collect = collect;
4
4
  const buildOptions_1 = require("../../options/buildOptions");
5
5
  const collector_1 = require("../../plugins/collector");
6
6
  const TransformMetadata_1 = require("../../utils/TransformMetadata");
@@ -54,4 +54,3 @@ function* collect() {
54
54
  metadata: transformMetadata ?? null,
55
55
  };
56
56
  }
57
- exports.collect = collect;
@@ -1,4 +1,3 @@
1
- /// <reference types="node" />
2
1
  import * as path from 'path';
3
2
  import type { Middleware } from 'stylis';
4
3
  import type { Options } from '../../types';
@@ -15,15 +15,29 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.createStylisPreprocessor = exports.createKeyframeSuffixerPlugin = exports.createStylisUrlReplacePlugin = exports.stylisGlobalPlugin = exports.transformUrl = void 0;
36
+ exports.stylisGlobalPlugin = void 0;
37
+ exports.transformUrl = transformUrl;
38
+ exports.createStylisUrlReplacePlugin = createStylisUrlReplacePlugin;
39
+ exports.createKeyframeSuffixerPlugin = createKeyframeSuffixerPlugin;
40
+ exports.createStylisPreprocessor = createStylisPreprocessor;
27
41
  /* eslint-disable no-continue */
28
42
  const path = __importStar(require("path"));
29
43
  const stylis_1 = require("stylis");
@@ -38,7 +52,6 @@ function transformUrl(url, outputFilename, sourceFilename, platformPath = path)
38
52
  }
39
53
  return relative.split(platformPath.sep).join(POSIX_SEP);
40
54
  }
41
- exports.transformUrl = transformUrl;
42
55
  const DEFINED_KEYFRAMES = Symbol('definedKeyframes');
43
56
  const ORIGINAL_KEYFRAME_NAME = Symbol('originalKeyframeName');
44
57
  const ORIGINAL_VALUE_KEY = Symbol('originalValue');
@@ -164,7 +177,6 @@ function createStylisUrlReplacePlugin(filename, outputFilename) {
164
177
  }
165
178
  };
166
179
  }
167
- exports.createStylisUrlReplacePlugin = createStylisUrlReplacePlugin;
168
180
  function createKeyframeSuffixerPlugin() {
169
181
  const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map((i) => i ? `-${i}-` : '');
170
182
  const getPrefixedProp = (prop) => prefixes.map((prefix) => `${prefix}${prop}`);
@@ -268,19 +280,162 @@ function createKeyframeSuffixerPlugin() {
268
280
  }
269
281
  };
270
282
  }
271
- exports.createKeyframeSuffixerPlugin = createKeyframeSuffixerPlugin;
272
283
  const isMiddleware = (obj) => obj !== null;
284
+ const displayKeywordRegexp = /^[a-z-]+$/;
285
+ const knownMultiKeywordDisplayTokens = new Set([
286
+ 'block',
287
+ 'inline',
288
+ 'flow',
289
+ 'flow-root',
290
+ 'flex',
291
+ 'grid',
292
+ 'table',
293
+ 'list-item',
294
+ ]);
295
+ function normalizeMultiKeywordDisplayValue(value) {
296
+ const trimmed = value.trim();
297
+ if (trimmed === '' || !/\s/.test(trimmed)) {
298
+ return null;
299
+ }
300
+ const importantRegexp = /!\s*important\s*$/i;
301
+ const hasImportant = importantRegexp.test(trimmed);
302
+ const withoutImportant = trimmed.replace(importantRegexp, '').trim();
303
+ const tokens = withoutImportant.split(/\s+/).filter(Boolean);
304
+ if (tokens.length < 2) {
305
+ return null;
306
+ }
307
+ const normalizedTokens = tokens.map((token) => token.toLowerCase());
308
+ if (!normalizedTokens.every((token) => displayKeywordRegexp.test(token))) {
309
+ return null;
310
+ }
311
+ const tokenSet = new Set(normalizedTokens);
312
+ const hasInline = tokenSet.has('inline');
313
+ const hasBlock = tokenSet.has('block');
314
+ if (hasInline && hasBlock) {
315
+ return null;
316
+ }
317
+ let outside = null;
318
+ if (hasInline) {
319
+ outside = 'inline';
320
+ }
321
+ else if (hasBlock) {
322
+ outside = 'block';
323
+ }
324
+ const insideCandidates = [
325
+ 'flow-root',
326
+ 'flow',
327
+ 'flex',
328
+ 'grid',
329
+ 'table',
330
+ ].filter((candidate) => tokenSet.has(candidate));
331
+ if (insideCandidates.length > 1) {
332
+ return null;
333
+ }
334
+ const inside = insideCandidates[0] ?? null;
335
+ const hasListItem = tokenSet.has('list-item');
336
+ const canCanonicalize = normalizedTokens.every((token) => knownMultiKeywordDisplayTokens.has(token));
337
+ if (canCanonicalize) {
338
+ const canonicalOutside = outside ?? 'block';
339
+ const canonicalInside = inside ?? (hasListItem ? 'flow' : null);
340
+ if (canonicalInside) {
341
+ let canonical = null;
342
+ if (hasListItem) {
343
+ if (canonicalInside === 'flow' && canonicalOutside === 'block') {
344
+ canonical = 'list-item';
345
+ }
346
+ }
347
+ else {
348
+ switch (canonicalInside) {
349
+ case 'flex':
350
+ canonical = canonicalOutside === 'inline' ? 'inline-flex' : 'flex';
351
+ break;
352
+ case 'grid':
353
+ canonical = canonicalOutside === 'inline' ? 'inline-grid' : 'grid';
354
+ break;
355
+ case 'table':
356
+ canonical =
357
+ canonicalOutside === 'inline' ? 'inline-table' : 'table';
358
+ break;
359
+ case 'flow-root':
360
+ canonical = canonicalOutside === 'block' ? 'flow-root' : null;
361
+ break;
362
+ case 'flow':
363
+ canonical = canonicalOutside === 'inline' ? 'inline' : 'block';
364
+ break;
365
+ default:
366
+ break;
367
+ }
368
+ }
369
+ if (canonical) {
370
+ return hasImportant ? `${canonical}!important` : canonical;
371
+ }
372
+ }
373
+ }
374
+ const innerDisplay = inside === 'flex' || inside === 'grid' ? inside : null;
375
+ if (innerDisplay &&
376
+ normalizedTokens[0] === innerDisplay &&
377
+ normalizedTokens.length > 1) {
378
+ const reordered = [
379
+ ...(outside ? [outside] : []),
380
+ ...normalizedTokens.filter((token) => token !== innerDisplay && token !== outside),
381
+ innerDisplay,
382
+ ].join(' ');
383
+ return hasImportant ? `${reordered}!important` : reordered;
384
+ }
385
+ return null;
386
+ }
387
+ function createStylisDisplayNormalizationPlugin() {
388
+ return (element) => {
389
+ if (!isDeclaration(element) || element.props !== 'display') {
390
+ return;
391
+ }
392
+ const normalized = normalizeMultiKeywordDisplayValue(element.children);
393
+ if (!normalized) {
394
+ return;
395
+ }
396
+ const decl = `display:${normalized};`;
397
+ Object.assign(element, {
398
+ children: normalized,
399
+ value: decl,
400
+ });
401
+ };
402
+ }
403
+ function createStylisStringifier(keepComments) {
404
+ if (!keepComments) {
405
+ return stylis_1.stringify;
406
+ }
407
+ const keepAllComments = keepComments === true;
408
+ const keepCommentsFilter = keepComments instanceof RegExp ? keepComments : null;
409
+ return (element, index, children, callback) => {
410
+ if (element.type === stylis_1.COMMENT) {
411
+ if (!keepAllComments && keepCommentsFilter) {
412
+ const commentValue = typeof element.children === 'string'
413
+ ? element.children
414
+ : element.value;
415
+ keepCommentsFilter.lastIndex = 0;
416
+ if (!keepCommentsFilter.test(commentValue)) {
417
+ return '';
418
+ }
419
+ }
420
+ return element.value;
421
+ }
422
+ return (0, stylis_1.stringify)(element, index, children, callback);
423
+ };
424
+ }
273
425
  function createStylisPreprocessor(options) {
426
+ const stringifier = createStylisStringifier(options.keepComments);
274
427
  function stylisPreprocess(selector, text) {
275
428
  const compiled = (0, stylis_1.compile)(`${selector} {${text}}\n`);
276
429
  return (0, stylis_1.serialize)(compiled, (0, stylis_1.middleware)([
277
430
  createStylisUrlReplacePlugin(options.filename, options.outputFilename),
278
431
  exports.stylisGlobalPlugin,
432
+ options.prefixer === false
433
+ ? null
434
+ : createStylisDisplayNormalizationPlugin(),
279
435
  options.prefixer === false ? null : stylis_1.prefixer,
280
436
  createKeyframeSuffixerPlugin(),
281
- stylis_1.stringify,
437
+ stringifier,
282
438
  ].filter(isMiddleware)));
283
439
  }
284
440
  return stylisPreprocess;
285
441
  }
286
- exports.createStylisPreprocessor = createStylisPreprocessor;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.evalFile = void 0;
6
+ exports.evalFile = evalFile;
7
7
  const evaluators_1 = __importDefault(require("../../evaluators"));
8
8
  const hasWywPreval_1 = __importDefault(require("../../utils/hasWywPreval"));
9
9
  const UnprocessedEntrypointError_1 = require("../actions/UnprocessedEntrypointError");
@@ -53,4 +53,3 @@ function* evalFile() {
53
53
  log(`<< evaluated __wywPreval %O`, valueCache);
54
54
  return [valueCache, evaluated.dependencies];
55
55
  }
56
- exports.evalFile = evalFile;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.explodeReexports = void 0;
6
+ exports.explodeReexports = explodeReexports;
7
7
  const generator_1 = __importDefault(require("@babel/generator"));
8
8
  const getExports_1 = require("./getExports");
9
9
  const getWildcardReexport = (babel, ast) => {
@@ -42,26 +42,23 @@ function* explodeReexports() {
42
42
  const importedEntrypoints = (0, getExports_1.findExportsInImports)(this.entrypoint, resolvedImports);
43
43
  const replacements = new Map();
44
44
  for (const importedEntrypoint of importedEntrypoints) {
45
- const exports = yield* this.getNext('getExports', importedEntrypoint.entrypoint, undefined);
46
- const reexport = reexportsFrom.find((i) => i.source === importedEntrypoint.import);
47
- if (reexport) {
48
- replacements.set(reexport.node, exports.length
49
- ? babel.types.exportNamedDeclaration(null, exports.map((i) => babel.types.exportSpecifier(babel.types.identifier(i), babel.types.identifier(i))), babel.types.stringLiteral(importedEntrypoint.import))
50
- : null);
45
+ if (importedEntrypoint.entrypoint.loadedAndParsed.evaluator !== 'ignored') {
46
+ const reexport = reexportsFrom.find((i) => i.source === importedEntrypoint.import);
47
+ if (reexport) {
48
+ const exports = yield* this.getNext('getExports', importedEntrypoint.entrypoint, undefined);
49
+ if (exports.length !== 0) {
50
+ 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)));
51
+ }
52
+ }
51
53
  }
52
54
  }
53
55
  // Replace wildcard reexport with named reexports
54
56
  babel.traverse(loadedAndParsed.ast, {
55
57
  ExportAllDeclaration(path) {
56
- const replacement = replacements.get(path.node);
57
- if (replacement) {
58
- path.replaceWith(replacement);
59
- }
60
- else {
61
- path.remove();
62
- }
58
+ if (!replacements.has(path.node))
59
+ return;
60
+ path.replaceWith(replacements.get(path.node));
63
61
  },
64
62
  });
65
63
  loadedAndParsed.code = (0, generator_1.default)(loadedAndParsed.ast).code;
66
64
  }
67
- exports.explodeReexports = explodeReexports;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extract = void 0;
3
+ exports.extract = extract;
4
4
  const source_map_1 = require("source-map");
5
5
  const createStylisPreprocessor_1 = require("./createStylisPreprocessor");
6
6
  function extractCssFromAst(rules, originalCode, options) {
@@ -87,4 +87,3 @@ function* extract() {
87
87
  replacements: allReplacements,
88
88
  };
89
89
  }
90
- exports.extract = extract;