@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
@@ -9,7 +9,7 @@ const getPNPMWorkspaceLocation = (cwd) => {
9
9
  const result = execSync(`npx find-up ${fileName}`, { cwd });
10
10
  location = result.toString().trim();
11
11
  break;
12
- } catch (err) {
12
+ } catch (_err) {
13
13
  }
14
14
  }
15
15
  return location;
@@ -3,13 +3,12 @@ import fs from "node:fs";
3
3
  import { merge } from "lodash";
4
4
  const baseConfig = {
5
5
  esBuild: {
6
- target: "es2020"
6
+ target: "es2022"
7
7
  }
8
8
  };
9
9
  const getPUIConfig = () => {
10
10
  const configPath = path.resolve(process.cwd(), "./pui.config.js");
11
- if (!fs.existsSync(configPath))
12
- return baseConfig;
11
+ if (!fs.existsSync(configPath)) return baseConfig;
13
12
  const config = JSON.parse(fs.readFileSync(configPath, "utf8"));
14
13
  return merge(baseConfig, config);
15
14
  };
@@ -0,0 +1,26 @@
1
+ var release_config_default = {
2
+ branches: [
3
+ "+([0-9])?(.{+([0-9]),x}).x",
4
+ "master",
5
+ "next-major",
6
+ { name: "beta", prerelease: true },
7
+ { name: "alpha", prerelease: true },
8
+ { name: "hotfix", prerelease: true },
9
+ { name: "next", prerelease: true }
10
+ ],
11
+ plugins: [
12
+ "@semantic-release/commit-analyzer",
13
+ "@semantic-release/release-notes-generator",
14
+ [
15
+ "@semantic-release/changelog",
16
+ {
17
+ changelogTitle: "# Changelog\n\nAll notable changes to this project will be documented in this file. See\n[Conventional Commits](https://conventionalcommits.org) for commit guidelines."
18
+ }
19
+ ],
20
+ "@semantic-release/npm",
21
+ "@semantic-release/github"
22
+ ]
23
+ };
24
+ export {
25
+ release_config_default as default
26
+ };
@@ -6,14 +6,12 @@ const serviceEndpoints = /\.endpoint\.js$/;
6
6
  const getFilesMatching = (filePattern) => {
7
7
  const getFiles = (dir) => {
8
8
  let routeFiles = [];
9
- if (!fs.existsSync(dir))
10
- return routeFiles;
9
+ if (!fs.existsSync(dir)) return routeFiles;
11
10
  fs.readdirSync(dir).forEach((file) => {
12
11
  const fullPath = path.join(dir, file);
13
12
  if (fs.lstatSync(fullPath).isDirectory()) {
14
13
  routeFiles = routeFiles.concat(getFiles(fullPath));
15
- } else if (filePattern.test(fullPath))
16
- routeFiles.push(fullPath);
14
+ } else if (filePattern.test(fullPath)) routeFiles.push(fullPath);
17
15
  });
18
16
  return routeFiles;
19
17
  };
@@ -32,8 +30,7 @@ const loadRoutes = async (app) => {
32
30
  const routeFileURL = pathToFileURL(routeFile).href;
33
31
  const { default: init } = await import(routeFileURL);
34
32
  try {
35
- if (typeof init === "function")
36
- init(app);
33
+ if (typeof init === "function") init(app);
37
34
  } catch (err) {
38
35
  console.error(
39
36
  `unable to load routes from ${routeFile}. ${err.message}`
@@ -0,0 +1,14 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import { fileURLToPath } from "url";
4
+ const getCertOptions = () => {
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+ return {
8
+ pfx: fs.readFileSync(path.join(__dirname, "./certs/cert.pfx")),
9
+ passphrase: "uiplatform"
10
+ };
11
+ };
12
+ export {
13
+ getCertOptions
14
+ };
@@ -0,0 +1,25 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIERjCCAy6gAwIBAgIURZDLMeITZ77a7OqWfmuim11w3/0wDQYJKoZIhvcNAQEL
3
+ BQAwgZYxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTETMBEGA1UEBwwKUGxlYXNh
4
+ bnRvbjEMMAoGA1UECgwDSUNFMRQwEgYDVQQLDAtVSSBQbGF0Zm9ybTESMBAGA1UE
5
+ AwwJbG9jYWxob3N0MS0wKwYJKoZIhvcNAQkBFh52aW5vdGgua2FseWFuYXN1bmRh
6
+ cmFtQGljZS5jb20wHhcNMjQxMDMxMTg1ODI1WhcNMjUxMDMxMTg1ODI1WjCBmzEL
7
+ MAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApQbGVhc2FudG9uMQww
8
+ CgYDVQQKDANJQ0UxFDASBgNVBAsMC1VJIFBsYXRmb3JtMRcwFQYDVQQDDA5sb2Nh
9
+ bGhvc3Q6ODA4MDEtMCsGCSqGSIb3DQEJARYedmlub3RoLmthbHlhbmFzdW5kYXJh
10
+ bUBpY2UuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwfAgF1AN
11
+ m/RnbzKzoXS7SU3JkQWTeQ1ndaZRwiD4Xkg5bvdhzWUJORVYQTWIJJrL3KxqZzGM
12
+ gVj4UJt3AaQD73A+bQagS5EgYxLqg1v34HZvhwMfdoZfw9epQt5KCF3JQXyH+lJk
13
+ RyklnjHVZbYE1/eF1pb0KosIWPXY+kCYTi2b0oPifyO90bVOw3QvxLDF4fgk+QqL
14
+ 7HU1EOAak4wj07dNi83xqCOqjtWzmlYokvYELFgCUMzWFEjxuWZMuGu8+28JAMX9
15
+ oXni9K8f4SJX5eZrRrtAHt+LwsxcLQPTmHHeTxvEc/L8//jAVUTohUr+/IfC59z0
16
+ dko7ulPQKjgsFwIDAQABo4GEMIGBMB8GA1UdIwQYMBaAFB/8xooBufI/rf2vXZBh
17
+ sLmQARwoMAkGA1UdEwQCMAAwNAYDVR0RBC0wK4IJbG9jYWxob3N0gg5sb2NhbGhv
18
+ c3Q6ODA4MIIObG9jYWxob3N0OjMwMDAwHQYDVR0OBBYEFLQKGRQF7uuWmv1mYPGF
19
+ lWd8FxjbMA0GCSqGSIb3DQEBCwUAA4IBAQAVqVVBtbkQo1JI7+3oPSgL+CPQC37x
20
+ szF+vXLeswBS6OYrqA4AgW0R3vnhB64t/+oRmUu59vi+PuC1ff4w23g2HMZ+MlY2
21
+ smgJ8XMoxyEn4aVAPLECzBuR67uGzCxJbqtg/avb6EIWTXzBwHI95PWVcWaLav1q
22
+ sf3Mc60LVlAFQb1Ec5MlQHgMHaGJSDE3UwPL+JOOTG1XLnqMt+WFfqG6gN6G3FkY
23
+ dSg3HOR2m2VHaQWvA8Zb34uTUan40K+/hlpbzfgDXF8nvg1Fwivje8+7L3FOcCw0
24
+ k3yHwccxFqhPkXXaByZzaBKIlFXtLA4LiUwVQ7JEwPsJS5U108tuAQ8V
25
+ -----END CERTIFICATE-----
@@ -0,0 +1,18 @@
1
+ -----BEGIN CERTIFICATE REQUEST-----
2
+ MIIC4TCCAckCAQAwgZsxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTETMBEGA1UE
3
+ BwwKUGxlYXNhbnRvbjEMMAoGA1UECgwDSUNFMRQwEgYDVQQLDAtVSSBQbGF0Zm9y
4
+ bTEXMBUGA1UEAwwObG9jYWxob3N0OjgwODAxLTArBgkqhkiG9w0BCQEWHnZpbm90
5
+ aC5rYWx5YW5hc3VuZGFyYW1AaWNlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEP
6
+ ADCCAQoCggEBAMHwIBdQDZv0Z28ys6F0u0lNyZEFk3kNZ3WmUcIg+F5IOW73Yc1l
7
+ CTkVWEE1iCSay9ysamcxjIFY+FCbdwGkA+9wPm0GoEuRIGMS6oNb9+B2b4cDH3aG
8
+ X8PXqULeSghdyUF8h/pSZEcpJZ4x1WW2BNf3hdaW9CqLCFj12PpAmE4tm9KD4n8j
9
+ vdG1TsN0L8SwxeH4JPkKi+x1NRDgGpOMI9O3TYvN8agjqo7Vs5pWKJL2BCxYAlDM
10
+ 1hRI8blmTLhrvPtvCQDF/aF54vSvH+EiV+Xma0a7QB7fi8LMXC0D05hx3k8bxHPy
11
+ /P/4wFVE6IVK/vyHwufc9HZKO7pT0Co4LBcCAwEAAaAAMA0GCSqGSIb3DQEBCwUA
12
+ A4IBAQA/ud/JTN+FBGDyQFoGes/CAhKdj8hfZq1F/sivJXiXoC03FYd4NhAan/aY
13
+ 1BFqiYESW1aYrDN4MyXEFhxeB5aOPHaraQ7Ny5eSAiQd6GJMNs5/lpc9W6gddXA/
14
+ rtl0BJ85YUh9NrRNKYdplJDrCUaZh5lFQcHb7eDsQyZJVBgJzjJ1YgpTh3Sz+hcS
15
+ eK6HiPqKIvRBaCgeKzEStEaLlrrsKhCezX7MOJ56JDGO7UgAxe5nRBD6Rg1Eoq+H
16
+ En6Q4im/SwFIFdYt0G2BW60OEmzP+sW16XfPeMTyNZrVYQ5a3r0oMYEPrPnL6FXo
17
+ u4ogdp1aQ2AhdGnsZxbht1uTAmCO
18
+ -----END CERTIFICATE REQUEST-----
@@ -0,0 +1,7 @@
1
+ authorityKeyIdentifier=keyid,issuer
2
+ basicConstraints=CA:FALSE
3
+ subjectAltName = @alt_names
4
+ [alt_names]
5
+ DNS.1 = localhost
6
+ DNS.2 = localhost:8080
7
+ DNS.3 = localhost:3000
@@ -0,0 +1,30 @@
1
+ -----BEGIN ENCRYPTED PRIVATE KEY-----
2
+ MIIFJDBWBgkqhkiG9w0BBQ0wSTAxBgkqhkiG9w0BBQwwJAQQDe26Vas7aUu8EpLs
3
+ 1tLs2wICCAAwDAYIKoZIhvcNAgkFADAUBggqhkiG9w0DBwQIXoZbQE//THYEggTI
4
+ 27d2i58EwLcpAj74FeVRYZs3bwgap2fqjeAV1I0YIpUKSXXBe6cLAlWoU2dP1Ze/
5
+ 37LZyyFhM41VODvJog4DSvR1EwRHswfcz/iUogR9IRgzoALltLSzzv/C60H/7LS+
6
+ Ta1PD1wOtt1vRqRwgfH32OgFNvSl+Mtq6EvSSO/1egQDniyvFHoNdu7xuKhPCHzG
7
+ SriyYj4/ul7uBGihU+dzpTwc/nAKzto6SNT/ONsvr2Gx0LAWTtAzvc45yqMJ8NBR
8
+ O0+9AYxnmkC4dBoZyiQ5bzvxLRYB8jkGTOYBkY3LKOoOQ7F2zjhZHs/m2uFjLXXd
9
+ Z+j4XYVUeGmB97C6jDE1tlbNPR0eea0E64FkHoQZiqgENbX0UgYQujBLpborPhgn
10
+ BOgdftsnms8UYadN4UxB6elgKLpqqVtUepng0ypURZqv3BLTnDVxvNdjGsmTlwSc
11
+ W/7f1ZKlNMIpLsMjxq96pyTPJ379KneBI0B+k1p6hnXKhiGI09UiiHdpkzNovA9H
12
+ TG9HqMDaRdbMe4tQTdPpDCbRawokTmNhEp95PU5/xjveOxCexdRA2ICXlU+pS9ur
13
+ Oz78CuRZLiI7otcAo9ezr7KAh1L484RXnoTOXdvAYJFr4i4+VY2aW1+7yzlxgnVl
14
+ eAvLv5hI7uAradt+xzcLhLoaq1/Srr0qBvu/hfyiY5ZJUs0MYJ/fu6b3QVZsurMK
15
+ OU1RRot29Ckl+NRTVkc+87nanTkFkiAdVTQhBWurEjhKzyiGd/wckBfLL/8Xf5KD
16
+ vd5ZLUBK/KvofxtSYmYHPLCNPszXRMde3buzeQg4VHtdq5cF8bXzgDIZdsl/6R6I
17
+ alfwsJvuaGlBGPpxagntfsWgFsEw+24vYwXNsOJqv9qgrcM2mfVSmzDGxytRQ6i7
18
+ blMg7UeZLRXMVABTIkbgoLiiP795oryqC+gKX3xzHRobFiCW+k0UtUaUM/3rDOdq
19
+ h6HSuvPy9y+eIaFVJPi3py5m75y0UbKJjhITK241CkmO/R8AHL8gofYYfscp7Amj
20
+ Z4zIaG1qJHUvD3Jn9GNhLDUHA6zR7fT+Ckkym49UxidECxktT0B7xUUfRV0rwe7X
21
+ 4mcb+5YDlUJzrV2Nx+0xnAvxyfU2PdTveU5OGZFEK0eb8BYVre5eLRbnw63TP6Km
22
+ OiRzhRt4/MoeTN2IieORs8G6hHnNfCS4VX91vYoAOGQz/tJt2b+aCZ+XC+viWS3/
23
+ JY1a0yLkplBbn2n/+XAo7N6fz+Zf7xa2RduqOX0CkkST9FQwBlt7zPVhLQM9u3SR
24
+ 2Gn/B/ar5ac/gaFZ1unbV1ncyTqj3euLxWTFAohptCaxTqvjHQroZHgXok/e1OzB
25
+ CoSVdjJ+fvmg+Fl29whZ7kN4gXkawRNOzwUNQFaplbcjc1xGWDDw/QMnvfB0RJUF
26
+ ZaOHZhfX+BJhG2LalhoFWhpK50e884KFime/AMqCDHcm8RqH8pcjisK9QfIA1YC7
27
+ Fxh3ewpmwkHJjR0jSKEy/AEM0kXdV1k273DoU7zLPbDtqgHEQSP40MCstCUjX4vy
28
+ pnSeSKuu4VGWHEBzekKmJHrx8BUjGC/dMTevG3lzIKrWXOttiL/Btu21S9fGCukd
29
+ r4eCFaUCCZOC2RMb8/iTn8x1VXqTkOQB
30
+ -----END ENCRYPTED PRIVATE KEY-----
Binary file
@@ -0,0 +1,24 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIEDzCCAvegAwIBAgIUX5nLM97FoZtWQKe+Ez6zVIpf88QwDQYJKoZIhvcNAQEL
3
+ BQAwgZYxCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTETMBEGA1UEBwwKUGxlYXNh
4
+ bnRvbjEMMAoGA1UECgwDSUNFMRQwEgYDVQQLDAtVSSBQbGF0Zm9ybTESMBAGA1UE
5
+ AwwJbG9jYWxob3N0MS0wKwYJKoZIhvcNAQkBFh52aW5vdGgua2FseWFuYXN1bmRh
6
+ cmFtQGljZS5jb20wHhcNMjQxMDMxMTg1NjExWhcNMjkxMDMwMTg1NjExWjCBljEL
7
+ MAkGA1UEBhMCVVMxCzAJBgNVBAgMAkNBMRMwEQYDVQQHDApQbGVhc2FudG9uMQww
8
+ CgYDVQQKDANJQ0UxFDASBgNVBAsMC1VJIFBsYXRmb3JtMRIwEAYDVQQDDAlsb2Nh
9
+ bGhvc3QxLTArBgkqhkiG9w0BCQEWHnZpbm90aC5rYWx5YW5hc3VuZGFyYW1AaWNl
10
+ LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAP1YQm5nQotkgTAW
11
+ vuxRAlqLeO8peX0WHcgReIaoNXlMkoYBsiQkkX2pW1WdB1PPmQntE9bhJ2lR8Onq
12
+ //g5tjjfIB05pptbIDd7WCnLCseVHfeCbvOhvFza0qjsKUdoS4xBCWlY9WLR7rfo
13
+ ahv8yi9De+HuSgAmPCf3/IQm1/BvBfG5IDLU2maAruolTQUW+sDj+clQDpucKvS0
14
+ YaJMyfOAFjUj/0FvA2XwzQ9FTQX3Mv4NLXgJzhfNKTpJjgfM5lNEkV4EJmmQPS+5
15
+ BBZbaV1A9yabYEUsAfyYtOJc1tdCjnSCXB3cdnPOx1FBIZCM3CdJXyHnDnvZlzfY
16
+ SSNAR/sCAwEAAaNTMFEwHQYDVR0OBBYEFB/8xooBufI/rf2vXZBhsLmQARwoMB8G
17
+ A1UdIwQYMBaAFB/8xooBufI/rf2vXZBhsLmQARwoMA8GA1UdEwEB/wQFMAMBAf8w
18
+ DQYJKoZIhvcNAQELBQADggEBAEJHfJTGWjrQ3toRb+dbQbWdOeqtHW5uvIZ4Mg3E
19
+ Fb6DIz4xe0AOnWJSTk567nCQjHBYnSvjuCtNIbrREeNkkk2oCWVw5RQKwJjkOKzI
20
+ MiHYsckf5JJKGT2ELRZdHlRWWMZxPKy6pDIQU37R7k+E9Jr8VM62W9A5gZo9WWrG
21
+ Qje98PXE0qXmKKbYP9ZJx3Rsj12+GGJyiNc/pkeY17MX8bfRladueCNkiXbof3Xc
22
+ GwjRWw/OS/Dj4VVgDRsh3T24xh3yHY323t4T/3StzR61ix0/ITh3JUqPGoRiKjHC
23
+ 8YDasQh3yuJfsfZTif0MeGT20bdZPgPgqmUTB2tVYe67aZM=
24
+ -----END CERTIFICATE-----
@@ -0,0 +1,30 @@
1
+ -----BEGIN ENCRYPTED PRIVATE KEY-----
2
+ MIIFJDBWBgkqhkiG9w0BBQ0wSTAxBgkqhkiG9w0BBQwwJAQQRf+eVHsoPx56J/99
3
+ 1cmVewICCAAwDAYIKoZIhvcNAgkFADAUBggqhkiG9w0DBwQIQyQkzwnWuQgEggTI
4
+ 7CvoMlZgiMKLQsZ1+I+ZhKdezUacrMw2vGkCx+Gwuehf/ZdH3VGUAhb8PEV9DPrU
5
+ nAWl8E8opWl/1kjxp9OCNBTxm7Nhg2fF9SriYa0gX+B+9DYMwgu626UC4bBzs6gn
6
+ qDVhPzbYa6WGhK3wOZoAFWw6TFfuztmPc3dZxRX6akVtCL/LA64GQvsYvvLDp+LZ
7
+ jlaceogKyyXiyCLWrNLPQlPsw1OzmXw5FV30zZWjxdqNnB9YfVfWOOYpaxE0Z+yX
8
+ ARrAN8Yg8yRcfAwJmxAwsmDIBJymR97dXEs2yeTYvEcxSjA0ZY5X3n10eIYayfoi
9
+ JBPoeTqmHgkKghR2JrveZkYUIQhCgchHzrGsb+rIqKP1gaXdyaWJvItvEm5Ou7tg
10
+ R2pNMepzlKoyntIyYhMEXJjUwisX5sqzcHa3nKQVfDjWiSViymjxGwOUAUqLhC+j
11
+ DhIlVbf9ZHZm4+jIpJAPrlT3PsfDO9tQ718GliERVLPaHB33BJqB1C0fqM3YCmYH
12
+ 6LaRkgP8dAUKc+VN8roy17NLUxWQKCvNKLRKkLrAXlJ1RYK3EKX0J7RRhUKX35Wj
13
+ llYq39P/nCfw56D4Kh/vHUd0Vn0eoZQAbPnriftpk405C3pQCbbkuDaTnmEJGUj3
14
+ g8h6ctkHDnj4Ord7TeTolMtKlQpt1DbNPKFwEZpR1+E7ojt//DIwaerE6NO1itxG
15
+ xKTMqXUqmcKgQlCmuRzjZKlMmVfQI2cuCiBkWR6O45PXj6JFNipM4qNTVZz3RsH6
16
+ tuLB/JfHhwglP2P/OsCyB39yhfsFhLQXLo5/fUqA9yHUJdd4Nq7V9G36vtQQaUs9
17
+ AQt34ithtWZcmrGxIu/UL6xGYrVSbUZRIlkrWTkRuMw6WGMmv+P5ptG/ZAxsATGp
18
+ A5jSCt4wMGTJMy8s3ksImv0dr8x8NgsEAPKBpxPpktdoj5e0C/ovnsrR0/SJ4SYl
19
+ WB2gFQv9cWwDziQB9SQ+OwvpZ7BwEuHqtsY0vYemvY4m99wSTydHEBL+hCqlbTxo
20
+ 00Rq1BNJrEAYJ0olzc2Uwyw392W9jDFjUSmIcOfYVG6sdbyOaAgTzA4fDNasLfEl
21
+ sEOmNeQfeeaOgVXmXUZpioVeiDxsmaGZMHwwQlmLgdefBsUvh4JxdNxTZFwbttCD
22
+ t1mbH/OaJ8eahCGXREY32qfNb2xwz4oTkwrJxT9lbC82DBSgn+IzZCm3CfjcqZ+j
23
+ kJoXnsAiCRljHSHYE6sTxOr0b5ND8E/x3f9O9rjbR5IcNMO7S6P9q3FwHKGpgKFx
24
+ NTPVBHrnTehkCjEr8uED+VIWkodrk1mLNQt2hGITlkqEiAD209OAl8DuaMtX49FE
25
+ /Op90vfIn7WBxVHLO0Q82NNkHPSDS8N0bhQZFe8IZME3JfIlKn1/6SiZ+0EnYP58
26
+ FdS4EPc3z1ajyI/Q7CEwAt3eMM+w1KA9ypaD33pcpBP3OKP04ps5jSviY2V0UwJY
27
+ iOLvGLoY2cQ4xwAS68ljjoHtSRz76pQlKAG8zHwx+RbtIkkUvtX5lYpSa70YIM1O
28
+ oy3TJwIxvv1ZXyUWn5qm6qLnrmyAj/1/Jknh0+TkjUfsSYLqoOzu1+E0hPGEByJ+
29
+ eG1+pj5536megxAPm8DIZVe208oiwc+e
30
+ -----END ENCRYPTED PRIVATE KEY-----
@@ -0,0 +1 @@
1
+ 4590CB31E21367BEDAECEA967E6BA29B5D70DFFD
@@ -1,20 +1,18 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
- import express from "express";
4
- import cspPolicy from "helmet-csp";
5
3
  import crypto from "crypto";
4
+ import express from "express";
5
+ import helmet from "helmet";
6
6
  const CSP_REPORT_URI = "/diagnostics/v1/csp";
7
7
  const sources = [
8
- "'self'",
9
8
  "http://localhost:*",
9
+ "https://localhost:*",
10
+ "ws://localhost:*",
11
+ "*.ice.com",
10
12
  "*.elliemae.io",
11
13
  "*.elliemae.com",
12
- "*.elliservices.com",
13
- "*.ellielabs.com",
14
- "http://pdx-col.eum-appdynamics.com",
15
- "https://pdx-col.eum-appdynamics.com/",
16
- "https://www.google-analytics.com",
17
- "https://www.googletagmanager.com"
14
+ "*.ellieservices.com",
15
+ "*.ellielabs.com"
18
16
  ];
19
17
  const sendFileWithCSPNonce = ({
20
18
  buildPath,
@@ -28,41 +26,55 @@ const sendFileWithCSPNonce = ({
28
26
  res.sendStatus(404);
29
27
  } else {
30
28
  res.set("Content-Type", "text/html");
29
+ res.set("Reporting-Endpoints", `csp-report-uri="${CSP_REPORT_URI}"`);
30
+ res.set(
31
+ "Permissions-Policy",
32
+ "geolocation=(), camera=(), microphone=(), interest-cohort=()"
33
+ );
31
34
  res.send(html.replace(nonceRegex, res.locals.cspNonce));
32
35
  }
33
36
  });
34
37
  };
35
38
  const getScriptSrc = () => {
36
- const source = (req, res) => `'nonce-${res.locals.cspNonce}'`;
37
- const scriptSrc = sources.concat([source]);
39
+ const source = (_req, res) => `'nonce-${res.locals.cspNonce}'`;
40
+ const scriptSrc = [source, "'strict-dynamic'"];
38
41
  return true ? scriptSrc.concat(["'unsafe-eval'"]) : scriptSrc;
39
42
  };
40
43
  const csp = (app) => {
41
- app.use((req, res, next) => {
42
- res.locals.cspNonce = crypto.randomBytes(16).toString("hex");
44
+ app.use((_req, res, next) => {
45
+ res.locals.cspNonce = crypto.randomBytes(32).toString("base64");
43
46
  next();
44
47
  });
45
48
  app.use(
46
- cspPolicy({
47
- directives: {
48
- defaultSrc: ["'self'"],
49
- baseUri: ["'self'"],
50
- blockAllMixedContent: [],
51
- connectSrc: sources,
52
- fontSrc: sources.concat(["data:"]),
53
- frameAncestors: sources,
54
- imgSrc: sources.concat(["data:"]),
55
- objectSrc: ["'none'"],
56
- scriptSrc: getScriptSrc(),
57
- scriptSrcAttr: ["'none'"],
58
- styleSrc: sources.concat(["'unsafe-inline'"]),
59
- upgradeInsecureRequests: [],
60
- reportUri: CSP_REPORT_URI
49
+ helmet({
50
+ crossOriginOpenerPolicy: { policy: "same-origin-allow-popups" },
51
+ crossOriginResourcePolicy: false,
52
+ contentSecurityPolicy: {
53
+ useDefaults: false,
54
+ directives: {
55
+ defaultSrc: helmet.contentSecurityPolicy.dangerouslyDisableDefaultSrc,
56
+ baseUri: ["'self'"],
57
+ frameAncestors: sources,
58
+ objectSrc: ["'none'"],
59
+ scriptSrc: getScriptSrc(),
60
+ upgradeInsecureRequests: [],
61
+ reportUri: CSP_REPORT_URI,
62
+ reportTo: "csp-report-uri"
63
+ },
64
+ reportOnly: process.env.CSP_REPORT_ONLY !== "false"
61
65
  },
62
- reportOnly: true
66
+ xFrameOptions: false,
67
+ xPermittedCrossDomainPolicies: false,
68
+ xDownloadOptions: false,
69
+ xXssProtection: false
70
+ })
71
+ );
72
+ app.use(
73
+ CSP_REPORT_URI,
74
+ express.json({
75
+ type: ["application/csp-report", "application/reports+json"]
63
76
  })
64
77
  );
65
- app.use(CSP_REPORT_URI, express.json({ type: "application/csp-report" }));
66
78
  app.use(CSP_REPORT_URI, (req, res) => {
67
79
  console.log("CSP Violation: ", req.body);
68
80
  res.status(204).end();
@@ -1,20 +1,30 @@
1
+ import https from "node:https";
2
+ import http from "node:http";
1
3
  import express from "express";
4
+ import { getCertOptions } from "./cert.js";
2
5
  import { logger } from "./logger.js";
3
6
  import {
4
7
  setupDefaultMiddlewares,
5
8
  setupAdditionalMiddlewars
6
9
  } from "./middlewares.js";
7
- import { port, host } from "./utils.js";
10
+ import { port, wsPort, host } from "./utils.js";
11
+ import { isHttps } from "../utils.js";
8
12
  import { loadRoutes } from "./appRoutes.js";
9
- (async function startServer() {
13
+ import { createWSServer } from "./wsServer.js";
14
+ void async function startServer() {
10
15
  const app = express();
11
16
  setupDefaultMiddlewares(app);
12
17
  await loadRoutes(app);
13
18
  setupAdditionalMiddlewars(app);
14
- app.listen(port, host, () => {
19
+ const server = isHttps() ? https.createServer(getCertOptions(), app) : http.createServer(app);
20
+ server.listen(port, host, () => {
15
21
  logger.appStarted(port.toString(), host || "localhost");
16
22
  }).on("error", (err) => {
17
23
  logger.error(err);
18
24
  process.exit(1);
19
25
  });
20
- })();
26
+ const { wsServer } = await createWSServer({
27
+ port: wsPort
28
+ });
29
+ app.locals.wsServer = wsServer;
30
+ }();
@@ -1,5 +1,6 @@
1
1
  import chalk from "chalk";
2
2
  import ip from "ip";
3
+ import { isHttps } from "../utils.js";
3
4
  const divider = chalk.gray("\n-----------------------------------");
4
5
  const logger = {
5
6
  // Called whenever there's an error on the server we want to print
@@ -15,10 +16,12 @@ const logger = {
15
16
  const accessUrls = `${chalk.bold("Access URLs:")}${divider}
16
17
  `;
17
18
  const localHostUrl = `Localhost: ${chalk.magenta(
18
- `http://${host}:${port}`
19
+ `${isHttps() ? "https" : "http"}://${host}:${port}`
19
20
  )}
20
21
  `;
21
- const lanUrl = `LAN: ${chalk.magenta(`http://${ip.address()}:${port}`)}
22
+ const lanUrl = `LAN: ${chalk.magenta(
23
+ `${isHttps() ? "https" : "http"}://${ip.address()}:${port}`
24
+ )}
22
25
  `;
23
26
  const proxy = tunnelStarted ? `
24
27
  Proxy: ${chalk.magenta(tunnelStarted)}` : "";
@@ -27,7 +27,7 @@ const setupDefaultMiddlewares = (app) => {
27
27
  const setupAdditionalMiddlewars = (app, options = {}) => {
28
28
  const { buildPath = paths.buildPath, basePath = paths.basePath } = options;
29
29
  app.use(compression());
30
- app.get(basePath, (req, res) => {
30
+ app.get(basePath, (_req, res) => {
31
31
  sendFileWithCSPNonce({ buildPath, res });
32
32
  });
33
33
  app.use(
@@ -41,7 +41,7 @@ const setupAdditionalMiddlewars = (app, options = {}) => {
41
41
  app.use(expressStaticGzip("cdn", {}));
42
42
  app.get(
43
43
  "*",
44
- (req, res) => sendFileWithCSPNonce({ buildPath, res })
44
+ (_req, res) => sendFileWithCSPNonce({ buildPath, res })
45
45
  );
46
46
  return app;
47
47
  };
@@ -1,13 +1,20 @@
1
1
  import minimist from "minimist";
2
- const argv = minimist(process.argv.slice(2));
2
+ const argv = minimist(
3
+ process.argv.slice(2)
4
+ );
3
5
  const getCWD = () => process.cwd();
4
6
  const port = parseInt(
5
- argv.port || process.env.port || process.env.PORT || "3000",
7
+ argv.port ?? process.env.port ?? process.env.PORT ?? "3000",
8
+ 10
9
+ );
10
+ const host = argv.host ?? process.env.HOST ?? "localhost";
11
+ const wsPort = parseInt(
12
+ argv.wsport ?? process.env.wsport ?? process.env.WSPORT ?? "5000",
6
13
  10
7
14
  );
8
- const host = argv.host || process.env.HOST || "localhost";
9
15
  export {
10
16
  getCWD,
11
17
  host,
12
- port
18
+ port,
19
+ wsPort
13
20
  };
@@ -0,0 +1,98 @@
1
+ import https from "node:https";
2
+ import http from "node:http";
3
+ import * as wsLib from "ws";
4
+ import { getCertOptions } from "./cert.js";
5
+ import { isHttps } from "../utils.js";
6
+ const PING_INTERVAL = 3e4;
7
+ const DEFAULT_PORT = 5001;
8
+ const onSocketError = (err) => {
9
+ console.error(err);
10
+ };
11
+ const authenticate = (token, cb) => {
12
+ if (!token) cb(4401);
13
+ else cb();
14
+ };
15
+ const getAuthToken = (protocols) => {
16
+ const authProtocol = protocols.find(
17
+ (protocol) => protocol.startsWith("auth--")
18
+ );
19
+ if (!authProtocol) return "";
20
+ return authProtocol.split("--")[1]?.trim?.();
21
+ };
22
+ const createWSServer = ({
23
+ port = DEFAULT_PORT,
24
+ pingInterval = PING_INTERVAL,
25
+ onOpen
26
+ }) => {
27
+ let isAlive = false;
28
+ const heartbeat = () => {
29
+ isAlive = true;
30
+ };
31
+ const server = isHttps() ? https.createServer(getCertOptions()) : http.createServer();
32
+ const wsServer = new wsLib.WebSocketServer({ noServer: true });
33
+ server.on("upgrade", (req, socket, head) => {
34
+ socket.on("error", onSocketError);
35
+ wsServer.handleUpgrade(req, socket, head, (ws) => {
36
+ const protocols = req.headers["sec-websocket-protocol"]?.split(",");
37
+ if (!protocols) {
38
+ console.error("no protocols");
39
+ ws.close(4401, "unauthorized");
40
+ socket.destroy();
41
+ socket.removeListener("error", onSocketError);
42
+ return;
43
+ }
44
+ authenticate(getAuthToken(protocols) || "", (errCode) => {
45
+ if (errCode) {
46
+ switch (errCode) {
47
+ case 4401:
48
+ ws.close(errCode, "unauthorized");
49
+ break;
50
+ default:
51
+ ws.close(4400, "Unknown error");
52
+ break;
53
+ }
54
+ socket.destroy();
55
+ socket.removeListener("error", onSocketError);
56
+ } else {
57
+ socket.removeListener("error", onSocketError);
58
+ wsServer.emit("connection", ws, req);
59
+ }
60
+ });
61
+ });
62
+ });
63
+ wsServer.on("connection", (ws) => {
64
+ isAlive = true;
65
+ ws.on("error", console.error);
66
+ ws.on("pong", () => {
67
+ heartbeat();
68
+ });
69
+ ws.on("message", (message) => {
70
+ console.log(
71
+ "message from client:",
72
+ JSON.parse(message)
73
+ );
74
+ ws.send(JSON.stringify(JSON.parse(message)));
75
+ });
76
+ console.log("client connected");
77
+ onOpen?.(ws);
78
+ });
79
+ const interval = setInterval(() => {
80
+ wsServer.clients.forEach((ws) => {
81
+ if (isAlive === false) ws.terminate();
82
+ isAlive = false;
83
+ ws.ping();
84
+ });
85
+ }, pingInterval);
86
+ wsServer.on("close", function close() {
87
+ clearInterval(interval);
88
+ });
89
+ return new Promise((resolve) => {
90
+ server.listen(port, () => {
91
+ console.log(`Websocket server listening on port ${port}`);
92
+ return resolve({ server, wsServer });
93
+ });
94
+ });
95
+ };
96
+ export {
97
+ createWSServer
98
+ };
@@ -0,0 +1,27 @@
1
+ const { TestEnvironment } = require('jest-environment-jsdom');
2
+
3
+ // ICE platform is meant to be run on node > 18
4
+ // "jest-environment-jsdom": "~29.6.3" is instead meant to support node >16
5
+ // features that are supported since node 17 & 18 are not supported in jsdom env
6
+ // the limitation is not relevant for us since we are already running on node 18 anyway,
7
+ // this "ExtendedJSDomEnv" is an extension of the
8
+ // jest.config.cjs
9
+ // {
10
+ // ...
11
+ // testEnvironment: 'jsdom'
12
+ // ...
13
+ // }
14
+ // that actually uses node 18 features that are not supported in "jest-environment-jsdom": "~29.6.3"
15
+
16
+ // https://github.com/facebook/jest/blob/v29.4.3/website/versioned_docs/version-29.4/Configuration.md#testenvironment-string
17
+ class FixJSDOMEnvironment extends TestEnvironment {
18
+ constructor(...args) {
19
+ super(...args);
20
+
21
+ // From here on we are using "node" (currently running version of it) to polyfill jsdom this.global
22
+
23
+ // FIXME https://github.com/jsdom/jsdom/issues/3363
24
+ if (structuredClone) this.global.structuredClone = structuredClone;
25
+ }
26
+ }
27
+ module.exports = FixJSDOMEnvironment;
@@ -0,0 +1,16 @@
1
+ import { matcherHint } from "jest-matcher-utils";
2
+ import { reporter } from "./reporter.js";
3
+ const getMessageAndPass = (violations) => {
4
+ const formatedViolations = reporter(violations);
5
+ const pass = formatedViolations.length === 0;
6
+ if (pass) return { message: () => "", pass };
7
+ return {
8
+ message: () => `${matcherHint(".toHaveNoViolations")}
9
+
10
+ ${formatedViolations}`,
11
+ pass
12
+ };
13
+ };
14
+ export {
15
+ getMessageAndPass
16
+ };
@@ -0,0 +1,4 @@
1
+ import { toHaveNoViolations } from "./toHaveNoViolations.js";
2
+ export {
3
+ toHaveNoViolations
4
+ };
@@ -0,0 +1,30 @@
1
+ import { printReceived } from "jest-matcher-utils";
2
+ const colorYellow = (arg) => `\x1B[93m ${arg ?? ""} \x1B[0m`;
3
+ const colorGrey = (arg) => `\x1B[90m ${arg ?? ""} \x1B[0m`;
4
+ const colorBlue = (arg) => `\x1B[34m ${arg ?? ""} \x1B[0m`;
5
+ const reporter = (violToFormat) => {
6
+ if (violToFormat.length === 0) return "";
7
+ const lineBreak = "\n\n";
8
+ const horizontalLine = "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500";
9
+ return violToFormat.map((violation) => {
10
+ const errorBody = violation.nodes.map((node) => {
11
+ const selector = node.target.join(", ");
12
+ const expectedText = `Expected the HTML found at $('${selector}') to have no violations:${lineBreak}`;
13
+ let violationHelpUrl = "";
14
+ if (violation.helpUrl)
15
+ violationHelpUrl = `You can find more information on this issue here:
16
+ ${colorBlue(
17
+ violation.helpUrl
18
+ )}`;
19
+ return `${expectedText + colorGrey(node.html) + lineBreak}Received:${lineBreak}${printReceived(
20
+ `${violation.help} (${violation.id})`
21
+ )}${lineBreak}${colorYellow(
22
+ node.failureSummary
23
+ )}${lineBreak}${violationHelpUrl}`;
24
+ }).join(lineBreak);
25
+ return errorBody;
26
+ }).join(lineBreak + horizontalLine + lineBreak);
27
+ };
28
+ export {
29
+ reporter
30
+ };
@@ -0,0 +1,11 @@
1
+ const dataAttributeRegexp = /(data-[\S]*)=["']([\S]*)["']/gm;
2
+ const shouldIgnoreNodeViolation = (node, violation) => [...node.html.matchAll(dataAttributeRegexp)].map(([fullMatch, dataKey, dataValue]) => ({
3
+ fullMatch,
4
+ dataKey,
5
+ dataValue
6
+ })).some(
7
+ ({ dataKey, dataValue }) => dataKey === `data-axe-ignore-${violation.id}` && dataValue === "true"
8
+ );
9
+ export {
10
+ shouldIgnoreNodeViolation
11
+ };