@elliemae/pui-cli 7.0.0-beta.9 → 7.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/README.md +4 -0
  2. package/{lib/babel/babel.config.js → dist/cjs/babel.config.cjs} +3 -7
  3. package/dist/cjs/cli.js +53 -0
  4. package/dist/cjs/commands/build.js +81 -0
  5. package/dist/cjs/commands/codemod.js +55 -0
  6. package/dist/cjs/commands/gendoc.js +53 -0
  7. package/dist/cjs/commands/lint.js +95 -0
  8. package/dist/cjs/commands/pack.js +98 -0
  9. package/dist/cjs/commands/start.js +76 -0
  10. package/dist/cjs/commands/storybook.js +71 -0
  11. package/dist/cjs/commands/test.js +100 -0
  12. package/dist/cjs/commands/tscheck.js +82 -0
  13. package/dist/cjs/commands/utils.js +157 -0
  14. package/dist/cjs/commands/version.js +77 -0
  15. package/dist/cjs/commands/vitest.js +93 -0
  16. package/dist/cjs/dummy.js +1 -0
  17. package/dist/cjs/index.cjs +25 -0
  18. package/dist/cjs/index.js +42 -0
  19. package/dist/cjs/jsdoc.conf.json +17 -0
  20. package/dist/cjs/lint-config/commitlint.config.cjs +1 -0
  21. package/{lib/lint/eslint/common.js → dist/cjs/lint-config/eslint/common.cjs} +5 -5
  22. package/{lib/lint/eslint/non-react.js → dist/cjs/lint-config/eslint/non-react.cjs} +2 -2
  23. package/{lib/lint/eslint/react.js → dist/cjs/lint-config/eslint/react.cjs} +2 -2
  24. package/{lib/lint/eslint/typescript/common.js → dist/cjs/lint-config/eslint/typescript/common.cjs} +1 -1
  25. package/{lib/lint/eslint/typescript/non-react.js → dist/cjs/lint-config/eslint/typescript/non-react.cjs} +2 -2
  26. package/{lib/lint/eslint/typescript/react.js → dist/cjs/lint-config/eslint/typescript/react.cjs} +2 -2
  27. package/dist/cjs/lint-config/lint-staged.config.js +40 -0
  28. package/{lib/lint/prettier.config.js → dist/cjs/lint-config/prettier.config.cjs} +1 -1
  29. package/{lib/lint/stylelint.config.js → dist/cjs/lint-config/stylelint.config.cjs} +2 -2
  30. package/dist/cjs/monorepo/delete-merged-tags.js +58 -0
  31. package/dist/cjs/monorepo/set-registry-version.js +49 -0
  32. package/dist/cjs/monorepo/set-workspace-version.js +56 -0
  33. package/{lib/monorepo/utils.js → dist/cjs/monorepo/utils.cjs} +17 -2
  34. package/dist/cjs/package.json +4 -0
  35. package/dist/cjs/pui-config.js +44 -0
  36. package/{lib/release/release.config.js → dist/cjs/release.config.cjs} +0 -0
  37. package/{lib/server/util/index.js → dist/cjs/server/app-routes.cjs} +5 -15
  38. package/dist/cjs/server/csp.js +94 -0
  39. package/dist/cjs/server/index.js +34 -0
  40. package/dist/cjs/server/logger.js +58 -0
  41. package/dist/cjs/server/middlewares.js +75 -0
  42. package/dist/cjs/server/utils.js +39 -0
  43. package/{lib/testing/jest.config.js → dist/cjs/testing/jest.config.cjs} +10 -10
  44. package/{lib/testing/jest.node.config.js → dist/cjs/testing/jest.node.config.cjs} +1 -1
  45. package/dist/cjs/testing/mocks/axios.js +38 -0
  46. package/dist/cjs/testing/mocks/cssModule.js +24 -0
  47. package/dist/cjs/testing/mocks/html.js +24 -0
  48. package/dist/cjs/testing/mocks/image.js +24 -0
  49. package/dist/cjs/testing/mocks/matchMedia.js +44 -0
  50. package/dist/cjs/testing/mocks/pui-app-loader.js +25 -0
  51. package/dist/cjs/testing/mocks/pui-diagnostics.js +69 -0
  52. package/dist/cjs/testing/mocks/pui-user-monitoring.js +31 -0
  53. package/dist/cjs/testing/mocks/retry-axios.js +28 -0
  54. package/dist/cjs/testing/mocks/svg.js +33 -0
  55. package/dist/cjs/testing/mocks/webpack-hmr.js +25 -0
  56. package/{lib/testing/resolver.js → dist/cjs/testing/resolver.cjs} +0 -0
  57. package/dist/cjs/testing/setup-react-env.js +22 -0
  58. package/dist/cjs/testing/setup-test-env.js +23 -0
  59. package/dist/cjs/testing/setup-tests.js +69 -0
  60. package/dist/cjs/testing/vitest.config.js +52 -0
  61. package/{lib → dist/cjs}/transpile/.swcrc +0 -0
  62. package/dist/cjs/transpile/esbuild.js +134 -0
  63. package/dist/cjs/transpile/react-shim.js +30 -0
  64. package/{lib/transpile/swcrc.config.js → dist/cjs/transpile/swcrc.config.cjs} +1 -1
  65. package/dist/cjs/typedoc.cjs +12 -0
  66. package/{lib → dist/cjs}/typescript/app.tsconfig.json +0 -0
  67. package/{lib → dist/cjs}/typescript/library.tsconfig.json +0 -0
  68. package/dist/cjs/update-notifier.js +37 -0
  69. package/dist/cjs/utils.cjs +23 -0
  70. package/dist/cjs/webpack/helpers.js +237 -0
  71. package/dist/cjs/webpack/webpack.base.babel.js +280 -0
  72. package/dist/cjs/webpack/webpack.dev.babel.js +144 -0
  73. package/dist/cjs/webpack/webpack.lib.base.babel.js +212 -0
  74. package/dist/cjs/webpack/webpack.lib.dev.babel.js +93 -0
  75. package/dist/cjs/webpack/webpack.lib.prod.babel.js +95 -0
  76. package/dist/cjs/webpack/webpack.prod.babel.js +145 -0
  77. package/dist/cjs/webpack/webpack.storybook.js +111 -0
  78. package/dist/esm/babel.config.cjs +97 -0
  79. package/dist/esm/cli.js +33 -0
  80. package/dist/esm/commands/build.js +61 -0
  81. package/dist/esm/commands/codemod.js +29 -0
  82. package/dist/esm/commands/gendoc.js +26 -0
  83. package/dist/esm/commands/lint.js +69 -0
  84. package/dist/esm/commands/pack.js +71 -0
  85. package/dist/esm/commands/start.js +49 -0
  86. package/dist/esm/commands/storybook.js +45 -0
  87. package/dist/esm/commands/test.js +74 -0
  88. package/dist/esm/commands/tscheck.js +56 -0
  89. package/dist/esm/commands/utils.js +143 -0
  90. package/dist/esm/commands/version.js +51 -0
  91. package/dist/esm/commands/vitest.js +66 -0
  92. package/{lib/dummy.ts → dist/esm/dummy.js} +0 -0
  93. package/dist/esm/index.cjs +25 -0
  94. package/dist/esm/index.js +22 -0
  95. package/dist/esm/jsdoc.conf.json +17 -0
  96. package/dist/esm/lint-config/commitlint.config.cjs +1 -0
  97. package/dist/esm/lint-config/eslint/common.cjs +160 -0
  98. package/dist/esm/lint-config/eslint/non-react.cjs +14 -0
  99. package/dist/esm/lint-config/eslint/react.cjs +26 -0
  100. package/dist/esm/lint-config/eslint/typescript/common.cjs +43 -0
  101. package/dist/esm/lint-config/eslint/typescript/non-react.cjs +12 -0
  102. package/dist/esm/lint-config/eslint/typescript/react.cjs +19 -0
  103. package/dist/esm/lint-config/lint-staged.config.js +14 -0
  104. package/dist/esm/lint-config/prettier.config.cjs +8 -0
  105. package/dist/esm/lint-config/stylelint.config.cjs +19 -0
  106. package/dist/esm/monorepo/delete-merged-tags.js +38 -0
  107. package/dist/esm/monorepo/set-registry-version.js +23 -0
  108. package/dist/esm/monorepo/set-workspace-version.js +30 -0
  109. package/dist/esm/monorepo/utils.cjs +30 -0
  110. package/dist/esm/package.json +4 -0
  111. package/dist/esm/pui-config.js +18 -0
  112. package/dist/esm/release.config.cjs +31 -0
  113. package/dist/esm/server/app-routes.cjs +42 -0
  114. package/dist/esm/server/csp.js +68 -0
  115. package/dist/esm/server/index.js +18 -0
  116. package/dist/esm/server/logger.js +32 -0
  117. package/dist/esm/server/middlewares.js +49 -0
  118. package/dist/esm/server/utils.js +13 -0
  119. package/dist/esm/testing/jest.config.cjs +103 -0
  120. package/dist/esm/testing/jest.node.config.cjs +8 -0
  121. package/{lib → dist/esm}/testing/mocks/axios.js +8 -5
  122. package/dist/esm/testing/mocks/cssModule.js +4 -0
  123. package/dist/esm/testing/mocks/html.js +4 -0
  124. package/dist/esm/testing/mocks/image.js +4 -0
  125. package/dist/esm/testing/mocks/matchMedia.js +24 -0
  126. package/dist/esm/testing/mocks/pui-app-loader.js +5 -0
  127. package/dist/esm/testing/mocks/pui-diagnostics.js +49 -0
  128. package/dist/esm/testing/mocks/pui-user-monitoring.js +11 -0
  129. package/dist/esm/testing/mocks/retry-axios.js +8 -0
  130. package/dist/esm/testing/mocks/svg.js +7 -0
  131. package/dist/esm/testing/mocks/webpack-hmr.js +5 -0
  132. package/dist/esm/testing/resolver.cjs +47 -0
  133. package/dist/esm/testing/setup-react-env.js +3 -0
  134. package/dist/esm/testing/setup-test-env.js +4 -0
  135. package/dist/esm/testing/setup-tests.js +50 -0
  136. package/dist/esm/testing/vitest.config.js +25 -0
  137. package/dist/esm/transpile/.swcrc +11 -0
  138. package/{lib → dist/esm}/transpile/esbuild.js +35 -44
  139. package/dist/esm/transpile/react-shim.js +4 -0
  140. package/dist/esm/transpile/swcrc.config.cjs +13 -0
  141. package/dist/esm/typedoc.cjs +12 -0
  142. package/dist/esm/typescript/app.tsconfig.json +23 -0
  143. package/dist/esm/typescript/library.tsconfig.json +23 -0
  144. package/dist/esm/update-notifier.js +11 -0
  145. package/dist/esm/utils.cjs +23 -0
  146. package/dist/esm/webpack/helpers.js +211 -0
  147. package/dist/esm/webpack/webpack.base.babel.js +260 -0
  148. package/dist/esm/webpack/webpack.dev.babel.js +121 -0
  149. package/dist/esm/webpack/webpack.lib.base.babel.js +192 -0
  150. package/dist/esm/webpack/webpack.lib.dev.babel.js +67 -0
  151. package/dist/esm/webpack/webpack.lib.prod.babel.js +69 -0
  152. package/dist/esm/webpack/webpack.prod.babel.js +124 -0
  153. package/dist/esm/webpack/webpack.storybook.js +85 -0
  154. package/dist/types/babel.config.d.cts +59 -0
  155. package/dist/types/cli.d.ts +2 -0
  156. package/dist/types/commands/build.d.ts +14 -0
  157. package/dist/types/commands/codemod.d.ts +6 -0
  158. package/dist/types/commands/gendoc.d.ts +6 -0
  159. package/dist/types/commands/lint.d.ts +29 -0
  160. package/dist/types/commands/pack.d.ts +26 -0
  161. package/dist/types/commands/start.d.ts +13 -0
  162. package/dist/types/commands/storybook.d.ts +19 -0
  163. package/dist/types/commands/test.d.ts +39 -0
  164. package/dist/types/commands/tscheck.d.ts +14 -0
  165. package/dist/types/commands/utils.d.ts +16 -0
  166. package/dist/types/commands/version.d.ts +30 -0
  167. package/dist/types/commands/vitest.d.ts +35 -0
  168. package/{lib/testing/vitest.setup.ts → dist/types/dummy.d.ts} +0 -0
  169. package/dist/types/index.d.cts +10 -0
  170. package/dist/types/index.d.ts +10 -0
  171. package/dist/types/lint-config/commitlint.config.d.cts +4 -0
  172. package/dist/types/lint-config/eslint/common.d.cts +127 -0
  173. package/dist/types/lint-config/eslint/non-react.d.cts +93 -0
  174. package/dist/types/lint-config/eslint/react.d.cts +123 -0
  175. package/dist/types/lint-config/eslint/typescript/common.d.cts +37 -0
  176. package/dist/types/lint-config/eslint/typescript/non-react.d.cts +87 -0
  177. package/dist/types/lint-config/eslint/typescript/react.d.cts +118 -0
  178. package/dist/types/lint-config/lint-staged.config.d.ts +5 -0
  179. package/dist/types/lint-config/prettier.config.d.cts +8 -0
  180. package/dist/types/lint-config/stylelint.config.d.cts +11 -0
  181. package/dist/types/monorepo/delete-merged-tags.d.ts +1 -0
  182. package/dist/types/monorepo/set-registry-version.d.ts +1 -0
  183. package/dist/types/monorepo/set-workspace-version.d.ts +1 -0
  184. package/dist/types/monorepo/utils.d.cts +1 -0
  185. package/dist/types/pui-config.d.ts +1 -0
  186. package/dist/types/release.config.d.cts +9 -0
  187. package/dist/types/server/app-routes.d.cts +1 -0
  188. package/dist/types/server/csp.d.ts +10 -0
  189. package/dist/types/server/index.d.ts +1 -0
  190. package/dist/types/server/logger.d.ts +4 -0
  191. package/dist/types/server/middlewares.d.ts +2 -0
  192. package/dist/types/server/utils.d.ts +3 -0
  193. package/dist/types/testing/jest.config.d.cts +39 -0
  194. package/dist/types/testing/jest.node.config.d.cts +39 -0
  195. package/dist/types/testing/mocks/axios.d.ts +17 -0
  196. package/dist/types/testing/mocks/cssModule.d.ts +2 -0
  197. package/dist/types/testing/mocks/html.d.ts +2 -0
  198. package/dist/types/testing/mocks/image.d.ts +2 -0
  199. package/dist/types/testing/mocks/matchMedia.d.ts +1 -0
  200. package/dist/types/testing/mocks/pui-app-loader.d.ts +1 -0
  201. package/dist/types/testing/mocks/pui-diagnostics.d.ts +28 -0
  202. package/dist/types/testing/mocks/pui-user-monitoring.d.ts +3 -0
  203. package/dist/types/testing/mocks/retry-axios.d.ts +3 -0
  204. package/dist/types/testing/mocks/svg.d.ts +3 -0
  205. package/dist/types/testing/mocks/webpack-hmr.d.ts +1 -0
  206. package/dist/types/testing/resolver.d.cts +2 -0
  207. package/dist/types/testing/setup-react-env.d.ts +1 -0
  208. package/dist/types/testing/setup-test-env.d.ts +2 -0
  209. package/dist/types/testing/setup-tests.d.ts +1 -0
  210. package/dist/types/testing/vitest.config.d.ts +2 -0
  211. package/dist/types/transpile/esbuild.d.ts +13 -0
  212. package/dist/types/transpile/react-shim.d.ts +2 -0
  213. package/dist/types/transpile/swcrc.config.d.cts +1 -0
  214. package/dist/types/typedoc.d.cts +3 -0
  215. package/dist/types/update-notifier.d.ts +1 -0
  216. package/dist/types/utils.d.cts +4 -0
  217. package/dist/types/webpack/helpers.d.ts +28 -0
  218. package/dist/types/webpack/webpack.base.babel.d.ts +90 -0
  219. package/dist/types/webpack/webpack.dev.babel.d.ts +2 -0
  220. package/dist/types/webpack/webpack.lib.base.babel.d.ts +110 -0
  221. package/dist/types/webpack/webpack.lib.dev.babel.d.ts +110 -0
  222. package/dist/types/webpack/webpack.lib.prod.babel.d.ts +110 -0
  223. package/dist/types/webpack/webpack.prod.babel.d.ts +2 -0
  224. package/dist/types/webpack/webpack.storybook.d.ts +4 -0
  225. package/package.json +159 -144
  226. package/lib/cli-commands/build.js +0 -60
  227. package/lib/cli-commands/codemod.js +0 -31
  228. package/lib/cli-commands/gendoc.js +0 -36
  229. package/lib/cli-commands/lint.js +0 -75
  230. package/lib/cli-commands/pack.js +0 -67
  231. package/lib/cli-commands/start.js +0 -49
  232. package/lib/cli-commands/storybook.js +0 -53
  233. package/lib/cli-commands/test.js +0 -63
  234. package/lib/cli-commands/tsc.js +0 -103
  235. package/lib/cli-commands/utils.js +0 -135
  236. package/lib/cli-commands/version.js +0 -53
  237. package/lib/cli-commands/vitest.js +0 -66
  238. package/lib/cli.js +0 -33
  239. package/lib/docgen/jsdoc.config.js +0 -17
  240. package/lib/index.js +0 -25
  241. package/lib/lint/commitlint.config.js +0 -1
  242. package/lib/lint/lint-staged.config.js +0 -16
  243. package/lib/monorepo/delete-merged-tags.js +0 -48
  244. package/lib/monorepo/set-registry-version.js +0 -22
  245. package/lib/monorepo/set-workspace-version.js +0 -29
  246. package/lib/pui-config/index.js +0 -18
  247. package/lib/scripts/helpers/checkmark.js +0 -15
  248. package/lib/scripts/helpers/get-npm-config.js +0 -3
  249. package/lib/scripts/helpers/progress.js +0 -19
  250. package/lib/scripts/helpers/xmark.js +0 -13
  251. package/lib/scripts/npmcheckversion.js +0 -8
  252. package/lib/scripts/update-notifier.js +0 -7
  253. package/lib/server/csp.js +0 -74
  254. package/lib/server/index.js +0 -37
  255. package/lib/server/logger.js +0 -42
  256. package/lib/server/middlewares/addDevMiddlewares.js +0 -39
  257. package/lib/server/middlewares/addProdMiddlewares.js +0 -30
  258. package/lib/server/middlewares/index.js +0 -37
  259. package/lib/testing/mocks/cssModule.js +0 -1
  260. package/lib/testing/mocks/html.js +0 -1
  261. package/lib/testing/mocks/image.js +0 -1
  262. package/lib/testing/mocks/matchMedia.js +0 -24
  263. package/lib/testing/mocks/pui-app-loader.js +0 -1
  264. package/lib/testing/mocks/pui-diagnostics.js +0 -28
  265. package/lib/testing/mocks/pui-user-monitoring.js +0 -3
  266. package/lib/testing/mocks/retry-axios.js +0 -3
  267. package/lib/testing/mocks/svg.js +0 -5
  268. package/lib/testing/mocks/webpack-hmr.js +0 -1
  269. package/lib/testing/setup-react-env.js +0 -3
  270. package/lib/testing/setup-tests.js +0 -58
  271. package/lib/testing/vitest.config.ts +0 -16
  272. package/lib/transpile/react-shim.js +0 -2
  273. package/lib/typescript/tsc-files/index.js +0 -66
  274. package/lib/typescript/tsc-files/utils.js +0 -16
  275. package/lib/typescript/util.js +0 -5
  276. package/lib/webpack/helpers.js +0 -252
  277. package/lib/webpack/webpack.base.babel.js +0 -242
  278. package/lib/webpack/webpack.dev.babel.js +0 -139
  279. package/lib/webpack/webpack.lib.base.babel.js +0 -205
  280. package/lib/webpack/webpack.lib.dev.babel.js +0 -49
  281. package/lib/webpack/webpack.lib.prod.babel.js +0 -77
  282. package/lib/webpack/webpack.prod.babel.js +0 -142
  283. package/lib/webpack/webpack.storybook.js +0 -87
@@ -0,0 +1,192 @@
1
+ import path from "node:path";
2
+ import webpack from "webpack";
3
+ import MiniCssExtractPlugin from "mini-css-extract-plugin";
4
+ import CopyWebpackPlugin from "copy-webpack-plugin";
5
+ import PostcssPresetEnv from "postcss-preset-env";
6
+ import DuplicatePackageCheckerPlugin from "duplicate-package-checker-webpack-plugin";
7
+ import MomentLocalesPlugin from "moment-locales-webpack-plugin";
8
+ import ResolveTypeScriptPlugin from "resolve-typescript-plugin";
9
+ import browserslistToEsbuild from "browserslist-to-esbuild";
10
+ import {
11
+ excludeNodeModulesExcept,
12
+ getLibraryName,
13
+ modulesToTranspile,
14
+ getAlias,
15
+ filterByFilePresence
16
+ } from "./helpers.js";
17
+ import { getAppConfig } from "../utils.cjs";
18
+ const minicssLoader = {
19
+ loader: MiniCssExtractPlugin.loader,
20
+ options: {}
21
+ };
22
+ const finalCSSLoader = (mode) => mode !== "production" ? { loader: "style-loader" } : minicssLoader;
23
+ const copyPluginPatterns = filterByFilePresence([
24
+ {
25
+ from: "lib/app.config.json",
26
+ to: "app.config.json",
27
+ noErrorOnMissing: true
28
+ },
29
+ {
30
+ from: "public",
31
+ noErrorOnMissing: true
32
+ }
33
+ ]);
34
+ const plugins = [
35
+ new webpack.EnvironmentPlugin({
36
+ ASSET_PATH: "/",
37
+ CI: "false"
38
+ }),
39
+ new webpack.DefinePlugin({
40
+ APP_CONFIG: getAppConfig(true)
41
+ }),
42
+ ...copyPluginPatterns.length > 0 ? [
43
+ new CopyWebpackPlugin({
44
+ patterns: copyPluginPatterns
45
+ })
46
+ ] : [],
47
+ new DuplicatePackageCheckerPlugin(),
48
+ new webpack.optimize.LimitChunkCountPlugin({
49
+ maxChunks: 1
50
+ }),
51
+ new MomentLocalesPlugin({ localesToKeep: ["es-us"] }),
52
+ new webpack.ProgressPlugin()
53
+ ];
54
+ const baseConfig = (options) => ({
55
+ mode: options.mode,
56
+ entry: { index: path.join(process.cwd(), "lib/index") },
57
+ output: {
58
+ clean: true,
59
+ path: path.resolve(process.cwd(), "dist/umd"),
60
+ publicPath: "auto",
61
+ library: process.env.LIBRARY_VARIABLE_NAME || getLibraryName(),
62
+ libraryTarget: "umd",
63
+ ...options.output
64
+ },
65
+ optimization: options.optimization,
66
+ module: {
67
+ rules: [
68
+ {
69
+ test: /^(?!.*\.exec\.js$).*\.jsx?$/,
70
+ exclude: excludeNodeModulesExcept(modulesToTranspile),
71
+ resolve: {
72
+ fullySpecified: false
73
+ },
74
+ use: {
75
+ loader: "esbuild-loader",
76
+ options: {
77
+ loader: "jsx",
78
+ target: browserslistToEsbuild()
79
+ }
80
+ }
81
+ },
82
+ {
83
+ test: /^(?!.*\.exec\.js$).*\.tsx?$/,
84
+ exclude: excludeNodeModulesExcept(modulesToTranspile),
85
+ resolve: {
86
+ fullySpecified: false
87
+ },
88
+ use: {
89
+ loader: "esbuild-loader",
90
+ options: {
91
+ loader: "tsx",
92
+ target: browserslistToEsbuild()
93
+ }
94
+ }
95
+ },
96
+ {
97
+ test: /\.css$/,
98
+ exclude: excludeNodeModulesExcept(modulesToTranspile),
99
+ use: [
100
+ finalCSSLoader(options.mode),
101
+ {
102
+ loader: "css-loader",
103
+ options: {
104
+ importLoaders: 1,
105
+ sourceMap: true
106
+ }
107
+ },
108
+ {
109
+ loader: "postcss-loader",
110
+ options: {
111
+ postcssOptions: {
112
+ plugins: [PostcssPresetEnv({ autoprefixer: { grid: true } })]
113
+ },
114
+ sourceMap: true
115
+ }
116
+ }
117
+ ]
118
+ },
119
+ {
120
+ test: /\.pug$/,
121
+ exclude: /node_modules/,
122
+ use: "pug-loader"
123
+ },
124
+ {
125
+ test: /\.(woff|woff2)$/,
126
+ exclude: excludeNodeModulesExcept(["@elliemae/*"]),
127
+ type: "asset/resource"
128
+ },
129
+ {
130
+ test: /\.svg$/i,
131
+ issuer: /\.[jt]sx?$/,
132
+ resourceQuery: /^((?!url).)*$/,
133
+ exclude: excludeNodeModulesExcept(["@elliemae/*"]),
134
+ use: ["@svgr/webpack"]
135
+ },
136
+ {
137
+ test: /\.(jpe?g|png|gif|ico)$/i,
138
+ exclude: excludeNodeModulesExcept(["@elliemae/*"]),
139
+ type: "asset"
140
+ },
141
+ {
142
+ test: new RegExp("(?<!\\/iframe)\\.html$"),
143
+ exclude: excludeNodeModulesExcept(["@elliemae/*"]),
144
+ use: "html-loader"
145
+ },
146
+ {
147
+ test: /\.(mp4|webm)$/,
148
+ exclude: excludeNodeModulesExcept(["@elliemae/*"]),
149
+ type: "asset"
150
+ },
151
+ {
152
+ resourceQuery: /resource/,
153
+ type: "asset/resource",
154
+ exclude: excludeNodeModulesExcept(["@elliemae/*"])
155
+ },
156
+ {
157
+ type: "asset",
158
+ resourceQuery: /url/,
159
+ exclude: excludeNodeModulesExcept(["@elliemae/*"])
160
+ }
161
+ ]
162
+ },
163
+ plugins: plugins.concat(options.plugins || []),
164
+ resolve: {
165
+ modules: [
166
+ "node_modules",
167
+ "app",
168
+ "lib",
169
+ path.resolve(process.cwd(), "node_modules"),
170
+ path.resolve(process.cwd(), "app"),
171
+ path.resolve(process.cwd(), "lib")
172
+ ],
173
+ extensions: [".ts", ".tsx", ".js", ".jsx", ".json", ".wasm", ".mjs"],
174
+ mainFields: ["browser", "module", "main"],
175
+ alias: {
176
+ ...getAlias(),
177
+ ...(options.resolve || {}).alias || {}
178
+ },
179
+ plugins: [new ResolveTypeScriptPlugin({})]
180
+ },
181
+ externals: {
182
+ "@elliemae/pui-user-monitoring": "emuiUserMonitoring",
183
+ "@elliemae/pui-app-loader": "emuiAppLoader",
184
+ "@elliemae/pui-diagnostics": "emuiDiagnostics"
185
+ },
186
+ devtool: options.devtool || "eval-source-map",
187
+ performance: options.performance || {},
188
+ devServer: options.devServer || {}
189
+ });
190
+ export {
191
+ baseConfig
192
+ };
@@ -0,0 +1,67 @@
1
+ import path from "node:path";
2
+ import fg from "fast-glob";
3
+ import CircularDependencyPlugin from "circular-dependency-plugin";
4
+ import MiniCssExtractPlugin from "mini-css-extract-plugin";
5
+ import HtmlWebpackPlugin from "html-webpack-plugin";
6
+ import { getLibraryName, getPaths } from "./helpers.js";
7
+ import { baseConfig } from "./webpack.lib.base.babel.js";
8
+ const libraryName = getLibraryName();
9
+ const { basePath } = getPaths();
10
+ const getHtmlWebpackPlugins = () => {
11
+ const htmlTemplateFiles = fg.sync([path.join(process.cwd(), "lib/*.html")]);
12
+ return htmlTemplateFiles.map(
13
+ (htmlTemplateFile) => new HtmlWebpackPlugin({
14
+ template: htmlTemplateFile,
15
+ filename: path.basename(htmlTemplateFile),
16
+ libraryName,
17
+ inject: true
18
+ })
19
+ );
20
+ };
21
+ var webpack_lib_dev_babel_default = baseConfig({
22
+ mode: "development",
23
+ output: {
24
+ filename: `js/${libraryName}.js`,
25
+ chunkFilename: `js/${libraryName}.chunk.js`,
26
+ assetModuleFilename: "[name][ext][query]"
27
+ },
28
+ optimization: {
29
+ splitChunks: {
30
+ chunks: "all"
31
+ }
32
+ },
33
+ resolve: {
34
+ alias: {}
35
+ },
36
+ plugins: [
37
+ ...getHtmlWebpackPlugins(),
38
+ new CircularDependencyPlugin({
39
+ exclude: /a\.(js|ts|jsx|tsx)|node_modules/,
40
+ failOnError: false
41
+ }),
42
+ new MiniCssExtractPlugin({
43
+ filename: `css/${libraryName}.css`,
44
+ chunkFilename: `css/${libraryName}.chunk.css`
45
+ })
46
+ ],
47
+ devtool: "eval-source-map",
48
+ performance: {
49
+ hints: false
50
+ },
51
+ devServer: {
52
+ allowedHosts: "all",
53
+ client: {
54
+ overlay: {
55
+ errors: true,
56
+ warnings: false
57
+ }
58
+ },
59
+ historyApiFallback: true,
60
+ hot: true,
61
+ open: [basePath],
62
+ port: process.env.PORT || "auto"
63
+ }
64
+ });
65
+ export {
66
+ webpack_lib_dev_babel_default as default
67
+ };
@@ -0,0 +1,69 @@
1
+ import path from "node:path";
2
+ import fg from "fast-glob";
3
+ import MiniCssExtractPlugin from "mini-css-extract-plugin";
4
+ import HtmlWebpackPlugin from "html-webpack-plugin";
5
+ import { BundleAnalyzerPlugin } from "webpack-bundle-analyzer";
6
+ import { ESBuildMinifyPlugin } from "esbuild-loader";
7
+ import browserslistToEsbuild from "browserslist-to-esbuild";
8
+ import { getLibraryName, getCompressionPlugins } from "./helpers.js";
9
+ import { baseConfig } from "./webpack.lib.base.babel.js";
10
+ const libraryName = process.env.LIBRARY_FILE_NAME || getLibraryName();
11
+ const getHtmlWebpackPlugins = () => {
12
+ const htmlTemplateFiles = fg.sync([path.join(process.cwd(), "lib/*.html")]);
13
+ return htmlTemplateFiles.map(
14
+ (htmlTemplateFile) => new HtmlWebpackPlugin({
15
+ template: htmlTemplateFile,
16
+ filename: path.basename(htmlTemplateFile),
17
+ libraryName,
18
+ inject: true,
19
+ minify: {
20
+ removeComments: true,
21
+ collapseWhitespace: true,
22
+ removeRedundantAttributes: true,
23
+ useShortDoctype: true,
24
+ removeEmptyAttributes: true,
25
+ removeStyleLinkTypeAttributes: true,
26
+ keepClosingSlash: true,
27
+ minifyJS: true,
28
+ minifyCSS: true,
29
+ minifyURLs: true
30
+ }
31
+ })
32
+ );
33
+ };
34
+ var webpack_lib_prod_babel_default = baseConfig({
35
+ mode: "production",
36
+ optimization: {
37
+ moduleIds: "deterministic",
38
+ minimize: true,
39
+ minimizer: [
40
+ new ESBuildMinifyPlugin({
41
+ target: browserslistToEsbuild(),
42
+ css: true
43
+ })
44
+ ],
45
+ nodeEnv: "production",
46
+ sideEffects: true,
47
+ concatenateModules: true,
48
+ splitChunks: {
49
+ chunks: "all"
50
+ }
51
+ },
52
+ plugins: [
53
+ ...getHtmlWebpackPlugins(),
54
+ new MiniCssExtractPlugin({}),
55
+ ...getCompressionPlugins(true),
56
+ new BundleAnalyzerPlugin({
57
+ analyzerMode: "static",
58
+ reportFilename: path.join(process.cwd(), "reports/bundle-stats.html"),
59
+ openAnalyzer: false
60
+ })
61
+ ],
62
+ devtool: "source-map",
63
+ performance: {
64
+ assetFilter: (assetFilename) => !/(\.map$)|(^(main\.|favicon\.))/.test(assetFilename)
65
+ }
66
+ });
67
+ export {
68
+ webpack_lib_prod_babel_default as default
69
+ };
@@ -0,0 +1,124 @@
1
+ import path from "node:path";
2
+ import HtmlWebpackPlugin from "html-webpack-plugin";
3
+ import { GenerateSW } from "workbox-webpack-plugin";
4
+ import MiniCssExtractPlugin from "mini-css-extract-plugin";
5
+ import { BundleAnalyzerPlugin } from "webpack-bundle-analyzer";
6
+ import { ESBuildMinifyPlugin } from "esbuild-loader";
7
+ import SpeedMeasurePlugin from "speed-measure-webpack-plugin";
8
+ import browserslistToEsbuild from "browserslist-to-esbuild";
9
+ import { baseConfig } from "./webpack.base.babel.js";
10
+ import {
11
+ isAppLoaderEnabled,
12
+ getPaths,
13
+ isGoogleTagManagerEnabled,
14
+ getCompressionPlugins
15
+ } from "./helpers.js";
16
+ const getProdConfig = ({ latestVersion = true } = {}) => {
17
+ const { buildPath } = getPaths(latestVersion);
18
+ return {
19
+ mode: "production",
20
+ entry: {
21
+ app: path.join(process.cwd(), "app/index")
22
+ },
23
+ output: {
24
+ path: buildPath,
25
+ publicPath: "auto",
26
+ filename: "latest/js/[name].[contenthash].js",
27
+ chunkFilename: "latest/js/[name].[contenthash].chunk.js",
28
+ assetModuleFilename: "latest/assets/[name].[hash][ext][query]"
29
+ },
30
+ optimization: {
31
+ moduleIds: "deterministic",
32
+ minimizer: [
33
+ new ESBuildMinifyPlugin({
34
+ target: browserslistToEsbuild(),
35
+ css: true
36
+ })
37
+ ],
38
+ runtimeChunk: true,
39
+ splitChunks: {
40
+ chunks: "all",
41
+ cacheGroups: {
42
+ emui: {
43
+ name: "emui",
44
+ test: /[\\/]node_modules[\\/](@elliemae)[\\/]/,
45
+ priority: 1
46
+ },
47
+ vendors: {
48
+ name: "vendors",
49
+ test: /[\\/]node_modules[\\/]/
50
+ }
51
+ }
52
+ }
53
+ },
54
+ plugins: [
55
+ ...getCompressionPlugins(),
56
+ new BundleAnalyzerPlugin({
57
+ analyzerMode: "static",
58
+ reportFilename: path.join(process.cwd(), "reports/bundle-stats.html"),
59
+ openAnalyzer: false
60
+ }),
61
+ new GenerateSW({
62
+ swDest: "sw.js",
63
+ clientsClaim: true,
64
+ skipWaiting: true
65
+ })
66
+ ],
67
+ devtool: "source-map",
68
+ performance: {
69
+ assetFilter: (assetFilename) => !/(\.map$)|(^(main\.|favicon\.))/.test(assetFilename)
70
+ }
71
+ };
72
+ };
73
+ const {
74
+ userMonScriptPath,
75
+ globalScriptPath,
76
+ appLoaderScriptPath,
77
+ diagnosticsScriptPath,
78
+ encwLoaderScriptPath,
79
+ basePath
80
+ } = getPaths();
81
+ const htmlWebpackPlugin = new HtmlWebpackPlugin({
82
+ inject: !isAppLoaderEnabled(),
83
+ template: !isAppLoaderEnabled() ? "app/index.html" : "app/index-app-loader.html",
84
+ minify: {
85
+ removeComments: true,
86
+ collapseWhitespace: true,
87
+ removeRedundantAttributes: true,
88
+ useShortDoctype: true,
89
+ removeEmptyAttributes: true,
90
+ removeStyleLinkTypeAttributes: true,
91
+ keepClosingSlash: true,
92
+ minifyJS: true,
93
+ minifyCSS: true,
94
+ minifyURLs: true
95
+ },
96
+ emui: {
97
+ appVersion: "latest",
98
+ basePath,
99
+ globalScriptPath,
100
+ userMonScriptPath,
101
+ appLoaderScriptPath,
102
+ diagnosticsScriptPath,
103
+ encwLoaderScriptPath,
104
+ googleTagManager: isGoogleTagManagerEnabled()
105
+ }
106
+ });
107
+ const config = baseConfig(getProdConfig());
108
+ config.plugins.push(htmlWebpackPlugin);
109
+ const addSMPPlugin = (webpackConfig) => {
110
+ const smpConfig = new SpeedMeasurePlugin({
111
+ disable: !process.env.MEASURE
112
+ }).wrap(webpackConfig);
113
+ smpConfig.plugins.push(
114
+ new MiniCssExtractPlugin({
115
+ filename: "latest/css/[name].[contenthash].css",
116
+ chunkFilename: "latest/css/[name].[contenthash].chunk.css"
117
+ })
118
+ );
119
+ return smpConfig;
120
+ };
121
+ var webpack_prod_babel_default = addSMPPlugin(config);
122
+ export {
123
+ webpack_prod_babel_default as default
124
+ };
@@ -0,0 +1,85 @@
1
+ import webpack from "webpack";
2
+ import MiniCssExtractPlugin from "mini-css-extract-plugin";
3
+ import CopyWebpackPlugin from "copy-webpack-plugin";
4
+ import ResolveTypeScriptPlugin from "resolve-typescript-plugin";
5
+ import { getAlias, getCompressionPlugins } from "./helpers.js";
6
+ import { isApp } from "../utils.cjs";
7
+ const IS_APP = isApp();
8
+ const CWD = process.cwd();
9
+ const getAdditionalPlugins = () => [
10
+ new webpack.EnvironmentPlugin({
11
+ IS_APP,
12
+ CWD
13
+ }),
14
+ new MiniCssExtractPlugin({
15
+ filename: "[name].[contenthash].css",
16
+ chunkFilename: "[name].[contenthash].chunk.css"
17
+ }),
18
+ new CopyWebpackPlugin({
19
+ patterns: [
20
+ {
21
+ from: "lib/app.config.json",
22
+ to: "app.config.json",
23
+ noErrorOnMissing: true
24
+ },
25
+ {
26
+ from: "app/app.config.json",
27
+ to: "app.config.json",
28
+ noErrorOnMissing: true
29
+ },
30
+ {
31
+ from: "public",
32
+ noErrorOnMissing: true
33
+ }
34
+ ]
35
+ })
36
+ ];
37
+ const getModuleRules = () => [
38
+ {
39
+ type: "asset",
40
+ resourceQuery: /url/
41
+ },
42
+ {
43
+ test: /\.svg$/i,
44
+ issuer: /\.[jt]sx?$/,
45
+ resourceQuery: /^((?!url).)*$/,
46
+ use: ["@svgr/webpack"]
47
+ },
48
+ {
49
+ resourceQuery: /resource/,
50
+ type: "asset/resource"
51
+ }
52
+ ];
53
+ const webpackFinal = async (config, { configType }) => {
54
+ const isProd = configType === "PRODUCTION";
55
+ const fileLoaderRule = config.module.rules.find(
56
+ (rule) => rule.test?.test?.(".svg")
57
+ );
58
+ fileLoaderRule.exclude = /\.svg$/i;
59
+ config.module.rules.unshift(...getModuleRules());
60
+ config.plugins.push(...getAdditionalPlugins());
61
+ if (isProd) {
62
+ config.plugins = config.plugins.concat(getCompressionPlugins());
63
+ }
64
+ config.resolve.alias = { ...config.resolve.alias, ...getAlias() };
65
+ config.resolve.fallback = { ...config.resolve.fallback, crypto: false };
66
+ config.resolve.extensions.push(".svg");
67
+ config.resolve.plugins = [
68
+ ...config.resolve.plugins || [],
69
+ new ResolveTypeScriptPlugin({})
70
+ ];
71
+ config.externals = config.externals || {};
72
+ config.externals["@elliemae/pui-user-monitoring"] = "emuiUserMonitoring";
73
+ config.externals["@elliemae/pui-app-loader"] = "emuiAppLoader";
74
+ config.externals["@elliemae/pui-diagnostics"] = "emuiDiagnostics";
75
+ return config;
76
+ };
77
+ const managerWebpack = async (config) => {
78
+ config.plugins = config.plugins.concat(getCompressionPlugins());
79
+ config.resolve.alias = { ...config.resolve.alias, ...getAlias() };
80
+ return config;
81
+ };
82
+ export {
83
+ managerWebpack,
84
+ webpackFinal
85
+ };
@@ -0,0 +1,59 @@
1
+ export { config as babelConfig };
2
+ declare namespace config {
3
+ const ignore: RegExp[];
4
+ const sourceType: string;
5
+ const presets: (string | (string | {
6
+ modules: string | boolean;
7
+ targets: {
8
+ node: string;
9
+ };
10
+ } | {
11
+ modules: string | boolean;
12
+ useBuiltIns: string;
13
+ corejs: {
14
+ version: string;
15
+ proposals: boolean;
16
+ };
17
+ })[] | (string | {
18
+ runtime: string;
19
+ })[])[];
20
+ const plugins: (string | (string | {
21
+ alias: {
22
+ '@': string;
23
+ };
24
+ stripExtensions: never[];
25
+ })[] | (string | {
26
+ displayName: boolean;
27
+ })[] | (string | {
28
+ regenerator: boolean;
29
+ })[])[];
30
+ namespace env {
31
+ namespace development {
32
+ const plugins_1: (string | (string | {
33
+ displayName: boolean;
34
+ })[])[];
35
+ export { plugins_1 as plugins };
36
+ }
37
+ namespace production {
38
+ const plugins_2: (string | (string | {
39
+ displayName: boolean;
40
+ pure: boolean;
41
+ })[] | (string | {
42
+ exclude: string[];
43
+ })[])[];
44
+ export { plugins_2 as plugins };
45
+ }
46
+ namespace test {
47
+ const plugins_3: (string | (string | {
48
+ displayName: boolean;
49
+ })[] | (string | {
50
+ requireDirective: boolean;
51
+ identifiers: {
52
+ start: string;
53
+ end: string;
54
+ }[];
55
+ })[])[];
56
+ export { plugins_3 as plugins };
57
+ }
58
+ }
59
+ }
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,14 @@
1
+ export namespace buildCmd {
2
+ function handler({ service }: {
3
+ service?: boolean | undefined;
4
+ }): Promise<void>;
5
+ const command: string;
6
+ const describe: string;
7
+ namespace builder {
8
+ namespace service {
9
+ export const type: string;
10
+ const _default: boolean;
11
+ export { _default as default };
12
+ }
13
+ }
14
+ }
@@ -0,0 +1,6 @@
1
+ export namespace codemodCmd {
2
+ function handler(argv: any): Promise<void>;
3
+ const command: string;
4
+ const describe: string;
5
+ function builder(yargsRef: any): void;
6
+ }
@@ -0,0 +1,6 @@
1
+ export namespace gendocCmd {
2
+ function handler(): Promise<void>;
3
+ const command: string;
4
+ const describe: string;
5
+ const builder: {};
6
+ }
@@ -0,0 +1,29 @@
1
+ export namespace lintCmd {
2
+ function handler(argv: any): Promise<0 | -1>;
3
+ const command: string;
4
+ const describe: string;
5
+ namespace builder {
6
+ namespace css {
7
+ export const alias: string;
8
+ export const type: string;
9
+ const _default: boolean;
10
+ export { _default as default };
11
+ }
12
+ namespace js {
13
+ const alias_1: string;
14
+ export { alias_1 as alias };
15
+ const type_1: string;
16
+ export { type_1 as type };
17
+ const _default_1: boolean;
18
+ export { _default_1 as default };
19
+ }
20
+ namespace fix {
21
+ const alias_2: string;
22
+ export { alias_2 as alias };
23
+ const type_2: string;
24
+ export { type_2 as type };
25
+ const _default_2: boolean;
26
+ export { _default_2 as default };
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,26 @@
1
+ export namespace packCmd {
2
+ function handler(argv: any): Promise<void>;
3
+ const command: string;
4
+ const describe: string;
5
+ namespace builder {
6
+ namespace production {
7
+ export const alias: string;
8
+ export const type: string;
9
+ const _default: boolean;
10
+ export { _default as default };
11
+ }
12
+ namespace target {
13
+ const alias_1: string;
14
+ export { alias_1 as alias };
15
+ const type_1: string;
16
+ export { type_1 as type };
17
+ export const description: string;
18
+ }
19
+ namespace srcPath {
20
+ const type_2: string;
21
+ export { type_2 as type };
22
+ const _default_1: string;
23
+ export { _default_1 as default };
24
+ }
25
+ }
26
+ }