@elliemae/pui-cli 7.0.0-alpha.1 → 7.0.0-alpha.4

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 (290) hide show
  1. package/{lib/babel/babel.config.js → dist/cjs/babel/babel.config.cjs} +2 -2
  2. package/dist/cjs/cli-commands/build.js +72 -0
  3. package/dist/cjs/cli-commands/codemod.js +51 -0
  4. package/dist/cjs/cli-commands/gendoc.js +52 -0
  5. package/dist/cjs/cli-commands/lint.js +86 -0
  6. package/dist/cjs/cli-commands/pack.js +88 -0
  7. package/dist/cjs/cli-commands/start.js +61 -0
  8. package/dist/cjs/cli-commands/storybook.js +63 -0
  9. package/dist/cjs/cli-commands/test.js +86 -0
  10. package/dist/cjs/cli-commands/tsc.js +103 -0
  11. package/dist/cjs/cli-commands/utils.js +137 -0
  12. package/dist/cjs/cli-commands/version.js +71 -0
  13. package/dist/cjs/cli-commands/vitest.js +84 -0
  14. package/dist/cjs/cli.js +47 -0
  15. package/dist/cjs/docgen/jsdoc.conf.json +17 -0
  16. package/{lib/dummy.ts → dist/cjs/dummy.js} +0 -0
  17. package/dist/cjs/index.js +41 -0
  18. package/dist/cjs/lint/commitlint.config.cjs +1 -0
  19. package/{lib/lint/eslint/common.js → dist/cjs/lint/eslint/common.cjs} +8 -8
  20. package/{lib/lint/eslint/non-react.js → dist/cjs/lint/eslint/non-react.cjs} +2 -2
  21. package/{lib/lint/eslint/react.js → dist/cjs/lint/eslint/react.cjs} +2 -2
  22. package/{lib/lint/eslint/typescript/common.js → dist/cjs/lint/eslint/typescript/common.cjs} +1 -1
  23. package/{lib/lint/eslint/typescript/non-react.js → dist/cjs/lint/eslint/typescript/non-react.cjs} +2 -2
  24. package/{lib/lint/eslint/typescript/react.js → dist/cjs/lint/eslint/typescript/react.cjs} +2 -2
  25. package/dist/cjs/lint/lint-staged.config.js +42 -0
  26. package/{lib/lint/prettier.config.js → dist/cjs/lint/prettier.config.cjs} +1 -1
  27. package/{lib/lint/stylelint.config.js → dist/cjs/lint/stylelint.config.cjs} +2 -2
  28. package/dist/cjs/monorepo/delete-merged-tags.js +57 -0
  29. package/dist/cjs/monorepo/set-registry-version.js +43 -0
  30. package/dist/cjs/monorepo/set-workspace-version.js +44 -0
  31. package/dist/cjs/monorepo/utils.js +34 -0
  32. package/dist/cjs/package.json +4 -0
  33. package/dist/cjs/pui-config/index.js +40 -0
  34. package/{lib/release/release.config.js → dist/cjs/release/release.config.cjs} +0 -0
  35. package/dist/cjs/scripts/helpers/checkmark.js +32 -0
  36. package/dist/cjs/scripts/helpers/get-npm-config.js +27 -0
  37. package/dist/cjs/scripts/helpers/progress.js +35 -0
  38. package/dist/cjs/scripts/helpers/xmark.js +31 -0
  39. package/dist/cjs/scripts/npmcheckversion.js +8 -0
  40. package/dist/cjs/scripts/update-notifier.js +33 -0
  41. package/dist/cjs/server/csp.js +88 -0
  42. package/dist/cjs/server/index.js +29 -0
  43. package/dist/cjs/server/logger.js +50 -0
  44. package/dist/cjs/server/middlewares/addProdMiddlewares.js +44 -0
  45. package/dist/cjs/server/middlewares/index.js +57 -0
  46. package/dist/cjs/server/util/index.js +68 -0
  47. package/{lib/testing/jest.config.js → dist/cjs/testing/jest.config.cjs} +15 -15
  48. package/{lib/testing/jest.node.config.js → dist/cjs/testing/jest.node.config.cjs} +1 -1
  49. package/{lib/testing/mocks/axios.js → dist/cjs/testing/mocks/axios.cjs} +0 -0
  50. package/{lib/testing/mocks/cssModule.js → dist/cjs/testing/mocks/cssModule.cjs} +0 -0
  51. package/{lib/testing/mocks/html.js → dist/cjs/testing/mocks/html.cjs} +0 -0
  52. package/{lib/testing/mocks/image.js → dist/cjs/testing/mocks/image.cjs} +0 -0
  53. package/{lib/testing/mocks/matchMedia.js → dist/cjs/testing/mocks/matchMedia.cjs} +0 -0
  54. package/{lib/testing/mocks/pui-app-loader.js → dist/cjs/testing/mocks/pui-app-loader.cjs} +0 -0
  55. package/{lib/testing/mocks/pui-diagnostics.js → dist/cjs/testing/mocks/pui-diagnostics.cjs} +0 -0
  56. package/{lib/testing/mocks/pui-user-monitoring.js → dist/cjs/testing/mocks/pui-user-monitoring.cjs} +0 -0
  57. package/{lib/testing/mocks/retry-axios.js → dist/cjs/testing/mocks/retry-axios.cjs} +0 -0
  58. package/{lib/testing/mocks/svg.js → dist/cjs/testing/mocks/svg.cjs} +0 -0
  59. package/{lib/testing/mocks/webpack-hmr.js → dist/cjs/testing/mocks/webpack-hmr.cjs} +0 -0
  60. package/{lib/testing/resolver.js → dist/cjs/testing/resolver.cjs} +0 -0
  61. package/dist/cjs/testing/setup-react-env.js +18 -0
  62. package/dist/cjs/testing/setup-tests.js +63 -0
  63. package/dist/cjs/testing/vitest.config.js +39 -0
  64. package/{lib/testing/vitest.setup.ts → dist/cjs/testing/vitest.setup.js} +0 -0
  65. package/dist/cjs/transpile/esbuild.js +138 -0
  66. package/dist/cjs/transpile/react-shim.js +26 -0
  67. package/{lib/transpile/swcrc.config.js → dist/cjs/transpile/swcrc.config.cjs} +1 -1
  68. package/{lib → dist/cjs}/typescript/app.tsconfig.json +0 -0
  69. package/{lib → dist/cjs}/typescript/library.tsconfig.json +0 -0
  70. package/dist/cjs/typescript/tsc-files/index.js +68 -0
  71. package/dist/cjs/typescript/tsc-files/utils.js +31 -0
  72. package/dist/cjs/typescript/util.js +28 -0
  73. package/dist/cjs/utils.cjs +20 -0
  74. package/dist/cjs/webpack/helpers.js +216 -0
  75. package/dist/cjs/webpack/webpack.base.babel.js +262 -0
  76. package/dist/cjs/webpack/webpack.dev.babel.js +136 -0
  77. package/dist/cjs/webpack/webpack.lib.base.babel.js +217 -0
  78. package/dist/cjs/webpack/webpack.lib.dev.babel.js +67 -0
  79. package/dist/cjs/webpack/webpack.lib.prod.babel.js +92 -0
  80. package/dist/cjs/webpack/webpack.prod.babel.js +139 -0
  81. package/{lib/webpack/webpack.storybook.js → dist/cjs/webpack/webpack.storybook.cjs} +1 -1
  82. package/dist/esm/babel/babel.config.cjs +101 -0
  83. package/dist/esm/cli-commands/build.js +56 -0
  84. package/dist/esm/cli-commands/codemod.js +29 -0
  85. package/dist/esm/cli-commands/gendoc.js +29 -0
  86. package/dist/esm/cli-commands/lint.js +64 -0
  87. package/dist/esm/cli-commands/pack.js +65 -0
  88. package/dist/esm/cli-commands/start.js +38 -0
  89. package/dist/esm/cli-commands/storybook.js +41 -0
  90. package/dist/esm/cli-commands/test.js +64 -0
  91. package/dist/esm/cli-commands/tsc.js +83 -0
  92. package/dist/esm/cli-commands/utils.js +120 -0
  93. package/dist/esm/cli-commands/version.js +49 -0
  94. package/dist/esm/cli-commands/vitest.js +61 -0
  95. package/dist/esm/cli.js +31 -0
  96. package/dist/esm/docgen/jsdoc.conf.json +17 -0
  97. package/dist/esm/dummy.js +0 -0
  98. package/dist/esm/index.js +22 -0
  99. package/dist/esm/lint/commitlint.config.cjs +1 -0
  100. package/dist/esm/lint/eslint/common.cjs +160 -0
  101. package/dist/esm/lint/eslint/non-react.cjs +14 -0
  102. package/dist/esm/lint/eslint/react.cjs +26 -0
  103. package/dist/esm/lint/eslint/typescript/common.cjs +43 -0
  104. package/dist/esm/lint/eslint/typescript/non-react.cjs +12 -0
  105. package/dist/esm/lint/eslint/typescript/react.cjs +19 -0
  106. package/dist/esm/lint/lint-staged.config.js +19 -0
  107. package/dist/esm/lint/prettier.config.cjs +8 -0
  108. package/dist/esm/lint/stylelint.config.cjs +19 -0
  109. package/dist/esm/monorepo/delete-merged-tags.js +38 -0
  110. package/dist/esm/monorepo/set-registry-version.js +21 -0
  111. package/dist/esm/monorepo/set-workspace-version.js +22 -0
  112. package/dist/esm/monorepo/utils.js +12 -0
  113. package/dist/esm/package.json +4 -0
  114. package/dist/esm/pui-config/index.js +18 -0
  115. package/dist/esm/release/release.config.cjs +31 -0
  116. package/dist/esm/scripts/helpers/checkmark.js +10 -0
  117. package/dist/esm/scripts/helpers/get-npm-config.js +5 -0
  118. package/dist/esm/scripts/helpers/progress.js +13 -0
  119. package/dist/esm/scripts/helpers/xmark.js +9 -0
  120. package/dist/esm/scripts/npmcheckversion.js +8 -0
  121. package/dist/esm/scripts/update-notifier.js +11 -0
  122. package/dist/esm/server/csp.js +66 -0
  123. package/dist/esm/server/index.js +17 -0
  124. package/dist/esm/server/logger.js +28 -0
  125. package/dist/esm/server/middlewares/addProdMiddlewares.js +22 -0
  126. package/dist/esm/server/middlewares/index.js +35 -0
  127. package/dist/esm/server/util/index.js +46 -0
  128. package/dist/esm/testing/jest.config.cjs +105 -0
  129. package/dist/esm/testing/jest.node.config.cjs +8 -0
  130. package/dist/esm/testing/mocks/axios.cjs +15 -0
  131. package/dist/esm/testing/mocks/cssModule.cjs +1 -0
  132. package/dist/esm/testing/mocks/html.cjs +1 -0
  133. package/dist/esm/testing/mocks/image.cjs +1 -0
  134. package/dist/esm/testing/mocks/matchMedia.cjs +24 -0
  135. package/dist/esm/testing/mocks/pui-app-loader.cjs +1 -0
  136. package/dist/esm/testing/mocks/pui-diagnostics.cjs +28 -0
  137. package/dist/esm/testing/mocks/pui-user-monitoring.cjs +3 -0
  138. package/dist/esm/testing/mocks/retry-axios.cjs +3 -0
  139. package/dist/esm/testing/mocks/svg.cjs +5 -0
  140. package/dist/esm/testing/mocks/webpack-hmr.cjs +1 -0
  141. package/dist/esm/testing/resolver.cjs +47 -0
  142. package/dist/esm/testing/setup-react-env.js +3 -0
  143. package/dist/esm/testing/setup-tests.js +48 -0
  144. package/dist/esm/testing/vitest.config.js +17 -0
  145. package/dist/esm/testing/vitest.setup.js +0 -0
  146. package/dist/esm/transpile/esbuild.js +117 -0
  147. package/dist/esm/transpile/react-shim.js +4 -0
  148. package/dist/esm/transpile/swcrc.config.cjs +13 -0
  149. package/dist/esm/typescript/app.tsconfig.json +23 -0
  150. package/dist/esm/typescript/library.tsconfig.json +23 -0
  151. package/dist/esm/typescript/tsc-files/index.js +55 -0
  152. package/{lib → dist/esm}/typescript/tsc-files/utils.js +3 -7
  153. package/dist/esm/typescript/util.js +6 -0
  154. package/dist/esm/utils.cjs +20 -0
  155. package/dist/esm/webpack/helpers.js +196 -0
  156. package/dist/esm/webpack/webpack.base.babel.js +248 -0
  157. package/dist/esm/webpack/webpack.dev.babel.js +118 -0
  158. package/dist/esm/webpack/webpack.lib.base.babel.js +208 -0
  159. package/dist/esm/webpack/webpack.lib.dev.babel.js +45 -0
  160. package/dist/esm/webpack/webpack.lib.prod.babel.js +70 -0
  161. package/dist/esm/webpack/webpack.prod.babel.js +122 -0
  162. package/dist/esm/webpack/webpack.storybook.cjs +87 -0
  163. package/dist/types/babel/babel.config.d.cts +59 -0
  164. package/dist/types/cli-commands/build.d.ts +14 -0
  165. package/dist/types/cli-commands/codemod.d.ts +6 -0
  166. package/dist/types/cli-commands/gendoc.d.ts +6 -0
  167. package/dist/types/cli-commands/lint.d.ts +29 -0
  168. package/dist/types/cli-commands/pack.d.ts +26 -0
  169. package/dist/types/cli-commands/start.d.ts +13 -0
  170. package/dist/types/cli-commands/storybook.d.ts +19 -0
  171. package/dist/types/cli-commands/test.d.ts +35 -0
  172. package/dist/types/cli-commands/tsc.d.ts +20 -0
  173. package/dist/types/cli-commands/utils.d.ts +14 -0
  174. package/dist/types/cli-commands/version.d.ts +30 -0
  175. package/dist/types/cli-commands/vitest.d.ts +35 -0
  176. package/dist/types/cli.d.ts +2 -0
  177. package/dist/types/dummy.d.ts +0 -0
  178. package/dist/types/index.d.ts +10 -0
  179. package/dist/types/lint/commitlint.config.d.cts +4 -0
  180. package/dist/types/lint/eslint/common.d.cts +124 -0
  181. package/dist/types/lint/eslint/non-react.d.cts +88 -0
  182. package/dist/types/lint/eslint/react.d.cts +118 -0
  183. package/dist/types/lint/eslint/typescript/common.d.cts +37 -0
  184. package/dist/types/lint/eslint/typescript/non-react.d.cts +87 -0
  185. package/dist/types/lint/eslint/typescript/react.d.cts +118 -0
  186. package/dist/types/lint/lint-staged.config.d.ts +5 -0
  187. package/dist/types/lint/prettier.config.d.cts +8 -0
  188. package/dist/types/lint/stylelint.config.d.cts +11 -0
  189. package/dist/types/monorepo/delete-merged-tags.d.ts +1 -0
  190. package/dist/types/monorepo/set-registry-version.d.ts +1 -0
  191. package/dist/types/monorepo/set-workspace-version.d.ts +1 -0
  192. package/dist/types/monorepo/utils.d.ts +1 -0
  193. package/dist/types/pui-config/index.d.ts +1 -0
  194. package/dist/types/release/release.config.d.cts +9 -0
  195. package/dist/types/scripts/helpers/checkmark.d.ts +7 -0
  196. package/dist/types/scripts/helpers/get-npm-config.d.ts +2 -0
  197. package/dist/types/scripts/helpers/progress.d.ts +7 -0
  198. package/dist/types/scripts/helpers/xmark.d.ts +6 -0
  199. package/dist/types/scripts/npmcheckversion.d.ts +1 -0
  200. package/dist/types/scripts/update-notifier.d.ts +2 -0
  201. package/dist/types/server/csp.d.ts +10 -0
  202. package/dist/types/server/index.d.ts +1 -0
  203. package/dist/types/server/logger.d.ts +4 -0
  204. package/dist/types/server/middlewares/addProdMiddlewares.d.ts +1 -0
  205. package/dist/types/server/middlewares/index.d.ts +2 -0
  206. package/dist/types/server/util/index.d.ts +4 -0
  207. package/dist/types/testing/jest.config.d.cts +38 -0
  208. package/dist/types/testing/jest.node.config.d.cts +38 -0
  209. package/dist/types/testing/mocks/axios.d.cts +14 -0
  210. package/dist/types/testing/mocks/cssModule.d.cts +2 -0
  211. package/dist/types/testing/mocks/html.d.cts +2 -0
  212. package/dist/types/testing/mocks/image.d.cts +2 -0
  213. package/dist/types/testing/mocks/matchMedia.d.cts +2 -0
  214. package/dist/types/testing/mocks/pui-app-loader.d.cts +1 -0
  215. package/dist/types/testing/mocks/pui-diagnostics.d.cts +28 -0
  216. package/dist/types/testing/mocks/pui-user-monitoring.d.cts +3 -0
  217. package/dist/types/testing/mocks/retry-axios.d.cts +3 -0
  218. package/dist/types/testing/mocks/svg.d.cts +3 -0
  219. package/dist/types/testing/mocks/webpack-hmr.d.cts +1 -0
  220. package/dist/types/testing/resolver.d.cts +2 -0
  221. package/dist/types/testing/setup-react-env.d.ts +1 -0
  222. package/dist/types/testing/setup-tests.d.ts +1 -0
  223. package/dist/types/testing/vitest.config.d.ts +2 -0
  224. package/dist/types/testing/vitest.setup.d.ts +0 -0
  225. package/dist/types/transpile/esbuild.d.ts +13 -0
  226. package/dist/types/transpile/react-shim.d.ts +2 -0
  227. package/dist/types/transpile/swcrc.config.d.cts +1 -0
  228. package/dist/types/typescript/tsc-files/index.d.ts +1 -0
  229. package/dist/types/typescript/tsc-files/utils.d.ts +3 -0
  230. package/dist/types/typescript/util.d.ts +1 -0
  231. package/dist/types/utils.d.cts +3 -0
  232. package/dist/types/webpack/helpers.d.ts +28 -0
  233. package/dist/types/webpack/webpack.base.babel.d.ts +90 -0
  234. package/dist/types/webpack/webpack.dev.babel.d.ts +1 -0
  235. package/dist/types/webpack/webpack.lib.base.babel.d.ts +107 -0
  236. package/dist/types/webpack/webpack.lib.dev.babel.d.ts +91 -0
  237. package/dist/types/webpack/webpack.lib.prod.babel.d.ts +91 -0
  238. package/dist/types/webpack/webpack.prod.babel.d.ts +2 -0
  239. package/dist/types/webpack/webpack.storybook.d.cts +4 -0
  240. package/package.json +45 -37
  241. package/lib/cli-commands/build.js +0 -60
  242. package/lib/cli-commands/codemod.js +0 -31
  243. package/lib/cli-commands/gendoc.js +0 -36
  244. package/lib/cli-commands/lint.js +0 -75
  245. package/lib/cli-commands/pack.js +0 -67
  246. package/lib/cli-commands/start.js +0 -49
  247. package/lib/cli-commands/storybook.js +0 -53
  248. package/lib/cli-commands/test.js +0 -63
  249. package/lib/cli-commands/tsc.js +0 -103
  250. package/lib/cli-commands/utils.js +0 -135
  251. package/lib/cli-commands/version.js +0 -53
  252. package/lib/cli-commands/vitest.js +0 -66
  253. package/lib/cli.js +0 -33
  254. package/lib/docgen/jsdoc.config.js +0 -17
  255. package/lib/index.js +0 -25
  256. package/lib/lint/commitlint.config.js +0 -1
  257. package/lib/lint/lint-staged.config.js +0 -16
  258. package/lib/monorepo/delete-merged-tags.js +0 -48
  259. package/lib/monorepo/set-registry-version.js +0 -22
  260. package/lib/monorepo/set-workspace-version.js +0 -29
  261. package/lib/monorepo/utils.js +0 -15
  262. package/lib/pui-config/index.js +0 -18
  263. package/lib/scripts/helpers/checkmark.js +0 -15
  264. package/lib/scripts/helpers/get-npm-config.js +0 -3
  265. package/lib/scripts/helpers/progress.js +0 -19
  266. package/lib/scripts/helpers/xmark.js +0 -13
  267. package/lib/scripts/npmcheckversion.js +0 -8
  268. package/lib/scripts/update-notifier.js +0 -7
  269. package/lib/server/csp.js +0 -74
  270. package/lib/server/index.js +0 -37
  271. package/lib/server/logger.js +0 -42
  272. package/lib/server/middlewares/addDevMiddlewares.js +0 -39
  273. package/lib/server/middlewares/addProdMiddlewares.js +0 -30
  274. package/lib/server/middlewares/index.js +0 -37
  275. package/lib/server/util/index.js +0 -52
  276. package/lib/testing/setup-react-env.js +0 -3
  277. package/lib/testing/setup-tests.js +0 -58
  278. package/lib/testing/vitest.config.ts +0 -16
  279. package/lib/transpile/.swcrc +0 -11
  280. package/lib/transpile/esbuild.js +0 -116
  281. package/lib/transpile/react-shim.js +0 -2
  282. package/lib/typescript/tsc-files/index.js +0 -66
  283. package/lib/typescript/util.js +0 -5
  284. package/lib/webpack/helpers.js +0 -252
  285. package/lib/webpack/webpack.base.babel.js +0 -242
  286. package/lib/webpack/webpack.dev.babel.js +0 -137
  287. package/lib/webpack/webpack.lib.base.babel.js +0 -205
  288. package/lib/webpack/webpack.lib.dev.babel.js +0 -49
  289. package/lib/webpack/webpack.lib.prod.babel.js +0 -77
  290. package/lib/webpack/webpack.prod.babel.js +0 -142
@@ -0,0 +1,23 @@
1
+ {
2
+ "compilerOptions": {
3
+ "lib": ["dom", "dom.iterable", "esnext"],
4
+ "moduleResolution": "node",
5
+ "target": "ES2020",
6
+ "module": "ES2020",
7
+ "allowJs": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "strict": true,
10
+ "esModuleInterop": true,
11
+ "skipLibCheck": true,
12
+ "jsx": "react-jsx",
13
+ "noFallthroughCasesInSwitch": true,
14
+ "resolveJsonModule": true,
15
+ "forceConsistentCasingInFileNames": true,
16
+ "preserveConstEnums": true,
17
+ "sourceMap": true,
18
+ "declaration": true,
19
+ "emitDeclarationOnly": true
20
+ },
21
+ "$schema": "https://json.schemastore.org/tsconfig",
22
+ "display": "pui-cli library"
23
+ }
@@ -0,0 +1,55 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { execa } from "execa";
21
+ import fs from "node:fs";
22
+ import path from "node:path";
23
+ import { randomChars, resolveFromRoot } from "./utils.js";
24
+ const args = process.argv.slice(2);
25
+ const argsProjectIndex = args.findIndex((arg) => ["-p", "--project"].includes(arg));
26
+ const argsProjectValue = argsProjectIndex !== -1 ? args[argsProjectIndex + 1] : void 0;
27
+ const files = args.filter((file) => /\.(ts|tsx)$/.test(file));
28
+ if (files.length === 0) {
29
+ process.exit(0);
30
+ }
31
+ const remainingArgsToForward = args.slice().filter((arg) => !files.includes(arg));
32
+ if (argsProjectIndex !== -1) {
33
+ remainingArgsToForward.splice(argsProjectIndex, 2);
34
+ }
35
+ const tsconfigPath = argsProjectValue || resolveFromRoot("tsconfig.json");
36
+ const tsconfigContent = fs.readFileSync(tsconfigPath).toString();
37
+ let tsconfig = {};
38
+ eval(`tsconfig = ${tsconfigContent}`);
39
+ const tmpTsconfigPath = resolveFromRoot(`tsconfig.${randomChars()}.json`);
40
+ const tmpTsconfig = __spreadProps(__spreadValues({}, tsconfig), {
41
+ compilerOptions: __spreadProps(__spreadValues({}, tsconfig.compilerOptions), {
42
+ skipLibCheck: true
43
+ }),
44
+ files,
45
+ include: ["app", "lib"]
46
+ });
47
+ fs.writeFileSync(tmpTsconfigPath, JSON.stringify(tmpTsconfig, null, 2));
48
+ let status = 0;
49
+ try {
50
+ execa.sync(path.resolve(process.cwd(), `./node_modules/.bin/tsc${process.platform === "win32" ? ".cmd" : ""}`), ["-p", tmpTsconfigPath, ...remainingArgsToForward], { stdio: "inherit" });
51
+ } catch (ex) {
52
+ status = ex.exitCode;
53
+ }
54
+ fs.unlinkSync(tmpTsconfigPath);
55
+ process.exit(status);
@@ -1,16 +1,12 @@
1
- const { dirname, join } = require('path');
2
-
1
+ import { dirname, join } from "node:path";
3
2
  const randomChars = () => Math.random().toString(36).slice(2);
4
-
5
3
  const resolveFromModule = (moduleName, ...paths) => {
6
4
  const modulePath = dirname(require.resolve(`${moduleName}/package.json`));
7
5
  return join(modulePath, ...paths);
8
6
  };
9
-
10
7
  const resolveFromRoot = (...paths) => join(process.cwd(), ...paths);
11
-
12
- module.exports = {
8
+ export {
13
9
  randomChars,
14
10
  resolveFromModule,
15
- resolveFromRoot,
11
+ resolveFromRoot
16
12
  };
@@ -0,0 +1,6 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ const isTypeScriptEnabled = () => fs.existsSync(path.join(process.cwd(), "tsconfig.json"));
4
+ export {
5
+ isTypeScriptEnabled
6
+ };
@@ -0,0 +1,20 @@
1
+ const path = require('path');
2
+ const fs = require('fs');
3
+
4
+ exports.basePath = (process.env.BASE_PATH || '/').replace(/\/?$/, '/');
5
+
6
+ const isApp = () => fs.existsSync(path.join(process.cwd(), 'app'));
7
+
8
+ exports.getAppConfig = () => {
9
+ const appConfigPath = path.join(
10
+ process.cwd(),
11
+ isApp() ? 'app' : 'lib',
12
+ 'app.config.json',
13
+ );
14
+
15
+ if (!fs.existsSync(appConfigPath)) return '{}';
16
+ const appConfig = fs.readFileSync(appConfigPath);
17
+ return appConfig || '{}';
18
+ };
19
+
20
+ exports.isApp = isApp;
@@ -0,0 +1,196 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import path from "node:path";
21
+ import fs from "node:fs";
22
+ import _ from "lodash";
23
+ import CompressionPlugin from "compression-webpack-plugin";
24
+ import zlib from "zlib";
25
+ import { findMonoRepoRoot } from "../monorepo/utils.js";
26
+ import { basePath, getAppConfig } from "../utils.cjs";
27
+ let pathSep = path.sep;
28
+ if (pathSep === "\\")
29
+ pathSep = "\\\\";
30
+ const LATEST_VERSION = "latest";
31
+ const getNodeModulesRegEx = (modules) => modules.map((modName) => new RegExp(`node_modules${pathSep}${modName.replace("/", pathSep)}`));
32
+ const excludeNodeModulesExcept = (modules) => {
33
+ const moduleRegExps = getNodeModulesRegEx(modules);
34
+ return function(modulePath) {
35
+ if (/node_modules/.test(modulePath)) {
36
+ for (let i = 0; i < moduleRegExps.length; i += 1)
37
+ if (moduleRegExps[i].test(modulePath))
38
+ return false;
39
+ return true;
40
+ }
41
+ return false;
42
+ };
43
+ };
44
+ const getLibraryName = () => {
45
+ const packageJson = JSON.parse(fs.readFileSync(path.join(process.cwd(), "package.json")));
46
+ const libraryName = packageJson ? packageJson.name : process.env.LIBRARY_NAME || "mylibrary";
47
+ const modifiedLibName = `emui-${libraryName.replace("@elliemae/", "").replace("pui-", "")}`;
48
+ return _.camelCase(modifiedLibName);
49
+ };
50
+ const mapToFolder = (dependencies, folder) => dependencies.reduce((acc, dependency) => __spreadValues({
51
+ [dependency]: path.resolve(`${folder}/${dependency.replace("$", "")}`)
52
+ }, acc), {});
53
+ const getAlias = () => {
54
+ const monorepoRoot = findMonoRepoRoot(process.cwd()) || "";
55
+ return mapToFolder([
56
+ "@babel/runtime",
57
+ "react",
58
+ "react-dom",
59
+ "react-redux",
60
+ "redux",
61
+ "redux-saga",
62
+ "moment",
63
+ "lodash",
64
+ "styled-components",
65
+ "immer",
66
+ "react-dates",
67
+ "react-transition-group",
68
+ "@elliemae/pui-cli",
69
+ "@elliemae/pui-app-sdk$",
70
+ "@elliemae/pui-theme$"
71
+ ], path.join(monorepoRoot, "./node_modules"));
72
+ };
73
+ const modulesToTranspile = [
74
+ "@elliemae/pui-*",
75
+ "@elliemae/ds-*",
76
+ "@dnd-kit/*",
77
+ "@elliemae/em-platform-document-viewer"
78
+ ];
79
+ const getUserMonitoringFileName = () => {
80
+ const libName = "emuiUserMonitoring";
81
+ const userMonLibPath = path.join(process.cwd(), "node_modules/@elliemae/pui-user-monitoring/dist/public/js");
82
+ if (!fs.existsSync(userMonLibPath))
83
+ return `${libName}.js`;
84
+ const distJSFiles = fs.readdirSync(userMonLibPath);
85
+ return distJSFiles.filter((fName) => fName.match(/emuiUserMonitoring+((?!chunk).)*\.js$/))[0];
86
+ };
87
+ const getAppLoaderFileName = () => {
88
+ const libName = "emuiAppLoader";
89
+ const appLoaderLibPath = path.join(process.cwd(), "node_modules/@elliemae/pui-app-loader/dist/public/js");
90
+ if (!fs.existsSync(appLoaderLibPath))
91
+ return `${libName}.js`;
92
+ const distJSFiles = fs.readdirSync(appLoaderLibPath);
93
+ return distJSFiles.filter((fName) => fName.match(/emuiAppLoader+((?!chunk).)*\.js$/))[0];
94
+ };
95
+ const getDiagnosticsFileName = () => {
96
+ const libName = "emuiDiagnostics";
97
+ const libPath = path.join(process.cwd(), "node_modules/@elliemae/pui-diagnostics/dist/public/js");
98
+ if (!fs.existsSync(libPath))
99
+ return `${libName}.js`;
100
+ const distJSFiles = fs.readdirSync(libPath);
101
+ return distJSFiles.filter((fName) => fName.match(/emuiDiagnostics+((?!chunk).)*\.js$/))[0];
102
+ };
103
+ const getENCWLoaderFileName = () => {
104
+ const libName = "emuiEncwLoader";
105
+ const appLoaderLibPath = path.join(process.cwd(), "node_modules/@elliemae/encw-loader/dist/public/js");
106
+ if (!fs.existsSync(appLoaderLibPath))
107
+ return `${libName}.js`;
108
+ const distJSFiles = fs.readdirSync(appLoaderLibPath);
109
+ return distJSFiles.filter((fName) => fName.match(/emuiEncwLoader+((?!chunk).)*\.js$/))[0];
110
+ };
111
+ const getAppVersion = () => {
112
+ if (!process.env.APP_VERSION)
113
+ return LATEST_VERSION;
114
+ const match = process.env.APP_VERSION.match(/^v?(\d+\.\d+)\..*$/);
115
+ return match && match[1] || LATEST_VERSION;
116
+ };
117
+ const getPaths = (latestVersion = true) => {
118
+ const version = latestVersion ? LATEST_VERSION : getAppVersion();
119
+ const publicPath = `${version}/`;
120
+ const timeStampQuery = process.env.PUI_PIPELINE !== "true" ? `?timeStamp=${Date.now()}` : "";
121
+ return {
122
+ appVersion: version,
123
+ buildPath: path.resolve(process.cwd(), `build/public/`),
124
+ basePath,
125
+ publicPath,
126
+ userMonScriptPath: `latest/js/${getUserMonitoringFileName()}`,
127
+ appLoaderScriptPath: `latest/js/${getAppLoaderFileName()}`,
128
+ diagnosticsScriptPath: `latest/js/${getDiagnosticsFileName()}`,
129
+ globalScriptPath: `latest/js/global.js${timeStampQuery}`,
130
+ encwLoaderScriptPath: `latest/js/${getENCWLoaderFileName()}`
131
+ };
132
+ };
133
+ const isAppLoaderEnabled = () => process.env.APP_LOADER === "true";
134
+ const getMediaPath = () => `assets/[name].[contenthash].[ext]`;
135
+ const isGoogleTagManagerEnabled = () => {
136
+ const appConfig = JSON.parse(getAppConfig());
137
+ return !!appConfig?.googleTagManager;
138
+ };
139
+ const getCompressionPlugins = (isLibrary = false) => {
140
+ const excludeList = [
141
+ /\/adrum-ext/,
142
+ /\/emuiUserMonitoring/,
143
+ /\/emuiDiagnostics/,
144
+ /\/emuiAppLoader/,
145
+ /\/encwLoader/
146
+ ];
147
+ const commonConfig = {
148
+ test: /\.(js|css)$/,
149
+ exclude: !isLibrary ? excludeList : [],
150
+ minRatio: Infinity
151
+ };
152
+ return [
153
+ new CompressionPlugin(__spreadValues({
154
+ filename: "[path][base].gz",
155
+ algorithm: "gzip"
156
+ }, commonConfig)),
157
+ new CompressionPlugin(__spreadProps(__spreadValues({
158
+ filename: "[path][base].br",
159
+ algorithm: "brotliCompress"
160
+ }, commonConfig), {
161
+ compressionOptions: {
162
+ params: {
163
+ [zlib.constants.BROTLI_PARAM_QUALITY]: 11
164
+ }
165
+ }
166
+ }))
167
+ ];
168
+ };
169
+ const filterByFilePresence = (patterns) => patterns.filter(({ from, noErrorOnMissing }) => !noErrorOnMissing || fs.existsSync(path.resolve(process.cwd(), from)));
170
+ const resolveExtensions = [
171
+ ".wasm",
172
+ ".mjs",
173
+ ".ts",
174
+ ".tsx",
175
+ ".js",
176
+ ".jsx",
177
+ ".json"
178
+ ];
179
+ const mainFields = ["browser", "module", "main"];
180
+ export {
181
+ LATEST_VERSION,
182
+ excludeNodeModulesExcept,
183
+ filterByFilePresence,
184
+ getAlias,
185
+ getAppVersion,
186
+ getCompressionPlugins,
187
+ getLibraryName,
188
+ getMediaPath,
189
+ getPaths,
190
+ isAppLoaderEnabled,
191
+ isGoogleTagManagerEnabled,
192
+ mainFields,
193
+ mapToFolder,
194
+ modulesToTranspile,
195
+ resolveExtensions
196
+ };
@@ -0,0 +1,248 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import path from "node:path";
18
+ import webpack, { ProvidePlugin, ProgressPlugin } from "webpack";
19
+ import MiniCssExtractPlugin from "mini-css-extract-plugin";
20
+ import PostcssPresetEnv from "postcss-preset-env";
21
+ import CopyWebpackPlugin from "copy-webpack-plugin";
22
+ import DuplicatePackageCheckerPlugin from "duplicate-package-checker-webpack-plugin";
23
+ import MomentLocalesPlugin from "moment-locales-webpack-plugin";
24
+ import { WebpackManifestPlugin } from "webpack-manifest-plugin";
25
+ import FaviconsWebpackPlugin from "favicons-webpack-plugin";
26
+ import browserslistToEsbuild from "browserslist-to-esbuild";
27
+ import {
28
+ excludeNodeModulesExcept,
29
+ modulesToTranspile,
30
+ getAlias,
31
+ getPaths,
32
+ filterByFilePresence
33
+ } from "./helpers.js";
34
+ const minicssLoader = {
35
+ loader: MiniCssExtractPlugin.loader,
36
+ options: {}
37
+ };
38
+ const finalCSSLoader = (mode) => mode !== "production" ? { loader: "style-loader" } : minicssLoader;
39
+ const postcssPlugins = [PostcssPresetEnv({ autoprefixer: { grid: true } })];
40
+ const { buildPath } = getPaths();
41
+ const plugins = [
42
+ new webpack.EnvironmentPlugin({
43
+ NODE_ENV: "development",
44
+ CI: "false"
45
+ }),
46
+ new ProvidePlugin({
47
+ React: "react"
48
+ }),
49
+ new CopyWebpackPlugin({
50
+ patterns: filterByFilePresence([
51
+ {
52
+ from: "app/app.config.json",
53
+ to: "./latest/app.config.json"
54
+ },
55
+ {
56
+ from: "app/robots.txt",
57
+ to: "robots.txt",
58
+ noErrorOnMissing: true
59
+ },
60
+ {
61
+ from: "app/global*.js",
62
+ to: "./latest/js/[name][ext]"
63
+ },
64
+ {
65
+ from: "node_modules/@elliemae/pui-user-monitoring/dist/public/js",
66
+ to: "./latest/js",
67
+ toType: "dir",
68
+ info: { minimized: true }
69
+ },
70
+ {
71
+ from: "node_modules/@elliemae/pui-app-loader/dist/public/js",
72
+ to: "./latest/js",
73
+ toType: "dir",
74
+ noErrorOnMissing: true,
75
+ info: { minimized: true }
76
+ },
77
+ {
78
+ from: "node_modules/@elliemae/encw-loader/dist/public/js",
79
+ to: "./latest/js",
80
+ toType: "dir",
81
+ noErrorOnMissing: true,
82
+ info: { minimized: true }
83
+ },
84
+ {
85
+ from: "node_modules/@elliemae/pui-diagnostics/dist/public/js",
86
+ to: "./latest/js",
87
+ toType: "dir",
88
+ noErrorOnMissing: true,
89
+ info: { minimized: true }
90
+ },
91
+ {
92
+ from: "public",
93
+ to: "./latest",
94
+ noErrorOnMissing: true,
95
+ globOptions: {
96
+ ignore: ["readme.md"]
97
+ }
98
+ },
99
+ {
100
+ from: "webroot",
101
+ noErrorOnMissing: true,
102
+ globOptions: {
103
+ ignore: ["readme.md"]
104
+ }
105
+ }
106
+ ])
107
+ }),
108
+ new DuplicatePackageCheckerPlugin(),
109
+ new MomentLocalesPlugin({ localesToKeep: ["es-us"] }),
110
+ new WebpackManifestPlugin({
111
+ fileName: "./latest/manifest.json",
112
+ publicPath: "",
113
+ map: (file) => {
114
+ file.name = file.name.replace(/^latest\//, "");
115
+ return file;
116
+ }
117
+ }),
118
+ new FaviconsWebpackPlugin({
119
+ outputPath: "./latest/assets",
120
+ logo: "./app/view/images/favicon.png",
121
+ favicons: {
122
+ developerName: "ICE MT",
123
+ developerURL: null,
124
+ icons: {
125
+ coast: false,
126
+ yandex: false
127
+ }
128
+ }
129
+ }),
130
+ new ProgressPlugin()
131
+ ];
132
+ const baseConfig = (options) => ({
133
+ mode: options.mode,
134
+ entry: options.entry,
135
+ output: __spreadValues({
136
+ clean: true,
137
+ path: buildPath,
138
+ publicPath: "auto"
139
+ }, options.output),
140
+ optimization: options.optimization,
141
+ module: {
142
+ rules: [
143
+ {
144
+ test: /\.jsx?$/,
145
+ exclude: excludeNodeModulesExcept(modulesToTranspile),
146
+ resolve: {
147
+ fullySpecified: false
148
+ },
149
+ use: {
150
+ loader: "esbuild-loader",
151
+ options: {
152
+ loader: "jsx",
153
+ target: browserslistToEsbuild()
154
+ }
155
+ }
156
+ },
157
+ {
158
+ test: /\.tsx?$/,
159
+ exclude: excludeNodeModulesExcept(modulesToTranspile),
160
+ resolve: {
161
+ fullySpecified: false
162
+ },
163
+ use: {
164
+ loader: "esbuild-loader",
165
+ options: {
166
+ loader: "tsx",
167
+ target: browserslistToEsbuild()
168
+ }
169
+ }
170
+ },
171
+ {
172
+ test: /\.css$/,
173
+ exclude: excludeNodeModulesExcept(modulesToTranspile),
174
+ use: [
175
+ finalCSSLoader(options.mode),
176
+ {
177
+ loader: "css-loader",
178
+ options: {
179
+ importLoaders: 1,
180
+ sourceMap: true
181
+ }
182
+ },
183
+ {
184
+ loader: "postcss-loader",
185
+ options: {
186
+ postcssOptions: {
187
+ plugins: postcssPlugins
188
+ },
189
+ sourceMap: true
190
+ }
191
+ }
192
+ ]
193
+ },
194
+ {
195
+ test: /\.(woff|woff2)$/,
196
+ type: "asset/resource",
197
+ exclude: excludeNodeModulesExcept(modulesToTranspile)
198
+ },
199
+ {
200
+ test: /\.svg$/i,
201
+ issuer: /\.[jt]sx?$/,
202
+ resourceQuery: /^((?!url).)*$/,
203
+ exclude: excludeNodeModulesExcept(modulesToTranspile),
204
+ use: ["@svgr/webpack"]
205
+ },
206
+ {
207
+ test: /\.(jpe?g|png|gif|ico|mp4|webm)$/i,
208
+ exclude: excludeNodeModulesExcept(modulesToTranspile),
209
+ type: "asset"
210
+ },
211
+ {
212
+ resourceQuery: /resource/,
213
+ type: "asset/resource",
214
+ exclude: excludeNodeModulesExcept(modulesToTranspile)
215
+ },
216
+ {
217
+ type: "asset",
218
+ resourceQuery: /url/,
219
+ exclude: excludeNodeModulesExcept(modulesToTranspile)
220
+ }
221
+ ]
222
+ },
223
+ plugins: plugins.concat(options.plugins),
224
+ resolve: {
225
+ modules: [
226
+ "node_modules",
227
+ "app",
228
+ "lib",
229
+ path.resolve(process.cwd(), "node_modules"),
230
+ path.resolve(process.cwd(), "app"),
231
+ path.resolve(process.cwd(), "lib")
232
+ ],
233
+ extensions: [".js", ".jsx", ".ts", ".tsx", ".json", ".wasm", ".mjs"],
234
+ mainFields: ["browser", "module", "main"],
235
+ alias: __spreadValues(__spreadValues({}, getAlias()), (options.resolve || {}).alias || {})
236
+ },
237
+ externals: {
238
+ "@elliemae/pui-user-monitoring": "emuiUserMonitoring",
239
+ "@elliemae/pui-app-loader": "emuiAppLoader",
240
+ "@elliemae/pui-diagnostics": "emuiDiagnostics"
241
+ },
242
+ devtool: options.devtool || "eval-source-map",
243
+ performance: options.performance || {},
244
+ devServer: options.devServer || {}
245
+ });
246
+ export {
247
+ baseConfig
248
+ };
@@ -0,0 +1,118 @@
1
+ import path from "node:path";
2
+ import HtmlWebpackPlugin from "html-webpack-plugin";
3
+ import CircularDependencyPlugin from "circular-dependency-plugin";
4
+ import MiniCssExtractPlugin from "mini-css-extract-plugin";
5
+ import ReactRefreshWebpackPlugin from "@pmmmwh/react-refresh-webpack-plugin";
6
+ import SpeedMeasurePlugin from "speed-measure-webpack-plugin";
7
+ import expressStaticGzip from "express-static-gzip";
8
+ import { setupDefaultMiddlewares } from "../server/middlewares/index.js";
9
+ import { loadRoutes } from "../server/util/index.js";
10
+ import {
11
+ isAppLoaderEnabled,
12
+ getPaths,
13
+ isGoogleTagManagerEnabled
14
+ } from "./helpers.js";
15
+ import baseConfigFactory from "./webpack.base.babel.js";
16
+ const smp = new SpeedMeasurePlugin({ disable: !process.env.MEASURE });
17
+ const {
18
+ appVersion,
19
+ buildPath,
20
+ basePath,
21
+ userMonScriptPath,
22
+ globalScriptPath,
23
+ appLoaderScriptPath,
24
+ diagnosticsScriptPath,
25
+ encwLoaderScriptPath
26
+ } = getPaths();
27
+ const devConfig = {
28
+ mode: "development",
29
+ cache: {
30
+ type: "filesystem",
31
+ allowCollectingMemory: true,
32
+ buildDependencies: {
33
+ config: [__filename]
34
+ }
35
+ },
36
+ entry: {
37
+ app: path.join(process.cwd(), "app/index")
38
+ },
39
+ output: {
40
+ path: buildPath,
41
+ publicPath: "auto",
42
+ filename: "[name].js",
43
+ chunkFilename: "[name].chunk.js",
44
+ assetModuleFilename: "[name][ext][query]"
45
+ },
46
+ optimization: {
47
+ splitChunks: {
48
+ chunks: "all",
49
+ cacheGroups: {
50
+ emui: {
51
+ name: "emui",
52
+ test: /[\\/]node_modules[\\/](@elliemae)[\\/]/,
53
+ priority: 1
54
+ },
55
+ vendors: {
56
+ name: "vendors",
57
+ test: /[\\/]node_modules[\\/]/
58
+ }
59
+ }
60
+ }
61
+ },
62
+ resolve: {
63
+ alias: {}
64
+ },
65
+ plugins: [
66
+ new HtmlWebpackPlugin({
67
+ inject: !isAppLoaderEnabled(),
68
+ template: !isAppLoaderEnabled() ? "app/index.html" : "app/index-app-loader.html",
69
+ emui: {
70
+ appVersion,
71
+ globalScriptPath,
72
+ userMonScriptPath,
73
+ appLoaderScriptPath,
74
+ diagnosticsScriptPath,
75
+ encwLoaderScriptPath,
76
+ googleTagManager: isGoogleTagManagerEnabled()
77
+ }
78
+ }),
79
+ new CircularDependencyPlugin({
80
+ exclude: /a\.(js|ts|jsx|tsx)|node_modules/,
81
+ failOnError: false
82
+ }),
83
+ new MiniCssExtractPlugin({
84
+ filename: "[name].css",
85
+ chunkFilename: "[name].chunk.css"
86
+ })
87
+ ],
88
+ devtool: "eval-source-map",
89
+ performance: {
90
+ hints: false
91
+ },
92
+ devServer: {
93
+ client: {
94
+ overlay: {
95
+ errors: true,
96
+ warnings: false
97
+ }
98
+ },
99
+ devMiddleware: {
100
+ publicPath: basePath
101
+ },
102
+ historyApiFallback: true,
103
+ hot: true,
104
+ open: [basePath],
105
+ port: 3e3,
106
+ setupMiddlewares: (middlewares, devServer) => {
107
+ setupDefaultMiddlewares(devServer.app);
108
+ devServer.app.use(expressStaticGzip("cdn"));
109
+ loadRoutes(devServer.app);
110
+ return middlewares;
111
+ }
112
+ }
113
+ };
114
+ const config = smp.wrap(baseConfigFactory(devConfig));
115
+ config.plugins = config.plugins.concat([new ReactRefreshWebpackPlugin({})]);
116
+ export {
117
+ config
118
+ };