@elliemae/pui-cli 6.16.0 → 7.0.0-alpha.2

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 (261) hide show
  1. package/dist/cjs/cli-commands/build.js +72 -0
  2. package/dist/cjs/cli-commands/codemod.js +51 -0
  3. package/dist/cjs/cli-commands/gendoc.js +52 -0
  4. package/dist/cjs/cli-commands/lint.js +86 -0
  5. package/dist/cjs/cli-commands/pack.js +88 -0
  6. package/dist/cjs/cli-commands/start.js +61 -0
  7. package/dist/cjs/cli-commands/storybook.js +63 -0
  8. package/dist/cjs/cli-commands/test.js +86 -0
  9. package/dist/cjs/cli-commands/tsc.js +103 -0
  10. package/dist/cjs/cli-commands/utils.js +137 -0
  11. package/dist/cjs/cli-commands/version.js +71 -0
  12. package/dist/cjs/cli-commands/vitest.js +84 -0
  13. package/dist/cjs/cli.js +47 -0
  14. package/dist/cjs/docgen/jsdoc.conf.json +17 -0
  15. package/{lib/dummy.ts → dist/cjs/dummy.js} +0 -0
  16. package/dist/cjs/index.js +41 -0
  17. package/dist/cjs/lint/lint-staged.config.js +42 -0
  18. package/dist/cjs/monorepo/delete-merged-tags.js +57 -0
  19. package/dist/cjs/monorepo/set-registry-version.js +43 -0
  20. package/dist/cjs/monorepo/set-workspace-version.js +44 -0
  21. package/dist/cjs/monorepo/utils.js +34 -0
  22. package/dist/cjs/package.json +4 -0
  23. package/dist/cjs/pui-config/index.js +40 -0
  24. package/dist/cjs/scripts/helpers/checkmark.js +32 -0
  25. package/dist/cjs/scripts/helpers/get-npm-config.js +27 -0
  26. package/dist/cjs/scripts/helpers/progress.js +35 -0
  27. package/dist/cjs/scripts/helpers/xmark.js +31 -0
  28. package/dist/cjs/scripts/npmcheckversion.js +8 -0
  29. package/dist/cjs/scripts/update-notifier.js +33 -0
  30. package/dist/cjs/server/csp.js +88 -0
  31. package/dist/cjs/server/index.js +29 -0
  32. package/dist/cjs/server/logger.js +50 -0
  33. package/dist/cjs/server/middlewares/addProdMiddlewares.js +44 -0
  34. package/dist/cjs/server/middlewares/index.js +57 -0
  35. package/dist/cjs/server/util/index.js +68 -0
  36. package/dist/cjs/testing/setup-react-env.js +18 -0
  37. package/dist/cjs/testing/setup-tests.js +63 -0
  38. package/dist/cjs/testing/vitest.config.js +39 -0
  39. package/{lib/testing/vitest.setup.ts → dist/cjs/testing/vitest.setup.js} +0 -0
  40. package/dist/cjs/transpile/esbuild.js +138 -0
  41. package/dist/cjs/transpile/react-shim.js +26 -0
  42. package/{lib → dist/cjs}/typescript/app.tsconfig.json +0 -0
  43. package/{lib → dist/cjs}/typescript/library.tsconfig.json +0 -0
  44. package/dist/cjs/typescript/tsc-files/index.js +68 -0
  45. package/dist/cjs/typescript/tsc-files/utils.js +31 -0
  46. package/dist/cjs/typescript/util.js +28 -0
  47. package/dist/cjs/webpack/helpers.js +216 -0
  48. package/dist/cjs/webpack/webpack.base.babel.js +262 -0
  49. package/dist/cjs/webpack/webpack.dev.babel.js +136 -0
  50. package/dist/cjs/webpack/webpack.lib.base.babel.js +217 -0
  51. package/dist/cjs/webpack/webpack.lib.dev.babel.js +67 -0
  52. package/dist/cjs/webpack/webpack.lib.prod.babel.js +92 -0
  53. package/dist/cjs/webpack/webpack.prod.babel.js +139 -0
  54. package/dist/esm/cli-commands/build.js +56 -0
  55. package/dist/esm/cli-commands/codemod.js +29 -0
  56. package/dist/esm/cli-commands/gendoc.js +29 -0
  57. package/dist/esm/cli-commands/lint.js +64 -0
  58. package/dist/esm/cli-commands/pack.js +65 -0
  59. package/dist/esm/cli-commands/start.js +38 -0
  60. package/dist/esm/cli-commands/storybook.js +41 -0
  61. package/dist/esm/cli-commands/test.js +64 -0
  62. package/dist/esm/cli-commands/tsc.js +83 -0
  63. package/dist/esm/cli-commands/utils.js +120 -0
  64. package/dist/esm/cli-commands/version.js +49 -0
  65. package/dist/esm/cli-commands/vitest.js +61 -0
  66. package/dist/esm/cli.js +31 -0
  67. package/dist/esm/docgen/jsdoc.conf.json +17 -0
  68. package/dist/esm/dummy.js +0 -0
  69. package/dist/esm/index.js +22 -0
  70. package/dist/esm/lint/lint-staged.config.js +19 -0
  71. package/dist/esm/monorepo/delete-merged-tags.js +38 -0
  72. package/dist/esm/monorepo/set-registry-version.js +21 -0
  73. package/dist/esm/monorepo/set-workspace-version.js +22 -0
  74. package/dist/esm/monorepo/utils.js +12 -0
  75. package/dist/esm/package.json +4 -0
  76. package/dist/esm/pui-config/index.js +18 -0
  77. package/dist/esm/scripts/helpers/checkmark.js +10 -0
  78. package/dist/esm/scripts/helpers/get-npm-config.js +5 -0
  79. package/dist/esm/scripts/helpers/progress.js +13 -0
  80. package/dist/esm/scripts/helpers/xmark.js +9 -0
  81. package/dist/esm/scripts/npmcheckversion.js +8 -0
  82. package/dist/esm/scripts/update-notifier.js +11 -0
  83. package/dist/esm/server/csp.js +66 -0
  84. package/dist/esm/server/index.js +17 -0
  85. package/dist/esm/server/logger.js +28 -0
  86. package/dist/esm/server/middlewares/addProdMiddlewares.js +22 -0
  87. package/dist/esm/server/middlewares/index.js +35 -0
  88. package/{lib → dist/esm}/server/util/index.js +18 -19
  89. package/dist/esm/testing/setup-react-env.js +3 -0
  90. package/dist/esm/testing/setup-tests.js +48 -0
  91. package/dist/esm/testing/vitest.config.js +17 -0
  92. package/dist/esm/testing/vitest.setup.js +0 -0
  93. package/dist/esm/transpile/esbuild.js +117 -0
  94. package/dist/esm/transpile/react-shim.js +4 -0
  95. package/dist/esm/typescript/app.tsconfig.json +23 -0
  96. package/dist/esm/typescript/library.tsconfig.json +23 -0
  97. package/dist/esm/typescript/tsc-files/index.js +55 -0
  98. package/{lib → dist/esm}/typescript/tsc-files/utils.js +3 -7
  99. package/dist/esm/typescript/util.js +6 -0
  100. package/dist/esm/webpack/helpers.js +196 -0
  101. package/dist/esm/webpack/webpack.base.babel.js +248 -0
  102. package/dist/esm/webpack/webpack.dev.babel.js +118 -0
  103. package/dist/esm/webpack/webpack.lib.base.babel.js +208 -0
  104. package/dist/esm/webpack/webpack.lib.dev.babel.js +45 -0
  105. package/dist/esm/webpack/webpack.lib.prod.babel.js +70 -0
  106. package/dist/esm/webpack/webpack.prod.babel.js +122 -0
  107. package/dist/types/babel/babel.config.d.cts +59 -0
  108. package/dist/types/cli-commands/build.d.ts +14 -0
  109. package/dist/types/cli-commands/codemod.d.ts +6 -0
  110. package/dist/types/cli-commands/gendoc.d.ts +6 -0
  111. package/dist/types/cli-commands/lint.d.ts +29 -0
  112. package/dist/types/cli-commands/pack.d.ts +26 -0
  113. package/dist/types/cli-commands/start.d.ts +13 -0
  114. package/dist/types/cli-commands/storybook.d.ts +19 -0
  115. package/dist/types/cli-commands/test.d.ts +35 -0
  116. package/dist/types/cli-commands/tsc.d.ts +20 -0
  117. package/dist/types/cli-commands/utils.d.ts +14 -0
  118. package/dist/types/cli-commands/version.d.ts +30 -0
  119. package/dist/types/cli-commands/vitest.d.ts +35 -0
  120. package/dist/types/cli.d.ts +2 -0
  121. package/dist/types/dummy.d.ts +0 -0
  122. package/dist/types/index.d.ts +10 -0
  123. package/dist/types/lint/commitlint.config.d.cts +4 -0
  124. package/dist/types/lint/eslint/common.d.cts +124 -0
  125. package/dist/types/lint/eslint/non-react.d.cts +88 -0
  126. package/dist/types/lint/eslint/react.d.cts +118 -0
  127. package/dist/types/lint/eslint/typescript/common.d.cts +37 -0
  128. package/dist/types/lint/eslint/typescript/non-react.d.cts +87 -0
  129. package/dist/types/lint/eslint/typescript/react.d.cts +118 -0
  130. package/dist/types/lint/lint-staged.config.d.ts +5 -0
  131. package/dist/types/lint/prettier.config.d.cts +8 -0
  132. package/dist/types/lint/stylelint.config.d.cts +10 -0
  133. package/dist/types/monorepo/delete-merged-tags.d.ts +1 -0
  134. package/dist/types/monorepo/set-registry-version.d.ts +1 -0
  135. package/dist/types/monorepo/set-workspace-version.d.ts +1 -0
  136. package/dist/types/monorepo/utils.d.ts +1 -0
  137. package/dist/types/pui-config/index.d.ts +1 -0
  138. package/dist/types/release/release.config.d.cts +9 -0
  139. package/dist/types/scripts/helpers/checkmark.d.ts +7 -0
  140. package/dist/types/scripts/helpers/get-npm-config.d.ts +2 -0
  141. package/dist/types/scripts/helpers/progress.d.ts +7 -0
  142. package/dist/types/scripts/helpers/xmark.d.ts +6 -0
  143. package/dist/types/scripts/npmcheckversion.d.ts +1 -0
  144. package/dist/types/scripts/update-notifier.d.ts +2 -0
  145. package/dist/types/server/csp.d.ts +10 -0
  146. package/dist/types/server/index.d.ts +1 -0
  147. package/dist/types/server/logger.d.ts +4 -0
  148. package/dist/types/server/middlewares/addProdMiddlewares.d.ts +1 -0
  149. package/dist/types/server/middlewares/index.d.ts +2 -0
  150. package/dist/types/server/util/index.d.ts +4 -0
  151. package/dist/types/testing/jest.config.d.cts +39 -0
  152. package/dist/types/testing/jest.node.config.d.cts +39 -0
  153. package/dist/types/testing/mocks/axios.d.cts +14 -0
  154. package/dist/types/testing/mocks/cssModule.d.cts +2 -0
  155. package/dist/types/testing/mocks/html.d.cts +2 -0
  156. package/dist/types/testing/mocks/image.d.cts +2 -0
  157. package/dist/types/testing/mocks/matchMedia.d.cts +2 -0
  158. package/dist/types/testing/mocks/pui-app-loader.d.cts +1 -0
  159. package/dist/types/testing/mocks/pui-diagnostics.d.cts +28 -0
  160. package/dist/types/testing/mocks/pui-user-monitoring.d.cts +3 -0
  161. package/dist/types/testing/mocks/retry-axios.d.cts +3 -0
  162. package/dist/types/testing/mocks/svg.d.cts +3 -0
  163. package/dist/types/testing/mocks/webpack-hmr.d.cts +1 -0
  164. package/dist/types/testing/resolver.d.cts +2 -0
  165. package/dist/types/testing/setup-react-env.d.ts +1 -0
  166. package/dist/types/testing/setup-tests.d.ts +1 -0
  167. package/dist/types/testing/vitest.config.d.ts +2 -0
  168. package/dist/types/testing/vitest.setup.d.ts +0 -0
  169. package/dist/types/transpile/esbuild.d.ts +13 -0
  170. package/dist/types/transpile/react-shim.d.ts +2 -0
  171. package/dist/types/transpile/swcrc.config.d.cts +1 -0
  172. package/dist/types/typescript/tsc-files/index.d.ts +1 -0
  173. package/dist/types/typescript/tsc-files/utils.d.ts +3 -0
  174. package/dist/types/typescript/util.d.ts +1 -0
  175. package/dist/types/utils.d.cts +3 -0
  176. package/dist/types/webpack/helpers.d.ts +28 -0
  177. package/dist/types/webpack/webpack.base.babel.d.ts +90 -0
  178. package/dist/types/webpack/webpack.dev.babel.d.ts +1 -0
  179. package/dist/types/webpack/webpack.lib.base.babel.d.ts +107 -0
  180. package/dist/types/webpack/webpack.lib.dev.babel.d.ts +91 -0
  181. package/dist/types/webpack/webpack.lib.prod.babel.d.ts +91 -0
  182. package/dist/types/webpack/webpack.prod.babel.d.ts +2 -0
  183. package/dist/types/webpack/webpack.storybook.d.cts +4 -0
  184. package/package.json +63 -52
  185. package/lib/babel/babel.config.js +0 -101
  186. package/lib/cli-commands/build.js +0 -56
  187. package/lib/cli-commands/codemod.js +0 -31
  188. package/lib/cli-commands/gendoc.js +0 -36
  189. package/lib/cli-commands/lint.js +0 -75
  190. package/lib/cli-commands/pack.js +0 -67
  191. package/lib/cli-commands/start.js +0 -44
  192. package/lib/cli-commands/storybook.js +0 -53
  193. package/lib/cli-commands/test.js +0 -63
  194. package/lib/cli-commands/tsc.js +0 -103
  195. package/lib/cli-commands/utils.js +0 -89
  196. package/lib/cli-commands/version.js +0 -53
  197. package/lib/cli-commands/vitest.js +0 -66
  198. package/lib/cli.js +0 -33
  199. package/lib/docgen/jsdoc.config.js +0 -17
  200. package/lib/index.js +0 -25
  201. package/lib/lint/commitlint.config.js +0 -1
  202. package/lib/lint/eslint/common.js +0 -160
  203. package/lib/lint/eslint/non-react.js +0 -14
  204. package/lib/lint/eslint/react.js +0 -26
  205. package/lib/lint/eslint/typescript/common.js +0 -43
  206. package/lib/lint/eslint/typescript/non-react.js +0 -12
  207. package/lib/lint/eslint/typescript/react.js +0 -19
  208. package/lib/lint/lint-staged.config.js +0 -16
  209. package/lib/lint/prettier.config.js +0 -8
  210. package/lib/lint/stylelint.config.js +0 -19
  211. package/lib/monorepo/delete-merged-tags.js +0 -48
  212. package/lib/monorepo/set-registry-version.js +0 -22
  213. package/lib/monorepo/set-workspace-version.js +0 -29
  214. package/lib/monorepo/utils.js +0 -15
  215. package/lib/pui-config/index.js +0 -18
  216. package/lib/release/release.config.js +0 -31
  217. package/lib/scripts/helpers/checkmark.js +0 -15
  218. package/lib/scripts/helpers/get-npm-config.js +0 -3
  219. package/lib/scripts/helpers/progress.js +0 -19
  220. package/lib/scripts/helpers/xmark.js +0 -13
  221. package/lib/scripts/npmcheckversion.js +0 -8
  222. package/lib/scripts/update-notifier.js +0 -7
  223. package/lib/server/argv.js +0 -1
  224. package/lib/server/csp.js +0 -74
  225. package/lib/server/index.js +0 -69
  226. package/lib/server/logger.js +0 -42
  227. package/lib/server/middlewares/addDevMiddlewares.js +0 -39
  228. package/lib/server/middlewares/addProdMiddlewares.js +0 -31
  229. package/lib/server/middlewares/frontendMiddleware.js +0 -16
  230. package/lib/server/port.js +0 -6
  231. package/lib/testing/jest.config.js +0 -100
  232. package/lib/testing/jest.node.config.js +0 -8
  233. package/lib/testing/mocks/axios.js +0 -15
  234. package/lib/testing/mocks/cssModule.js +0 -1
  235. package/lib/testing/mocks/html.js +0 -1
  236. package/lib/testing/mocks/image.js +0 -1
  237. package/lib/testing/mocks/matchMedia.js +0 -24
  238. package/lib/testing/mocks/pui-app-loader.js +0 -1
  239. package/lib/testing/mocks/pui-diagnostics.js +0 -28
  240. package/lib/testing/mocks/pui-user-monitoring.js +0 -3
  241. package/lib/testing/mocks/retry-axios.js +0 -3
  242. package/lib/testing/mocks/svg.js +0 -5
  243. package/lib/testing/mocks/webpack-hmr.js +0 -1
  244. package/lib/testing/resolver.js +0 -47
  245. package/lib/testing/setup-react-env.js +0 -3
  246. package/lib/testing/setup-tests.js +0 -58
  247. package/lib/testing/vitest.config.ts +0 -16
  248. package/lib/transpile/.swcrc +0 -11
  249. package/lib/transpile/esbuild.js +0 -116
  250. package/lib/transpile/react-shim.js +0 -2
  251. package/lib/transpile/swcrc.config.js +0 -13
  252. package/lib/typescript/tsc-files/index.js +0 -66
  253. package/lib/typescript/util.js +0 -5
  254. package/lib/webpack/helpers.js +0 -255
  255. package/lib/webpack/webpack.base.babel.js +0 -239
  256. package/lib/webpack/webpack.dev.babel.js +0 -122
  257. package/lib/webpack/webpack.lib.base.babel.js +0 -205
  258. package/lib/webpack/webpack.lib.dev.babel.js +0 -49
  259. package/lib/webpack/webpack.lib.prod.babel.js +0 -77
  260. package/lib/webpack/webpack.prod.babel.js +0 -164
  261. package/lib/webpack/webpack.storybook.js +0 -91
@@ -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
+ };