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

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 +7 -4
  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 +7 -4
  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
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var csp_plugin_exports = {};
30
+ __export(csp_plugin_exports, {
31
+ CspPlugin: () => CspPlugin
32
+ });
33
+ module.exports = __toCommonJS(csp_plugin_exports);
34
+ var import_html_webpack_plugin = __toESM(require("html-webpack-plugin"));
35
+ var import_csp = require("./csp.js");
36
+ const defaultOptions = {
37
+ enableUnsafeEval: false
38
+ };
39
+ class CspPlugin {
40
+ #options = defaultOptions;
41
+ /**
42
+ * @param {object} options Additional options for this module.
43
+ */
44
+ constructor(options) {
45
+ this.#options = { ...this.#options, ...options ?? {} };
46
+ }
47
+ /**
48
+ * Processes HtmlWebpackPlugin's html data by adding the CSP
49
+ * @param _compilation
50
+ * @param htmlPluginData
51
+ * @param htmlPluginData.html
52
+ * @param compileCb
53
+ * @returns {*}
54
+ */
55
+ processCsp(_compilation, htmlPluginData, compileCb) {
56
+ const cspModule = new import_csp.CSP(htmlPluginData.html);
57
+ cspModule.refactorSourcedScriptsForHashBasedCsp();
58
+ const scriptHashes = cspModule.hashAllInlineScripts();
59
+ const { enableUnsafeEval } = this.#options;
60
+ const strictCsp = import_csp.CSP.getStrictCsp(scriptHashes, {
61
+ enableUnsafeEval
62
+ });
63
+ cspModule.addMetaTag(strictCsp);
64
+ htmlPluginData.html = cspModule.serializeDom();
65
+ return compileCb(null, htmlPluginData);
66
+ }
67
+ /**
68
+ * Hooks into webpack to collect assets and hash them, build the policy, and add it into our HTML template
69
+ * @param compiler
70
+ */
71
+ apply(compiler) {
72
+ compiler.hooks.compilation.tap("CspPlugin", (compilation) => {
73
+ import_html_webpack_plugin.default.getCompilationHooks(compilation).beforeEmit.tapAsync(
74
+ "CspPlugin",
75
+ this.processCsp.bind(this, compilation)
76
+ );
77
+ });
78
+ }
79
+ }
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var csp_exports = {};
30
+ __export(csp_exports, {
31
+ CSP: () => CSP
32
+ });
33
+ module.exports = __toCommonJS(csp_exports);
34
+ var crypto = __toESM(require("node:crypto"));
35
+ var cheerio = __toESM(require("cheerio"));
36
+ class CSP {
37
+ static HASH_FUNCTION = "sha256";
38
+ static INLINE_SCRIPT_SELECTOR = "script:not([src])";
39
+ static SOURCED_SCRIPT_SELECTOR = "script[src]";
40
+ $;
41
+ constructor(html) {
42
+ this.$ = cheerio.load(html);
43
+ }
44
+ serializeDom() {
45
+ return this.$.root().html() ?? "";
46
+ }
47
+ /**
48
+ * Returns a strict Content Security Policy for mittigating XSS.
49
+ * For more details read csp.withgoogle.com.
50
+ * If you modify this CSP, make sure it has not become trivially bypassable by
51
+ * checking the policy using csp-evaluator.withgoogle.com.
52
+ * @param hashes A list of sha-256 hashes of trusted inline scripts.
53
+ * @param cspOptions
54
+ * @param enableTrustedTypes If Trusted Types should be enabled for scripts.
55
+ * @param enableBrowserFallbacks If fallbacks for older browsers should be
56
+ * added. This is will not weaken the policy as modern browsers will ignore
57
+ * the fallbacks.
58
+ * @param enableUnsafeEval If you cannot remove all uses of eval(), you can
59
+ * still set a strict CSP, but you will have to use the 'unsafe-eval'
60
+ * keyword which will make your policy slightly less secure.
61
+ * @param cspOptions.enableBrowserFallbacks
62
+ * @param cspOptions.enableTrustedTypes
63
+ * @param cspOptions.enableUnsafeEval
64
+ * @returns A strict Content Security Policy string.
65
+ */
66
+ static getStrictCsp(hashes, cspOptions = {
67
+ enableUnsafeEval: false
68
+ }) {
69
+ const strictCspTemplate = {
70
+ // 'strict-dynamic' allows hashed scripts to create new scripts.
71
+ "script-src": [`'strict-dynamic'`, ...hashes ?? []],
72
+ // Restricts `object-src` to disable dangerous plugins like Flash.
73
+ "object-src": [`'none'`],
74
+ // Restricts `base-uri` to block the injection of `<base>` tags. This
75
+ // prevents attackers from changing the locations of scripts loaded from
76
+ // relative URLs.
77
+ "base-uri": [`'self'`]
78
+ };
79
+ if (cspOptions.enableUnsafeEval) {
80
+ strictCspTemplate["script-src"].push(`'unsafe-eval'`);
81
+ }
82
+ return Object.entries(strictCspTemplate).map(([directive, values]) => `${directive} ${values.join(" ")};`).join("");
83
+ }
84
+ /**
85
+ * Enables a CSP via a meta tag at the beginning of the document.
86
+ * Warning: It's recommended to set CSP as HTTP response header instead of
87
+ * using a meta tag. Injections before the meta tag will not be covered by CSP
88
+ * and meta tags don't support CSP in report-only mode.
89
+ * @param csp A Content Security Policy string.
90
+ */
91
+ addMetaTag(csp) {
92
+ let metaTag = this.$('meta[http-equiv="Content-Security-Policy"]');
93
+ if (!metaTag.length) {
94
+ metaTag = cheerio.load('<meta http-equiv="Content-Security-Policy">')(
95
+ "meta"
96
+ );
97
+ metaTag.prependTo(this.$("head"));
98
+ }
99
+ metaTag.attr("content", csp);
100
+ }
101
+ /**
102
+ * Replaces all sourced scripts with a single inline script that can be hashed
103
+ */
104
+ refactorSourcedScriptsForHashBasedCsp() {
105
+ const scriptInfoList = this.$(CSP.SOURCED_SCRIPT_SELECTOR).map((_i, script) => {
106
+ const src = this.$(script).attr("src") ?? "";
107
+ const type = this.$(script).attr("type") ?? "";
108
+ this.$(script).remove();
109
+ return { src, type };
110
+ }).toArray().filter((info) => info.src);
111
+ const loaderScript = CSP.createLoaderScript(scriptInfoList);
112
+ if (!loaderScript) {
113
+ return;
114
+ }
115
+ const newScript = cheerio.load("<script>")("script");
116
+ newScript.text(loaderScript);
117
+ newScript.appendTo(this.$("body"));
118
+ }
119
+ /**
120
+ * Returns a list of hashes of all inline scripts found in the HTML document.
121
+ * @returns A list of sha-256 hashes of inline scripts.
122
+ */
123
+ hashAllInlineScripts() {
124
+ return this.$(CSP.INLINE_SCRIPT_SELECTOR).map((_i, elem) => CSP.hashInlineScript(this.$(elem).html() ?? "")).get();
125
+ }
126
+ /**
127
+ * Returns JS code for dynamically loading sourced (external) scripts.
128
+ * @param scriptInfoList A list of objects containing src and type for scripts that should be loaded
129
+ * @returns JS code for loading scripts.
130
+ */
131
+ static createLoaderScript(scriptInfoList) {
132
+ if (!scriptInfoList.length) {
133
+ return void 0;
134
+ }
135
+ return `
136
+ var scripts = ${JSON.stringify(scriptInfoList)};
137
+ scripts.forEach(function(scriptInfo) {
138
+ var s = document.createElement('script');
139
+ s.src = scriptInfo.src;
140
+ if (scriptInfo.type) {
141
+ s.type = scriptInfo.type;
142
+ }
143
+ s.async = false; // preserve execution order.
144
+ document.body.appendChild(s);
145
+ });
146
+ `;
147
+ }
148
+ /**
149
+ * Calculates a CSP compatible hash of an inline script.
150
+ * @param scriptText Text between opening and closing script tag. Has to
151
+ * include whitespaces and newlines!
152
+ * @returns A sha-256 hash of the script.
153
+ */
154
+ static hashInlineScript(scriptText) {
155
+ const hash = crypto.createHash(CSP.HASH_FUNCTION).update(scriptText, "utf-8").digest("base64");
156
+ return `'${CSP.HASH_FUNCTION}-${hash}'`;
157
+ }
158
+ }
@@ -34,6 +34,7 @@ __export(helpers_exports, {
34
34
  getAlias: () => getAlias,
35
35
  getAppVersion: () => getAppVersion,
36
36
  getCompressionPlugins: () => getCompressionPlugins,
37
+ getLibraryAlias: () => getLibraryAlias,
37
38
  getLibraryName: () => getLibraryName,
38
39
  getLibraryVariableName: () => getLibraryVariableName,
39
40
  getMediaPath: () => getMediaPath,
@@ -46,11 +47,11 @@ __export(helpers_exports, {
46
47
  resolveExtensions: () => resolveExtensions
47
48
  });
48
49
  module.exports = __toCommonJS(helpers_exports);
49
- var import_node_path = __toESM(require("node:path"), 1);
50
- var import_node_fs = __toESM(require("node:fs"), 1);
51
- var import_lodash = __toESM(require("lodash"), 1);
52
- var import_compression_webpack_plugin = __toESM(require("compression-webpack-plugin"), 1);
53
- var import_zlib = __toESM(require("zlib"), 1);
50
+ var import_node_path = __toESM(require("node:path"));
51
+ var import_node_fs = __toESM(require("node:fs"));
52
+ var import_zlib = __toESM(require("zlib"));
53
+ var import_lodash = __toESM(require("lodash"));
54
+ var import_compression_webpack_plugin = __toESM(require("compression-webpack-plugin"));
54
55
  var import_utils = require("../monorepo/utils.js");
55
56
  var import_utils2 = require("../utils.js");
56
57
  let pathSep = import_node_path.default.sep;
@@ -63,10 +64,9 @@ const getNodeModulesRegEx = (modules) => modules.map(
63
64
  const excludeNodeModulesExcept = (modules) => {
64
65
  const moduleRegExps = getNodeModulesRegEx(modules);
65
66
  return function(modulePath) {
66
- if (/node_modules/.test(modulePath)) {
67
- for (let i = 0; i < moduleRegExps.length; i += 1)
68
- if (moduleRegExps[i].test(modulePath))
69
- return false;
67
+ if (modulePath.includes("node_modules")) {
68
+ for (const moduleRegExp of moduleRegExps)
69
+ if (moduleRegExp.test(modulePath)) return false;
70
70
  return true;
71
71
  }
72
72
  return false;
@@ -80,7 +80,7 @@ const getLibraryName = () => {
80
80
  const modifiedLibName = `emui-${libraryName.replace("@elliemae/", "").replace("pui-", "")}`;
81
81
  return import_lodash.default.camelCase(modifiedLibName);
82
82
  };
83
- const getLibraryVariableName = () => (process.env.LIBRARY_VARIABLE_NAME || getLibraryName()).split(".");
83
+ const getLibraryVariableName = () => (process.env.LIBRARY_VARIABLE_NAME ?? getLibraryName()).split(".");
84
84
  const mapToFolder = (dependencies, folder) => dependencies.reduce(
85
85
  (acc, dependency) => ({
86
86
  [dependency]: import_node_path.default.resolve(`${folder}/${dependency.replace("$", "")}`),
@@ -89,7 +89,7 @@ const mapToFolder = (dependencies, folder) => dependencies.reduce(
89
89
  {}
90
90
  );
91
91
  const getAlias = () => {
92
- const monorepoRoot = (0, import_utils.findMonoRepoRoot)(process.cwd()) || "";
92
+ const monorepoRoot = (0, import_utils.findMonoRepoRoot)(process.cwd()) ?? "";
93
93
  return mapToFolder(
94
94
  [
95
95
  "@babel/runtime",
@@ -103,6 +103,8 @@ const getAlias = () => {
103
103
  "styled-components",
104
104
  "immer",
105
105
  "react-dates",
106
+ "react-select",
107
+ "react-spring",
106
108
  "react-transition-group",
107
109
  "@elliemae/pui-cli",
108
110
  "@elliemae/pui-app-sdk$",
@@ -111,6 +113,15 @@ const getAlias = () => {
111
113
  import_node_path.default.join(monorepoRoot, "./node_modules")
112
114
  );
113
115
  };
116
+ const getLibraryAlias = (name, alias) => {
117
+ const monorepoRoot = (0, import_utils.findMonoRepoRoot)(process.cwd()) ?? "";
118
+ const aliasPath = import_node_path.default.resolve(
119
+ `${import_node_path.default.join(monorepoRoot, "./node_modules")}/${alias}`
120
+ );
121
+ return {
122
+ [name]: aliasPath
123
+ };
124
+ };
114
125
  const modulesToTranspile = [
115
126
  "@elliemae/pui-*",
116
127
  "@elliemae/ds-*",
@@ -123,12 +134,11 @@ const getUserMonitoringFileName = () => {
123
134
  process.cwd(),
124
135
  "node_modules/@elliemae/pui-user-monitoring/dist/public/js"
125
136
  );
126
- if (!import_node_fs.default.existsSync(userMonLibPath))
127
- return `${libName}.js`;
137
+ if (!import_node_fs.default.existsSync(userMonLibPath)) return `${libName}.js`;
128
138
  const distJSFiles = import_node_fs.default.readdirSync(userMonLibPath);
129
- return distJSFiles.filter(
130
- (fName) => fName.match(/emuiUserMonitoring+((?!chunk).)*\.js$/)
131
- )[0];
139
+ return distJSFiles.find(
140
+ (fName) => /emuiUserMonitoring+((?!chunk).)*\.js$/.exec(fName)
141
+ );
132
142
  };
133
143
  const getAppLoaderFileName = () => {
134
144
  const libName = "emuiAppLoader";
@@ -136,12 +146,11 @@ const getAppLoaderFileName = () => {
136
146
  process.cwd(),
137
147
  "node_modules/@elliemae/pui-app-loader/dist/public/js"
138
148
  );
139
- if (!import_node_fs.default.existsSync(appLoaderLibPath))
140
- return `${libName}.js`;
149
+ if (!import_node_fs.default.existsSync(appLoaderLibPath)) return `${libName}.js`;
141
150
  const distJSFiles = import_node_fs.default.readdirSync(appLoaderLibPath);
142
- return distJSFiles.filter(
143
- (fName) => fName.match(/emuiAppLoader+((?!chunk).)*\.js$/)
144
- )[0];
151
+ return distJSFiles.find(
152
+ (fName) => /emuiAppLoader+((?!chunk).)*\.js$/.exec(fName)
153
+ );
145
154
  };
146
155
  const getDiagnosticsFileName = () => {
147
156
  const libName = "emuiDiagnostics";
@@ -149,12 +158,11 @@ const getDiagnosticsFileName = () => {
149
158
  process.cwd(),
150
159
  "node_modules/@elliemae/pui-diagnostics/dist/public/js"
151
160
  );
152
- if (!import_node_fs.default.existsSync(libPath))
153
- return `${libName}.js`;
161
+ if (!import_node_fs.default.existsSync(libPath)) return `${libName}.js`;
154
162
  const distJSFiles = import_node_fs.default.readdirSync(libPath);
155
- return distJSFiles.filter(
156
- (fName) => fName.match(/emuiDiagnostics+((?!chunk).)*\.js$/)
157
- )[0];
163
+ return distJSFiles.find(
164
+ (fName) => /emuiDiagnostics+((?!chunk).)*\.js$/.exec(fName)
165
+ );
158
166
  };
159
167
  const getENCWLoaderFileName = () => {
160
168
  const libName = "emuiEncwLoader";
@@ -162,18 +170,16 @@ const getENCWLoaderFileName = () => {
162
170
  process.cwd(),
163
171
  "node_modules/@elliemae/encw-loader/dist/public/js"
164
172
  );
165
- if (!import_node_fs.default.existsSync(appLoaderLibPath))
166
- return `${libName}.js`;
173
+ if (!import_node_fs.default.existsSync(appLoaderLibPath)) return `${libName}.js`;
167
174
  const distJSFiles = import_node_fs.default.readdirSync(appLoaderLibPath);
168
- return distJSFiles.filter(
169
- (fName) => fName.match(/emuiEncwLoader+((?!chunk).)*\.js$/)
170
- )[0];
175
+ return distJSFiles.find(
176
+ (fName) => /emuiEncwLoader+((?!chunk).)*\.js$/.exec(fName)
177
+ );
171
178
  };
172
179
  const getAppVersion = () => {
173
- if (!process.env.APP_VERSION)
174
- return LATEST_VERSION;
175
- const match = process.env.APP_VERSION.match(/^v?(\d+\.\d+)\..*$/);
176
- return match && match[1] || LATEST_VERSION;
180
+ if (!process.env.APP_VERSION) return LATEST_VERSION;
181
+ const match = /^v?(\d+\.\d+)\..*$/.exec(process.env.APP_VERSION);
182
+ return match?.[1] ?? LATEST_VERSION;
177
183
  };
178
184
  const getPaths = (latestVersion = true) => {
179
185
  const version = latestVersion ? LATEST_VERSION : getAppVersion();
@@ -208,9 +214,9 @@ const getCompressionPlugins = (isLibrary = false) => {
208
214
  ];
209
215
  const commonConfig = {
210
216
  test: /\.(js|css)$/,
211
- exclude: !isLibrary ? excludeList : [],
212
217
  // 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
213
- minRatio: Infinity
218
+ minRatio: Infinity,
219
+ ...!isLibrary ? { exclude: excludeList } : {}
214
220
  };
215
221
  return [
216
222
  new import_compression_webpack_plugin.default({
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var interceptor_middleware_exports = {};
20
+ __export(interceptor_middleware_exports, {
21
+ addCSPNonceMiddleware: () => addCSPNonceMiddleware,
22
+ interceptorMiddleware: () => interceptorMiddleware
23
+ });
24
+ module.exports = __toCommonJS(interceptor_middleware_exports);
25
+ const VALID_PARAMS = ["isInterceptable", "intercept", "afterSend"];
26
+ const validateParams = (methods) => {
27
+ Object.keys(methods).forEach((k) => {
28
+ if (!VALID_PARAMS.includes(k)) {
29
+ throw new Error(`${k} isn't a valid param (${VALID_PARAMS.join(", ")})`);
30
+ }
31
+ });
32
+ if (!("isInterceptable" in methods)) {
33
+ throw new Error("isInterceptable is a required param (function)");
34
+ }
35
+ };
36
+ const interceptorMiddleware = (fn) => (req, res, next) => {
37
+ const methods = fn(req, res);
38
+ validateParams(methods);
39
+ const originalEnd = res.end;
40
+ const originalWrite = res.write;
41
+ const chunks = [];
42
+ let isIntercepting;
43
+ let isFirstWrite = true;
44
+ function intercept(rawChunk, encoding) {
45
+ if (isFirstWrite) {
46
+ isFirstWrite = false;
47
+ isIntercepting = methods.isInterceptable();
48
+ }
49
+ if (isIntercepting) {
50
+ if (rawChunk) {
51
+ let tempChunk = rawChunk;
52
+ if (rawChunk !== null && !Buffer.isBuffer(tempChunk)) {
53
+ if (!encoding) {
54
+ tempChunk = Buffer.from(rawChunk);
55
+ } else {
56
+ tempChunk = Buffer.from(
57
+ rawChunk,
58
+ encoding
59
+ );
60
+ }
61
+ }
62
+ chunks.push(tempChunk);
63
+ }
64
+ }
65
+ return isIntercepting;
66
+ }
67
+ const newResWrite = (...args) => {
68
+ if (!intercept(args[0], args[1])) {
69
+ return originalWrite.apply(res, args);
70
+ }
71
+ return true;
72
+ };
73
+ res.write = newResWrite;
74
+ const afterSend = (oldBody, newBody) => {
75
+ if (typeof methods.afterSend === "function") {
76
+ process.nextTick(() => {
77
+ methods.afterSend?.(oldBody, newBody);
78
+ });
79
+ }
80
+ };
81
+ const newResEnd = (...args) => {
82
+ if (intercept(args[0], args[1])) {
83
+ isIntercepting = false;
84
+ const oldBody = Buffer.concat(chunks).toString("utf-8");
85
+ if (methods.intercept) {
86
+ if (typeof methods.intercept !== "function") {
87
+ throw new Error(
88
+ "`send` must be a function with the body to be sent as the only param"
89
+ );
90
+ }
91
+ res.removeHeader("Content-Length");
92
+ methods.intercept(oldBody, (newBody) => {
93
+ args[0] = newBody;
94
+ originalEnd.apply(res, args);
95
+ afterSend(oldBody, newBody);
96
+ });
97
+ } else {
98
+ afterSend(oldBody, oldBody);
99
+ originalEnd.apply(res, args);
100
+ }
101
+ } else {
102
+ originalEnd.apply(res, args);
103
+ }
104
+ };
105
+ res.end = newResEnd;
106
+ next();
107
+ };
108
+ const addCSPNonceMiddleware = (middlewares) => {
109
+ const index = middlewares.findIndex(
110
+ (middleware) => middleware.name === "webpack-dev-middleware"
111
+ );
112
+ middlewares.splice(index, 0, {
113
+ name: "csp-nonce-middleware",
114
+ middleware: interceptorMiddleware((_req, res) => ({
115
+ // Only HTML responses will be intercepted
116
+ isInterceptable() {
117
+ return (res.get("Content-Type") ?? "").includes("text/html");
118
+ },
119
+ // Appends a paragraph at the end of the response body
120
+ intercept(body, send) {
121
+ send(body.replace(/__CSP_NONCE__/g, res.locals.cspNonce));
122
+ }
123
+ }))
124
+ });
125
+ };
@@ -31,16 +31,16 @@ __export(webpack_base_babel_exports, {
31
31
  baseConfig: () => baseConfig
32
32
  });
33
33
  module.exports = __toCommonJS(webpack_base_babel_exports);
34
- var import_node_path = __toESM(require("node:path"), 1);
35
- var import_webpack = __toESM(require("webpack"), 1);
34
+ var import_node_path = __toESM(require("node:path"));
35
+ var import_webpack = __toESM(require("webpack"));
36
36
  var import_webpack_dev_server = require("webpack-dev-server");
37
- var import_mini_css_extract_plugin = __toESM(require("mini-css-extract-plugin"), 1);
38
- var import_postcss_preset_env = __toESM(require("postcss-preset-env"), 1);
39
- var import_copy_webpack_plugin = __toESM(require("copy-webpack-plugin"), 1);
40
- var import_moment_locales_webpack_plugin = __toESM(require("moment-locales-webpack-plugin"), 1);
37
+ var import_mini_css_extract_plugin = __toESM(require("mini-css-extract-plugin"));
38
+ var import_postcss_preset_env = __toESM(require("postcss-preset-env"));
39
+ var import_copy_webpack_plugin = __toESM(require("copy-webpack-plugin"));
40
+ var import_moment_locales_webpack_plugin = __toESM(require("moment-locales-webpack-plugin"));
41
41
  var import_webpack_manifest_plugin = require("webpack-manifest-plugin");
42
- var import_favicons_webpack_plugin = __toESM(require("favicons-webpack-plugin"), 1);
43
- var import_browserslist_to_esbuild = __toESM(require("browserslist-to-esbuild"), 1);
42
+ var import_favicons_webpack_plugin = __toESM(require("favicons-webpack-plugin"));
43
+ var import_browserslist_to_esbuild = __toESM(require("browserslist-to-esbuild"));
44
44
  var import_helpers = require("./helpers.js");
45
45
  const minicssLoader = {
46
46
  loader: import_mini_css_extract_plugin.default.loader,
@@ -129,14 +129,16 @@ const plugins = [
129
129
  noErrorOnMissing: true,
130
130
  globOptions: {
131
131
  ignore: ["readme.md"]
132
- }
132
+ },
133
+ info: { minimized: true }
133
134
  },
134
135
  {
135
136
  from: "webroot",
136
137
  noErrorOnMissing: true,
137
138
  globOptions: {
138
139
  ignore: ["readme.md"]
139
- }
140
+ },
141
+ info: { minimized: true }
140
142
  }
141
143
  ])
142
144
  }),
@@ -145,7 +147,7 @@ const plugins = [
145
147
  fileName: "./latest/manifest.json",
146
148
  publicPath: "",
147
149
  map: (file) => {
148
- file.name = file.name.replace(/^latest\//, "");
150
+ file.name = file.name.replace(/^latest(\/|\\)/, "");
149
151
  return file;
150
152
  }
151
153
  }),
@@ -284,34 +286,18 @@ const baseConfig = (options) => ({
284
286
  mainFields: ["browser", "module", "main"],
285
287
  alias: {
286
288
  ...(0, import_helpers.getAlias)(),
287
- ...(options.resolve || {}).alias || {}
289
+ ...options.resolve?.alias ?? {}
288
290
  }
289
291
  },
292
+ externalsPresets: {
293
+ web: true
294
+ },
290
295
  externals: {
291
296
  "@elliemae/pui-user-monitoring": "emuiUserMonitoring",
292
297
  "@elliemae/pui-app-loader": "emuiAppLoader",
293
- "@elliemae/pui-diagnostics": "emuiDiagnostics",
294
- react: "emuiAppReactDependencies.react",
295
- "react-dom": "emuiAppReactDependencies.reactDOM",
296
- "@reduxjs/toolkit": "emuiAppReactDependencies.rtk",
297
- axios: "emuiAppReactDependencies.axios.default",
298
- dompurify: "emuiAppReactDependencies.dompurify",
299
- history: "emuiAppReactDependencies.history",
300
- immer: "emuiAppReactDependencies.immer",
301
- invariant: "emuiAppReactDependencies.invariant",
302
- "pubsub-js": "emuiAppReactDependencies.pubsubjs",
303
- "react-aria-live": "emuiAppReactDependencies.reactAriaLive",
304
- "react-helmet": "emuiAppReactDependencies.reactHelmet",
305
- "react-hook-form": "emuiAppReactDependencies.reactHookForm",
306
- "react-redux": "emuiAppReactDependencies.reactRedux",
307
- "react-router-dom": "emuiAppReactDependencies.reactRouterDOM",
308
- reduxInjectors: "emuiAppReactDependencies.reduxInjectors",
309
- reselect: "emuiAppReactDependencies.reselect",
310
- // "styled-components": "emuiAppReactDependencies.styledComponents",
311
- "styled-system": "emuiAppReactDependencies.styledSystem"
312
- // "@xstyled/styled-components": "emuiAppReactDependencies.xstyled",
298
+ "@elliemae/pui-diagnostics": "emuiDiagnostics"
313
299
  },
314
- devtool: options.devtool || "eval-source-map",
315
- performance: options.performance || {},
316
- devServer: options.devServer || {}
300
+ devtool: options.devtool ?? "eval-source-map",
301
+ performance: options.performance ?? {},
302
+ devServer: options.devServer ?? {}
317
303
  });