@umijs/bundler-webpack 3.5.19 → 4.0.0-beta.11

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 (334) hide show
  1. package/README.md +2 -0
  2. package/bin/bundler-webpack.js +1 -2
  3. package/client/client/client.js +202 -0
  4. package/client/constants.js +12 -0
  5. package/client/utils/formatWebpackMessages.js +92 -0
  6. package/compiled/@svgr/webpack/LICENSE +7 -0
  7. package/compiled/@svgr/webpack/index.js +266 -0
  8. package/compiled/@svgr/webpack/package.json +1 -0
  9. package/compiled/autoprefixer/LICENSE +20 -0
  10. package/compiled/autoprefixer/browserslist/index.d.ts +172 -0
  11. package/compiled/autoprefixer/index.js +9 -0
  12. package/compiled/autoprefixer/lib/autoprefixer.d.ts +95 -0
  13. package/compiled/autoprefixer/package.json +1 -0
  14. package/compiled/autoprefixer/postcss/lib/at-rule.d.ts +106 -0
  15. package/compiled/autoprefixer/postcss/lib/comment.d.ts +56 -0
  16. package/compiled/autoprefixer/postcss/lib/container.d.ts +442 -0
  17. package/compiled/autoprefixer/postcss/lib/css-syntax-error.d.ts +192 -0
  18. package/compiled/autoprefixer/postcss/lib/declaration.d.ts +124 -0
  19. package/compiled/autoprefixer/postcss/lib/document.d.ts +57 -0
  20. package/compiled/autoprefixer/postcss/lib/input.d.ts +130 -0
  21. package/compiled/autoprefixer/postcss/lib/lazy-result.d.ts +175 -0
  22. package/compiled/autoprefixer/postcss/lib/list.d.ts +51 -0
  23. package/compiled/autoprefixer/postcss/lib/node.d.ts +444 -0
  24. package/compiled/autoprefixer/postcss/lib/postcss.d.ts +472 -0
  25. package/compiled/autoprefixer/postcss/lib/previous-map.d.ts +72 -0
  26. package/compiled/autoprefixer/postcss/lib/processor.d.ts +101 -0
  27. package/compiled/autoprefixer/postcss/lib/result.d.ts +195 -0
  28. package/compiled/autoprefixer/postcss/lib/root.d.ts +73 -0
  29. package/compiled/autoprefixer/postcss/lib/rule.d.ts +104 -0
  30. package/compiled/autoprefixer/postcss/lib/warning.d.ts +104 -0
  31. package/compiled/autoprefixer/source-map-js/source-map.d.ts +98 -0
  32. package/compiled/babel-loader/LICENSE +22 -0
  33. package/compiled/babel-loader/index.js +3 -0
  34. package/compiled/babel-loader/package.json +1 -0
  35. package/compiled/compression/LICENSE +23 -0
  36. package/compiled/compression/index.js +57 -0
  37. package/compiled/compression/package.json +1 -0
  38. package/compiled/connect-history-api-fallback/LICENSE +21 -0
  39. package/compiled/connect-history-api-fallback/index.js +1 -0
  40. package/compiled/connect-history-api-fallback/package.json +1 -0
  41. package/{lib/webpack/plugins/mini-css-extract-plugin → compiled/copy-webpack-plugin}/LICENSE +0 -0
  42. package/compiled/copy-webpack-plugin/index.js +46 -0
  43. package/compiled/copy-webpack-plugin/package.json +1 -0
  44. package/{lib/webpack/plugins/terser-webpack-plugin → compiled/css-loader}/LICENSE +0 -0
  45. package/compiled/css-loader/api.js +102 -0
  46. package/compiled/css-loader/getUrl.js +29 -0
  47. package/compiled/css-loader/index.js +2 -0
  48. package/compiled/css-loader/noSourceMaps.js +5 -0
  49. package/compiled/css-loader/package.json +1 -0
  50. package/compiled/css-loader/sourceMaps.js +22 -0
  51. package/compiled/css-minimizer-webpack-plugin/LICENSE +20 -0
  52. package/compiled/css-minimizer-webpack-plugin/index.js +3 -0
  53. package/compiled/css-minimizer-webpack-plugin/minify.js +72 -0
  54. package/compiled/css-minimizer-webpack-plugin/package.json +1 -0
  55. package/compiled/css-minimizer-webpack-plugin/utils.js +166 -0
  56. package/compiled/cssnano/index.js +192 -0
  57. package/compiled/cssnano/package.json +1 -0
  58. package/compiled/express/LICENSE +24 -0
  59. package/compiled/express/body-parser/index.d.ts +104 -0
  60. package/compiled/express/connect/index.d.ts +93 -0
  61. package/compiled/express/express-serve-static-core/index.d.ts +1252 -0
  62. package/compiled/express/index.d.ts +133 -0
  63. package/compiled/express/index.js +338 -0
  64. package/compiled/express/mime/index.d.ts +35 -0
  65. package/compiled/express/package.json +1 -0
  66. package/compiled/express/qs/index.d.ts +62 -0
  67. package/compiled/express/range-parser/index.d.ts +35 -0
  68. package/compiled/express/serve-static/index.d.ts +108 -0
  69. package/compiled/http-proxy-middleware/LICENSE +22 -0
  70. package/compiled/http-proxy-middleware/dist/index.d.ts +4 -0
  71. package/compiled/http-proxy-middleware/dist/types.d.ts +54 -0
  72. package/compiled/http-proxy-middleware/http-proxy/index.d.ts +226 -0
  73. package/compiled/http-proxy-middleware/index.js +66 -0
  74. package/compiled/http-proxy-middleware/package.json +1 -0
  75. package/compiled/less/index.js +31 -0
  76. package/compiled/less/package.json +1 -0
  77. package/compiled/less-loader/LICENSE +20 -0
  78. package/compiled/less-loader/index.js +1 -0
  79. package/compiled/less-loader/package.json +1 -0
  80. package/compiled/mini-css-extract-plugin/LICENSE +20 -0
  81. package/{lib/webpack/plugins/mini-css-extract-plugin/src → compiled/mini-css-extract-plugin}/hmr/hotModuleReplacement.js +50 -52
  82. package/compiled/mini-css-extract-plugin/hmr/normalize-url.js +35 -0
  83. package/compiled/mini-css-extract-plugin/index.js +11606 -0
  84. package/compiled/mini-css-extract-plugin/loader-options.json +32 -0
  85. package/compiled/mini-css-extract-plugin/loader.js +315 -0
  86. package/compiled/mini-css-extract-plugin/package.json +1 -0
  87. package/compiled/mini-css-extract-plugin/utils.js +154 -0
  88. package/compiled/postcss-flexbugs-fixes/LICENSE +20 -0
  89. package/compiled/postcss-flexbugs-fixes/index.js +1 -0
  90. package/compiled/postcss-flexbugs-fixes/package.json +1 -0
  91. package/compiled/postcss-loader/LICENSE +20 -0
  92. package/compiled/postcss-loader/index.js +1 -0
  93. package/compiled/postcss-loader/package.json +1 -0
  94. package/compiled/purgecss-webpack-plugin/LICENSE +21 -0
  95. package/compiled/purgecss-webpack-plugin/index.js +7781 -0
  96. package/compiled/purgecss-webpack-plugin/package.json +1 -0
  97. package/compiled/react-refresh/index.js +19 -0
  98. package/compiled/sass-loader/LICENSE +20 -0
  99. package/compiled/sass-loader/index.js +1 -0
  100. package/compiled/sass-loader/package.json +1 -0
  101. package/compiled/schema-utils/LICENSE +20 -0
  102. package/compiled/schema-utils/ajv/lib/ajv.d.ts +397 -0
  103. package/compiled/schema-utils/declarations/ValidationError.d.ts +74 -0
  104. package/compiled/schema-utils/declarations/index.d.ts +3 -0
  105. package/compiled/schema-utils/declarations/validate.d.ts +37 -0
  106. package/compiled/schema-utils/index.js +3 -0
  107. package/compiled/schema-utils/json-schema/index.d.ts +751 -0
  108. package/compiled/schema-utils/package.json +1 -0
  109. package/compiled/speed-measure-webpack-plugin/LICENSE +21 -0
  110. package/compiled/speed-measure-webpack-plugin/index.js +1 -0
  111. package/compiled/speed-measure-webpack-plugin/package.json +1 -0
  112. package/compiled/style-loader/LICENSE +20 -0
  113. package/compiled/style-loader/index.js +1 -0
  114. package/compiled/style-loader/package.json +1 -0
  115. package/compiled/style-loader/runtime/injectStylesIntoLinkTag.js +29 -0
  116. package/compiled/style-loader/runtime/injectStylesIntoStyleTag.js +104 -0
  117. package/compiled/style-loader/runtime/insertBySelector.js +39 -0
  118. package/compiled/style-loader/runtime/insertStyleElement.js +11 -0
  119. package/compiled/style-loader/runtime/isEqualLocals.js +35 -0
  120. package/compiled/style-loader/runtime/isOldIE.js +19 -0
  121. package/compiled/style-loader/runtime/setAttributesWithAttributes.js +16 -0
  122. package/compiled/style-loader/runtime/setAttributesWithAttributesAndNonce.js +10 -0
  123. package/compiled/style-loader/runtime/setAttributesWithoutAttributes.js +12 -0
  124. package/compiled/style-loader/runtime/singletonStyleDomAPI.js +93 -0
  125. package/compiled/style-loader/runtime/styleDomAPI.js +70 -0
  126. package/compiled/style-loader/runtime/styleTagTransform.js +16 -0
  127. package/compiled/svgo-loader/LICENSE +22 -0
  128. package/compiled/svgo-loader/index.js +4 -0
  129. package/compiled/svgo-loader/package.json +1 -0
  130. package/compiled/swc-loader/LICENSE +25 -0
  131. package/compiled/swc-loader/index.js +1 -0
  132. package/compiled/swc-loader/package.json +1 -0
  133. package/compiled/tapable/LICENSE +21 -0
  134. package/compiled/tapable/index.js +1 -0
  135. package/compiled/tapable/package.json +1 -0
  136. package/compiled/tapable/tapable.d.ts +116 -0
  137. package/compiled/terser/LICENSE +29 -0
  138. package/compiled/terser/index.js +1 -0
  139. package/compiled/terser/mappings.wasm +0 -0
  140. package/compiled/terser/package.json +1 -0
  141. package/compiled/terser/source-map/source-map.d.ts +369 -0
  142. package/compiled/terser/tools/terser.d.ts +207 -0
  143. package/compiled/terser-webpack-plugin/LICENSE +20 -0
  144. package/compiled/terser-webpack-plugin/ajv/lib/ajv.d.ts +397 -0
  145. package/compiled/terser-webpack-plugin/index.js +15142 -0
  146. package/compiled/terser-webpack-plugin/jest-worker/build/index.d.ts +49 -0
  147. package/compiled/terser-webpack-plugin/jest-worker/build/types.d.ts +142 -0
  148. package/compiled/terser-webpack-plugin/json-schema/index.d.ts +751 -0
  149. package/compiled/terser-webpack-plugin/minify.js +43 -0
  150. package/compiled/terser-webpack-plugin/package.json +1 -0
  151. package/compiled/terser-webpack-plugin/schema-utils/declarations/ValidationError.d.ts +74 -0
  152. package/compiled/terser-webpack-plugin/schema-utils/declarations/index.d.ts +3 -0
  153. package/compiled/terser-webpack-plugin/schema-utils/declarations/validate.d.ts +37 -0
  154. package/compiled/terser-webpack-plugin/source-map/source-map.d.ts +98 -0
  155. package/compiled/terser-webpack-plugin/types/cjs.d.ts +3 -0
  156. package/compiled/terser-webpack-plugin/types/index.d.ts +295 -0
  157. package/compiled/terser-webpack-plugin/types/utils.d.ts +105 -0
  158. package/compiled/terser-webpack-plugin/utils.js +594 -0
  159. package/compiled/url-loader/LICENSE +20 -0
  160. package/compiled/url-loader/index.js +15 -0
  161. package/compiled/url-loader/package.json +1 -0
  162. package/compiled/webpack/Chunk.js +1 -0
  163. package/compiled/webpack/Compilation.js +1 -0
  164. package/compiled/webpack/HotModuleReplacement.runtime.js +394 -0
  165. package/compiled/webpack/JavascriptHotModuleReplacement.runtime.js +462 -0
  166. package/compiled/webpack/LICENSE +20 -0
  167. package/compiled/webpack/LibraryTemplatePlugin.js +1 -0
  168. package/compiled/webpack/LoaderTargetPlugin.js +1 -0
  169. package/compiled/webpack/ModuleFilenameHelpers.js +1 -0
  170. package/compiled/webpack/NormalModule.js +1 -0
  171. package/compiled/webpack/RuntimeGlobals.js +1 -0
  172. package/compiled/webpack/RuntimeModule.js +1 -0
  173. package/compiled/webpack/SingleEntryPlugin.js +1 -0
  174. package/compiled/webpack/Template.js +1 -0
  175. package/compiled/webpack/ajv/lib/ajv.d.ts +397 -0
  176. package/compiled/webpack/deepImports.json +12 -0
  177. package/compiled/webpack/index.js +162861 -0
  178. package/compiled/webpack/json-schema/index.d.ts +751 -0
  179. package/compiled/webpack/lazy-compilation-node.js +40 -0
  180. package/compiled/webpack/lazy-compilation-web.js +74 -0
  181. package/compiled/webpack/package.json +5 -0
  182. package/compiled/webpack/schema-utils/declarations/ValidationError.d.ts +74 -0
  183. package/compiled/webpack/schema-utils/declarations/index.d.ts +3 -0
  184. package/compiled/webpack/schema-utils/declarations/validate.d.ts +37 -0
  185. package/compiled/webpack/types.d.ts +12664 -0
  186. package/compiled/webpack-5-chain/LICENSE +373 -0
  187. package/compiled/webpack-5-chain/index.js +1 -0
  188. package/compiled/webpack-5-chain/package.json +1 -0
  189. package/compiled/webpack-5-chain/types/index.d.ts +543 -0
  190. package/compiled/webpack-bundle-analyzer/LICENSE +20 -0
  191. package/compiled/webpack-bundle-analyzer/index.js +30 -0
  192. package/compiled/webpack-bundle-analyzer/package.json +1 -0
  193. package/compiled/webpack-bundle-analyzer/public/viewer.js +16 -0
  194. package/compiled/webpack-bundle-analyzer/public/viewer.js.LICENSE.txt +10 -0
  195. package/compiled/webpack-bundle-analyzer/public/viewer.js.map +1 -0
  196. package/compiled/webpack-dev-middleware/LICENSE +20 -0
  197. package/compiled/webpack-dev-middleware/index.js +21 -0
  198. package/compiled/webpack-dev-middleware/package.json +1 -0
  199. package/compiled/webpack-sources/LICENSE +21 -0
  200. package/compiled/webpack-sources/index.d.ts +20 -0
  201. package/compiled/webpack-sources/index.js +1 -0
  202. package/compiled/webpack-sources/lib/CachedSource.d.ts +18 -0
  203. package/compiled/webpack-sources/lib/CompatSource.d.ts +9 -0
  204. package/compiled/webpack-sources/lib/ConcatSource.d.ts +22 -0
  205. package/compiled/webpack-sources/lib/OriginalSource.d.ts +18 -0
  206. package/compiled/webpack-sources/lib/PrefixSource.d.ts +12 -0
  207. package/compiled/webpack-sources/lib/RawSource.d.ts +13 -0
  208. package/compiled/webpack-sources/lib/ReplaceSource.d.ts +35 -0
  209. package/compiled/webpack-sources/lib/SizeOnlySource.d.ts +7 -0
  210. package/compiled/webpack-sources/lib/Source.d.ts +45 -0
  211. package/compiled/webpack-sources/lib/SourceMapSource.d.ts +22 -0
  212. package/compiled/webpack-sources/lib/index.d.ts +60 -0
  213. package/compiled/webpack-sources/package.json +1 -0
  214. package/compiled/webpack-sources/source-list-map/index.d.ts +91 -0
  215. package/compiled/webpack-sources/source-map/source-map.d.ts +369 -0
  216. package/compiled/ws/LICENSE +19 -0
  217. package/compiled/ws/index.d.ts +359 -0
  218. package/compiled/ws/index.js +1 -0
  219. package/compiled/ws/package.json +1 -0
  220. package/dist/build.d.ts +17 -0
  221. package/dist/build.js +72 -0
  222. package/{lib → dist}/cli.d.ts +0 -0
  223. package/dist/cli.js +93 -0
  224. package/{lib/webpackHotDevClient/webpackHotDevClient.d.ts → dist/client/client.d.ts} +0 -0
  225. package/dist/client/client.js +239 -0
  226. package/dist/config/_sampleFeature.d.ts +10 -0
  227. package/dist/config/_sampleFeature.js +22 -0
  228. package/dist/config/assetRules.d.ts +11 -0
  229. package/dist/config/assetRules.js +69 -0
  230. package/dist/config/bundleAnalyzerPlugin.d.ts +10 -0
  231. package/dist/config/bundleAnalyzerPlugin.js +30 -0
  232. package/dist/config/compressPlugin.d.ts +10 -0
  233. package/dist/config/compressPlugin.js +77 -0
  234. package/dist/config/config.d.ts +20 -0
  235. package/dist/config/config.js +178 -0
  236. package/dist/config/copyPlugin.d.ts +10 -0
  237. package/dist/config/copyPlugin.js +49 -0
  238. package/dist/config/cssRules.d.ts +11 -0
  239. package/dist/config/cssRules.js +98 -0
  240. package/dist/config/definePlugin.d.ts +15 -0
  241. package/dist/config/definePlugin.js +45 -0
  242. package/dist/config/fastRefreshPlugin.d.ts +12 -0
  243. package/dist/config/fastRefreshPlugin.js +34 -0
  244. package/dist/config/ignorePlugin.d.ts +10 -0
  245. package/dist/config/ignorePlugin.js +27 -0
  246. package/dist/config/javaScriptRules.d.ts +14 -0
  247. package/dist/config/javaScriptRules.js +155 -0
  248. package/dist/config/miniCSSExtractPlugin.d.ts +10 -0
  249. package/dist/config/miniCSSExtractPlugin.js +34 -0
  250. package/dist/config/nodePolyfill.d.ts +10 -0
  251. package/dist/config/nodePolyfill.js +34 -0
  252. package/dist/config/progressPlugin.d.ts +11 -0
  253. package/dist/config/progressPlugin.js +27 -0
  254. package/dist/config/purgecssWebpackPlugin.d.ts +10 -0
  255. package/dist/config/purgecssWebpackPlugin.js +32 -0
  256. package/dist/config/speedMeasureWebpackPlugin.d.ts +6 -0
  257. package/dist/config/speedMeasureWebpackPlugin.js +34 -0
  258. package/dist/config/svgRules.d.ts +11 -0
  259. package/dist/config/svgRules.js +43 -0
  260. package/dist/constants.d.ts +11 -0
  261. package/dist/constants.js +15 -0
  262. package/dist/dev.d.ts +19 -0
  263. package/dist/dev.js +87 -0
  264. package/dist/index.d.ts +5 -0
  265. package/dist/index.js +16 -0
  266. package/dist/plugins/ESBuildCSSMinifyPlugin.d.ts +11 -0
  267. package/dist/plugins/ESBuildCSSMinifyPlugin.js +65 -0
  268. package/dist/plugins/ProgressPlugin.d.ts +15 -0
  269. package/dist/plugins/ProgressPlugin.js +44 -0
  270. package/dist/plugins/_SamplePlugin.d.ts +9 -0
  271. package/dist/plugins/_SamplePlugin.js +14 -0
  272. package/dist/requireHook.d.ts +1 -0
  273. package/dist/requireHook.js +31 -0
  274. package/dist/schema.d.ts +3 -0
  275. package/dist/schema.js +72 -0
  276. package/dist/server/server.d.ts +16 -0
  277. package/dist/server/server.js +158 -0
  278. package/dist/server/ws.d.ts +8 -0
  279. package/dist/server/ws.js +42 -0
  280. package/dist/swcPlugins/autoCSSModules.d.ts +8 -0
  281. package/dist/swcPlugins/autoCSSModules.js +35 -0
  282. package/dist/types.d.ts +100 -0
  283. package/dist/types.js +29 -0
  284. package/dist/utils/browsersList.d.ts +5 -0
  285. package/dist/utils/browsersList.js +10 -0
  286. package/dist/utils/depMatch.d.ts +6 -0
  287. package/dist/utils/depMatch.js +46 -0
  288. package/dist/utils/formatWebpackMessages.d.ts +12 -0
  289. package/dist/utils/formatWebpackMessages.js +100 -0
  290. package/package.json +170 -42
  291. package/bundled/css/hotModuleReplacement.js +0 -1203
  292. package/bundled/js/webpackHotDevClient.js +0 -13386
  293. package/lib/DevCompileDonePlugin.d.ts +0 -10
  294. package/lib/DevCompileDonePlugin.js +0 -53
  295. package/lib/cli.js +0 -184
  296. package/lib/getConfig/css.d.ts +0 -22
  297. package/lib/getConfig/css.js +0 -186
  298. package/lib/getConfig/getConfig.d.ts +0 -26
  299. package/lib/getConfig/getConfig.js +0 -578
  300. package/lib/getConfig/nodeModulesTransform.d.ts +0 -13
  301. package/lib/getConfig/nodeModulesTransform.js +0 -141
  302. package/lib/getConfig/pkgMatch.d.ts +0 -2
  303. package/lib/getConfig/pkgMatch.js +0 -58
  304. package/lib/getConfig/resolveDefine.d.ts +0 -5
  305. package/lib/getConfig/resolveDefine.js +0 -53
  306. package/lib/getConfig/runtimePublicPathEntry.d.ts +0 -1
  307. package/lib/getConfig/runtimePublicPathEntry.js +0 -3
  308. package/lib/getConfig/terserOptions.d.ts +0 -41
  309. package/lib/getConfig/terserOptions.js +0 -64
  310. package/lib/index.d.ts +0 -34
  311. package/lib/index.js +0 -314
  312. package/lib/requireHook.d.ts +0 -3
  313. package/lib/requireHook.js +0 -51
  314. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssDependency.js +0 -94
  315. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssDependencyTemplate.js +0 -26
  316. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssLoadingRuntimeModule.js +0 -93
  317. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssModule.js +0 -164
  318. package/lib/webpack/plugins/mini-css-extract-plugin/src/CssModuleFactory.js +0 -32
  319. package/lib/webpack/plugins/mini-css-extract-plugin/src/cjs.js +0 -15
  320. package/lib/webpack/plugins/mini-css-extract-plugin/src/index.js +0 -542
  321. package/lib/webpack/plugins/mini-css-extract-plugin/src/loader.js +0 -319
  322. package/lib/webpack/plugins/mini-css-extract-plugin/src/utils.js +0 -97
  323. package/lib/webpack/plugins/mini-css-extract-plugin.d.ts +0 -1
  324. package/lib/webpack/plugins/mini-css-extract-plugin.js +0 -15
  325. package/lib/webpack/plugins/terser-webpack-plugin/package.json +0 -3
  326. package/lib/webpack/plugins/terser-webpack-plugin/src/Webpack4Cache.js +0 -187
  327. package/lib/webpack/plugins/terser-webpack-plugin/src/Webpack5Cache.js +0 -61
  328. package/lib/webpack/plugins/terser-webpack-plugin/src/index.js +0 -683
  329. package/lib/webpack/plugins/terser-webpack-plugin/src/minify.js +0 -197
  330. package/lib/webpack/plugins/terser-webpack-plugin.d.ts +0 -1
  331. package/lib/webpack/plugins/terser-webpack-plugin.js +0 -15
  332. package/lib/webpackHotDevClient/formatWebpackMessages.d.ts +0 -11
  333. package/lib/webpackHotDevClient/formatWebpackMessages.js +0 -127
  334. package/lib/webpackHotDevClient/webpackHotDevClient.js +0 -311
package/dist/schema.js ADDED
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSchemas = void 0;
4
+ const types_1 = require("./types");
5
+ const options = [
6
+ 'cheap-source-map',
7
+ 'cheap-eval-source-map',
8
+ 'cheap-hidden-source-map',
9
+ 'cheap-inline-source-map',
10
+ 'cheap-module-source-map',
11
+ 'cheap-module-eval-source-map',
12
+ 'cheap-module-hidden-source-map',
13
+ 'cheap-module-inline-source-map',
14
+ 'eval',
15
+ 'eval-source-map',
16
+ 'source-map',
17
+ 'hidden-source-map',
18
+ 'inline-source-map',
19
+ ];
20
+ const DEVTOOL_REGEX = new RegExp('^' + // start of string
21
+ '(#@|@|#)?' + // maybe one of the pragmas
22
+ `(${options.join('$|')})`);
23
+ function getSchemas() {
24
+ return {
25
+ alias: (Joi) => Joi.object(),
26
+ autoCSSModules: (Joi) => Joi.boolean(),
27
+ chainWebpack: (Joi) => Joi.function(),
28
+ copy: (Joi) => Joi.array().items(Joi.alternatives().try(Joi.object({
29
+ from: Joi.string(),
30
+ to: Joi.string(),
31
+ }), Joi.string())),
32
+ cssLoader: (Joi) => Joi.object(),
33
+ cssLoaderModules: (Joi) => Joi.object(),
34
+ cssMinifier: (Joi) => Joi.string().valid(types_1.CSSMinifier.cssnano, types_1.CSSMinifier.esbuild, types_1.CSSMinifier.none),
35
+ cssMinifierOptions: (Joi) => Joi.object(),
36
+ define: (Joi) => Joi.object(),
37
+ depTranspiler: (Joi) => Joi.string().valid(types_1.Transpiler.babel, types_1.Transpiler.esbuild, types_1.Transpiler.swc, types_1.Transpiler.none),
38
+ devtool: (Joi) => Joi.alternatives().try(Joi.string().regex(DEVTOOL_REGEX), Joi.boolean()),
39
+ externals: (Joi) => Joi.alternatives().try(Joi.object().pattern(/.+/, [
40
+ Joi.string(),
41
+ Joi.boolean(),
42
+ Joi.object().pattern(/.+/, [Joi.string(), Joi.boolean()]),
43
+ ]), Joi.string(), Joi.func().arity(3), Joi.object().regex()),
44
+ extraBabelPlugins: (Joi) => Joi.alternatives().try(Joi.string(), Joi.array().items(Joi.alternatives().try(Joi.string(), Joi.object()))),
45
+ extraBabelPresets: (Joi) => Joi.alternatives().try(Joi.string(), Joi.array().items(Joi.alternatives().try(Joi.string(), Joi.object()))),
46
+ extraPostCSSPlugins: (Joi) => Joi.array(),
47
+ fastRefresh: (Joi) => Joi.boolean(),
48
+ hash: (Joi) => Joi.boolean(),
49
+ ignoreMomentLocale: (Joi) => Joi.boolean(),
50
+ jsMinifier: (Joi) => Joi.string().valid(types_1.JSMinifier.esbuild, types_1.JSMinifier.swc, types_1.JSMinifier.terser, types_1.JSMinifier.uglifyJs, types_1.JSMinifier.none),
51
+ jsMinifierOptions: (Joi) => Joi.object(),
52
+ lessLoader: (Joi) => Joi.object(),
53
+ mfsu: (Joi) => Joi.alternatives(Joi.object({
54
+ esbuild: Joi.boolean(),
55
+ }), Joi.boolean()),
56
+ outputPath: (Joi) => Joi.string(),
57
+ postcssLoader: (Joi) => Joi.object(),
58
+ proxy: (Joi) => Joi.object(),
59
+ publicPath: (Joi) => Joi.string(),
60
+ purgeCSS: (Joi) => Joi.object(),
61
+ sassLoader: (Joi) => Joi.object(),
62
+ srcTranspiler: (Joi) => Joi.string().valid(types_1.Transpiler.babel, types_1.Transpiler.esbuild, types_1.Transpiler.swc, types_1.Transpiler.none),
63
+ styleLoader: (Joi) => Joi.object(),
64
+ svgr: (Joi) => Joi.object(),
65
+ svgo: (Joi) => Joi.alternatives().try(Joi.object(), Joi.boolean()),
66
+ targets: (Joi) => Joi.object(),
67
+ writeToDisk: (Joi) => Joi.boolean(),
68
+ esm: (Joi) => Joi.object(),
69
+ theme: (Joi) => Joi.object(),
70
+ };
71
+ }
72
+ exports.getSchemas = getSchemas;
@@ -0,0 +1,16 @@
1
+ /// <reference types="node" />
2
+ import { Configuration } from '@umijs/bundler-webpack/compiled/webpack';
3
+ import http from 'http';
4
+ import { IConfig } from '../types';
5
+ interface IOpts {
6
+ cwd: string;
7
+ port?: number;
8
+ host?: string;
9
+ webpackConfig: Configuration;
10
+ userConfig: IConfig;
11
+ beforeMiddlewares?: any[];
12
+ afterMiddlewares?: any[];
13
+ onDevCompileDone?: Function;
14
+ }
15
+ export declare function createServer(opts: IOpts): Promise<http.Server>;
16
+ export {};
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.createServer = void 0;
16
+ const express_1 = __importDefault(require("@umijs/bundler-webpack/compiled/express"));
17
+ const http_proxy_middleware_1 = require("@umijs/bundler-webpack/compiled/http-proxy-middleware");
18
+ const webpack_1 = __importDefault(require("@umijs/bundler-webpack/compiled/webpack"));
19
+ const utils_1 = require("@umijs/utils");
20
+ const fs_1 = require("fs");
21
+ const http_1 = __importDefault(require("http"));
22
+ const path_1 = require("path");
23
+ const constants_1 = require("../constants");
24
+ const ws_1 = require("./ws");
25
+ function createServer(opts) {
26
+ return __awaiter(this, void 0, void 0, function* () {
27
+ const { webpackConfig, userConfig } = opts;
28
+ const { proxy } = userConfig;
29
+ const app = (0, express_1.default)();
30
+ // compression
31
+ app.use(require('@umijs/bundler-webpack/compiled/compression')());
32
+ // TODO: headers
33
+ // before middlewares
34
+ (opts.beforeMiddlewares || []).forEach((m) => app.use(m));
35
+ // TODO: add to before middleware
36
+ app.use((req, res, next) => {
37
+ if (req.path === '/umi.js' && (0, fs_1.existsSync)((0, path_1.join)(opts.cwd, 'umi.js'))) {
38
+ res.setHeader('Content-Type', 'application/javascript');
39
+ res.send((0, fs_1.readFileSync)((0, path_1.join)(opts.cwd, 'umi.js'), 'utf-8'));
40
+ }
41
+ else {
42
+ next();
43
+ }
44
+ });
45
+ // webpack dev middleware
46
+ const compiler = (0, webpack_1.default)(Array.isArray(webpackConfig) ? webpackConfig : [webpackConfig]);
47
+ const webpackDevMiddleware = require('@umijs/bundler-webpack/compiled/webpack-dev-middleware');
48
+ const compilerMiddleware = webpackDevMiddleware(compiler, {
49
+ publicPath: '/',
50
+ writeToDisk: userConfig.writeToDisk,
51
+ stats: 'none',
52
+ // watchOptions: { ignored }
53
+ });
54
+ app.use(compilerMiddleware);
55
+ // hmr hooks
56
+ let stats;
57
+ let isFirstCompile = true;
58
+ compiler.compilers.forEach(addHooks);
59
+ function addHooks(compiler) {
60
+ compiler.hooks.invalid.tap('server', () => {
61
+ sendMessage(constants_1.MESSAGE_TYPE.invalid);
62
+ });
63
+ compiler.hooks.done.tap('server', (_stats) => {
64
+ var _a;
65
+ stats = _stats;
66
+ sendStats(getStats(stats));
67
+ (_a = opts.onDevCompileDone) === null || _a === void 0 ? void 0 : _a.call(opts, {
68
+ stats,
69
+ isFirstCompile,
70
+ time: stats.endTime - stats.startTime,
71
+ });
72
+ isFirstCompile = false;
73
+ });
74
+ }
75
+ function sendStats(stats, force, sender) {
76
+ const shouldEmit = !force &&
77
+ stats &&
78
+ (!stats.errors || stats.errors.length === 0) &&
79
+ (!stats.warnings || stats.warnings.length === 0) &&
80
+ stats.assets &&
81
+ stats.assets.every((asset) => !asset.emitted);
82
+ if (shouldEmit) {
83
+ sendMessage(constants_1.MESSAGE_TYPE.stillOk, null, sender);
84
+ return;
85
+ }
86
+ sendMessage(constants_1.MESSAGE_TYPE.hash, stats.hash, sender);
87
+ if ((stats.errors && stats.errors.length > 0) ||
88
+ (stats.warnings && stats.warnings.length > 0)) {
89
+ if (stats.warnings && stats.warnings.length > 0) {
90
+ sendMessage(constants_1.MESSAGE_TYPE.warnings, stats.warnings, sender);
91
+ }
92
+ if (stats.errors && stats.errors.length > 0) {
93
+ sendMessage(constants_1.MESSAGE_TYPE.errors, stats.errors, sender);
94
+ }
95
+ }
96
+ else {
97
+ sendMessage(constants_1.MESSAGE_TYPE.ok, null, sender);
98
+ }
99
+ }
100
+ function getStats(stats) {
101
+ return stats.toJson({
102
+ all: false,
103
+ hash: true,
104
+ assets: true,
105
+ warnings: true,
106
+ errors: true,
107
+ errorDetails: false,
108
+ });
109
+ }
110
+ function sendMessage(type, data, sender) {
111
+ (sender || ws).send(JSON.stringify({ type, data }));
112
+ }
113
+ // mock
114
+ // proxy
115
+ if (proxy) {
116
+ Object.keys(proxy).forEach((key) => {
117
+ app.use(key, (0, http_proxy_middleware_1.createProxyMiddleware)(proxy[key]));
118
+ });
119
+ }
120
+ // after middlewares
121
+ (opts.afterMiddlewares || []).forEach((m) => app.use(m));
122
+ // history fallback
123
+ app.use(require('@umijs/bundler-webpack/compiled/connect-history-api-fallback')({
124
+ index: '/',
125
+ }));
126
+ // hmr reconnect ping
127
+ app.use('/__umi_ping', (_, res) => {
128
+ res.end('pong');
129
+ });
130
+ // index.html
131
+ // TODO: remove me
132
+ app.get('/', (_req, res, next) => {
133
+ res.set('Content-Type', 'text/html');
134
+ const htmlPath = (0, path_1.join)(opts.cwd, 'index.html');
135
+ if ((0, fs_1.existsSync)(htmlPath)) {
136
+ const html = (0, fs_1.readFileSync)(htmlPath, 'utf-8');
137
+ res.send(html);
138
+ }
139
+ else {
140
+ next();
141
+ }
142
+ });
143
+ const server = http_1.default.createServer(app);
144
+ const ws = (0, ws_1.createWebSocketServer)(server);
145
+ ws.wss.on('connection', (socket) => {
146
+ if (stats) {
147
+ sendStats(getStats(stats), false, socket);
148
+ }
149
+ });
150
+ const port = opts.port || 8000;
151
+ server.listen(port, () => {
152
+ const host = opts.host && opts.host !== '0.0.0.0' ? opts.host : '127.0.0.1';
153
+ utils_1.logger.ready(`App listening at http://${host}:${port}`);
154
+ });
155
+ return server;
156
+ });
157
+ }
158
+ exports.createServer = createServer;
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
2
+ import { Server } from 'http';
3
+ import WebSocket from '../../compiled/ws';
4
+ export declare function createWebSocketServer(server: Server): {
5
+ send(message: string): void;
6
+ wss: WebSocket.Server;
7
+ close(): void;
8
+ };
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createWebSocketServer = void 0;
7
+ const utils_1 = require("@umijs/utils");
8
+ const ws_1 = __importDefault(require("../../compiled/ws"));
9
+ function createWebSocketServer(server) {
10
+ const wss = new ws_1.default.Server({
11
+ noServer: true,
12
+ });
13
+ server.on('upgrade', (req, socket, head) => {
14
+ if (req.headers['sec-websocket-protocol'] === 'webpack-hmr') {
15
+ wss.handleUpgrade(req, socket, head, (ws) => {
16
+ wss.emit('connection', ws, req);
17
+ });
18
+ }
19
+ });
20
+ wss.on('connection', (socket) => {
21
+ socket.send(JSON.stringify({ type: 'connected' }));
22
+ });
23
+ wss.on('error', (e) => {
24
+ if (e.code !== 'EADDRINUSE') {
25
+ console.error(utils_1.chalk.red(`WebSocket server error:\n${e.stack || e.message}`));
26
+ }
27
+ });
28
+ return {
29
+ send(message) {
30
+ wss.clients.forEach((client) => {
31
+ if (client.readyState === ws_1.default.OPEN) {
32
+ client.send(message);
33
+ }
34
+ });
35
+ },
36
+ wss,
37
+ close() {
38
+ wss.close();
39
+ },
40
+ };
41
+ }
42
+ exports.createWebSocketServer = createWebSocketServer;
@@ -0,0 +1,8 @@
1
+ import { ImportDeclaration, TsType, VariableDeclaration } from '@swc/core';
2
+ import Visitor from '@swc/core/Visitor';
3
+ declare class AutoCSSModule extends Visitor {
4
+ visitTsType(expression: TsType): TsType;
5
+ visitImportDeclaration(expression: ImportDeclaration): ImportDeclaration;
6
+ visitVariableDeclaration(expression: VariableDeclaration): VariableDeclaration;
7
+ }
8
+ export default AutoCSSModule;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Visitor_1 = __importDefault(require("@swc/core/Visitor"));
7
+ const path_1 = require("path");
8
+ const CSS_EXT_NAMES = ['.css', '.less', '.sass', '.scss', '.stylus', '.styl'];
9
+ class AutoCSSModule extends Visitor_1.default {
10
+ visitTsType(expression) {
11
+ return expression;
12
+ }
13
+ visitImportDeclaration(expression) {
14
+ const { specifiers, source } = expression;
15
+ const { value } = source;
16
+ if (specifiers.length && CSS_EXT_NAMES.includes((0, path_1.extname)(value))) {
17
+ return Object.assign(Object.assign({}, expression), { source: Object.assign(Object.assign({}, source), { value: `${value}?modules` }) });
18
+ }
19
+ return expression;
20
+ }
21
+ visitVariableDeclaration(expression) {
22
+ const { declarations } = expression;
23
+ if (declarations.length &&
24
+ declarations[0].init &&
25
+ declarations[0].init.type === 'AwaitExpression' &&
26
+ declarations[0].init.argument.type === 'CallExpression' &&
27
+ declarations[0].init.argument.arguments[0].expression.type ===
28
+ 'StringLiteral' &&
29
+ CSS_EXT_NAMES.includes((0, path_1.extname)(declarations[0].init.argument.arguments[0].expression.value))) {
30
+ declarations[0].init.argument.arguments[0].expression.value = `${declarations[0].init.argument.arguments[0].expression.value}?modules`;
31
+ }
32
+ return expression;
33
+ }
34
+ }
35
+ exports.default = AutoCSSModule;
@@ -0,0 +1,100 @@
1
+ import type { Options as ProxyOptions } from '../compiled/http-proxy-middleware';
2
+ import { Configuration } from '../compiled/webpack';
3
+ import Config from '../compiled/webpack-5-chain';
4
+ export declare enum Env {
5
+ development = "development",
6
+ production = "production"
7
+ }
8
+ export declare enum Transpiler {
9
+ babel = "babel",
10
+ swc = "swc",
11
+ esbuild = "esbuild",
12
+ none = "none"
13
+ }
14
+ export declare enum JSMinifier {
15
+ terser = "terser",
16
+ swc = "swc",
17
+ esbuild = "esbuild",
18
+ uglifyJs = "uglifyJs",
19
+ none = "none"
20
+ }
21
+ export declare enum CSSMinifier {
22
+ esbuild = "esbuild",
23
+ cssnano = "cssnano",
24
+ none = "none"
25
+ }
26
+ export interface ICopy {
27
+ from: string;
28
+ to: string;
29
+ }
30
+ declare type WebpackConfig = Required<Configuration>;
31
+ declare type IBabelPlugin = Function | string | [string, {
32
+ [key: string]: any;
33
+ }];
34
+ export interface IConfig {
35
+ alias?: Record<string, string>;
36
+ autoCSSModules?: boolean;
37
+ chainWebpack?: Function;
38
+ copy?: ICopy[] | string[];
39
+ cssLoader?: {
40
+ [key: string]: any;
41
+ };
42
+ cssLoaderModules?: {
43
+ [key: string]: any;
44
+ };
45
+ cssMinifier?: CSSMinifier;
46
+ cssMinifierOptions?: {
47
+ [key: string]: any;
48
+ };
49
+ define?: {
50
+ [key: string]: any;
51
+ };
52
+ depTranspiler?: Transpiler;
53
+ devtool?: Config.DevTool;
54
+ externals?: WebpackConfig['externals'];
55
+ esm?: {
56
+ [key: string]: any;
57
+ };
58
+ extraBabelPlugins?: IBabelPlugin[];
59
+ extraBabelPresets?: IBabelPlugin[];
60
+ extraPostCSSPlugins?: any[];
61
+ hash?: boolean;
62
+ ignoreMomentLocale?: boolean;
63
+ jsMinifier?: JSMinifier;
64
+ jsMinifierOptions?: {
65
+ [key: string]: any;
66
+ };
67
+ lessLoader?: {
68
+ [key: string]: any;
69
+ };
70
+ outputPath?: string;
71
+ postcssLoader?: {
72
+ [key: string]: any;
73
+ };
74
+ proxy?: {
75
+ [key: string]: ProxyOptions;
76
+ };
77
+ publicPath?: string;
78
+ purgeCSS?: {
79
+ [key: string]: any;
80
+ };
81
+ sassLoader?: {
82
+ [key: string]: any;
83
+ };
84
+ srcTranspiler?: Transpiler;
85
+ styleLoader?: {
86
+ [key: string]: any;
87
+ };
88
+ svgr?: {
89
+ [key: string]: any;
90
+ };
91
+ svgo?: {
92
+ [key: string]: any;
93
+ } | false;
94
+ targets?: {
95
+ [key: string]: any;
96
+ };
97
+ writeToDisk?: boolean;
98
+ [key: string]: any;
99
+ }
100
+ export {};
package/dist/types.js ADDED
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CSSMinifier = exports.JSMinifier = exports.Transpiler = exports.Env = void 0;
4
+ var Env;
5
+ (function (Env) {
6
+ Env["development"] = "development";
7
+ Env["production"] = "production";
8
+ })(Env = exports.Env || (exports.Env = {}));
9
+ var Transpiler;
10
+ (function (Transpiler) {
11
+ Transpiler["babel"] = "babel";
12
+ Transpiler["swc"] = "swc";
13
+ Transpiler["esbuild"] = "esbuild";
14
+ Transpiler["none"] = "none";
15
+ })(Transpiler = exports.Transpiler || (exports.Transpiler = {}));
16
+ var JSMinifier;
17
+ (function (JSMinifier) {
18
+ JSMinifier["terser"] = "terser";
19
+ JSMinifier["swc"] = "swc";
20
+ JSMinifier["esbuild"] = "esbuild";
21
+ JSMinifier["uglifyJs"] = "uglifyJs";
22
+ JSMinifier["none"] = "none";
23
+ })(JSMinifier = exports.JSMinifier || (exports.JSMinifier = {}));
24
+ var CSSMinifier;
25
+ (function (CSSMinifier) {
26
+ CSSMinifier["esbuild"] = "esbuild";
27
+ CSSMinifier["cssnano"] = "cssnano";
28
+ CSSMinifier["none"] = "none";
29
+ })(CSSMinifier = exports.CSSMinifier || (exports.CSSMinifier = {}));
@@ -0,0 +1,5 @@
1
+ interface IOpts {
2
+ targets: Record<string, any>;
3
+ }
4
+ export declare function getBrowsersList({ targets }: IOpts): any;
5
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBrowsersList = void 0;
4
+ function getBrowsersList({ targets }) {
5
+ return (targets.browsers ||
6
+ Object.keys(targets).map((key) => {
7
+ return `${key} >= ${targets[key] === true ? '0' : targets[key]}`;
8
+ }));
9
+ }
10
+ exports.getBrowsersList = getBrowsersList;
@@ -0,0 +1,6 @@
1
+ export declare function cleanCache(): void;
2
+ export declare function isMatch(opts: {
3
+ path: string;
4
+ pkgs: Record</*name*/ string, /*version*/ string[]>;
5
+ }): boolean;
6
+ export declare function es5ImcompatibleVersionsToPkg(): Record<string, string[]>;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.es5ImcompatibleVersionsToPkg = exports.isMatch = exports.cleanCache = void 0;
4
+ const utils_1 = require("@umijs/utils");
5
+ const path_1 = require("path");
6
+ const cache = new Map();
7
+ function cleanCache() {
8
+ cache.clear();
9
+ }
10
+ exports.cleanCache = cleanCache;
11
+ function isMatch(opts) {
12
+ // cache by dir, 命中率会更高
13
+ const dir = (0, utils_1.winPath)((0, path_1.dirname)(opts.path));
14
+ if (cache.has(dir)) {
15
+ return !!cache.get(dir);
16
+ }
17
+ else {
18
+ const pkgPath = utils_1.pkgUp.sync({ cwd: opts.path });
19
+ let ret;
20
+ if (!pkgPath) {
21
+ ret = false;
22
+ }
23
+ else {
24
+ const { name, version } = require(pkgPath);
25
+ if (opts.pkgs[name]) {
26
+ ret = opts.pkgs[name].some((v) => {
27
+ return utils_1.semver.satisfies(version, v);
28
+ });
29
+ }
30
+ else {
31
+ ret = false;
32
+ }
33
+ }
34
+ cache.set(dir, ret);
35
+ return ret;
36
+ }
37
+ }
38
+ exports.isMatch = isMatch;
39
+ function es5ImcompatibleVersionsToPkg() {
40
+ const { config: { 'es5-imcompatible-versions': config }, } = require('es5-imcompatible-versions/package.json');
41
+ return Object.keys(config).reduce((memo, key) => {
42
+ memo[key] = /* versions */ Object.keys(config[key]);
43
+ return memo;
44
+ }, {});
45
+ }
46
+ exports.es5ImcompatibleVersionsToPkg = es5ImcompatibleVersionsToPkg;
@@ -0,0 +1,12 @@
1
+ export declare function formatMessage(message: string | {
2
+ message: string;
3
+ } | {
4
+ message: string;
5
+ }[]): string;
6
+ export declare function formatWebpackMessages(json: {
7
+ errors: string[];
8
+ warnings: string[];
9
+ }): {
10
+ errors: string[];
11
+ warnings: string[];
12
+ };
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.formatWebpackMessages = exports.formatMessage = void 0;
7
+ const strip_ansi_1 = __importDefault(require("@umijs/utils/compiled/strip-ansi"));
8
+ const friendlySyntaxErrorLabel = 'Syntax error:';
9
+ function isLikelyASyntaxError(message) {
10
+ return (0, strip_ansi_1.default)(message).indexOf(friendlySyntaxErrorLabel) !== -1;
11
+ }
12
+ function formatMessage(message) {
13
+ let lines = [];
14
+ if (typeof message === 'string') {
15
+ lines = message.split('\n');
16
+ }
17
+ else if ('message' in message) {
18
+ lines = message['message'].split('\n');
19
+ }
20
+ else if (Array.isArray(message)) {
21
+ message.forEach((message) => {
22
+ if ('message' in message) {
23
+ lines = message['message'].split('\n');
24
+ }
25
+ });
26
+ }
27
+ // Strip webpack-added headers off errors/warnings
28
+ // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js
29
+ lines = lines.filter((line) => !/Module [A-z ]+\(from/.test(line));
30
+ // Transform parsing error into syntax error
31
+ // TODO: move this to our ESLint formatter?
32
+ lines = lines.map((line) => {
33
+ const parsingError = /Line (\d+):(?:(\d+):)?\s*Parsing error: (.+)$/.exec(line);
34
+ if (!parsingError) {
35
+ return line;
36
+ }
37
+ const [, errorLine, errorColumn, errorMessage] = parsingError;
38
+ return `${friendlySyntaxErrorLabel} ${errorMessage} (${errorLine}:${errorColumn})`;
39
+ });
40
+ message = lines.join('\n');
41
+ // Smoosh syntax errors (commonly found in CSS)
42
+ message = message.replace(/SyntaxError\s+\((\d+):(\d+)\)\s*(.+?)\n/g, `${friendlySyntaxErrorLabel} $3 ($1:$2)\n`);
43
+ // Clean up export errors
44
+ message = message.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, `Attempted import error: '$1' is not exported from '$2'.`);
45
+ message = message.replace(/^.*export 'default' \(imported as '(.+?)'\) was not found in '(.+?)'.*$/gm, `Attempted import error: '$2' does not contain a default export (imported as '$1').`);
46
+ message = message.replace(/^.*export '(.+?)' \(imported as '(.+?)'\) was not found in '(.+?)'.*$/gm, `Attempted import error: '$1' is not exported from '$3' (imported as '$2').`);
47
+ lines = message.split('\n');
48
+ // Remove leading newline
49
+ if (lines.length > 2 && lines[1].trim() === '') {
50
+ lines.splice(1, 1);
51
+ }
52
+ // Clean up file name
53
+ lines[0] = lines[0].replace(/^(.*) \d+:\d+-\d+$/, '$1');
54
+ // Cleans up verbose "module not found" messages for files and packages.
55
+ if (lines[1] && lines[1].indexOf('Module not found: ') === 0) {
56
+ lines = [
57
+ lines[0],
58
+ lines[1]
59
+ .replace('Error: ', '')
60
+ .replace('Module not found: Cannot find file:', 'Cannot find file:'),
61
+ ];
62
+ }
63
+ // Add helpful message for users trying to use Sass for the first time
64
+ if (lines[1] && lines[1].match(/Cannot find module.+sass/)) {
65
+ lines[1] = 'To import Sass files, you first need to install sass.\n';
66
+ lines[1] +=
67
+ 'Run `npm install sass` or `yarn add sass` inside your workspace.';
68
+ }
69
+ message = lines.join('\n');
70
+ // Internal stacks are generally useless so we strip them... with the
71
+ // exception of stacks containing `webpack:` because they're normally
72
+ // from user code generated by webpack. For more information see
73
+ // https://github.com/facebook/create-react-app/pull/1050
74
+ message = message.replace(/^\s*at\s((?!webpack:).)*:\d+:\d+[\s)]*(\n|$)/gm, ''); // at ... ...:x:y
75
+ message = message.replace(/^\s*at\s<anonymous>(\n|$)/gm, ''); // at <anonymous>
76
+ lines = message.split('\n');
77
+ // Remove duplicated newlines
78
+ lines = lines.filter((line, index, arr) => index === 0 ||
79
+ line.trim() !== '' ||
80
+ line.trim() !== arr[index - 1].trim());
81
+ // Reassemble the message
82
+ message = lines.join('\n');
83
+ return message.trim();
84
+ }
85
+ exports.formatMessage = formatMessage;
86
+ function formatWebpackMessages(json) {
87
+ const formattedErrors = json.errors.map(function (message) {
88
+ return formatMessage(message);
89
+ });
90
+ const formattedWarnings = json.warnings.map(function (message) {
91
+ return formatMessage(message);
92
+ });
93
+ const result = { errors: formattedErrors, warnings: formattedWarnings };
94
+ if (result.errors.some(isLikelyASyntaxError)) {
95
+ // If there are any syntax errors, show just them.
96
+ result.errors = result.errors.filter(isLikelyASyntaxError);
97
+ }
98
+ return result;
99
+ }
100
+ exports.formatWebpackMessages = formatWebpackMessages;