@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
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.processEntrypoint = processEntrypoint;
7
7
  var _AbortError = require("../actions/AbortError");
8
- function dispose_SuppressedError(r, e) { return "undefined" != typeof SuppressedError ? dispose_SuppressedError = SuppressedError : (dispose_SuppressedError = function (r, e) { this.suppressed = r, this.error = e, this.stack = new Error().stack; }, dispose_SuppressedError.prototype = Object.create(Error.prototype, { constructor: { value: dispose_SuppressedError, writable: !0, configurable: !0 } })), new dispose_SuppressedError(r, e); }
9
- function _dispose(r, e, s) { function next() { for (; r.length > 0;) try { var o = r.pop(), p = o.d.call(o.v); if (o.a) return Promise.resolve(p).then(next, err); } catch (r) { return err(r); } if (s) throw e; } function err(r) { return e = s ? new dispose_SuppressedError(r, e) : r, s = !0, next(); } return next(); }
10
- function _using(o, e, n) { if (null == e) return e; if ("object" != typeof e) throw new TypeError("using declarations can only be used with objects, null, or undefined."); if (n) var r = e[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")]; if (null == r && (r = e[Symbol.dispose || Symbol.for("Symbol.dispose")]), "function" != typeof r) throw new TypeError("Property [Symbol.dispose] is not a function."); return o.push({ v: e, d: r, a: n }), e; }
8
+ function _usingCtx2() { var r = "function" == typeof SuppressedError ? SuppressedError : function (r, e) { var n = Error(); return n.name = "SuppressedError", n.error = r, n.suppressed = e, n; }, e = {}, n = []; function using(r, e) { if (null != e) { if (Object(e) !== e) throw new TypeError("using declarations can only be used with objects, functions, null, or undefined."); if (r) var o = e[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")]; if (void 0 === o && (o = e[Symbol.dispose || Symbol.for("Symbol.dispose")], r)) var t = o; if ("function" != typeof o) throw new TypeError("Object is not disposable."); t && (o = function () { try { t.call(e); } catch (r) { return Promise.reject(r); } }), n.push({ v: e, d: o, a: r }); } else r && n.push({ d: e, a: r }); return e; } return { e: e, u: using.bind(null, !1), a: using.bind(null, !0), d: function () { var o, t = this.e, s = 0; function next() { for (; o = n.pop();) try { if (!o.a && 1 === s) return s = 0, n.push(o), Promise.resolve().then(next); if (o.d) { var r = o.d.call(o.v); if (o.a) return s |= 2, Promise.resolve(r).then(next, err); } else s |= 1; } catch (r) { return err(r); } if (1 === s) return t !== e ? Promise.reject(t) : Promise.resolve(); if (t !== e) throw t; } function err(n) { return t = t !== e ? new r(n, t) : n, next(); } return next(); } }; }
11
9
  /**
12
10
  * The first stage of processing an entrypoint.
13
11
  * This stage is responsible for:
@@ -23,18 +21,17 @@ function* processEntrypoint() {
23
21
  log('start processing (only: %o)', only);
24
22
  try {
25
23
  try {
26
- var _stack = [];
27
- const abortSignal = _using(_stack, this.createAbortSignal());
24
+ var _usingCtx = _usingCtx2();
25
+ const abortSignal = _usingCtx.u(this.createAbortSignal());
28
26
  yield ['explodeReexports', this.entrypoint, undefined, abortSignal];
29
27
  const result = yield* this.getNext('transform', this.entrypoint, undefined, abortSignal);
30
28
  this.entrypoint.assertNotSuperseded();
31
29
  this.entrypoint.setTransformResult(result);
32
30
  log('entrypoint processing finished');
33
31
  } catch (_) {
34
- var _error = _;
35
- var _hasError = true;
32
+ _usingCtx.e = _;
36
33
  } finally {
37
- _dispose(_stack, _error, _hasError);
34
+ _usingCtx.d();
38
35
  }
39
36
  } catch (e) {
40
37
  if ((0, _AbortError.isAborted)(e) && this.entrypoint.supersededWith) {
@@ -1 +1 @@
1
- {"version":3,"file":"processEntrypoint.js","names":["_AbortError","require","dispose_SuppressedError","r","e","SuppressedError","suppressed","error","stack","Error","prototype","Object","create","constructor","value","writable","configurable","_dispose","s","next","length","o","pop","p","d","call","v","a","Promise","resolve","then","err","_using","n","TypeError","Symbol","asyncDispose","for","dispose","push","processEntrypoint","only","log","entrypoint","_stack","abortSignal","createAbortSignal","undefined","result","getNext","assertNotSuperseded","setTransformResult","_","_error","_hasError","isAborted","supersededWith"],"sources":["../../../src/transform/generators/processEntrypoint.ts"],"sourcesContent":["import { isAborted } from '../actions/AbortError';\nimport type { IProcessEntrypointAction, SyncScenarioForAction } from '../types';\n\n/**\n * The first stage of processing an entrypoint.\n * This stage is responsible for:\n * - scheduling the explodeReexports action\n * - scheduling the transform action\n * - rescheduling itself if the entrypoint is superseded\n */\nexport function* processEntrypoint(\n this: IProcessEntrypointAction\n): SyncScenarioForAction<IProcessEntrypointAction> {\n const { only, log } = this.entrypoint;\n log('start processing (only: %o)', only);\n\n try {\n using abortSignal = this.createAbortSignal();\n\n yield ['explodeReexports', this.entrypoint, undefined, abortSignal];\n const result = yield* this.getNext(\n 'transform',\n this.entrypoint,\n undefined,\n abortSignal\n );\n\n this.entrypoint.assertNotSuperseded();\n\n this.entrypoint.setTransformResult(result);\n\n log('entrypoint processing finished');\n } catch (e) {\n if (isAborted(e) && this.entrypoint.supersededWith) {\n log('processing aborted, schedule the next attempt');\n yield* this.getNext(\n 'processEntrypoint',\n this.entrypoint.supersededWith,\n undefined,\n null\n );\n\n return;\n }\n\n log(`Unhandled error: %O`, e);\n throw e;\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"processEntrypoint.js","names":["_AbortError","require","_usingCtx2","r","SuppressedError","e","n","Error","name","error","suppressed","using","Object","TypeError","o","Symbol","asyncDispose","for","dispose","t","call","Promise","reject","push","v","d","a","u","bind","s","next","pop","resolve","then","err","processEntrypoint","only","log","entrypoint","_usingCtx","abortSignal","createAbortSignal","undefined","result","getNext","assertNotSuperseded","setTransformResult","_","isAborted","supersededWith"],"sources":["../../../src/transform/generators/processEntrypoint.ts"],"sourcesContent":["import { isAborted } from '../actions/AbortError';\nimport type { IProcessEntrypointAction, SyncScenarioForAction } from '../types';\n\n/**\n * The first stage of processing an entrypoint.\n * This stage is responsible for:\n * - scheduling the explodeReexports action\n * - scheduling the transform action\n * - rescheduling itself if the entrypoint is superseded\n */\nexport function* processEntrypoint(\n this: IProcessEntrypointAction\n): SyncScenarioForAction<IProcessEntrypointAction> {\n const { only, log } = this.entrypoint;\n log('start processing (only: %o)', only);\n\n try {\n using abortSignal = this.createAbortSignal();\n\n yield ['explodeReexports', this.entrypoint, undefined, abortSignal];\n const result = yield* this.getNext(\n 'transform',\n this.entrypoint,\n undefined,\n abortSignal\n );\n\n this.entrypoint.assertNotSuperseded();\n\n this.entrypoint.setTransformResult(result);\n\n log('entrypoint processing finished');\n } catch (e) {\n if (isAborted(e) && this.entrypoint.supersededWith) {\n log('processing aborted, schedule the next attempt');\n yield* this.getNext(\n 'processEntrypoint',\n this.entrypoint.supersededWith,\n undefined,\n null\n );\n\n return;\n }\n\n log(`Unhandled error: %O`, e);\n throw e;\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"processImports.js","names":["processImports","dependency","data","resolved","only","entrypoint","addDependency","nextEntrypoint","createChild","ignored","getNext","undefined"],"sources":["../../../src/transform/generators/processImports.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport type { IProcessImportsAction, SyncScenarioForAction } from '../types';\n\n/**\n * Creates new entrypoints and emits processEntrypoint for each resolved import\n */\nexport function* processImports(\n this: IProcessImportsAction\n): SyncScenarioForAction<IProcessImportsAction> {\n for (const dependency of this.data.resolved) {\n const { resolved, only } = dependency;\n if (!resolved) {\n continue;\n }\n\n this.entrypoint.addDependency(dependency);\n\n const nextEntrypoint = this.entrypoint.createChild(resolved, only);\n if (nextEntrypoint === 'loop' || nextEntrypoint.ignored) {\n continue;\n }\n\n yield* this.getNext('processEntrypoint', nextEntrypoint, undefined, null);\n }\n}\n"],"mappings":";;;;;;AAAA;;AAGA;AACA;AACA;AACO,UAAUA,cAAcA,CAAA,EAEiB;EAC9C,KAAK,MAAMC,UAAU,IAAI,IAAI,CAACC,IAAI,CAACC,QAAQ,EAAE;IAC3C,MAAM;MAAEA,QAAQ;MAAEC;IAAK,CAAC,GAAGH,UAAU;IACrC,IAAI,CAACE,QAAQ,EAAE;MACb;IACF;IAEA,IAAI,CAACE,UAAU,CAACC,aAAa,CAACL,UAAU,CAAC;IAEzC,MAAMM,cAAc,GAAG,IAAI,CAACF,UAAU,CAACG,WAAW,CAACL,QAAQ,EAAEC,IAAI,CAAC;IAClE,IAAIG,cAAc,KAAK,MAAM,IAAIA,cAAc,CAACE,OAAO,EAAE;MACvD;IACF;IAEA,OAAO,IAAI,CAACC,OAAO,CAAC,mBAAmB,EAAEH,cAAc,EAAEI,SAAS,EAAE,IAAI,CAAC;EAC3E;AACF"}
1
+ {"version":3,"file":"processImports.js","names":["processImports","dependency","data","resolved","only","entrypoint","addDependency","nextEntrypoint","createChild","ignored","getNext","undefined"],"sources":["../../../src/transform/generators/processImports.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport type { IProcessImportsAction, SyncScenarioForAction } from '../types';\n\n/**\n * Creates new entrypoints and emits processEntrypoint for each resolved import\n */\nexport function* processImports(\n this: IProcessImportsAction\n): SyncScenarioForAction<IProcessImportsAction> {\n for (const dependency of this.data.resolved) {\n const { resolved, only } = dependency;\n if (!resolved) {\n continue;\n }\n\n this.entrypoint.addDependency(dependency);\n\n const nextEntrypoint = this.entrypoint.createChild(resolved, only);\n if (nextEntrypoint === 'loop' || nextEntrypoint.ignored) {\n continue;\n }\n\n yield* this.getNext('processEntrypoint', nextEntrypoint, undefined, null);\n }\n}\n"],"mappings":";;;;;;AAAA;;AAGA;AACA;AACA;AACO,UAAUA,cAAcA,CAAA,EAEiB;EAC9C,KAAK,MAAMC,UAAU,IAAI,IAAI,CAACC,IAAI,CAACC,QAAQ,EAAE;IAC3C,MAAM;MAAEA,QAAQ;MAAEC;IAAK,CAAC,GAAGH,UAAU;IACrC,IAAI,CAACE,QAAQ,EAAE;MACb;IACF;IAEA,IAAI,CAACE,UAAU,CAACC,aAAa,CAACL,UAAU,CAAC;IAEzC,MAAMM,cAAc,GAAG,IAAI,CAACF,UAAU,CAACG,WAAW,CAACL,QAAQ,EAAEC,IAAI,CAAC;IAClE,IAAIG,cAAc,KAAK,MAAM,IAAIA,cAAc,CAACE,OAAO,EAAE;MACvD;IACF;IAEA,OAAO,IAAI,CAACC,OAAO,CAAC,mBAAmB,EAAEH,cAAc,EAAEI,SAAS,EAAE,IAAI,CAAC;EAC3E;AACF","ignoreList":[]}
@@ -7,8 +7,45 @@ exports.asyncResolveImports = asyncResolveImports;
7
7
  exports.syncResolveImports = syncResolveImports;
8
8
  var _getFileIdx = require("../../utils/getFileIdx");
9
9
  var _Entrypoint = require("../Entrypoint.helpers");
10
+ var _importOverrides = require("../../utils/importOverrides");
10
11
  /* eslint-disable no-continue,no-await-in-loop,require-yield */
11
12
 
13
+ function applyImportOverrides(services, entrypoint, resolvedImports) {
14
+ const overrides = services.options.pluginOptions.importOverrides;
15
+ if (!overrides || Object.keys(overrides).length === 0) {
16
+ return resolvedImports;
17
+ }
18
+ const {
19
+ root
20
+ } = services.options;
21
+ const importer = entrypoint.name;
22
+ const stack = (0, _Entrypoint.getStack)(entrypoint);
23
+ return resolvedImports.map(dependency => {
24
+ const {
25
+ key
26
+ } = (0, _importOverrides.toImportKey)({
27
+ source: dependency.source,
28
+ resolved: dependency.resolved,
29
+ root
30
+ });
31
+ const override = overrides[key];
32
+ if (!override) {
33
+ return dependency;
34
+ }
35
+ const nextOnly = (0, _importOverrides.applyImportOverrideToOnly)(dependency.only, override);
36
+ const nextResolved = override.mock ? (0, _importOverrides.resolveMockSpecifier)({
37
+ mock: override.mock,
38
+ importer,
39
+ root,
40
+ stack
41
+ }) : dependency.resolved;
42
+ return {
43
+ ...dependency,
44
+ only: nextOnly,
45
+ resolved: nextResolved
46
+ };
47
+ });
48
+ }
12
49
  function emitDependency(emitter, entrypoint, imports) {
13
50
  emitter.single({
14
51
  type: 'dependency',
@@ -71,7 +108,8 @@ function* syncResolveImports(resolve) {
71
108
  resolved
72
109
  };
73
110
  });
74
- const filteredImports = filterUnresolved(entrypoint, resolvedImports);
111
+ const overriddenImports = applyImportOverrides(this.services, entrypoint, resolvedImports);
112
+ const filteredImports = filterUnresolved(entrypoint, overriddenImports);
75
113
  emitDependency(eventEmitter, entrypoint, filteredImports);
76
114
  return filteredImports;
77
115
  }
@@ -151,7 +189,8 @@ async function* asyncResolveImports(resolve) {
151
189
  return resolveTask;
152
190
  }));
153
191
  log('resolved %d imports', resolvedImports.length);
154
- const filteredImports = filterUnresolved(entrypoint, resolvedImports);
192
+ const overriddenImports = applyImportOverrides(this.services, entrypoint, resolvedImports);
193
+ const filteredImports = filterUnresolved(entrypoint, overriddenImports);
155
194
  emitDependency(eventEmitter, entrypoint, filteredImports);
156
195
  return filteredImports;
157
196
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolveImports.js","names":["_getFileIdx","require","_Entrypoint","emitDependency","emitter","entrypoint","imports","single","type","file","name","only","map","resolved","from","what","fileIdx","getFileIdx","filterUnresolved","resolvedImports","filter","i","log","source","syncResolveImports","resolve","_imports$entries","data","services","eventEmitter","listOfImports","Array","entries","length","getStack","err","filteredImports","asyncResolveImports","_imports$entries2","getResolveTask","Promise","all","importsOnly","cached","getDependency","mergeOnly","task","newTask","then","res","isSuperSet","merged","addResolveTask","resolveTask"],"sources":["../../../src/transform/generators/resolveImports.ts"],"sourcesContent":["/* eslint-disable no-continue,no-await-in-loop,require-yield */\nimport { getFileIdx } from '../../utils/getFileIdx';\nimport type { Entrypoint } from '../Entrypoint';\nimport { getStack, isSuperSet, mergeOnly } from '../Entrypoint.helpers';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport type {\n AsyncScenarioForAction,\n IResolveImportsAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nfunction emitDependency(\n emitter: Services['eventEmitter'],\n entrypoint: IResolveImportsAction['entrypoint'],\n imports: IEntrypointDependency[]\n) {\n emitter.single({\n type: 'dependency',\n file: entrypoint.name,\n only: entrypoint.only,\n imports: imports.map(({ resolved, only }) => ({\n from: resolved,\n what: only,\n })),\n fileIdx: getFileIdx(entrypoint.name),\n });\n}\n\nfunction filterUnresolved(\n entrypoint: Entrypoint,\n resolvedImports: IEntrypointDependency[]\n): IEntrypointDependency[] {\n return resolvedImports.filter((i): i is IEntrypointDependency => {\n if (i.resolved === null) {\n entrypoint.log(\n `[resolve] ✅ %s in %s is ignored`,\n i.source,\n entrypoint.name\n );\n return false;\n }\n\n return true;\n });\n}\n\n/**\n * Synchronously resolves specified imports with a provided resolver.\n */\nexport function* syncResolveImports(\n this: IResolveImportsAction,\n resolve: (what: string, importer: string, stack: string[]) => string\n): SyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, []);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n const resolvedImports = listOfImports.map(([source, only]) => {\n let resolved: string | null = null;\n try {\n resolved = resolve(source, entrypoint.name, getStack(entrypoint));\n log('[sync-resolve] ✅ %s -> %s (only: %o)', source, resolved, only);\n } catch (err) {\n log('[sync-resolve] ❌ cannot resolve %s: %O', source, err);\n }\n\n return {\n source,\n only,\n resolved,\n };\n });\n\n const filteredImports = filterUnresolved(entrypoint, resolvedImports);\n emitDependency(eventEmitter, entrypoint, filteredImports);\n\n return filteredImports;\n}\n\n/**\n * Asynchronously resolves specified imports with a provided resolver.\n */\nexport async function* asyncResolveImports(\n this: IResolveImportsAction,\n resolve: (\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>\n): AsyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, []);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n log('resolving %d imports', listOfImports.length);\n\n const getResolveTask = async (\n source: string,\n only: string[]\n ): Promise<IEntrypointDependency> => {\n let resolved: string | null = null;\n try {\n resolved = await resolve(source, entrypoint.name, getStack(entrypoint));\n } catch (err) {\n log(\n '[async-resolve] ❌ cannot resolve %s in %s: %O',\n source,\n entrypoint.name,\n err\n );\n }\n\n if (resolved !== null) {\n log(\n '[async-resolve] ✅ %s (%o) in %s -> %s',\n source,\n only,\n entrypoint.name,\n resolved\n );\n }\n\n return {\n source,\n only,\n resolved,\n };\n };\n\n const resolvedImports = await Promise.all<IEntrypointDependency>(\n listOfImports.map(([source, importsOnly]) => {\n const cached = entrypoint.getDependency(source);\n if (cached) {\n return {\n source,\n only: mergeOnly(cached.only, importsOnly),\n resolved: cached.resolved,\n };\n }\n\n const task = entrypoint.getResolveTask(source);\n if (task) {\n // If we have cached task, we need to merge only…\n const newTask = task.then((res) => {\n if (isSuperSet(res.only, importsOnly)) {\n return res;\n }\n\n // Is this branch even possible?\n const merged = mergeOnly(res.only, importsOnly);\n\n log('merging imports %o and %o: %o', importsOnly, res.only, merged);\n\n return { ...res, only: merged };\n });\n\n // … and update the cache\n entrypoint.addResolveTask(source, newTask);\n return newTask;\n }\n\n const resolveTask = getResolveTask(source, importsOnly);\n\n entrypoint.addResolveTask(source, resolveTask);\n\n return resolveTask;\n })\n );\n\n log('resolved %d imports', resolvedImports.length);\n\n const filteredImports = filterUnresolved(entrypoint, resolvedImports);\n emitDependency(eventEmitter, entrypoint, filteredImports);\n return filteredImports;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"resolveImports.js","names":["_getFileIdx","require","_Entrypoint","_importOverrides","applyImportOverrides","services","entrypoint","resolvedImports","overrides","options","pluginOptions","importOverrides","Object","keys","length","root","importer","name","stack","getStack","map","dependency","key","toImportKey","source","resolved","override","nextOnly","applyImportOverrideToOnly","only","nextResolved","mock","resolveMockSpecifier","emitDependency","emitter","imports","single","type","file","from","what","fileIdx","getFileIdx","filterUnresolved","filter","i","log","syncResolveImports","resolve","_imports$entries","data","eventEmitter","listOfImports","Array","entries","err","overriddenImports","filteredImports","asyncResolveImports","_imports$entries2","getResolveTask","Promise","all","importsOnly","cached","getDependency","mergeOnly","task","newTask","then","res","isSuperSet","merged","addResolveTask","resolveTask"],"sources":["../../../src/transform/generators/resolveImports.ts"],"sourcesContent":["/* eslint-disable no-continue,no-await-in-loop,require-yield */\nimport { getFileIdx } from '../../utils/getFileIdx';\nimport type { Entrypoint } from '../Entrypoint';\nimport { getStack, isSuperSet, mergeOnly } from '../Entrypoint.helpers';\nimport type { IEntrypointDependency } from '../Entrypoint.types';\nimport {\n applyImportOverrideToOnly,\n resolveMockSpecifier,\n toImportKey,\n} from '../../utils/importOverrides';\nimport type {\n AsyncScenarioForAction,\n IResolveImportsAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nfunction applyImportOverrides(\n services: Services,\n entrypoint: Entrypoint,\n resolvedImports: IEntrypointDependency[]\n): IEntrypointDependency[] {\n const overrides = services.options.pluginOptions.importOverrides;\n if (!overrides || Object.keys(overrides).length === 0) {\n return resolvedImports;\n }\n\n const { root } = services.options;\n const importer = entrypoint.name;\n const stack = getStack(entrypoint);\n\n return resolvedImports.map((dependency) => {\n const { key } = toImportKey({\n source: dependency.source,\n resolved: dependency.resolved,\n root,\n });\n const override = overrides[key];\n if (!override) {\n return dependency;\n }\n\n const nextOnly = applyImportOverrideToOnly(dependency.only, override);\n const nextResolved = override.mock\n ? resolveMockSpecifier({\n mock: override.mock,\n importer,\n root,\n stack,\n })\n : dependency.resolved;\n\n return {\n ...dependency,\n only: nextOnly,\n resolved: nextResolved,\n };\n });\n}\n\nfunction emitDependency(\n emitter: Services['eventEmitter'],\n entrypoint: IResolveImportsAction['entrypoint'],\n imports: IEntrypointDependency[]\n) {\n emitter.single({\n type: 'dependency',\n file: entrypoint.name,\n only: entrypoint.only,\n imports: imports.map(({ resolved, only }) => ({\n from: resolved,\n what: only,\n })),\n fileIdx: getFileIdx(entrypoint.name),\n });\n}\n\nfunction filterUnresolved(\n entrypoint: Entrypoint,\n resolvedImports: IEntrypointDependency[]\n): IEntrypointDependency[] {\n return resolvedImports.filter((i): i is IEntrypointDependency => {\n if (i.resolved === null) {\n entrypoint.log(\n `[resolve] ✅ %s in %s is ignored`,\n i.source,\n entrypoint.name\n );\n return false;\n }\n\n return true;\n });\n}\n\n/**\n * Synchronously resolves specified imports with a provided resolver.\n */\nexport function* syncResolveImports(\n this: IResolveImportsAction,\n resolve: (what: string, importer: string, stack: string[]) => string\n): SyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, []);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n const resolvedImports = listOfImports.map(([source, only]) => {\n let resolved: string | null = null;\n try {\n resolved = resolve(source, entrypoint.name, getStack(entrypoint));\n log('[sync-resolve] ✅ %s -> %s (only: %o)', source, resolved, only);\n } catch (err) {\n log('[sync-resolve] ❌ cannot resolve %s: %O', source, err);\n }\n\n return {\n source,\n only,\n resolved,\n };\n });\n\n const overriddenImports = applyImportOverrides(\n this.services,\n entrypoint,\n resolvedImports\n );\n const filteredImports = filterUnresolved(entrypoint, overriddenImports);\n emitDependency(eventEmitter, entrypoint, filteredImports);\n\n return filteredImports;\n}\n\n/**\n * Asynchronously resolves specified imports with a provided resolver.\n */\nexport async function* asyncResolveImports(\n this: IResolveImportsAction,\n resolve: (\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>\n): AsyncScenarioForAction<IResolveImportsAction> {\n const {\n data: { imports },\n entrypoint,\n services: { eventEmitter },\n } = this;\n const listOfImports = Array.from(imports?.entries() ?? []);\n const { log } = entrypoint;\n\n if (listOfImports.length === 0) {\n emitDependency(eventEmitter, entrypoint, []);\n\n log('%s has no imports', entrypoint.name);\n return [];\n }\n\n log('resolving %d imports', listOfImports.length);\n\n const getResolveTask = async (\n source: string,\n only: string[]\n ): Promise<IEntrypointDependency> => {\n let resolved: string | null = null;\n try {\n resolved = await resolve(source, entrypoint.name, getStack(entrypoint));\n } catch (err) {\n log(\n '[async-resolve] ❌ cannot resolve %s in %s: %O',\n source,\n entrypoint.name,\n err\n );\n }\n\n if (resolved !== null) {\n log(\n '[async-resolve] ✅ %s (%o) in %s -> %s',\n source,\n only,\n entrypoint.name,\n resolved\n );\n }\n\n return {\n source,\n only,\n resolved,\n };\n };\n\n const resolvedImports = await Promise.all<IEntrypointDependency>(\n listOfImports.map(([source, importsOnly]) => {\n const cached = entrypoint.getDependency(source);\n if (cached) {\n return {\n source,\n only: mergeOnly(cached.only, importsOnly),\n resolved: cached.resolved,\n };\n }\n\n const task = entrypoint.getResolveTask(source);\n if (task) {\n // If we have cached task, we need to merge only…\n const newTask = task.then((res) => {\n if (isSuperSet(res.only, importsOnly)) {\n return res;\n }\n\n // Is this branch even possible?\n const merged = mergeOnly(res.only, importsOnly);\n\n log('merging imports %o and %o: %o', importsOnly, res.only, merged);\n\n return { ...res, only: merged };\n });\n\n // … and update the cache\n entrypoint.addResolveTask(source, newTask);\n return newTask;\n }\n\n const resolveTask = getResolveTask(source, importsOnly);\n\n entrypoint.addResolveTask(source, resolveTask);\n\n return resolveTask;\n })\n );\n\n log('resolved %d imports', resolvedImports.length);\n\n const overriddenImports = applyImportOverrides(\n this.services,\n entrypoint,\n resolvedImports\n );\n const filteredImports = filterUnresolved(entrypoint, overriddenImports);\n emitDependency(eventEmitter, entrypoint, filteredImports);\n return filteredImports;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,8 +7,11 @@ exports.internalTransform = internalTransform;
7
7
  exports.prepareCode = void 0;
8
8
  exports.transform = transform;
9
9
  var _buildOptions = require("../../options/buildOptions");
10
+ var _dynamicImport = _interopRequireDefault(require("../../plugins/dynamic-import"));
11
+ var _preeval = _interopRequireDefault(require("../../plugins/preeval"));
10
12
  var _TransformMetadata = require("../../utils/TransformMetadata");
11
13
  var _getPluginKey = require("../../utils/getPluginKey");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
15
  const EMPTY_FILE = '=== empty file ===';
13
16
  const hasKeyInList = (plugin, list) => {
14
17
  const pluginKey = (0, _getPluginKey.getPluginKey)(plugin);
@@ -17,10 +20,10 @@ const hasKeyInList = (plugin, list) => {
17
20
  function runPreevalStage(babel, evalConfig, pluginOptions, code, originalAst, eventEmitter) {
18
21
  var _evalConfig$plugins$f, _evalConfig$plugins, _evalConfig$plugins2, _result$ast;
19
22
  const preShakePlugins = (_evalConfig$plugins$f = (_evalConfig$plugins = evalConfig.plugins) === null || _evalConfig$plugins === void 0 ? void 0 : _evalConfig$plugins.filter(i => hasKeyInList(i, pluginOptions.highPriorityPlugins))) !== null && _evalConfig$plugins$f !== void 0 ? _evalConfig$plugins$f : [];
20
- const plugins = [...preShakePlugins, [require.resolve('../../plugins/preeval'), {
23
+ const plugins = [...preShakePlugins, [_preeval.default, {
21
24
  ...pluginOptions,
22
25
  eventEmitter
23
- }], [require.resolve('../../plugins/dynamic-import')], ...((_evalConfig$plugins2 = evalConfig.plugins) !== null && _evalConfig$plugins2 !== void 0 ? _evalConfig$plugins2 : []).filter(i => !hasKeyInList(i, pluginOptions.highPriorityPlugins))];
26
+ }], _dynamicImport.default, ...((_evalConfig$plugins2 = evalConfig.plugins) !== null && _evalConfig$plugins2 !== void 0 ? _evalConfig$plugins2 : []).filter(i => !hasKeyInList(i, pluginOptions.highPriorityPlugins))];
24
27
  const transformConfig = (0, _buildOptions.buildOptions)({
25
28
  ...evalConfig,
26
29
  envName: 'wyw-in-js',
@@ -68,7 +71,9 @@ const prepareCode = (services, item, originalAst) => {
68
71
  const evaluatorConfig = {
69
72
  onlyExports: only,
70
73
  highPriorityPlugins: pluginOptions.highPriorityPlugins,
71
- features: pluginOptions.features
74
+ features: pluginOptions.features,
75
+ importOverrides: pluginOptions.importOverrides,
76
+ root: options.root
72
77
  };
73
78
  const [, transformedCode, imports] = eventEmitter.perf('transform:evaluator', () => evaluator(evalConfig, preevalStageResult.ast, preevalStageResult.code, evaluatorConfig, babel));
74
79
  log('[evaluator:end]');
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","names":["_buildOptions","require","_TransformMetadata","_getPluginKey","EMPTY_FILE","hasKeyInList","plugin","list","pluginKey","getPluginKey","some","i","includes","runPreevalStage","babel","evalConfig","pluginOptions","code","originalAst","eventEmitter","_evalConfig$plugins$f","_evalConfig$plugins","_evalConfig$plugins2","_result$ast","preShakePlugins","plugins","filter","highPriorityPlugins","resolve","transformConfig","buildOptions","envName","result","transformFromAstSync","ast","program","Error","prepareCode","services","item","log","only","loadedAndParsed","evaluator","_loadedAndParsed$code","options","preevalStageResult","perf","transformMetadata","getTransformMetadata","metadata","length","name","extend","evaluatorConfig","onlyExports","features","transformedCode","imports","exports","internalTransform","prepareFn","entrypoint","_loadedAndParsed$code2","preparedCode","_loadedAndParsed$code3","size","resolvedImports","getNext","resolved","transform","call"],"sources":["../../../src/transform/generators/transform.ts"],"sourcesContent":["import type {\n BabelFileResult,\n PluginItem,\n TransformOptions,\n} from '@babel/core';\nimport type { File } from '@babel/types';\n\nimport type { EvaluatorConfig, StrictOptions } from '@wyw-in-js/shared';\n\nimport type { Core } from '../../babel';\nimport { buildOptions } from '../../options/buildOptions';\nimport type { EventEmitter } from '../../utils/EventEmitter';\nimport type { WYWTransformMetadata } from '../../utils/TransformMetadata';\nimport { getTransformMetadata } from '../../utils/TransformMetadata';\nimport { getPluginKey } from '../../utils/getPluginKey';\nimport type { Entrypoint } from '../Entrypoint';\nimport type {\n ITransformAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nconst EMPTY_FILE = '=== empty file ===';\n\nconst hasKeyInList = (plugin: PluginItem, list: string[]): boolean => {\n const pluginKey = getPluginKey(plugin);\n return pluginKey ? list.some((i) => pluginKey.includes(i)) : false;\n};\n\nfunction runPreevalStage(\n babel: Core,\n evalConfig: TransformOptions,\n pluginOptions: StrictOptions,\n code: string,\n originalAst: File,\n eventEmitter: EventEmitter\n): BabelFileResult {\n const preShakePlugins =\n evalConfig.plugins?.filter((i) =>\n hasKeyInList(i, pluginOptions.highPriorityPlugins)\n ) ?? [];\n\n const plugins = [\n ...preShakePlugins,\n [\n require.resolve('../../plugins/preeval'),\n { ...pluginOptions, eventEmitter },\n ],\n [require.resolve('../../plugins/dynamic-import')],\n ...(evalConfig.plugins ?? []).filter(\n (i) => !hasKeyInList(i, pluginOptions.highPriorityPlugins)\n ),\n ];\n\n const transformConfig = buildOptions({\n ...evalConfig,\n envName: 'wyw-in-js',\n plugins,\n });\n\n const result = babel.transformFromAstSync(originalAst, code, transformConfig);\n\n if (!result || !result.ast?.program) {\n throw new Error('Babel transform failed');\n }\n\n return result;\n}\n\ntype PrepareCodeFn = (\n services: Services,\n item: Entrypoint,\n originalAst: File\n) => [\n code: string,\n imports: Map<string, string[]> | null,\n metadata: WYWTransformMetadata | null,\n];\n\nexport const prepareCode = (\n services: Services,\n item: Entrypoint,\n originalAst: File\n): ReturnType<PrepareCodeFn> => {\n const { log, only, loadedAndParsed } = item;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return [loadedAndParsed.code ?? '', null, null];\n }\n\n const { code, evalConfig, evaluator } = loadedAndParsed;\n const { options, babel, eventEmitter } = services;\n const { pluginOptions } = options;\n\n const preevalStageResult = eventEmitter.perf('transform:preeval', () =>\n runPreevalStage(\n babel,\n evalConfig,\n pluginOptions,\n code,\n originalAst,\n eventEmitter\n )\n );\n\n const transformMetadata = getTransformMetadata(preevalStageResult.metadata);\n\n if (only.length === 1 && only[0] === '__wywPreval' && !transformMetadata) {\n log('[evaluator:end] no metadata');\n return [preevalStageResult.code!, null, null];\n }\n\n log('[preeval] metadata %O', transformMetadata);\n log('[evaluator:start] using %s', evaluator.name);\n log.extend('source')('%s', preevalStageResult.code!);\n\n const evaluatorConfig: EvaluatorConfig = {\n onlyExports: only,\n highPriorityPlugins: pluginOptions.highPriorityPlugins,\n features: pluginOptions.features,\n };\n\n const [, transformedCode, imports] = eventEmitter.perf(\n 'transform:evaluator',\n () =>\n evaluator(\n evalConfig,\n preevalStageResult.ast!,\n preevalStageResult.code!,\n evaluatorConfig,\n babel\n )\n );\n\n log('[evaluator:end]');\n\n return [transformedCode, imports, transformMetadata ?? null];\n};\n\nexport function* internalTransform(\n this: ITransformAction,\n prepareFn: PrepareCodeFn\n): SyncScenarioForAction<ITransformAction> {\n const { only, loadedAndParsed, log } = this.entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n log('>> (%o)', only);\n\n const [preparedCode, imports, metadata] = prepareFn(\n this.services,\n this.entrypoint,\n loadedAndParsed.ast\n );\n\n if (loadedAndParsed.code === preparedCode) {\n log('<< (%o)\\n === no changes ===', only);\n } else {\n log('<< (%o)', only);\n log.extend('source')('%s', preparedCode || EMPTY_FILE);\n }\n\n if (preparedCode === '') {\n log('is skipped');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n if (imports !== null && imports.size > 0) {\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports,\n }\n );\n\n if (resolvedImports.length !== 0) {\n yield [\n 'processImports',\n this.entrypoint,\n {\n resolved: resolvedImports,\n },\n ];\n }\n }\n\n return {\n code: preparedCode,\n metadata,\n };\n}\n\n/**\n * Prepares the code for evaluation. This includes removing dead and potentially unsafe code.\n * Emits resolveImports and processImports events.\n */\nexport function transform(this: ITransformAction) {\n return internalTransform.call(this, prepareCode);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","names":["_buildOptions","require","_dynamicImport","_interopRequireDefault","_preeval","_TransformMetadata","_getPluginKey","e","__esModule","default","EMPTY_FILE","hasKeyInList","plugin","list","pluginKey","getPluginKey","some","i","includes","runPreevalStage","babel","evalConfig","pluginOptions","code","originalAst","eventEmitter","_evalConfig$plugins$f","_evalConfig$plugins","_evalConfig$plugins2","_result$ast","preShakePlugins","plugins","filter","highPriorityPlugins","preevalPlugin","dynamicImportPlugin","transformConfig","buildOptions","envName","result","transformFromAstSync","ast","program","Error","prepareCode","services","item","log","only","loadedAndParsed","evaluator","_loadedAndParsed$code","options","preevalStageResult","perf","transformMetadata","getTransformMetadata","metadata","length","name","extend","evaluatorConfig","onlyExports","features","importOverrides","root","transformedCode","imports","exports","internalTransform","prepareFn","entrypoint","_loadedAndParsed$code2","preparedCode","_loadedAndParsed$code3","size","resolvedImports","getNext","resolved","transform","call"],"sources":["../../../src/transform/generators/transform.ts"],"sourcesContent":["import type {\n BabelFileResult,\n PluginItem,\n TransformOptions,\n} from '@babel/core';\nimport type { File } from '@babel/types';\n\nimport type { EvaluatorConfig, StrictOptions } from '@wyw-in-js/shared';\n\nimport type { Core } from '../../babel';\nimport { buildOptions } from '../../options/buildOptions';\nimport dynamicImportPlugin from '../../plugins/dynamic-import';\nimport preevalPlugin from '../../plugins/preeval';\nimport type { EventEmitter } from '../../utils/EventEmitter';\nimport type { WYWTransformMetadata } from '../../utils/TransformMetadata';\nimport { getTransformMetadata } from '../../utils/TransformMetadata';\nimport { getPluginKey } from '../../utils/getPluginKey';\nimport type { Entrypoint } from '../Entrypoint';\nimport type {\n ITransformAction,\n Services,\n SyncScenarioForAction,\n} from '../types';\n\nconst EMPTY_FILE = '=== empty file ===';\n\nconst hasKeyInList = (plugin: PluginItem, list: string[]): boolean => {\n const pluginKey = getPluginKey(plugin);\n return pluginKey ? list.some((i) => pluginKey.includes(i)) : false;\n};\n\nfunction runPreevalStage(\n babel: Core,\n evalConfig: TransformOptions,\n pluginOptions: StrictOptions,\n code: string,\n originalAst: File,\n eventEmitter: EventEmitter\n): BabelFileResult {\n const preShakePlugins =\n evalConfig.plugins?.filter((i) =>\n hasKeyInList(i, pluginOptions.highPriorityPlugins)\n ) ?? [];\n\n const plugins = [\n ...preShakePlugins,\n [\n preevalPlugin,\n {\n ...pluginOptions,\n eventEmitter,\n },\n ],\n dynamicImportPlugin,\n ...(evalConfig.plugins ?? []).filter(\n (i) => !hasKeyInList(i, pluginOptions.highPriorityPlugins)\n ),\n ];\n\n const transformConfig = buildOptions({\n ...evalConfig,\n envName: 'wyw-in-js',\n plugins,\n });\n\n const result = babel.transformFromAstSync(originalAst, code, transformConfig);\n\n if (!result || !result.ast?.program) {\n throw new Error('Babel transform failed');\n }\n\n return result;\n}\n\ntype PrepareCodeFn = (\n services: Services,\n item: Entrypoint,\n originalAst: File\n) => [\n code: string,\n imports: Map<string, string[]> | null,\n metadata: WYWTransformMetadata | null,\n];\n\nexport const prepareCode = (\n services: Services,\n item: Entrypoint,\n originalAst: File\n): ReturnType<PrepareCodeFn> => {\n const { log, only, loadedAndParsed } = item;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return [loadedAndParsed.code ?? '', null, null];\n }\n\n const { code, evalConfig, evaluator } = loadedAndParsed;\n const { options, babel, eventEmitter } = services;\n const { pluginOptions } = options;\n\n const preevalStageResult = eventEmitter.perf('transform:preeval', () =>\n runPreevalStage(\n babel,\n evalConfig,\n pluginOptions,\n code,\n originalAst,\n eventEmitter\n )\n );\n\n const transformMetadata = getTransformMetadata(preevalStageResult.metadata);\n\n if (only.length === 1 && only[0] === '__wywPreval' && !transformMetadata) {\n log('[evaluator:end] no metadata');\n return [preevalStageResult.code!, null, null];\n }\n\n log('[preeval] metadata %O', transformMetadata);\n log('[evaluator:start] using %s', evaluator.name);\n log.extend('source')('%s', preevalStageResult.code!);\n\n const evaluatorConfig: EvaluatorConfig = {\n onlyExports: only,\n highPriorityPlugins: pluginOptions.highPriorityPlugins,\n features: pluginOptions.features,\n importOverrides: pluginOptions.importOverrides,\n root: options.root,\n };\n\n const [, transformedCode, imports] = eventEmitter.perf(\n 'transform:evaluator',\n () =>\n evaluator(\n evalConfig,\n preevalStageResult.ast!,\n preevalStageResult.code!,\n evaluatorConfig,\n babel\n )\n );\n\n log('[evaluator:end]');\n\n return [transformedCode, imports, transformMetadata ?? null];\n};\n\nexport function* internalTransform(\n this: ITransformAction,\n prepareFn: PrepareCodeFn\n): SyncScenarioForAction<ITransformAction> {\n const { only, loadedAndParsed, log } = this.entrypoint;\n if (loadedAndParsed.evaluator === 'ignored') {\n log('is ignored');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n log('>> (%o)', only);\n\n const [preparedCode, imports, metadata] = prepareFn(\n this.services,\n this.entrypoint,\n loadedAndParsed.ast\n );\n\n if (loadedAndParsed.code === preparedCode) {\n log('<< (%o)\\n === no changes ===', only);\n } else {\n log('<< (%o)', only);\n log.extend('source')('%s', preparedCode || EMPTY_FILE);\n }\n\n if (preparedCode === '') {\n log('is skipped');\n return {\n code: loadedAndParsed.code ?? '',\n metadata: null,\n };\n }\n\n if (imports !== null && imports.size > 0) {\n const resolvedImports = yield* this.getNext(\n 'resolveImports',\n this.entrypoint,\n {\n imports,\n }\n );\n\n if (resolvedImports.length !== 0) {\n yield [\n 'processImports',\n this.entrypoint,\n {\n resolved: resolvedImports,\n },\n ];\n }\n }\n\n return {\n code: preparedCode,\n metadata,\n };\n}\n\n/**\n * Prepares the code for evaluation. This includes removing dead and potentially unsafe code.\n * Emits resolveImports and processImports events.\n */\nexport function transform(this: ITransformAction) {\n return internalTransform.call(this, prepareCode);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.js","names":["_AbortError","require","workflow","_entrypoint$loadedAnd2","_collectStageResult$c","cache","options","services","entrypoint","ignored","_entrypoint$loadedAnd","code","loadedAndParsed","sourceMap","inputSourceMap","getNext","undefined","assertNotSuperseded","e","isAborted","supersededWith","log","originalCode","hasWywMetadata","generation","delete","name","evalStageResult","valueCache","dependencies","collectStageResult","metadata","map","extractStageResult","processors","replacements"],"sources":["../../../src/transform/generators/workflow.ts"],"sourcesContent":["import { isAborted } from '../actions/AbortError';\nimport type { IWorkflowAction, SyncScenarioForAction } from '../types';\n\n/**\n * The entry point for file processing. Sequentially calls `processEntrypoint`,\n * `evalFile`, `collect`, and `extract`. Returns the result of transforming\n * the source code as well as all artifacts obtained from code execution.\n */\nexport function* workflow(\n this: IWorkflowAction\n): SyncScenarioForAction<IWorkflowAction> {\n const { cache, options } = this.services;\n const { entrypoint } = this;\n\n if (entrypoint.ignored) {\n return {\n code: entrypoint.loadedAndParsed.code ?? '',\n sourceMap: options.inputSourceMap,\n };\n }\n\n try {\n yield* this.getNext('processEntrypoint', entrypoint, undefined, null);\n entrypoint.assertNotSuperseded();\n } catch (e) {\n if (isAborted(e) && entrypoint.supersededWith) {\n entrypoint.log('workflow aborted, schedule the next attempt');\n return yield* this.getNext(\n 'workflow',\n entrypoint.supersededWith,\n undefined,\n null\n );\n }\n\n throw e;\n }\n\n const originalCode = entrypoint.loadedAndParsed.code ?? '';\n\n // File is ignored or does not contain any tags. Return original code.\n if (!entrypoint.hasWywMetadata()) {\n if (entrypoint.generation === 1) {\n // 1st generation here means that it's __wywPreval entrypoint\n // without __wywPreval, so we don't need it cached\n cache.delete('entrypoints', entrypoint.name);\n }\n\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n // *** 2nd stage ***\n\n const evalStageResult = yield* this.getNext(\n 'evalFile',\n entrypoint,\n undefined,\n null\n );\n\n if (evalStageResult === null) {\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n const [valueCache, dependencies] = evalStageResult;\n\n // *** 3rd stage ***\n\n const collectStageResult = yield* this.getNext(\n 'collect',\n entrypoint,\n {\n valueCache,\n },\n null\n );\n\n if (!collectStageResult.metadata) {\n return {\n code: collectStageResult.code!,\n sourceMap: collectStageResult.map,\n };\n }\n\n // *** 4th stage\n\n const extractStageResult = yield* this.getNext(\n 'extract',\n entrypoint,\n {\n processors: collectStageResult.metadata.processors,\n },\n null\n );\n\n return {\n ...extractStageResult,\n code: collectStageResult.code ?? '',\n dependencies,\n replacements: [\n ...extractStageResult.replacements,\n ...collectStageResult.metadata.replacements,\n ],\n sourceMap: collectStageResult.map,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"workflow.js","names":["_AbortError","require","workflow","_entrypoint$loadedAnd2","_collectStageResult$c","cache","options","services","entrypoint","ignored","_entrypoint$loadedAnd","code","loadedAndParsed","sourceMap","inputSourceMap","getNext","undefined","assertNotSuperseded","e","isAborted","supersededWith","log","originalCode","hasWywMetadata","generation","delete","name","evalStageResult","valueCache","dependencies","collectStageResult","metadata","map","extractStageResult","processors","replacements"],"sources":["../../../src/transform/generators/workflow.ts"],"sourcesContent":["import { isAborted } from '../actions/AbortError';\nimport type { IWorkflowAction, SyncScenarioForAction } from '../types';\n\n/**\n * The entry point for file processing. Sequentially calls `processEntrypoint`,\n * `evalFile`, `collect`, and `extract`. Returns the result of transforming\n * the source code as well as all artifacts obtained from code execution.\n */\nexport function* workflow(\n this: IWorkflowAction\n): SyncScenarioForAction<IWorkflowAction> {\n const { cache, options } = this.services;\n const { entrypoint } = this;\n\n if (entrypoint.ignored) {\n return {\n code: entrypoint.loadedAndParsed.code ?? '',\n sourceMap: options.inputSourceMap,\n };\n }\n\n try {\n yield* this.getNext('processEntrypoint', entrypoint, undefined, null);\n entrypoint.assertNotSuperseded();\n } catch (e) {\n if (isAborted(e) && entrypoint.supersededWith) {\n entrypoint.log('workflow aborted, schedule the next attempt');\n return yield* this.getNext(\n 'workflow',\n entrypoint.supersededWith,\n undefined,\n null\n );\n }\n\n throw e;\n }\n\n const originalCode = entrypoint.loadedAndParsed.code ?? '';\n\n // File is ignored or does not contain any tags. Return original code.\n if (!entrypoint.hasWywMetadata()) {\n if (entrypoint.generation === 1) {\n // 1st generation here means that it's __wywPreval entrypoint\n // without __wywPreval, so we don't need it cached\n cache.delete('entrypoints', entrypoint.name);\n }\n\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n // *** 2nd stage ***\n\n const evalStageResult = yield* this.getNext(\n 'evalFile',\n entrypoint,\n undefined,\n null\n );\n\n if (evalStageResult === null) {\n return {\n code: originalCode,\n sourceMap: options.inputSourceMap,\n };\n }\n\n const [valueCache, dependencies] = evalStageResult;\n\n // *** 3rd stage ***\n\n const collectStageResult = yield* this.getNext(\n 'collect',\n entrypoint,\n {\n valueCache,\n },\n null\n );\n\n if (!collectStageResult.metadata) {\n return {\n code: collectStageResult.code!,\n sourceMap: collectStageResult.map,\n };\n }\n\n // *** 4th stage\n\n const extractStageResult = yield* this.getNext(\n 'extract',\n entrypoint,\n {\n processors: collectStageResult.metadata.processors,\n },\n null\n );\n\n return {\n ...extractStageResult,\n code: collectStageResult.code ?? '',\n dependencies,\n replacements: [\n ...extractStageResult.replacements,\n ...collectStageResult.metadata.replacements,\n ],\n sourceMap: collectStageResult.map,\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -13,7 +13,12 @@ const explorerSync = (0, _cosmiconfig.cosmiconfigSync)('wyw-in-js', {
13
13
  const cache = new WeakMap();
14
14
  const defaultOverrides = {};
15
15
  const nodeModulesRegExp = /[\\/]node_modules[\\/]/;
16
+ const defaultImportLoaders = {
17
+ raw: 'raw',
18
+ url: 'url'
19
+ };
16
20
  function loadWywOptions(overrides = defaultOverrides) {
21
+ var _result$config;
17
22
  if (cache.has(overrides)) {
18
23
  return cache.get(overrides);
19
24
  }
@@ -22,6 +27,7 @@ function loadWywOptions(overrides = defaultOverrides) {
22
27
  ignore,
23
28
  rules,
24
29
  babelOptions = {},
30
+ importLoaders: overridesImportLoaders,
25
31
  ...rest
26
32
  } = overrides;
27
33
  const result =
@@ -35,6 +41,9 @@ function loadWywOptions(overrides = defaultOverrides) {
35
41
  useBabelConfigs: true,
36
42
  useWeakRefInEval: true
37
43
  };
44
+ const config = (_result$config = result === null || result === void 0 ? void 0 : result.config) !== null && _result$config !== void 0 ? _result$config : {};
45
+ const configImportLoaders = config.importLoaders;
46
+ const configFeatures = config.features;
38
47
  const options = {
39
48
  displayName: false,
40
49
  evaluate: true,
@@ -59,11 +68,16 @@ function loadWywOptions(overrides = defaultOverrides) {
59
68
  }],
60
69
  babelOptions,
61
70
  highPriorityPlugins: ['module-resolver'],
62
- ...(result ? result.config : {}),
71
+ ...config,
63
72
  ...rest,
73
+ importLoaders: {
74
+ ...defaultImportLoaders,
75
+ ...(configImportLoaders !== null && configImportLoaders !== void 0 ? configImportLoaders : {}),
76
+ ...(overridesImportLoaders !== null && overridesImportLoaders !== void 0 ? overridesImportLoaders : {})
77
+ },
64
78
  features: {
65
79
  ...defaultFeatures,
66
- ...(result ? result.config.features : {}),
80
+ ...(configFeatures !== null && configFeatures !== void 0 ? configFeatures : {}),
67
81
  ...rest.features
68
82
  }
69
83
  };
@@ -1 +1 @@
1
- {"version":3,"file":"loadWywOptions.js","names":["_cosmiconfig","require","_shaker","searchPlaces","explorerSync","cosmiconfigSync","cache","WeakMap","defaultOverrides","nodeModulesRegExp","loadWywOptions","overrides","has","get","configFile","ignore","rules","babelOptions","rest","result","undefined","load","search","defaultFeatures","dangerousCodeRemover","globalCache","happyDOM","softErrors","useBabelConfigs","useWeakRefInEval","options","displayName","evaluate","extensions","action","shaker","test","filename","code","highPriorityPlugins","config","features","set"],"sources":["../../../src/transform/helpers/loadWywOptions.ts"],"sourcesContent":["import { cosmiconfigSync } from 'cosmiconfig';\n\nimport type { FeatureFlags, StrictOptions } from '@wyw-in-js/shared';\n\nimport { shaker } from '../../shaker';\nimport type { PluginOptions } from '../../types';\n\nconst searchPlaces = [\n `.wyw-in-jsrc`,\n `.wyw-in-jsrc.json`,\n `.wyw-in-jsrc.yaml`,\n `.wyw-in-jsrc.yml`,\n `.wyw-in-jsrc.js`,\n `.wyw-in-jsrc.cjs`,\n `.config/wyw-in-jsrc`,\n `.config/wyw-in-jsrc.json`,\n `.config/wyw-in-jsrc.yaml`,\n `.config/wyw-in-jsrc.yml`,\n `.config/wyw-in-jsrc.js`,\n `.config/wyw-in-jsrc.cjs`,\n `wyw-in-js.config.js`,\n `wyw-in-js.config.cjs`,\n];\n\nconst explorerSync = cosmiconfigSync('wyw-in-js', { searchPlaces });\n\nexport type PartialOptions = Partial<Omit<PluginOptions, 'features'>> & {\n features?: Partial<FeatureFlags>;\n};\n\nconst cache = new WeakMap<Partial<PartialOptions>, StrictOptions>();\nconst defaultOverrides = {};\nconst nodeModulesRegExp = /[\\\\/]node_modules[\\\\/]/;\n\nexport function loadWywOptions(\n overrides: PartialOptions = defaultOverrides\n): StrictOptions {\n if (cache.has(overrides)) {\n return cache.get(overrides)!;\n }\n\n const { configFile, ignore, rules, babelOptions = {}, ...rest } = overrides;\n\n const result =\n // eslint-disable-next-line no-nested-ternary\n configFile === false\n ? undefined\n : configFile !== undefined\n ? explorerSync.load(configFile)\n : explorerSync.search();\n\n const defaultFeatures: FeatureFlags = {\n dangerousCodeRemover: true,\n globalCache: true,\n happyDOM: true,\n softErrors: false,\n useBabelConfigs: true,\n useWeakRefInEval: true,\n };\n\n const options: StrictOptions = {\n displayName: false,\n evaluate: true,\n extensions: ['.cjs', '.cts', '.js', '.jsx', '.mjs', '.mts', '.ts', '.tsx'],\n rules: rules ?? [\n {\n action: shaker,\n },\n {\n // The old `ignore` option is used as a default value for `ignore` rule.\n test: ignore ?? nodeModulesRegExp,\n action: 'ignore',\n },\n {\n // Do not ignore ES-modules\n test: (filename, code) => {\n if (!nodeModulesRegExp.test(filename)) {\n return false;\n }\n\n // If a file contains `export` or `import` keywords, we assume it's an ES-module\n return /(?:^|\\*\\/|;|})\\s*(?:export|import)[\\s{]/m.test(code);\n },\n action: shaker,\n },\n ],\n babelOptions,\n highPriorityPlugins: ['module-resolver'],\n ...(result ? result.config : {}),\n ...rest,\n features: {\n ...defaultFeatures,\n ...(result ? result.config.features : {}),\n ...rest.features,\n },\n };\n\n cache.set(overrides, options);\n\n return options;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAIA,IAAAC,OAAA,GAAAD,OAAA;AAGA,MAAME,YAAY,GAAG,CAClB,cAAa,EACb,mBAAkB,EAClB,mBAAkB,EAClB,kBAAiB,EACjB,iBAAgB,EAChB,kBAAiB,EACjB,qBAAoB,EACpB,0BAAyB,EACzB,0BAAyB,EACzB,yBAAwB,EACxB,wBAAuB,EACvB,yBAAwB,EACxB,qBAAoB,EACpB,sBAAqB,CACvB;AAED,MAAMC,YAAY,GAAG,IAAAC,4BAAe,EAAC,WAAW,EAAE;EAAEF;AAAa,CAAC,CAAC;AAMnE,MAAMG,KAAK,GAAG,IAAIC,OAAO,CAAyC,CAAC;AACnE,MAAMC,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAMC,iBAAiB,GAAG,wBAAwB;AAE3C,SAASC,cAAcA,CAC5BC,SAAyB,GAAGH,gBAAgB,EAC7B;EACf,IAAIF,KAAK,CAACM,GAAG,CAACD,SAAS,CAAC,EAAE;IACxB,OAAOL,KAAK,CAACO,GAAG,CAACF,SAAS,CAAC;EAC7B;EAEA,MAAM;IAAEG,UAAU;IAAEC,MAAM;IAAEC,KAAK;IAAEC,YAAY,GAAG,CAAC,CAAC;IAAE,GAAGC;EAAK,CAAC,GAAGP,SAAS;EAE3E,MAAMQ,MAAM;EACV;EACAL,UAAU,KAAK,KAAK,GAChBM,SAAS,GACTN,UAAU,KAAKM,SAAS,GACxBhB,YAAY,CAACiB,IAAI,CAACP,UAAU,CAAC,GAC7BV,YAAY,CAACkB,MAAM,CAAC,CAAC;EAE3B,MAAMC,eAA6B,GAAG;IACpCC,oBAAoB,EAAE,IAAI;IAC1BC,WAAW,EAAE,IAAI;IACjBC,QAAQ,EAAE,IAAI;IACdC,UAAU,EAAE,KAAK;IACjBC,eAAe,EAAE,IAAI;IACrBC,gBAAgB,EAAE;EACpB,CAAC;EAED,MAAMC,OAAsB,GAAG;IAC7BC,WAAW,EAAE,KAAK;IAClBC,QAAQ,EAAE,IAAI;IACdC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC;IAC1EjB,KAAK,EAAEA,KAAK,aAALA,KAAK,cAALA,KAAK,GAAI,CACd;MACEkB,MAAM,EAAEC;IACV,CAAC,EACD;MACE;MACAC,IAAI,EAAErB,MAAM,aAANA,MAAM,cAANA,MAAM,GAAIN,iBAAiB;MACjCyB,MAAM,EAAE;IACV,CAAC,EACD;MACE;MACAE,IAAI,EAAEA,CAACC,QAAQ,EAAEC,IAAI,KAAK;QACxB,IAAI,CAAC7B,iBAAiB,CAAC2B,IAAI,CAACC,QAAQ,CAAC,EAAE;UACrC,OAAO,KAAK;QACd;;QAEA;QACA,OAAO,0CAA0C,CAACD,IAAI,CAACE,IAAI,CAAC;MAC9D,CAAC;MACDJ,MAAM,EAAEC;IACV,CAAC,CACF;IACDlB,YAAY;IACZsB,mBAAmB,EAAE,CAAC,iBAAiB,CAAC;IACxC,IAAIpB,MAAM,GAAGA,MAAM,CAACqB,MAAM,GAAG,CAAC,CAAC,CAAC;IAChC,GAAGtB,IAAI;IACPuB,QAAQ,EAAE;MACR,GAAGlB,eAAe;MAClB,IAAIJ,MAAM,GAAGA,MAAM,CAACqB,MAAM,CAACC,QAAQ,GAAG,CAAC,CAAC,CAAC;MACzC,GAAGvB,IAAI,CAACuB;IACV;EACF,CAAC;EAEDnC,KAAK,CAACoC,GAAG,CAAC/B,SAAS,EAAEmB,OAAO,CAAC;EAE7B,OAAOA,OAAO;AAChB"}
1
+ {"version":3,"file":"loadWywOptions.js","names":["_cosmiconfig","require","_shaker","searchPlaces","explorerSync","cosmiconfigSync","cache","WeakMap","defaultOverrides","nodeModulesRegExp","defaultImportLoaders","raw","url","loadWywOptions","overrides","_result$config","has","get","configFile","ignore","rules","babelOptions","importLoaders","overridesImportLoaders","rest","result","undefined","load","search","defaultFeatures","dangerousCodeRemover","globalCache","happyDOM","softErrors","useBabelConfigs","useWeakRefInEval","config","configImportLoaders","configFeatures","features","options","displayName","evaluate","extensions","action","shaker","test","filename","code","highPriorityPlugins","set"],"sources":["../../../src/transform/helpers/loadWywOptions.ts"],"sourcesContent":["import { cosmiconfigSync } from 'cosmiconfig';\n\nimport type {\n FeatureFlags,\n ImportLoaders,\n StrictOptions,\n} from '@wyw-in-js/shared';\n\nimport { shaker } from '../../shaker';\nimport type { PluginOptions } from '../../types';\n\nconst searchPlaces = [\n `.wyw-in-jsrc`,\n `.wyw-in-jsrc.json`,\n `.wyw-in-jsrc.yaml`,\n `.wyw-in-jsrc.yml`,\n `.wyw-in-jsrc.js`,\n `.wyw-in-jsrc.cjs`,\n `.config/wyw-in-jsrc`,\n `.config/wyw-in-jsrc.json`,\n `.config/wyw-in-jsrc.yaml`,\n `.config/wyw-in-jsrc.yml`,\n `.config/wyw-in-jsrc.js`,\n `.config/wyw-in-jsrc.cjs`,\n `wyw-in-js.config.js`,\n `wyw-in-js.config.cjs`,\n];\n\nconst explorerSync = cosmiconfigSync('wyw-in-js', { searchPlaces });\n\nexport type PartialOptions = Partial<Omit<PluginOptions, 'features'>> & {\n features?: Partial<FeatureFlags>;\n};\n\nconst cache = new WeakMap<Partial<PartialOptions>, StrictOptions>();\nconst defaultOverrides = {};\nconst nodeModulesRegExp = /[\\\\/]node_modules[\\\\/]/;\nconst defaultImportLoaders: ImportLoaders = {\n raw: 'raw',\n url: 'url',\n};\n\nexport function loadWywOptions(\n overrides: PartialOptions = defaultOverrides\n): StrictOptions {\n if (cache.has(overrides)) {\n return cache.get(overrides)!;\n }\n\n const {\n configFile,\n ignore,\n rules,\n babelOptions = {},\n importLoaders: overridesImportLoaders,\n ...rest\n } = overrides;\n\n const result =\n // eslint-disable-next-line no-nested-ternary\n configFile === false\n ? undefined\n : configFile !== undefined\n ? explorerSync.load(configFile)\n : explorerSync.search();\n\n const defaultFeatures: FeatureFlags = {\n dangerousCodeRemover: true,\n globalCache: true,\n happyDOM: true,\n softErrors: false,\n useBabelConfigs: true,\n useWeakRefInEval: true,\n };\n\n const config = (result?.config ?? {}) as Partial<StrictOptions>;\n const configImportLoaders = config.importLoaders;\n const configFeatures = config.features;\n\n const options: StrictOptions = {\n displayName: false,\n evaluate: true,\n extensions: ['.cjs', '.cts', '.js', '.jsx', '.mjs', '.mts', '.ts', '.tsx'],\n rules: rules ?? [\n {\n action: shaker,\n },\n {\n // The old `ignore` option is used as a default value for `ignore` rule.\n test: ignore ?? nodeModulesRegExp,\n action: 'ignore',\n },\n {\n // Do not ignore ES-modules\n test: (filename, code) => {\n if (!nodeModulesRegExp.test(filename)) {\n return false;\n }\n\n // If a file contains `export` or `import` keywords, we assume it's an ES-module\n return /(?:^|\\*\\/|;|})\\s*(?:export|import)[\\s{]/m.test(code);\n },\n action: shaker,\n },\n ],\n babelOptions,\n highPriorityPlugins: ['module-resolver'],\n ...config,\n ...rest,\n importLoaders: {\n ...defaultImportLoaders,\n ...(configImportLoaders ?? {}),\n ...(overridesImportLoaders ?? {}),\n },\n features: {\n ...defaultFeatures,\n ...(configFeatures ?? {}),\n ...rest.features,\n },\n };\n\n cache.set(overrides, options);\n\n return options;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -9,11 +9,11 @@ var _cache = require("../../cache");
9
9
  var _EventEmitter = require("../../utils/EventEmitter");
10
10
  var _Entrypoint = require("../Entrypoint.helpers");
11
11
  var _rootLog = require("../rootLog");
12
- 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); }
13
- 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; }
12
+ 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); }
14
13
  const withDefaultServices = ({
15
14
  babel = babelCore,
16
15
  cache = new _cache.TransformCacheCollection(),
16
+ emitWarning,
17
17
  eventEmitter = _EventEmitter.EventEmitter.dummy,
18
18
  loadAndParseFn = _Entrypoint.loadAndParse,
19
19
  log = _rootLog.rootLog,
@@ -21,6 +21,7 @@ const withDefaultServices = ({
21
21
  }) => ({
22
22
  babel,
23
23
  cache,
24
+ emitWarning,
24
25
  eventEmitter,
25
26
  loadAndParseFn,
26
27
  log,
@@ -1 +1 @@
1
- {"version":3,"file":"withDefaultServices.js","names":["babelCore","_interopRequireWildcard","require","_cache","_EventEmitter","_Entrypoint","_rootLog","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","withDefaultServices","babel","cache","TransformCacheCollection","eventEmitter","EventEmitter","dummy","loadAndParseFn","loadAndParse","log","rootLog","options","exports"],"sources":["../../../src/transform/helpers/withDefaultServices.ts"],"sourcesContent":["import * as babelCore from '@babel/core';\n\nimport { TransformCacheCollection } from '../../cache';\nimport { EventEmitter } from '../../utils/EventEmitter';\nimport { loadAndParse } from '../Entrypoint.helpers';\nimport { rootLog } from '../rootLog';\nimport type { Services } from '../types';\n\ntype RequiredServices = 'options';\nexport type PartialServices = Partial<Omit<Services, RequiredServices>> &\n Pick<Services, RequiredServices>;\n\nexport const withDefaultServices = ({\n babel = babelCore,\n cache = new TransformCacheCollection(),\n eventEmitter = EventEmitter.dummy,\n loadAndParseFn = loadAndParse,\n log = rootLog,\n options,\n}: PartialServices): Services => ({\n babel,\n cache,\n eventEmitter,\n loadAndParseFn,\n log,\n options,\n});\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAAqC,SAAAK,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAP,wBAAAO,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAO9B,MAAMY,mBAAmB,GAAGA,CAAC;EAClCC,KAAK,GAAG7B,SAAS;EACjB8B,KAAK,GAAG,IAAIC,+BAAwB,CAAC,CAAC;EACtCC,YAAY,GAAGC,0BAAY,CAACC,KAAK;EACjCC,cAAc,GAAGC,wBAAY;EAC7BC,GAAG,GAAGC,gBAAO;EACbC;AACe,CAAC,MAAgB;EAChCV,KAAK;EACLC,KAAK;EACLE,YAAY;EACZG,cAAc;EACdE,GAAG;EACHE;AACF,CAAC,CAAC;AAACC,OAAA,CAAAZ,mBAAA,GAAAA,mBAAA"}
1
+ {"version":3,"file":"withDefaultServices.js","names":["babelCore","_interopRequireWildcard","require","_cache","_EventEmitter","_Entrypoint","_rootLog","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","withDefaultServices","babel","cache","TransformCacheCollection","emitWarning","eventEmitter","EventEmitter","dummy","loadAndParseFn","loadAndParse","log","rootLog","options","exports"],"sources":["../../../src/transform/helpers/withDefaultServices.ts"],"sourcesContent":["import * as babelCore from '@babel/core';\n\nimport { TransformCacheCollection } from '../../cache';\nimport { EventEmitter } from '../../utils/EventEmitter';\nimport { loadAndParse } from '../Entrypoint.helpers';\nimport { rootLog } from '../rootLog';\nimport type { Services } from '../types';\n\ntype RequiredServices = 'options';\nexport type PartialServices = Partial<Omit<Services, RequiredServices>> &\n Pick<Services, RequiredServices>;\n\nexport const withDefaultServices = ({\n babel = babelCore,\n cache = new TransformCacheCollection(),\n emitWarning,\n eventEmitter = EventEmitter.dummy,\n loadAndParseFn = loadAndParse,\n log = rootLog,\n options,\n}: PartialServices): Services => ({\n babel,\n cache,\n emitWarning,\n eventEmitter,\n loadAndParseFn,\n log,\n options,\n});\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AAAqC,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAO9B,MAAMkB,mBAAmB,GAAGA,CAAC;EAClCC,KAAK,GAAG3B,SAAS;EACjB4B,KAAK,GAAG,IAAIC,+BAAwB,CAAC,CAAC;EACtCC,WAAW;EACXC,YAAY,GAAGC,0BAAY,CAACC,KAAK;EACjCC,cAAc,GAAGC,wBAAY;EAC7BC,GAAG,GAAGC,gBAAO;EACbC;AACe,CAAC,MAAgB;EAChCX,KAAK;EACLC,KAAK;EACLE,WAAW;EACXC,YAAY;EACZG,cAAc;EACdE,GAAG;EACHE;AACF,CAAC,CAAC;AAACC,OAAA,CAAAb,mBAAA,GAAAA,mBAAA","ignoreList":[]}