@elliemae/pui-cli 9.0.0-next.6 → 9.0.0-next.62

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 (368) hide show
  1. package/app.tsconfig.json +8 -3
  2. package/dist/cjs/babel.config.cjs +1 -12
  3. package/dist/cjs/build/vite.config.js +45 -0
  4. package/dist/cjs/cli.js +5 -3
  5. package/dist/cjs/commands/build.js +4 -6
  6. package/dist/cjs/commands/buildcdn.js +74 -0
  7. package/dist/cjs/commands/codemod.js +1 -1
  8. package/dist/cjs/commands/gendoc.js +2 -2
  9. package/dist/cjs/commands/lint.js +27 -10
  10. package/dist/cjs/commands/pack.js +3 -4
  11. package/dist/cjs/commands/start.js +3 -3
  12. package/dist/cjs/commands/storybook.js +1 -1
  13. package/dist/cjs/commands/test.js +46 -24
  14. package/dist/cjs/commands/tscheck.js +11 -4
  15. package/dist/cjs/commands/utils.js +45 -18
  16. package/dist/cjs/commands/version.js +1 -1
  17. package/dist/cjs/commands/vitest.js +6 -12
  18. package/dist/cjs/index.cjs +0 -14
  19. package/dist/cjs/index.js +13 -13
  20. package/dist/cjs/lint-config/commitlint.config.js +26 -0
  21. package/dist/cjs/lint-config/eslint.config.js +259 -0
  22. package/dist/cjs/lint-config/lint-staged.config.js +2 -2
  23. package/dist/cjs/lint-config/prettier.config.js +31 -0
  24. package/dist/cjs/lint-config/stylelint.config.js +45 -0
  25. package/dist/cjs/monorepo/delete-merged-tags.js +2 -3
  26. package/dist/cjs/monorepo/set-registry-version.js +3 -3
  27. package/dist/cjs/monorepo/set-workspace-version.js +3 -3
  28. package/dist/cjs/monorepo/utils.cjs +2 -2
  29. package/dist/cjs/monorepo/utils.js +2 -2
  30. package/dist/cjs/pui-config.js +5 -6
  31. package/dist/cjs/release.config.js +46 -0
  32. package/dist/cjs/server/appRoutes.js +5 -8
  33. package/dist/cjs/server/cert.js +45 -0
  34. package/dist/cjs/server/certs/cert.crt +25 -0
  35. package/dist/cjs/server/certs/cert.csr +18 -0
  36. package/dist/cjs/server/certs/cert.ext +7 -0
  37. package/dist/cjs/server/certs/cert.key +30 -0
  38. package/dist/cjs/server/certs/cert.pfx +0 -0
  39. package/dist/cjs/server/certs/rootCA.crt +24 -0
  40. package/dist/cjs/server/certs/rootCA.key +30 -0
  41. package/dist/cjs/server/certs/rootCA.srl +1 -0
  42. package/dist/cjs/server/csp.js +45 -33
  43. package/dist/cjs/server/index.js +14 -4
  44. package/dist/cjs/server/logger.js +7 -4
  45. package/dist/cjs/server/middlewares.js +7 -7
  46. package/dist/cjs/server/utils.js +12 -5
  47. package/dist/cjs/server/wsServer.js +128 -0
  48. package/dist/cjs/testing/ExtendedJSDomEnv.cjs +27 -0
  49. package/dist/cjs/testing/extended/axe-core/getMessageAndPass.js +36 -0
  50. package/dist/cjs/testing/extended/axe-core/index.js +24 -0
  51. package/dist/cjs/testing/extended/axe-core/reporter.js +50 -0
  52. package/dist/cjs/testing/extended/axe-core/shouldIgnoreNodeViolation.js +31 -0
  53. package/dist/cjs/testing/extended/axe-core/toHaveNoViolations.js +42 -0
  54. package/dist/cjs/testing/jest.config.cjs +9 -5
  55. package/dist/cjs/testing/jest.polyfills.cjs +30 -0
  56. package/dist/cjs/testing/mocks/iframe.js +24 -0
  57. package/dist/cjs/testing/mocks/svg.js +0 -11
  58. package/dist/cjs/testing/resolver.cjs +0 -1
  59. package/dist/cjs/testing/setup-react-env.js +1 -1
  60. package/dist/cjs/testing/setup-tests.js +30 -12
  61. package/dist/cjs/testing/vitest.config.js +10 -14
  62. package/dist/cjs/transpile/.swcrc +2 -1
  63. package/dist/cjs/transpile/esbuild.js +48 -15
  64. package/dist/cjs/transpile/react-shim.js +1 -1
  65. package/dist/cjs/update-notifier.js +3 -3
  66. package/dist/cjs/utils.cjs +1 -1
  67. package/dist/cjs/utils.js +7 -6
  68. package/dist/cjs/webpack/csp-plugin.js +79 -0
  69. package/dist/cjs/webpack/csp.js +158 -0
  70. package/dist/cjs/webpack/helpers.js +43 -37
  71. package/dist/cjs/webpack/interceptor-middleware.js +125 -0
  72. package/dist/cjs/webpack/webpack.base.babel.js +21 -35
  73. package/dist/cjs/webpack/webpack.dev.babel.js +35 -13
  74. package/dist/cjs/webpack/webpack.lib.base.babel.js +22 -15
  75. package/dist/cjs/webpack/webpack.lib.dev.babel.js +14 -18
  76. package/dist/cjs/webpack/webpack.lib.prod.babel.js +15 -12
  77. package/dist/cjs/webpack/webpack.prod.babel.js +17 -10
  78. package/dist/cjs/webpack/webpack.storybook.js +16 -18
  79. package/dist/esm/babel.config.cjs +1 -12
  80. package/dist/esm/build/vite.config.js +25 -0
  81. package/dist/esm/cli.js +3 -1
  82. package/dist/esm/commands/build.js +2 -4
  83. package/dist/esm/commands/buildcdn.js +43 -0
  84. package/dist/esm/commands/lint.js +26 -8
  85. package/dist/esm/commands/pack.js +1 -2
  86. package/dist/esm/commands/start.js +1 -1
  87. package/dist/esm/commands/test.js +45 -23
  88. package/dist/esm/commands/tscheck.js +8 -1
  89. package/dist/esm/commands/utils.js +41 -14
  90. package/dist/esm/commands/vitest.js +5 -11
  91. package/dist/esm/index.cjs +0 -14
  92. package/dist/esm/index.js +10 -10
  93. package/dist/esm/lint-config/commitlint.config.js +6 -0
  94. package/dist/esm/lint-config/eslint.config.js +228 -0
  95. package/dist/esm/lint-config/{prettier.config.cjs → prettier.config.js} +5 -2
  96. package/dist/esm/lint-config/stylelint.config.js +25 -0
  97. package/dist/esm/monorepo/delete-merged-tags.js +2 -3
  98. package/dist/esm/monorepo/set-registry-version.js +1 -1
  99. package/dist/esm/monorepo/set-workspace-version.js +1 -1
  100. package/dist/esm/monorepo/utils.cjs +2 -2
  101. package/dist/esm/monorepo/utils.js +1 -1
  102. package/dist/esm/pui-config.js +2 -3
  103. package/dist/esm/release.config.js +26 -0
  104. package/dist/esm/server/appRoutes.js +3 -6
  105. package/dist/esm/server/cert.js +14 -0
  106. package/dist/esm/server/certs/cert.crt +25 -0
  107. package/dist/esm/server/certs/cert.csr +18 -0
  108. package/dist/esm/server/certs/cert.ext +7 -0
  109. package/dist/esm/server/certs/cert.key +30 -0
  110. package/dist/esm/server/certs/cert.pfx +0 -0
  111. package/dist/esm/server/certs/rootCA.crt +24 -0
  112. package/dist/esm/server/certs/rootCA.key +30 -0
  113. package/dist/esm/server/certs/rootCA.srl +1 -0
  114. package/dist/esm/server/csp.js +42 -30
  115. package/dist/esm/server/index.js +14 -4
  116. package/dist/esm/server/logger.js +5 -2
  117. package/dist/esm/server/middlewares.js +2 -2
  118. package/dist/esm/server/utils.js +11 -4
  119. package/dist/esm/server/wsServer.js +98 -0
  120. package/dist/esm/testing/ExtendedJSDomEnv.cjs +27 -0
  121. package/dist/esm/testing/extended/axe-core/getMessageAndPass.js +16 -0
  122. package/dist/esm/testing/extended/axe-core/index.js +4 -0
  123. package/dist/esm/testing/extended/axe-core/reporter.js +30 -0
  124. package/dist/esm/testing/extended/axe-core/shouldIgnoreNodeViolation.js +11 -0
  125. package/dist/esm/testing/extended/axe-core/toHaveNoViolations.js +22 -0
  126. package/dist/esm/testing/jest.config.cjs +9 -5
  127. package/dist/esm/testing/jest.polyfills.cjs +30 -0
  128. package/dist/esm/testing/mocks/iframe.js +4 -0
  129. package/dist/esm/testing/mocks/svg.js +0 -1
  130. package/dist/esm/testing/resolver.cjs +0 -1
  131. package/dist/esm/testing/setup-tests.js +29 -11
  132. package/dist/esm/testing/vitest.config.js +9 -12
  133. package/dist/esm/transpile/.swcrc +2 -1
  134. package/dist/esm/transpile/esbuild.js +45 -12
  135. package/dist/esm/update-notifier.js +1 -1
  136. package/dist/esm/utils.cjs +1 -1
  137. package/dist/esm/utils.js +5 -4
  138. package/dist/esm/webpack/csp-plugin.js +49 -0
  139. package/dist/esm/webpack/csp.js +128 -0
  140. package/dist/esm/webpack/helpers.js +39 -33
  141. package/dist/esm/webpack/interceptor-middleware.js +105 -0
  142. package/dist/esm/webpack/webpack.base.babel.js +13 -27
  143. package/dist/esm/webpack/webpack.dev.babel.js +28 -6
  144. package/dist/esm/webpack/webpack.lib.base.babel.js +14 -7
  145. package/dist/esm/webpack/webpack.lib.dev.babel.js +9 -13
  146. package/dist/esm/webpack/webpack.lib.prod.babel.js +15 -8
  147. package/dist/esm/webpack/webpack.prod.babel.js +13 -6
  148. package/dist/esm/webpack/webpack.storybook.js +13 -15
  149. package/dist/types/docusaurus.config.d.ts +3 -0
  150. package/dist/types/docusaurus.config.d.ts.map +1 -0
  151. package/dist/types/eslint.config.d.ts +3 -0
  152. package/dist/types/eslint.config.d.ts.map +1 -0
  153. package/dist/types/{babel.config.d.cts → lib/babel.config.d.cts} +8 -7
  154. package/dist/types/lib/babel.config.d.cts.map +1 -0
  155. package/dist/types/lib/build/vite.config.d.ts +3 -0
  156. package/dist/types/lib/build/vite.config.d.ts.map +1 -0
  157. package/dist/types/lib/cli.d.ts +3 -0
  158. package/dist/types/lib/cli.d.ts.map +1 -0
  159. package/dist/types/{commands → lib/commands}/build.d.ts +3 -2
  160. package/dist/types/lib/commands/build.d.ts.map +1 -0
  161. package/dist/types/lib/commands/buildcdn.d.ts +3 -0
  162. package/dist/types/lib/commands/buildcdn.d.ts.map +1 -0
  163. package/dist/types/{commands → lib/commands}/codemod.d.ts +3 -2
  164. package/dist/types/lib/commands/codemod.d.ts.map +1 -0
  165. package/dist/types/{commands → lib/commands}/gendoc.d.ts +1 -0
  166. package/dist/types/lib/commands/gendoc.d.ts.map +1 -0
  167. package/dist/types/{commands → lib/commands}/lint.d.ts +4 -2
  168. package/dist/types/lib/commands/lint.d.ts.map +1 -0
  169. package/dist/types/{commands → lib/commands}/pack.d.ts +3 -2
  170. package/dist/types/lib/commands/pack.d.ts.map +1 -0
  171. package/dist/types/{commands → lib/commands}/start.d.ts +3 -2
  172. package/dist/types/lib/commands/start.d.ts.map +1 -0
  173. package/dist/types/{commands → lib/commands}/storybook.d.ts +3 -2
  174. package/dist/types/lib/commands/storybook.d.ts.map +1 -0
  175. package/dist/types/{commands → lib/commands}/test.d.ts +5 -2
  176. package/dist/types/lib/commands/test.d.ts.map +1 -0
  177. package/dist/types/{commands → lib/commands}/tscheck.d.ts +3 -2
  178. package/dist/types/lib/commands/tscheck.d.ts.map +1 -0
  179. package/dist/types/lib/commands/utils.d.ts +40 -0
  180. package/dist/types/lib/commands/utils.d.ts.map +1 -0
  181. package/dist/types/{commands → lib/commands}/version.d.ts +3 -2
  182. package/dist/types/lib/commands/version.d.ts.map +1 -0
  183. package/dist/types/{commands → lib/commands}/vitest.d.ts +3 -2
  184. package/dist/types/lib/commands/vitest.d.ts.map +1 -0
  185. package/dist/types/lib/index.d.cts +5 -0
  186. package/dist/types/lib/index.d.cts.map +1 -0
  187. package/dist/types/{index.d.ts → lib/index.d.ts} +9 -7
  188. package/dist/types/lib/index.d.ts.map +1 -0
  189. package/dist/types/lib/lint-config/commitlint.config.d.ts +5 -0
  190. package/dist/types/lib/lint-config/commitlint.config.d.ts.map +1 -0
  191. package/dist/types/lib/lint-config/eslint.config.d.ts +3 -0
  192. package/dist/types/lib/lint-config/eslint.config.d.ts.map +1 -0
  193. package/dist/types/{lint-config → lib/lint-config}/lint-staged.config.d.ts +1 -0
  194. package/dist/types/lib/lint-config/lint-staged.config.d.ts.map +1 -0
  195. package/dist/types/lib/lint-config/prettier.config.d.ts +3 -0
  196. package/dist/types/lib/lint-config/prettier.config.d.ts.map +1 -0
  197. package/dist/types/lib/lint-config/stylelint.config.d.ts +14 -0
  198. package/dist/types/lib/lint-config/stylelint.config.d.ts.map +1 -0
  199. package/dist/types/{monorepo → lib/monorepo}/delete-merged-tags.d.ts +1 -0
  200. package/dist/types/lib/monorepo/delete-merged-tags.d.ts.map +1 -0
  201. package/dist/types/{monorepo → lib/monorepo}/set-registry-version.d.ts +1 -0
  202. package/dist/types/lib/monorepo/set-registry-version.d.ts.map +1 -0
  203. package/dist/types/{monorepo → lib/monorepo}/set-workspace-version.d.ts +1 -0
  204. package/dist/types/lib/monorepo/set-workspace-version.d.ts.map +1 -0
  205. package/dist/types/{monorepo → lib/monorepo}/utils.d.cts +1 -0
  206. package/dist/types/lib/monorepo/utils.d.cts.map +1 -0
  207. package/dist/types/{monorepo → lib/monorepo}/utils.d.ts +1 -0
  208. package/dist/types/lib/monorepo/utils.d.ts.map +1 -0
  209. package/dist/types/lib/pui-config.d.ts +2 -0
  210. package/dist/types/lib/pui-config.d.ts.map +1 -0
  211. package/dist/types/lib/release.config.d.ts +11 -0
  212. package/dist/types/lib/release.config.d.ts.map +1 -0
  213. package/dist/types/{server → lib/server}/appRoutes.d.ts +1 -0
  214. package/dist/types/lib/server/appRoutes.d.ts.map +1 -0
  215. package/dist/types/lib/server/cert.d.ts +5 -0
  216. package/dist/types/lib/server/cert.d.ts.map +1 -0
  217. package/dist/types/{server → lib/server}/csp.d.ts +3 -3
  218. package/dist/types/lib/server/csp.d.ts.map +1 -0
  219. package/dist/types/lib/server/index.d.ts +2 -0
  220. package/dist/types/lib/server/index.d.ts.map +1 -0
  221. package/dist/types/{server → lib/server}/logger.d.ts +1 -0
  222. package/dist/types/lib/server/logger.d.ts.map +1 -0
  223. package/dist/types/{server → lib/server}/middlewares.d.ts +1 -0
  224. package/dist/types/lib/server/middlewares.d.ts.map +1 -0
  225. package/dist/types/{server → lib/server}/utils.d.ts +2 -0
  226. package/dist/types/lib/server/utils.d.ts.map +1 -0
  227. package/dist/types/lib/server/wsServer.d.ts +14 -0
  228. package/dist/types/lib/server/wsServer.d.ts.map +1 -0
  229. package/dist/types/lib/testing/ExtendedJSDomEnv.d.cts +6 -0
  230. package/dist/types/lib/testing/ExtendedJSDomEnv.d.cts.map +1 -0
  231. package/dist/types/lib/testing/extended/axe-core/getMessageAndPass.d.ts +9 -0
  232. package/dist/types/lib/testing/extended/axe-core/getMessageAndPass.d.ts.map +1 -0
  233. package/dist/types/lib/testing/extended/axe-core/index.d.ts +2 -0
  234. package/dist/types/lib/testing/extended/axe-core/index.d.ts.map +1 -0
  235. package/dist/types/lib/testing/extended/axe-core/reporter.d.ts +3 -0
  236. package/dist/types/lib/testing/extended/axe-core/reporter.d.ts.map +1 -0
  237. package/dist/types/lib/testing/extended/axe-core/shouldIgnoreNodeViolation.d.ts +3 -0
  238. package/dist/types/lib/testing/extended/axe-core/shouldIgnoreNodeViolation.d.ts.map +1 -0
  239. package/dist/types/lib/testing/extended/axe-core/toHaveNoViolations.d.ts +13 -0
  240. package/dist/types/lib/testing/extended/axe-core/toHaveNoViolations.d.ts.map +1 -0
  241. package/dist/types/lib/testing/jest.config.d.cts +47 -0
  242. package/dist/types/lib/testing/jest.config.d.cts.map +1 -0
  243. package/dist/types/{testing → lib/testing}/jest.node.config.d.cts +7 -1
  244. package/dist/types/lib/testing/jest.node.config.d.cts.map +1 -0
  245. package/dist/types/lib/testing/jest.polyfills.d.cts +2 -0
  246. package/dist/types/lib/testing/jest.polyfills.d.cts.map +1 -0
  247. package/dist/types/lib/testing/mocks/axios.d.ts +18 -0
  248. package/dist/types/lib/testing/mocks/axios.d.ts.map +1 -0
  249. package/dist/types/{testing → lib/testing}/mocks/cssModule.d.ts +1 -0
  250. package/dist/types/lib/testing/mocks/cssModule.d.ts.map +1 -0
  251. package/dist/types/{testing → lib/testing}/mocks/html.d.ts +1 -0
  252. package/dist/types/lib/testing/mocks/html.d.ts.map +1 -0
  253. package/dist/types/lib/testing/mocks/iframe.d.ts +3 -0
  254. package/dist/types/lib/testing/mocks/iframe.d.ts.map +1 -0
  255. package/dist/types/{testing → lib/testing}/mocks/image.d.ts +1 -0
  256. package/dist/types/lib/testing/mocks/image.d.ts.map +1 -0
  257. package/dist/types/lib/testing/mocks/matchMedia.d.ts +2 -0
  258. package/dist/types/lib/testing/mocks/matchMedia.d.ts.map +1 -0
  259. package/dist/types/lib/testing/mocks/pui-app-loader.d.ts +2 -0
  260. package/dist/types/lib/testing/mocks/pui-app-loader.d.ts.map +1 -0
  261. package/dist/types/{testing → lib/testing}/mocks/pui-diagnostics.d.ts +14 -13
  262. package/dist/types/lib/testing/mocks/pui-diagnostics.d.ts.map +1 -0
  263. package/dist/types/{testing → lib/testing}/mocks/pui-user-monitoring.d.ts +1 -0
  264. package/dist/types/lib/testing/mocks/pui-user-monitoring.d.ts.map +1 -0
  265. package/dist/types/{testing → lib/testing}/mocks/retry-axios.d.ts +1 -0
  266. package/dist/types/lib/testing/mocks/retry-axios.d.ts.map +1 -0
  267. package/dist/types/{testing → lib/testing}/mocks/svg.d.ts +1 -0
  268. package/dist/types/lib/testing/mocks/svg.d.ts.map +1 -0
  269. package/dist/types/{testing → lib/testing}/mocks/webpack-hmr.d.ts +1 -0
  270. package/dist/types/lib/testing/mocks/webpack-hmr.d.ts.map +1 -0
  271. package/dist/types/{testing → lib/testing}/resolver.d.cts +1 -0
  272. package/dist/types/lib/testing/resolver.d.cts.map +1 -0
  273. package/dist/types/lib/testing/setup-react-env.d.ts +2 -0
  274. package/dist/types/lib/testing/setup-react-env.d.ts.map +1 -0
  275. package/dist/types/lib/testing/setup-tests.d.ts +2 -0
  276. package/dist/types/lib/testing/setup-tests.d.ts.map +1 -0
  277. package/dist/types/lib/testing/vitest.config.d.ts +2 -0
  278. package/dist/types/lib/testing/vitest.config.d.ts.map +1 -0
  279. package/dist/types/{transpile → lib/transpile}/esbuild.d.ts +4 -3
  280. package/dist/types/lib/transpile/esbuild.d.ts.map +1 -0
  281. package/dist/types/{transpile → lib/transpile}/react-shim.d.ts +1 -0
  282. package/dist/types/lib/transpile/react-shim.d.ts.map +1 -0
  283. package/dist/types/lib/transpile/swcrc.config.d.cts +2 -0
  284. package/dist/types/lib/transpile/swcrc.config.d.cts.map +1 -0
  285. package/dist/types/lib/typedoc.d.cts +4 -0
  286. package/dist/types/lib/typedoc.d.cts.map +1 -0
  287. package/dist/types/{update-notifier.d.ts → lib/update-notifier.d.ts} +1 -0
  288. package/dist/types/lib/update-notifier.d.ts.map +1 -0
  289. package/dist/types/{utils.d.cts → lib/utils.d.cts} +2 -1
  290. package/dist/types/lib/utils.d.cts.map +1 -0
  291. package/dist/types/lib/utils.d.ts +5 -0
  292. package/dist/types/lib/utils.d.ts.map +1 -0
  293. package/dist/types/lib/webpack/csp-plugin.d.ts +33 -0
  294. package/dist/types/lib/webpack/csp-plugin.d.ts.map +1 -0
  295. package/dist/types/lib/webpack/csp.d.ts +66 -0
  296. package/dist/types/lib/webpack/csp.d.ts.map +1 -0
  297. package/dist/types/{webpack → lib/webpack}/helpers.d.ts +5 -2
  298. package/dist/types/lib/webpack/helpers.d.ts.map +1 -0
  299. package/dist/types/lib/webpack/interceptor-middleware.d.ts +11 -0
  300. package/dist/types/lib/webpack/interceptor-middleware.d.ts.map +1 -0
  301. package/dist/types/{webpack → lib/webpack}/webpack.base.babel.d.ts +1 -0
  302. package/dist/types/lib/webpack/webpack.base.babel.d.ts.map +1 -0
  303. package/dist/types/{webpack → lib/webpack}/webpack.dev.babel.d.ts +1 -0
  304. package/dist/types/lib/webpack/webpack.dev.babel.d.ts.map +1 -0
  305. package/dist/types/{webpack → lib/webpack}/webpack.lib.base.babel.d.ts +1 -0
  306. package/dist/types/lib/webpack/webpack.lib.base.babel.d.ts.map +1 -0
  307. package/dist/types/{webpack → lib/webpack}/webpack.lib.dev.babel.d.ts +1 -0
  308. package/dist/types/lib/webpack/webpack.lib.dev.babel.d.ts.map +1 -0
  309. package/dist/types/{webpack → lib/webpack}/webpack.lib.prod.babel.d.ts +1 -0
  310. package/dist/types/lib/webpack/webpack.lib.prod.babel.d.ts.map +1 -0
  311. package/dist/types/{webpack → lib/webpack}/webpack.prod.babel.d.ts +1 -0
  312. package/dist/types/lib/webpack/webpack.prod.babel.d.ts.map +1 -0
  313. package/dist/types/{webpack → lib/webpack}/webpack.storybook.d.ts +1 -1
  314. package/dist/types/lib/webpack/webpack.storybook.d.ts.map +1 -0
  315. package/dist/types/tsconfig.tsbuildinfo +1 -0
  316. package/library.tsconfig.json +13 -5
  317. package/nx.json +97 -0
  318. package/package.json +228 -210
  319. package/dist/cjs/dummy.js +0 -1
  320. package/dist/cjs/lint-config/commitlint.config.cjs +0 -1
  321. package/dist/cjs/lint-config/eslint/common.cjs +0 -163
  322. package/dist/cjs/lint-config/eslint/non-react.cjs +0 -14
  323. package/dist/cjs/lint-config/eslint/react.cjs +0 -26
  324. package/dist/cjs/lint-config/eslint/typescript/common.cjs +0 -49
  325. package/dist/cjs/lint-config/eslint/typescript/non-react.cjs +0 -12
  326. package/dist/cjs/lint-config/eslint/typescript/react.cjs +0 -19
  327. package/dist/cjs/lint-config/prettier.config.cjs +0 -8
  328. package/dist/cjs/lint-config/stylelint.config.cjs +0 -19
  329. package/dist/cjs/release.config.cjs +0 -24
  330. package/dist/cjs/testing/setup-test-env.js +0 -8
  331. package/dist/esm/dummy.js +0 -0
  332. package/dist/esm/lint-config/commitlint.config.cjs +0 -1
  333. package/dist/esm/lint-config/eslint/common.cjs +0 -163
  334. package/dist/esm/lint-config/eslint/non-react.cjs +0 -14
  335. package/dist/esm/lint-config/eslint/react.cjs +0 -26
  336. package/dist/esm/lint-config/eslint/typescript/common.cjs +0 -49
  337. package/dist/esm/lint-config/eslint/typescript/non-react.cjs +0 -12
  338. package/dist/esm/lint-config/eslint/typescript/react.cjs +0 -19
  339. package/dist/esm/lint-config/stylelint.config.cjs +0 -19
  340. package/dist/esm/release.config.cjs +0 -24
  341. package/dist/esm/testing/setup-test-env.js +0 -7
  342. package/dist/types/cli.d.ts +0 -2
  343. package/dist/types/commands/utils.d.ts +0 -17
  344. package/dist/types/dummy.d.ts +0 -0
  345. package/dist/types/index.d.cts +0 -9
  346. package/dist/types/lint-config/commitlint.config.d.cts +0 -4
  347. package/dist/types/lint-config/eslint/common.d.cts +0 -130
  348. package/dist/types/lint-config/eslint/non-react.d.cts +0 -96
  349. package/dist/types/lint-config/eslint/react.d.cts +0 -126
  350. package/dist/types/lint-config/eslint/typescript/common.d.cts +0 -40
  351. package/dist/types/lint-config/eslint/typescript/non-react.d.cts +0 -90
  352. package/dist/types/lint-config/eslint/typescript/react.d.cts +0 -121
  353. package/dist/types/lint-config/prettier.config.d.cts +0 -8
  354. package/dist/types/lint-config/stylelint.config.d.cts +0 -10
  355. package/dist/types/pui-config.d.ts +0 -1
  356. package/dist/types/release.config.d.cts +0 -7
  357. package/dist/types/server/index.d.ts +0 -1
  358. package/dist/types/testing/jest.config.d.cts +0 -41
  359. package/dist/types/testing/mocks/axios.d.ts +0 -17
  360. package/dist/types/testing/mocks/matchMedia.d.ts +0 -1
  361. package/dist/types/testing/mocks/pui-app-loader.d.ts +0 -1
  362. package/dist/types/testing/setup-react-env.d.ts +0 -1
  363. package/dist/types/testing/setup-test-env.d.ts +0 -1
  364. package/dist/types/testing/setup-tests.d.ts +0 -1
  365. package/dist/types/testing/vitest.config.d.ts +0 -1
  366. package/dist/types/transpile/swcrc.config.d.cts +0 -1
  367. package/dist/types/typedoc.d.cts +0 -3
  368. package/dist/types/utils.d.ts +0 -4
@@ -1,8 +1,8 @@
1
1
  import path from "node:path";
2
2
  import fs from "node:fs";
3
+ import zlib from "zlib";
3
4
  import _ from "lodash";
4
5
  import CompressionPlugin from "compression-webpack-plugin";
5
- import zlib from "zlib";
6
6
  import { findMonoRepoRoot } from "../monorepo/utils.js";
7
7
  import { basePath, getAppConfig } from "../utils.js";
8
8
  let pathSep = path.sep;
@@ -15,10 +15,9 @@ const getNodeModulesRegEx = (modules) => modules.map(
15
15
  const excludeNodeModulesExcept = (modules) => {
16
16
  const moduleRegExps = getNodeModulesRegEx(modules);
17
17
  return function(modulePath) {
18
- if (/node_modules/.test(modulePath)) {
19
- for (let i = 0; i < moduleRegExps.length; i += 1)
20
- if (moduleRegExps[i].test(modulePath))
21
- return false;
18
+ if (modulePath.includes("node_modules")) {
19
+ for (const moduleRegExp of moduleRegExps)
20
+ if (moduleRegExp.test(modulePath)) return false;
22
21
  return true;
23
22
  }
24
23
  return false;
@@ -32,7 +31,7 @@ const getLibraryName = () => {
32
31
  const modifiedLibName = `emui-${libraryName.replace("@elliemae/", "").replace("pui-", "")}`;
33
32
  return _.camelCase(modifiedLibName);
34
33
  };
35
- const getLibraryVariableName = () => (process.env.LIBRARY_VARIABLE_NAME || getLibraryName()).split(".");
34
+ const getLibraryVariableName = () => (process.env.LIBRARY_VARIABLE_NAME ?? getLibraryName()).split(".");
36
35
  const mapToFolder = (dependencies, folder) => dependencies.reduce(
37
36
  (acc, dependency) => ({
38
37
  [dependency]: path.resolve(`${folder}/${dependency.replace("$", "")}`),
@@ -41,7 +40,7 @@ const mapToFolder = (dependencies, folder) => dependencies.reduce(
41
40
  {}
42
41
  );
43
42
  const getAlias = () => {
44
- const monorepoRoot = findMonoRepoRoot(process.cwd()) || "";
43
+ const monorepoRoot = findMonoRepoRoot(process.cwd()) ?? "";
45
44
  return mapToFolder(
46
45
  [
47
46
  "@babel/runtime",
@@ -55,6 +54,8 @@ const getAlias = () => {
55
54
  "styled-components",
56
55
  "immer",
57
56
  "react-dates",
57
+ "react-select",
58
+ "react-spring",
58
59
  "react-transition-group",
59
60
  "@elliemae/pui-cli",
60
61
  "@elliemae/pui-app-sdk$",
@@ -63,6 +64,15 @@ const getAlias = () => {
63
64
  path.join(monorepoRoot, "./node_modules")
64
65
  );
65
66
  };
67
+ const getLibraryAlias = (name, alias) => {
68
+ const monorepoRoot = findMonoRepoRoot(process.cwd()) ?? "";
69
+ const aliasPath = path.resolve(
70
+ `${path.join(monorepoRoot, "./node_modules")}/${alias}`
71
+ );
72
+ return {
73
+ [name]: aliasPath
74
+ };
75
+ };
66
76
  const modulesToTranspile = [
67
77
  "@elliemae/pui-*",
68
78
  "@elliemae/ds-*",
@@ -75,12 +85,11 @@ const getUserMonitoringFileName = () => {
75
85
  process.cwd(),
76
86
  "node_modules/@elliemae/pui-user-monitoring/dist/public/js"
77
87
  );
78
- if (!fs.existsSync(userMonLibPath))
79
- return `${libName}.js`;
88
+ if (!fs.existsSync(userMonLibPath)) return `${libName}.js`;
80
89
  const distJSFiles = fs.readdirSync(userMonLibPath);
81
- return distJSFiles.filter(
82
- (fName) => fName.match(/emuiUserMonitoring+((?!chunk).)*\.js$/)
83
- )[0];
90
+ return distJSFiles.find(
91
+ (fName) => /emuiUserMonitoring+((?!chunk).)*\.js$/.exec(fName)
92
+ );
84
93
  };
85
94
  const getAppLoaderFileName = () => {
86
95
  const libName = "emuiAppLoader";
@@ -88,12 +97,11 @@ const getAppLoaderFileName = () => {
88
97
  process.cwd(),
89
98
  "node_modules/@elliemae/pui-app-loader/dist/public/js"
90
99
  );
91
- if (!fs.existsSync(appLoaderLibPath))
92
- return `${libName}.js`;
100
+ if (!fs.existsSync(appLoaderLibPath)) return `${libName}.js`;
93
101
  const distJSFiles = fs.readdirSync(appLoaderLibPath);
94
- return distJSFiles.filter(
95
- (fName) => fName.match(/emuiAppLoader+((?!chunk).)*\.js$/)
96
- )[0];
102
+ return distJSFiles.find(
103
+ (fName) => /emuiAppLoader+((?!chunk).)*\.js$/.exec(fName)
104
+ );
97
105
  };
98
106
  const getDiagnosticsFileName = () => {
99
107
  const libName = "emuiDiagnostics";
@@ -101,12 +109,11 @@ const getDiagnosticsFileName = () => {
101
109
  process.cwd(),
102
110
  "node_modules/@elliemae/pui-diagnostics/dist/public/js"
103
111
  );
104
- if (!fs.existsSync(libPath))
105
- return `${libName}.js`;
112
+ if (!fs.existsSync(libPath)) return `${libName}.js`;
106
113
  const distJSFiles = fs.readdirSync(libPath);
107
- return distJSFiles.filter(
108
- (fName) => fName.match(/emuiDiagnostics+((?!chunk).)*\.js$/)
109
- )[0];
114
+ return distJSFiles.find(
115
+ (fName) => /emuiDiagnostics+((?!chunk).)*\.js$/.exec(fName)
116
+ );
110
117
  };
111
118
  const getENCWLoaderFileName = () => {
112
119
  const libName = "emuiEncwLoader";
@@ -114,18 +121,16 @@ const getENCWLoaderFileName = () => {
114
121
  process.cwd(),
115
122
  "node_modules/@elliemae/encw-loader/dist/public/js"
116
123
  );
117
- if (!fs.existsSync(appLoaderLibPath))
118
- return `${libName}.js`;
124
+ if (!fs.existsSync(appLoaderLibPath)) return `${libName}.js`;
119
125
  const distJSFiles = fs.readdirSync(appLoaderLibPath);
120
- return distJSFiles.filter(
121
- (fName) => fName.match(/emuiEncwLoader+((?!chunk).)*\.js$/)
122
- )[0];
126
+ return distJSFiles.find(
127
+ (fName) => /emuiEncwLoader+((?!chunk).)*\.js$/.exec(fName)
128
+ );
123
129
  };
124
130
  const getAppVersion = () => {
125
- if (!process.env.APP_VERSION)
126
- return LATEST_VERSION;
127
- const match = process.env.APP_VERSION.match(/^v?(\d+\.\d+)\..*$/);
128
- return match && match[1] || LATEST_VERSION;
131
+ if (!process.env.APP_VERSION) return LATEST_VERSION;
132
+ const match = /^v?(\d+\.\d+)\..*$/.exec(process.env.APP_VERSION);
133
+ return match?.[1] ?? LATEST_VERSION;
129
134
  };
130
135
  const getPaths = (latestVersion = true) => {
131
136
  const version = latestVersion ? LATEST_VERSION : getAppVersion();
@@ -160,9 +165,9 @@ const getCompressionPlugins = (isLibrary = false) => {
160
165
  ];
161
166
  const commonConfig = {
162
167
  test: /\.(js|css)$/,
163
- exclude: !isLibrary ? excludeList : [],
164
168
  // we are compressing all files since in aws cloudfront edge lambda, we don't want to whitelist files that are not compressed due to below limits
165
- minRatio: Infinity
169
+ minRatio: Infinity,
170
+ ...!isLibrary ? { exclude: excludeList } : {}
166
171
  };
167
172
  return [
168
173
  new CompressionPlugin({
@@ -202,6 +207,7 @@ export {
202
207
  getAlias,
203
208
  getAppVersion,
204
209
  getCompressionPlugins,
210
+ getLibraryAlias,
205
211
  getLibraryName,
206
212
  getLibraryVariableName,
207
213
  getMediaPath,
@@ -0,0 +1,105 @@
1
+ const VALID_PARAMS = ["isInterceptable", "intercept", "afterSend"];
2
+ const validateParams = (methods) => {
3
+ Object.keys(methods).forEach((k) => {
4
+ if (!VALID_PARAMS.includes(k)) {
5
+ throw new Error(`${k} isn't a valid param (${VALID_PARAMS.join(", ")})`);
6
+ }
7
+ });
8
+ if (!("isInterceptable" in methods)) {
9
+ throw new Error("isInterceptable is a required param (function)");
10
+ }
11
+ };
12
+ const interceptorMiddleware = (fn) => (req, res, next) => {
13
+ const methods = fn(req, res);
14
+ validateParams(methods);
15
+ const originalEnd = res.end;
16
+ const originalWrite = res.write;
17
+ const chunks = [];
18
+ let isIntercepting;
19
+ let isFirstWrite = true;
20
+ function intercept(rawChunk, encoding) {
21
+ if (isFirstWrite) {
22
+ isFirstWrite = false;
23
+ isIntercepting = methods.isInterceptable();
24
+ }
25
+ if (isIntercepting) {
26
+ if (rawChunk) {
27
+ let tempChunk = rawChunk;
28
+ if (rawChunk !== null && !Buffer.isBuffer(tempChunk)) {
29
+ if (!encoding) {
30
+ tempChunk = Buffer.from(rawChunk);
31
+ } else {
32
+ tempChunk = Buffer.from(
33
+ rawChunk,
34
+ encoding
35
+ );
36
+ }
37
+ }
38
+ chunks.push(tempChunk);
39
+ }
40
+ }
41
+ return isIntercepting;
42
+ }
43
+ const newResWrite = (...args) => {
44
+ if (!intercept(args[0], args[1])) {
45
+ return originalWrite.apply(res, args);
46
+ }
47
+ return true;
48
+ };
49
+ res.write = newResWrite;
50
+ const afterSend = (oldBody, newBody) => {
51
+ if (typeof methods.afterSend === "function") {
52
+ process.nextTick(() => {
53
+ methods.afterSend?.(oldBody, newBody);
54
+ });
55
+ }
56
+ };
57
+ const newResEnd = (...args) => {
58
+ if (intercept(args[0], args[1])) {
59
+ isIntercepting = false;
60
+ const oldBody = Buffer.concat(chunks).toString("utf-8");
61
+ if (methods.intercept) {
62
+ if (typeof methods.intercept !== "function") {
63
+ throw new Error(
64
+ "`send` must be a function with the body to be sent as the only param"
65
+ );
66
+ }
67
+ res.removeHeader("Content-Length");
68
+ methods.intercept(oldBody, (newBody) => {
69
+ args[0] = newBody;
70
+ originalEnd.apply(res, args);
71
+ afterSend(oldBody, newBody);
72
+ });
73
+ } else {
74
+ afterSend(oldBody, oldBody);
75
+ originalEnd.apply(res, args);
76
+ }
77
+ } else {
78
+ originalEnd.apply(res, args);
79
+ }
80
+ };
81
+ res.end = newResEnd;
82
+ next();
83
+ };
84
+ const addCSPNonceMiddleware = (middlewares) => {
85
+ const index = middlewares.findIndex(
86
+ (middleware) => middleware.name === "webpack-dev-middleware"
87
+ );
88
+ middlewares.splice(index, 0, {
89
+ name: "csp-nonce-middleware",
90
+ middleware: interceptorMiddleware((_req, res) => ({
91
+ // Only HTML responses will be intercepted
92
+ isInterceptable() {
93
+ return (res.get("Content-Type") ?? "").includes("text/html");
94
+ },
95
+ // Appends a paragraph at the end of the response body
96
+ intercept(body, send) {
97
+ send(body.replace(/__CSP_NONCE__/g, res.locals.cspNonce));
98
+ }
99
+ }))
100
+ });
101
+ };
102
+ export {
103
+ addCSPNonceMiddleware,
104
+ interceptorMiddleware
105
+ };
@@ -102,14 +102,16 @@ const plugins = [
102
102
  noErrorOnMissing: true,
103
103
  globOptions: {
104
104
  ignore: ["readme.md"]
105
- }
105
+ },
106
+ info: { minimized: true }
106
107
  },
107
108
  {
108
109
  from: "webroot",
109
110
  noErrorOnMissing: true,
110
111
  globOptions: {
111
112
  ignore: ["readme.md"]
112
- }
113
+ },
114
+ info: { minimized: true }
113
115
  }
114
116
  ])
115
117
  }),
@@ -118,7 +120,7 @@ const plugins = [
118
120
  fileName: "./latest/manifest.json",
119
121
  publicPath: "",
120
122
  map: (file) => {
121
- file.name = file.name.replace(/^latest\//, "");
123
+ file.name = file.name.replace(/^latest(\/|\\)/, "");
122
124
  return file;
123
125
  }
124
126
  }),
@@ -257,36 +259,20 @@ const baseConfig = (options) => ({
257
259
  mainFields: ["browser", "module", "main"],
258
260
  alias: {
259
261
  ...getAlias(),
260
- ...(options.resolve || {}).alias || {}
262
+ ...options.resolve?.alias ?? {}
261
263
  }
262
264
  },
265
+ externalsPresets: {
266
+ web: true
267
+ },
263
268
  externals: {
264
269
  "@elliemae/pui-user-monitoring": "emuiUserMonitoring",
265
270
  "@elliemae/pui-app-loader": "emuiAppLoader",
266
- "@elliemae/pui-diagnostics": "emuiDiagnostics",
267
- react: "emuiAppReactDependencies.react",
268
- "react-dom": "emuiAppReactDependencies.reactDOM",
269
- "@reduxjs/toolkit": "emuiAppReactDependencies.rtk",
270
- axios: "emuiAppReactDependencies.axios.default",
271
- dompurify: "emuiAppReactDependencies.dompurify",
272
- history: "emuiAppReactDependencies.history",
273
- immer: "emuiAppReactDependencies.immer",
274
- invariant: "emuiAppReactDependencies.invariant",
275
- "pubsub-js": "emuiAppReactDependencies.pubsubjs",
276
- "react-aria-live": "emuiAppReactDependencies.reactAriaLive",
277
- "react-helmet": "emuiAppReactDependencies.reactHelmet",
278
- "react-hook-form": "emuiAppReactDependencies.reactHookForm",
279
- "react-redux": "emuiAppReactDependencies.reactRedux",
280
- "react-router-dom": "emuiAppReactDependencies.reactRouterDOM",
281
- reduxInjectors: "emuiAppReactDependencies.reduxInjectors",
282
- reselect: "emuiAppReactDependencies.reselect",
283
- // "styled-components": "emuiAppReactDependencies.styledComponents",
284
- "styled-system": "emuiAppReactDependencies.styledSystem"
285
- // "@xstyled/styled-components": "emuiAppReactDependencies.xstyled",
271
+ "@elliemae/pui-diagnostics": "emuiDiagnostics"
286
272
  },
287
- devtool: options.devtool || "eval-source-map",
288
- performance: options.performance || {},
289
- devServer: options.devServer || {}
273
+ devtool: options.devtool ?? "eval-source-map",
274
+ performance: options.performance ?? {},
275
+ devServer: options.devServer ?? {}
290
276
  });
291
277
  export {
292
278
  baseConfig
@@ -6,6 +6,7 @@ import CircularDependencyPlugin from "circular-dependency-plugin";
6
6
  import MiniCssExtractPlugin from "mini-css-extract-plugin";
7
7
  import ReactRefreshWebpackPlugin from "@pmmmwh/react-refresh-webpack-plugin";
8
8
  import expressStaticGzip from "express-static-gzip";
9
+ import { addCSPNonceMiddleware } from "./interceptor-middleware.js";
9
10
  import { setupDefaultMiddlewares } from "../server/middlewares.js";
10
11
  import { loadRoutes } from "../server/appRoutes.js";
11
12
  import {
@@ -14,6 +15,10 @@ import {
14
15
  isGoogleTagManagerEnabled
15
16
  } from "./helpers.js";
16
17
  import { baseConfig } from "./webpack.base.babel.js";
18
+ import { wsPort } from "../server/utils.js";
19
+ import { createWSServer } from "../server/wsServer.js";
20
+ import { getCertOptions } from "../server/cert.js";
21
+ import { isHttps } from "../utils.js";
17
22
  const __filename = fileURLToPath(import.meta.url);
18
23
  const {
19
24
  appVersion,
@@ -25,6 +30,10 @@ const {
25
30
  diagnosticsScriptPath,
26
31
  encwLoaderScriptPath
27
32
  } = getPaths();
33
+ const serverOptions = {
34
+ type: "https",
35
+ options: getCertOptions()
36
+ };
28
37
  const devConfig = {
29
38
  mode: "development",
30
39
  cache: {
@@ -68,7 +77,7 @@ const devConfig = {
68
77
  // Add development plugins
69
78
  plugins: [
70
79
  new HtmlWebpackPlugin({
71
- inject: !isAppLoaderEnabled(),
80
+ inject: !isAppLoaderEnabled() && process.env.CSP !== "true",
72
81
  // Inject all files that are generated by webpack, e.g. bundle.js
73
82
  template: !isAppLoaderEnabled() ? "app/index.html" : "app/index-app-loader.html",
74
83
  emui: {
@@ -79,9 +88,14 @@ const devConfig = {
79
88
  appLoaderScriptPath,
80
89
  diagnosticsScriptPath,
81
90
  encwLoaderScriptPath,
82
- googleTagManager: isGoogleTagManagerEnabled()
83
- }
91
+ googleTagManager: isGoogleTagManagerEnabled(),
92
+ csp: process.env.CSP === "true"
93
+ },
94
+ scriptLoading: "defer"
84
95
  }),
96
+ // new CspPlugin(HtmlWebpackPlugin, {
97
+ // enableUnsafeEval: true,
98
+ // }),
85
99
  new CircularDependencyPlugin({
86
100
  exclude: /a\.(js|ts|jsx|tsx)|node_modules/,
87
101
  // exclude node_modules
@@ -113,12 +127,13 @@ const devConfig = {
113
127
  },
114
128
  hot: true,
115
129
  open: [basePath],
116
- port: process.env.PORT || "auto",
130
+ port: process.env.PORT ?? "auto",
131
+ server: isHttps() ? serverOptions : {},
117
132
  setupMiddlewares: (middlewares, devServer) => {
133
+ addCSPNonceMiddleware(middlewares);
118
134
  if (devServer.app) {
119
135
  setupDefaultMiddlewares(devServer.app);
120
- loadRoutes(devServer.app).then(() => {
121
- }).catch((err) => {
136
+ loadRoutes(devServer.app).catch((err) => {
122
137
  console.error(err);
123
138
  });
124
139
  const cdnRouter = expressStaticGzip("cdn", {});
@@ -130,6 +145,13 @@ const devConfig = {
130
145
  }
131
146
  next();
132
147
  });
148
+ createWSServer({
149
+ port: wsPort
150
+ }).then(({ wsServer }) => {
151
+ if (devServer.app) devServer.app.locals.wsServer = wsServer;
152
+ }).catch((err) => {
153
+ console.error(err);
154
+ });
133
155
  }
134
156
  return middlewares;
135
157
  }
@@ -39,13 +39,11 @@ const plugins = [
39
39
  new webpack.DefinePlugin({
40
40
  APP_CONFIG: getAppConfig()
41
41
  }),
42
- /* eslint-disable indent */
43
42
  ...copyPluginPatterns.length > 0 ? [
44
43
  new CopyWebpackPlugin({
45
44
  patterns: copyPluginPatterns
46
45
  })
47
46
  ] : [],
48
- /* eslint-enable indent */
49
47
  new webpack.optimize.LimitChunkCountPlugin({
50
48
  maxChunks: 1
51
49
  }),
@@ -57,14 +55,22 @@ const baseConfig = (options) => ({
57
55
  output: {
58
56
  clean: true,
59
57
  path: path.resolve(process.cwd(), "dist/umd"),
58
+ filename: "[name].js",
59
+ chunkFilename: "[name].[chunkhash].chunk.js",
60
+ assetModuleFilename: "assets/[name].[hash][ext][query]",
60
61
  publicPath: "auto",
61
62
  library: {
62
63
  name: getLibraryVariableName(),
63
- type: "umd"
64
+ type: "var"
65
+ // type: 'module',
64
66
  },
67
+ // module: true,
65
68
  ...options.output
66
69
  },
67
70
  // Merge with env dependent settings
71
+ // experiments: {
72
+ // outputModule: true,
73
+ // },
68
74
  optimization: options.optimization,
69
75
  module: {
70
76
  rules: [
@@ -112,6 +118,7 @@ const baseConfig = (options) => ({
112
118
  loader: "postcss-loader",
113
119
  options: {
114
120
  postcssOptions: {
121
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
115
122
  plugins: [PostcssPresetEnv({ autoprefixer: { grid: true } })]
116
123
  },
117
124
  sourceMap: true
@@ -177,7 +184,7 @@ const baseConfig = (options) => ({
177
184
  mainFields: ["browser", "module", "main"],
178
185
  alias: {
179
186
  ...getAlias(),
180
- ...(options.resolve || {}).alias || {}
187
+ ...options.resolve?.alias ?? {}
181
188
  },
182
189
  plugins: [new ResolveTypeScriptPlugin({})]
183
190
  },
@@ -186,9 +193,9 @@ const baseConfig = (options) => ({
186
193
  "@elliemae/pui-app-loader": "emuiAppLoader",
187
194
  "@elliemae/pui-diagnostics": "emuiDiagnostics"
188
195
  },
189
- devtool: options.devtool || "eval-source-map",
190
- performance: options.performance || {},
191
- devServer: options.devServer || {}
196
+ devtool: options.devtool ?? "eval-source-map",
197
+ performance: options.performance ?? {},
198
+ devServer: options.devServer ?? {}
192
199
  });
193
200
  export {
194
201
  baseConfig
@@ -5,26 +5,25 @@ import fg from "fast-glob";
5
5
  import CircularDependencyPlugin from "circular-dependency-plugin";
6
6
  import MiniCssExtractPlugin from "mini-css-extract-plugin";
7
7
  import HtmlWebpackPlugin from "html-webpack-plugin";
8
- import { getPaths } from "./helpers.js";
8
+ import { getPaths, getLibraryVariableName } from "./helpers.js";
9
9
  import { baseConfig } from "./webpack.lib.base.babel.js";
10
10
  const { basePath } = getPaths();
11
11
  const getHtmlWebpackPlugins = () => {
12
- const htmlTemplateFiles = fg.sync([path.join(process.cwd(), "lib/*.html")]);
12
+ const htmlTemplateFiles = fg.sync([
13
+ path.join(process.cwd(), "lib", "*.html").replace(/\\/g, "/")
14
+ ]);
13
15
  return htmlTemplateFiles.map(
14
16
  (htmlTemplateFile) => new HtmlWebpackPlugin({
15
17
  template: htmlTemplateFile,
16
18
  filename: path.basename(htmlTemplateFile),
17
- inject: true
19
+ inject: "head",
20
+ scriptLoading: "defer",
21
+ library: getLibraryVariableName()
18
22
  })
19
23
  );
20
24
  };
21
25
  var webpack_lib_dev_babel_default = baseConfig({
22
26
  mode: "development",
23
- // output: {
24
- // filename: `js/${libraryName}.js`,
25
- // chunkFilename: `js/${libraryName}.chunk.js`,
26
- // assetModuleFilename: '[name][ext][query]',
27
- // },
28
27
  optimization: {
29
28
  splitChunks: {
30
29
  chunks: "all"
@@ -41,10 +40,7 @@ var webpack_lib_dev_babel_default = baseConfig({
41
40
  failOnError: false
42
41
  // show a warning when there is a circular dependency
43
42
  }),
44
- new MiniCssExtractPlugin({
45
- // filename: `css/${libraryName}.css`,
46
- // chunkFilename: `css/${libraryName}.chunk.css`,
47
- }),
43
+ new MiniCssExtractPlugin({}),
48
44
  new webpack.ProgressPlugin()
49
45
  ],
50
46
  devtool: "eval-source-map",
@@ -62,7 +58,7 @@ var webpack_lib_dev_babel_default = baseConfig({
62
58
  historyApiFallback: true,
63
59
  hot: true,
64
60
  open: [basePath],
65
- port: process.env.PORT || "auto",
61
+ port: process.env.PORT ?? "auto",
66
62
  headers: {
67
63
  "Access-Control-Allow-Origin": "*",
68
64
  "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS"
@@ -5,15 +5,23 @@ import HtmlWebpackPlugin from "html-webpack-plugin";
5
5
  import { BundleAnalyzerPlugin } from "webpack-bundle-analyzer";
6
6
  import { EsbuildPlugin } from "esbuild-loader";
7
7
  import browserslistToEsbuild from "browserslist-to-esbuild";
8
- import { getCompressionPlugins, getLibraryName } from "./helpers.js";
8
+ import {
9
+ getCompressionPlugins,
10
+ getLibraryName,
11
+ getLibraryVariableName
12
+ } from "./helpers.js";
9
13
  import { baseConfig } from "./webpack.lib.base.babel.js";
10
14
  const getHtmlWebpackPlugins = () => {
11
- const htmlTemplateFiles = fg.sync([path.join(process.cwd(), "lib/*.html")]);
15
+ const htmlTemplateFiles = fg.sync([
16
+ path.join(process.cwd(), "lib", "*.html").replace(/\\/g, "/")
17
+ ]);
12
18
  return htmlTemplateFiles.map(
13
19
  (htmlTemplateFile) => new HtmlWebpackPlugin({
14
20
  template: htmlTemplateFile,
15
21
  filename: path.basename(htmlTemplateFile),
16
- inject: true,
22
+ inject: "head",
23
+ scriptLoading: "defer",
24
+ library: getLibraryVariableName(),
17
25
  minify: {
18
26
  removeComments: true,
19
27
  collapseWhitespace: true,
@@ -37,7 +45,9 @@ const prodConfig = {
37
45
  minimizer: [
38
46
  new EsbuildPlugin({
39
47
  target: browserslistToEsbuild(),
40
- css: true
48
+ css: true,
49
+ pure: ["console.log", "console.warn"],
50
+ drop: ["debugger"]
41
51
  })
42
52
  ],
43
53
  nodeEnv: "production",
@@ -49,10 +59,7 @@ const prodConfig = {
49
59
  },
50
60
  plugins: [
51
61
  ...getHtmlWebpackPlugins(),
52
- new MiniCssExtractPlugin({
53
- // filename: `css/${libraryName}.[contenthash].css`,
54
- // chunkFilename: `css/${libraryName}.[contenthash].chunk.css`,
55
- }),
62
+ new MiniCssExtractPlugin({}),
56
63
  ...getCompressionPlugins(true),
57
64
  new BundleAnalyzerPlugin({
58
65
  analyzerMode: "static",
@@ -29,10 +29,13 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
29
29
  },
30
30
  optimization: {
31
31
  moduleIds: "deterministic",
32
+ // realContentHash: false,
32
33
  minimizer: [
33
34
  new EsbuildPlugin({
34
35
  target: browserslistToEsbuild(),
35
- css: true
36
+ css: true,
37
+ pure: ["console.log", "console.warn"],
38
+ drop: ["debugger"]
36
39
  })
37
40
  ],
38
41
  runtimeChunk: true,
@@ -46,7 +49,8 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
46
49
  },
47
50
  vendors: {
48
51
  name: "vendors",
49
- test: /[\\/]node_modules[\\/]/
52
+ test: /[\\/]node_modules[\\/]/,
53
+ enforce: true
50
54
  }
51
55
  }
52
56
  }
@@ -83,7 +87,7 @@ const {
83
87
  basePath
84
88
  } = getPaths();
85
89
  const htmlWebpackPlugin = new HtmlWebpackPlugin({
86
- inject: !isAppLoaderEnabled(),
90
+ inject: !isAppLoaderEnabled() && process.env.CSP !== "true",
87
91
  template: !isAppLoaderEnabled() ? "app/index.html" : "app/index-app-loader.html",
88
92
  minify: {
89
93
  removeComments: true,
@@ -105,12 +109,15 @@ const htmlWebpackPlugin = new HtmlWebpackPlugin({
105
109
  appLoaderScriptPath,
106
110
  diagnosticsScriptPath,
107
111
  encwLoaderScriptPath,
108
- googleTagManager: isGoogleTagManagerEnabled()
109
- }
112
+ googleTagManager: isGoogleTagManagerEnabled(),
113
+ csp: process.env.CSP === "true"
114
+ },
115
+ scriptLoading: "defer"
110
116
  });
111
117
  const config = baseConfig(getProdConfig());
112
- if (config.plugins)
118
+ if (config.plugins) {
113
119
  config.plugins.push(htmlWebpackPlugin);
120
+ }
114
121
  var webpack_prod_babel_default = config;
115
122
  export {
116
123
  webpack_prod_babel_default as default