@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
@@ -1,137 +0,0 @@
1
- /* eslint-disable max-lines */
2
- const path = require('path');
3
- const HtmlWebpackPlugin = require('html-webpack-plugin');
4
- const CircularDependencyPlugin = require('circular-dependency-plugin');
5
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
6
- const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
7
- const SpeedMeasurePlugin = require('speed-measure-webpack-plugin');
8
- const expressStaticGzip = require('express-static-gzip');
9
- const { setupDefaultMiddlewares } = require('../server/middlewares');
10
- const { loadRoutes } = require('../server/util');
11
-
12
- const smp = new SpeedMeasurePlugin({ disable: !process.env.MEASURE });
13
-
14
- const {
15
- isAppLoaderEnabled,
16
- getPaths,
17
- isGoogleTagManagerEnabled,
18
- } = require('./helpers');
19
- const baseConfigFactory = require('./webpack.base.babel');
20
-
21
- const {
22
- appVersion,
23
- buildPath,
24
- basePath,
25
- userMonScriptPath,
26
- globalScriptPath,
27
- appLoaderScriptPath,
28
- diagnosticsScriptPath,
29
- encwLoaderScriptPath,
30
- } = getPaths();
31
-
32
- const devConfig = {
33
- mode: 'development',
34
-
35
- cache: {
36
- type: 'filesystem',
37
- allowCollectingMemory: true,
38
- buildDependencies: {
39
- config: [__filename],
40
- },
41
- },
42
-
43
- // Add hot reloading in development
44
- entry: {
45
- app: path.join(process.cwd(), 'app/index'),
46
- },
47
-
48
- // Don't use hashes in dev mode for better performance
49
- output: {
50
- path: buildPath,
51
- publicPath: 'auto',
52
- filename: '[name].js',
53
- chunkFilename: '[name].chunk.js',
54
- assetModuleFilename: '[name][ext][query]',
55
- },
56
-
57
- optimization: {
58
- splitChunks: {
59
- chunks: 'all',
60
- cacheGroups: {
61
- emui: {
62
- name: 'emui',
63
- test: /[\\/]node_modules[\\/](@elliemae)[\\/]/,
64
- priority: 1,
65
- },
66
- vendors: {
67
- name: 'vendors',
68
- test: /[\\/]node_modules[\\/]/,
69
- },
70
- },
71
- },
72
- },
73
-
74
- resolve: {
75
- alias: {},
76
- },
77
-
78
- // Add development plugins
79
- plugins: [
80
- new HtmlWebpackPlugin({
81
- inject: !isAppLoaderEnabled(), // Inject all files that are generated by webpack, e.g. bundle.js
82
- template: !isAppLoaderEnabled()
83
- ? 'app/index.html'
84
- : 'app/index-app-loader.html',
85
- emui: {
86
- appVersion,
87
- globalScriptPath,
88
- userMonScriptPath,
89
- appLoaderScriptPath,
90
- diagnosticsScriptPath,
91
- encwLoaderScriptPath,
92
- googleTagManager: isGoogleTagManagerEnabled(),
93
- },
94
- }),
95
- new CircularDependencyPlugin({
96
- exclude: /a\.(js|ts|jsx|tsx)|node_modules/, // exclude node_modules
97
- failOnError: false, // show a warning when there is a circular dependency
98
- }),
99
- new MiniCssExtractPlugin({
100
- filename: '[name].css',
101
- chunkFilename: '[name].chunk.css',
102
- }),
103
- ],
104
-
105
- devtool: 'eval-source-map',
106
-
107
- performance: {
108
- hints: false,
109
- },
110
-
111
- devServer: {
112
- client: {
113
- overlay: {
114
- errors: true,
115
- warnings: false,
116
- },
117
- },
118
- devMiddleware: {
119
- publicPath: basePath,
120
- },
121
- historyApiFallback: true,
122
- hot: true,
123
- open: [basePath],
124
- port: 3000,
125
- setupMiddlewares: (middlewares, devServer) => {
126
- setupDefaultMiddlewares(devServer.app);
127
- devServer.app.use(expressStaticGzip('cdn'));
128
- loadRoutes(devServer.app);
129
- return middlewares;
130
- },
131
- },
132
- };
133
-
134
- const config = smp.wrap(baseConfigFactory(devConfig));
135
- config.plugins = config.plugins.concat([new ReactRefreshWebpackPlugin({})]);
136
-
137
- module.exports = config;
@@ -1,205 +0,0 @@
1
- /* eslint-disable max-lines */
2
- const path = require('path');
3
- const { EnvironmentPlugin, DefinePlugin } = require('webpack');
4
- const {
5
- optimize: { LimitChunkCountPlugin },
6
- ProgressPlugin,
7
- } = require('webpack');
8
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
9
- const CopyWebpackPlugin = require('copy-webpack-plugin');
10
- const PostcssPresetEnv = require('postcss-preset-env');
11
- const DuplicatePackageCheckerPlugin = require('duplicate-package-checker-webpack-plugin');
12
- const MomentLocalesPlugin = require('moment-locales-webpack-plugin');
13
- const ResolveTypeScriptPlugin = require('resolve-typescript-plugin');
14
- const browserslistToEsbuild = require('browserslist-to-esbuild');
15
-
16
- const {
17
- excludeNodeModulesExcept,
18
- getLibraryName,
19
- getAppConfig,
20
- modulesToTranspile,
21
- getAssetPath,
22
- getAlias,
23
- filterByFilePresence,
24
- } = require('./helpers');
25
-
26
- const minicssLoader = {
27
- loader: MiniCssExtractPlugin.loader,
28
- options: {},
29
- };
30
-
31
- const finalCSSLoader = (mode) =>
32
- mode !== 'production' ? { loader: 'style-loader' } : minicssLoader;
33
-
34
- const copyPluginPatterns = filterByFilePresence([
35
- {
36
- from: 'lib/app.config.json',
37
- to: 'app.config.json',
38
- noErrorOnMissing: true,
39
- },
40
- {
41
- from: 'public',
42
- noErrorOnMissing: true,
43
- },
44
- ]);
45
-
46
- const plugins = [
47
- new EnvironmentPlugin({
48
- ASSET_PATH: '/',
49
- CI: 'false',
50
- }),
51
- new DefinePlugin({
52
- APP_CONFIG: getAppConfig(true),
53
- }),
54
- /* eslint-disable indent */
55
- ...(copyPluginPatterns.length > 0
56
- ? [
57
- new CopyWebpackPlugin({
58
- patterns: copyPluginPatterns,
59
- }),
60
- ]
61
- : []),
62
- /* eslint-enable indent */
63
- new DuplicatePackageCheckerPlugin(),
64
- new LimitChunkCountPlugin({
65
- maxChunks: 1,
66
- }),
67
- new MomentLocalesPlugin({ localesToKeep: ['es-us'] }),
68
- new ProgressPlugin(),
69
- ];
70
-
71
- module.exports = (options) => ({
72
- mode: options.mode,
73
- entry: [path.join(process.cwd(), 'lib/index')],
74
- output: {
75
- clean: true,
76
- path: path.resolve(process.cwd(), 'dist/public'),
77
- publicPath: getAssetPath(),
78
- library: getLibraryName(),
79
- libraryTarget: 'umd',
80
- ...options.output,
81
- }, // Merge with env dependent settings
82
- optimization: options.optimization,
83
- module: {
84
- rules: [
85
- {
86
- test: /^(?!.*\.exec\.js$).*\.jsx?$/, // Transform all .js and .jsx files with Babel
87
- exclude: excludeNodeModulesExcept(modulesToTranspile),
88
- resolve: {
89
- fullySpecified: false,
90
- },
91
- use: {
92
- loader: 'esbuild-loader',
93
- options: {
94
- loader: 'jsx',
95
- target: browserslistToEsbuild(),
96
- },
97
- },
98
- },
99
- {
100
- test: /^(?!.*\.exec\.js$).*\.tsx?$/, // Transform all .js and .jsx files with Babel
101
- exclude: excludeNodeModulesExcept(modulesToTranspile),
102
- resolve: {
103
- fullySpecified: false,
104
- },
105
- use: {
106
- loader: 'esbuild-loader',
107
- options: {
108
- loader: 'tsx',
109
- target: browserslistToEsbuild(),
110
- },
111
- },
112
- },
113
- {
114
- test: /\.css$/,
115
- exclude: excludeNodeModulesExcept(modulesToTranspile),
116
- use: [
117
- finalCSSLoader(options.mode),
118
- {
119
- loader: 'css-loader',
120
- options: {
121
- importLoaders: 1,
122
- sourceMap: true,
123
- },
124
- },
125
- {
126
- loader: 'postcss-loader',
127
- options: {
128
- postcssOptions: {
129
- plugins: [PostcssPresetEnv({ autoprefixer: { grid: true } })],
130
- },
131
- sourceMap: true,
132
- },
133
- },
134
- ],
135
- },
136
- {
137
- test: /\.pug$/,
138
- exclude: /node_modules/,
139
- use: 'pug-loader',
140
- },
141
- {
142
- test: /\.(woff|woff2)$/,
143
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
144
- type: 'asset/resource',
145
- },
146
- {
147
- test: /\.svg$/i,
148
- issuer: /\.[jt]sx?$/,
149
- resourceQuery: /^((?!url).)*$/,
150
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
151
- use: ['@svgr/webpack'],
152
- },
153
- {
154
- test: /\.(jpe?g|png|gif|ico)$/i,
155
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
156
- type: 'asset',
157
- },
158
- {
159
- test: /(?<!\/iframe)\.html$/,
160
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
161
- use: 'html-loader',
162
- },
163
- {
164
- test: /\.(mp4|webm)$/,
165
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
166
- type: 'asset',
167
- },
168
- {
169
- resourceQuery: /resource/,
170
- type: 'asset/resource',
171
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
172
- },
173
- {
174
- type: 'asset',
175
- resourceQuery: /url/,
176
- exclude: excludeNodeModulesExcept(['@elliemae/*']),
177
- },
178
- ],
179
- },
180
- plugins: plugins.concat(options.plugins || []),
181
- resolve: {
182
- modules: [
183
- 'node_modules',
184
- 'app',
185
- 'lib',
186
- path.resolve(process.cwd(), 'node_modules'),
187
- path.resolve(process.cwd(), 'app'),
188
- path.resolve(process.cwd(), 'lib'),
189
- ],
190
- extensions: ['.ts', '.tsx', '.js', '.jsx', '.json', '.wasm', '.mjs'],
191
- mainFields: ['browser', 'module', 'main'],
192
- alias: {
193
- ...getAlias(),
194
- ...((options.resolve || {}).alias || {}),
195
- },
196
- plugins: [new ResolveTypeScriptPlugin({})],
197
- },
198
- externals: {
199
- '@elliemae/pui-user-monitoring': 'emuiUserMonitoring',
200
- '@elliemae/pui-app-loader': 'emuiAppLoader',
201
- '@elliemae/pui-diagnostics': 'emuiDiagnostics',
202
- },
203
- devtool: options.devtool || 'eval-source-map',
204
- performance: options.performance || {},
205
- });
@@ -1,49 +0,0 @@
1
- const CircularDependencyPlugin = require('circular-dependency-plugin');
2
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
3
- const HtmlWebpackPlugin = require('html-webpack-plugin');
4
- const { getLibraryName } = require('./helpers');
5
-
6
- const libraryName = getLibraryName();
7
-
8
- module.exports = require('./webpack.lib.base.babel')({
9
- mode: 'development',
10
-
11
- output: {
12
- filename: `js/${libraryName}.js`,
13
- chunkFilename: `js/${libraryName}.chunk.js`,
14
- assetModuleFilename: '[name][ext][query]',
15
- },
16
-
17
- optimization: {
18
- splitChunks: {
19
- chunks: 'all',
20
- },
21
- },
22
-
23
- resolve: {
24
- alias: {},
25
- },
26
-
27
- plugins: [
28
- new HtmlWebpackPlugin({
29
- inject: true, // Inject all files that are generated by webpack, e.g. bundle.js
30
- template: 'lib/index.pug',
31
- filename: 'index.html',
32
- libraryName,
33
- }),
34
- new CircularDependencyPlugin({
35
- exclude: /a\.(js|ts|jsx|tsx)|node_modules/, // exclude node_modules
36
- failOnError: false, // show a warning when there is a circular dependency
37
- }),
38
- new MiniCssExtractPlugin({
39
- filename: `css/${libraryName}.css`,
40
- chunkFilename: `css/${libraryName}.chunk.css`,
41
- }),
42
- ],
43
-
44
- devtool: 'eval-source-map',
45
-
46
- performance: {
47
- hints: false,
48
- },
49
- });
@@ -1,77 +0,0 @@
1
- const path = require('path');
2
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
3
- const HtmlWebpackPlugin = require('html-webpack-plugin');
4
- const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
5
- const { ESBuildMinifyPlugin } = require('esbuild-loader');
6
- const browserslistToEsbuild = require('browserslist-to-esbuild');
7
- const { getLibraryName, getCompressionPlugins } = require('./helpers');
8
-
9
- const libraryName = getLibraryName();
10
-
11
- module.exports = require('./webpack.lib.base.babel')({
12
- mode: 'production',
13
-
14
- output: {
15
- filename: `js/${libraryName}.[chunkhash].js`,
16
- chunkFilename: `js/${libraryName}.[chunkhash].chunk.js`,
17
- assetModuleFilename: 'assets/[name].[hash][ext][query]',
18
- },
19
-
20
- optimization: {
21
- moduleIds: 'deterministic',
22
- minimize: true,
23
- minimizer: [
24
- new ESBuildMinifyPlugin({
25
- target: browserslistToEsbuild(),
26
- css: true,
27
- }),
28
- ],
29
- nodeEnv: 'production',
30
- sideEffects: true,
31
- concatenateModules: true,
32
- splitChunks: {
33
- chunks: 'all',
34
- },
35
- },
36
-
37
- plugins: [
38
- new HtmlWebpackPlugin({
39
- template: 'lib/index.pug',
40
- filename: 'index.html',
41
- libraryName,
42
- minify: {
43
- removeComments: true,
44
- collapseWhitespace: true,
45
- removeRedundantAttributes: true,
46
- useShortDoctype: true,
47
- removeEmptyAttributes: true,
48
- removeStyleLinkTypeAttributes: true,
49
- keepClosingSlash: true,
50
- minifyJS: true,
51
- minifyCSS: true,
52
- minifyURLs: true,
53
- },
54
- inject: true,
55
- }),
56
-
57
- new MiniCssExtractPlugin({
58
- filename: `css/${libraryName}.[contenthash].css`,
59
- chunkFilename: `css/${libraryName}.[contenthash].chunk.css`,
60
- }),
61
-
62
- ...getCompressionPlugins(true),
63
-
64
- new BundleAnalyzerPlugin({
65
- analyzerMode: 'static',
66
- reportFilename: path.join(process.cwd(), 'reports/bundle-stats.html'),
67
- openAnalyzer: false,
68
- }),
69
- ],
70
-
71
- devtool: 'source-map',
72
-
73
- performance: {
74
- assetFilter: (assetFilename) =>
75
- !/(\.map$)|(^(main\.|favicon\.))/.test(assetFilename),
76
- },
77
- });
@@ -1,142 +0,0 @@
1
- /* eslint-disable max-lines */
2
- const path = require('path');
3
- const HtmlWebpackPlugin = require('html-webpack-plugin');
4
- const { GenerateSW } = require('workbox-webpack-plugin');
5
- const MiniCssExtractPlugin = require('mini-css-extract-plugin');
6
- const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
7
- const { ESBuildMinifyPlugin } = require('esbuild-loader');
8
- const SpeedMeasurePlugin = require('speed-measure-webpack-plugin');
9
- const browserslistToEsbuild = require('browserslist-to-esbuild');
10
-
11
- const baseConfigFactory = require('./webpack.base.babel');
12
- const {
13
- isAppLoaderEnabled,
14
- getPaths,
15
- isGoogleTagManagerEnabled,
16
- getCompressionPlugins,
17
- } = require('./helpers');
18
-
19
- const getProdConfig = ({ latestVersion = true } = {}) => {
20
- const { buildPath } = getPaths(latestVersion);
21
-
22
- return {
23
- mode: 'production',
24
-
25
- entry: {
26
- app: path.join(process.cwd(), 'app/index'),
27
- },
28
-
29
- // Utilize long-term caching by adding content hashes (not compilation hashes) to compiled assets
30
- output: {
31
- path: buildPath,
32
- publicPath: 'auto',
33
- filename: 'latest/js/[name].[contenthash].js',
34
- chunkFilename: 'latest/js/[name].[contenthash].chunk.js',
35
- assetModuleFilename: 'latest/assets/[name].[hash][ext][query]',
36
- },
37
-
38
- optimization: {
39
- moduleIds: 'deterministic',
40
- minimizer: [
41
- new ESBuildMinifyPlugin({
42
- target: browserslistToEsbuild(),
43
- css: true,
44
- }),
45
- ],
46
- runtimeChunk: true,
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
-
63
- plugins: [
64
- ...getCompressionPlugins(),
65
-
66
- new BundleAnalyzerPlugin({
67
- analyzerMode: 'static',
68
- reportFilename: path.join(process.cwd(), 'reports/bundle-stats.html'),
69
- openAnalyzer: false,
70
- }),
71
-
72
- new GenerateSW({
73
- swDest: 'sw.js',
74
- clientsClaim: true,
75
- skipWaiting: true,
76
- }),
77
- ],
78
-
79
- devtool: 'source-map',
80
-
81
- performance: {
82
- assetFilter: (assetFilename) =>
83
- !/(\.map$)|(^(main\.|favicon\.))/.test(assetFilename),
84
- },
85
- };
86
- };
87
-
88
- const {
89
- userMonScriptPath,
90
- globalScriptPath,
91
- appLoaderScriptPath,
92
- diagnosticsScriptPath,
93
- encwLoaderScriptPath,
94
- basePath,
95
- } = getPaths();
96
- const htmlWebpackPlugin = new HtmlWebpackPlugin({
97
- inject: !isAppLoaderEnabled(),
98
- template: !isAppLoaderEnabled()
99
- ? 'app/index.html'
100
- : 'app/index-app-loader.html',
101
- minify: {
102
- removeComments: true,
103
- collapseWhitespace: true,
104
- removeRedundantAttributes: true,
105
- useShortDoctype: true,
106
- removeEmptyAttributes: true,
107
- removeStyleLinkTypeAttributes: true,
108
- keepClosingSlash: true,
109
- minifyJS: true,
110
- minifyCSS: true,
111
- minifyURLs: true,
112
- },
113
- emui: {
114
- appVersion: 'latest',
115
- basePath,
116
- globalScriptPath,
117
- userMonScriptPath,
118
- appLoaderScriptPath,
119
- diagnosticsScriptPath,
120
- encwLoaderScriptPath,
121
- googleTagManager: isGoogleTagManagerEnabled(),
122
- },
123
- });
124
-
125
- const config = baseConfigFactory(getProdConfig());
126
- config.plugins.push(htmlWebpackPlugin);
127
-
128
- const addSMPPlugin = (webpackConfig) => {
129
- const smpConfig = new SpeedMeasurePlugin({
130
- disable: !process.env.MEASURE,
131
- }).wrap(webpackConfig);
132
- // mini css extract plugin is not working fine with smp
133
- smpConfig.plugins.push(
134
- new MiniCssExtractPlugin({
135
- filename: 'latest/css/[name].[contenthash].css',
136
- chunkFilename: 'latest/css/[name].[contenthash].chunk.css',
137
- }),
138
- );
139
- return smpConfig;
140
- };
141
-
142
- module.exports = addSMPPlugin(config);