@elliemae/pui-cli 9.0.0-next.5 → 9.0.0-next.51

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 (323) hide show
  1. package/app.tsconfig.json +3 -1
  2. package/dist/cjs/babel.config.js +99 -0
  3. package/dist/cjs/cli.js +2 -2
  4. package/dist/cjs/commands/build.js +4 -6
  5. package/dist/cjs/commands/codemod.js +1 -1
  6. package/dist/cjs/commands/gendoc.js +2 -2
  7. package/dist/cjs/commands/lint.js +27 -10
  8. package/dist/cjs/commands/pack.js +3 -4
  9. package/dist/cjs/commands/start.js +3 -3
  10. package/dist/cjs/commands/storybook.js +1 -1
  11. package/dist/cjs/commands/test.js +46 -23
  12. package/dist/cjs/commands/tscheck.js +3 -3
  13. package/dist/cjs/commands/utils.js +37 -10
  14. package/dist/cjs/commands/version.js +1 -1
  15. package/dist/cjs/commands/vitest.js +6 -11
  16. package/dist/cjs/index.cjs +0 -16
  17. package/dist/cjs/index.js +13 -11
  18. package/dist/cjs/lint-config/commitlint.config.js +26 -0
  19. package/dist/cjs/lint-config/eslint/config.js +186 -0
  20. package/dist/cjs/lint-config/eslint/react.js +107 -0
  21. package/dist/cjs/lint-config/eslint/typescript/config.js +97 -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.js +1 -1
  29. package/dist/cjs/pui-config.js +5 -6
  30. package/dist/cjs/release.config.js +46 -0
  31. package/dist/cjs/server/appRoutes.js +5 -8
  32. package/dist/cjs/server/csp.js +6 -5
  33. package/dist/cjs/server/index.js +6 -1
  34. package/dist/cjs/server/logger.js +2 -2
  35. package/dist/cjs/server/middlewares.js +5 -5
  36. package/dist/cjs/server/utils.js +12 -5
  37. package/dist/cjs/server/wsServer.js +125 -0
  38. package/dist/cjs/testing/ExtendedJSDomEnv.cjs +27 -0
  39. package/dist/cjs/testing/extended/axe-core/getMessageAndPass.js +36 -0
  40. package/dist/cjs/testing/extended/axe-core/index.js +24 -0
  41. package/dist/cjs/testing/extended/axe-core/reporter.js +50 -0
  42. package/dist/cjs/testing/extended/axe-core/shouldIgnoreNodeViolation.js +31 -0
  43. package/dist/cjs/testing/extended/axe-core/toHaveNoViolations.js +42 -0
  44. package/dist/cjs/testing/jest.config.cjs +6 -2
  45. package/dist/cjs/testing/jest.polyfills.cjs +30 -0
  46. package/dist/cjs/testing/mocks/svg.js +1 -1
  47. package/dist/cjs/testing/setup-react-env.js +1 -1
  48. package/dist/cjs/testing/setup-test-env.js +0 -2
  49. package/dist/cjs/testing/setup-tests.js +30 -12
  50. package/dist/cjs/testing/vitest.config.js +10 -10
  51. package/dist/cjs/transpile/.swcrc +1 -1
  52. package/dist/cjs/transpile/esbuild.js +48 -15
  53. package/dist/cjs/transpile/react-shim.js +1 -1
  54. package/dist/cjs/update-notifier.js +3 -3
  55. package/dist/cjs/utils.js +4 -5
  56. package/dist/cjs/webpack/helpers.js +29 -23
  57. package/dist/cjs/webpack/webpack.base.babel.js +21 -35
  58. package/dist/cjs/webpack/webpack.dev.babel.js +20 -10
  59. package/dist/cjs/webpack/webpack.lib.base.babel.js +22 -13
  60. package/dist/cjs/webpack/webpack.lib.dev.babel.js +14 -18
  61. package/dist/cjs/webpack/webpack.lib.prod.babel.js +12 -11
  62. package/dist/cjs/webpack/webpack.prod.babel.js +8 -8
  63. package/dist/cjs/webpack/webpack.storybook.js +15 -17
  64. package/dist/esm/babel.config.js +79 -0
  65. package/dist/esm/commands/build.js +2 -4
  66. package/dist/esm/commands/lint.js +26 -8
  67. package/dist/esm/commands/pack.js +1 -2
  68. package/dist/esm/commands/start.js +1 -1
  69. package/dist/esm/commands/test.js +45 -22
  70. package/dist/esm/commands/utils.js +33 -6
  71. package/dist/esm/commands/vitest.js +5 -10
  72. package/dist/esm/index.cjs +0 -16
  73. package/dist/esm/index.js +13 -11
  74. package/dist/esm/lint-config/commitlint.config.js +6 -0
  75. package/dist/esm/lint-config/eslint/config.js +155 -0
  76. package/dist/esm/lint-config/eslint/react.js +76 -0
  77. package/dist/esm/lint-config/eslint/typescript/config.js +67 -0
  78. package/dist/esm/lint-config/{prettier.config.cjs → prettier.config.js} +5 -2
  79. package/dist/esm/lint-config/stylelint.config.js +25 -0
  80. package/dist/esm/monorepo/delete-merged-tags.js +2 -3
  81. package/dist/esm/monorepo/set-registry-version.js +1 -1
  82. package/dist/esm/monorepo/set-workspace-version.js +1 -1
  83. package/dist/esm/pui-config.js +2 -3
  84. package/dist/esm/release.config.js +26 -0
  85. package/dist/esm/server/appRoutes.js +3 -6
  86. package/dist/esm/server/csp.js +2 -1
  87. package/dist/esm/server/index.js +6 -1
  88. package/dist/esm/server/utils.js +11 -4
  89. package/dist/esm/server/wsServer.js +95 -0
  90. package/dist/esm/testing/ExtendedJSDomEnv.cjs +27 -0
  91. package/dist/esm/testing/extended/axe-core/getMessageAndPass.js +16 -0
  92. package/dist/esm/testing/extended/axe-core/index.js +4 -0
  93. package/dist/esm/testing/extended/axe-core/reporter.js +30 -0
  94. package/dist/esm/testing/extended/axe-core/shouldIgnoreNodeViolation.js +11 -0
  95. package/dist/esm/testing/extended/axe-core/toHaveNoViolations.js +22 -0
  96. package/dist/esm/testing/jest.config.cjs +6 -2
  97. package/dist/esm/testing/jest.polyfills.cjs +30 -0
  98. package/dist/esm/testing/setup-test-env.js +0 -2
  99. package/dist/esm/testing/setup-tests.js +29 -11
  100. package/dist/esm/testing/vitest.config.js +8 -8
  101. package/dist/esm/transpile/.swcrc +1 -1
  102. package/dist/esm/transpile/esbuild.js +45 -12
  103. package/dist/esm/update-notifier.js +1 -1
  104. package/dist/esm/utils.js +2 -3
  105. package/dist/esm/webpack/helpers.js +25 -19
  106. package/dist/esm/webpack/webpack.base.babel.js +13 -27
  107. package/dist/esm/webpack/webpack.dev.babel.js +13 -3
  108. package/dist/esm/webpack/webpack.lib.base.babel.js +14 -5
  109. package/dist/esm/webpack/webpack.lib.dev.babel.js +9 -13
  110. package/dist/esm/webpack/webpack.lib.prod.babel.js +12 -7
  111. package/dist/esm/webpack/webpack.prod.babel.js +4 -4
  112. package/dist/esm/webpack/webpack.storybook.js +12 -14
  113. package/dist/types/docusaurus.config.d.ts +3 -0
  114. package/dist/types/docusaurus.config.d.ts.map +1 -0
  115. package/dist/types/{babel.config.d.cts → lib/babel.config.d.ts} +9 -9
  116. package/dist/types/lib/babel.config.d.ts.map +1 -0
  117. package/dist/types/lib/cli.d.ts +3 -0
  118. package/dist/types/lib/cli.d.ts.map +1 -0
  119. package/dist/types/{commands → lib/commands}/build.d.ts +3 -2
  120. package/dist/types/lib/commands/build.d.ts.map +1 -0
  121. package/dist/types/{commands → lib/commands}/codemod.d.ts +3 -2
  122. package/dist/types/lib/commands/codemod.d.ts.map +1 -0
  123. package/dist/types/{commands → lib/commands}/gendoc.d.ts +1 -0
  124. package/dist/types/lib/commands/gendoc.d.ts.map +1 -0
  125. package/dist/types/{commands → lib/commands}/lint.d.ts +4 -2
  126. package/dist/types/lib/commands/lint.d.ts.map +1 -0
  127. package/dist/types/{commands → lib/commands}/pack.d.ts +3 -2
  128. package/dist/types/lib/commands/pack.d.ts.map +1 -0
  129. package/dist/types/{commands → lib/commands}/start.d.ts +3 -2
  130. package/dist/types/lib/commands/start.d.ts.map +1 -0
  131. package/dist/types/{commands → lib/commands}/storybook.d.ts +3 -2
  132. package/dist/types/lib/commands/storybook.d.ts.map +1 -0
  133. package/dist/types/{commands → lib/commands}/test.d.ts +5 -2
  134. package/dist/types/lib/commands/test.d.ts.map +1 -0
  135. package/dist/types/{commands → lib/commands}/tscheck.d.ts +3 -2
  136. package/dist/types/lib/commands/tscheck.d.ts.map +1 -0
  137. package/dist/types/lib/commands/utils.d.ts +39 -0
  138. package/dist/types/lib/commands/utils.d.ts.map +1 -0
  139. package/dist/types/{commands → lib/commands}/version.d.ts +3 -2
  140. package/dist/types/lib/commands/version.d.ts.map +1 -0
  141. package/dist/types/{commands → lib/commands}/vitest.d.ts +3 -2
  142. package/dist/types/lib/commands/vitest.d.ts.map +1 -0
  143. package/dist/types/lib/index.d.cts +4 -0
  144. package/dist/types/lib/index.d.cts.map +1 -0
  145. package/dist/types/{index.d.ts → lib/index.d.ts} +11 -8
  146. package/dist/types/lib/index.d.ts.map +1 -0
  147. package/dist/types/lib/lint-config/commitlint.config.d.ts +5 -0
  148. package/dist/types/lib/lint-config/commitlint.config.d.ts.map +1 -0
  149. package/dist/types/lib/lint-config/eslint/config.d.ts +2 -0
  150. package/dist/types/lib/lint-config/eslint/config.d.ts.map +1 -0
  151. package/dist/types/lib/lint-config/eslint/react.d.ts +2 -0
  152. package/dist/types/lib/lint-config/eslint/react.d.ts.map +1 -0
  153. package/dist/types/lib/lint-config/eslint/typescript/config.d.ts +2 -0
  154. package/dist/types/lib/lint-config/eslint/typescript/config.d.ts.map +1 -0
  155. package/dist/types/{lint-config → lib/lint-config}/lint-staged.config.d.ts +1 -0
  156. package/dist/types/lib/lint-config/lint-staged.config.d.ts.map +1 -0
  157. package/dist/types/lib/lint-config/prettier.config.d.ts +3 -0
  158. package/dist/types/lib/lint-config/prettier.config.d.ts.map +1 -0
  159. package/dist/types/lib/lint-config/stylelint.config.d.ts +14 -0
  160. package/dist/types/lib/lint-config/stylelint.config.d.ts.map +1 -0
  161. package/dist/types/{monorepo → lib/monorepo}/delete-merged-tags.d.ts +1 -0
  162. package/dist/types/lib/monorepo/delete-merged-tags.d.ts.map +1 -0
  163. package/dist/types/{monorepo → lib/monorepo}/set-registry-version.d.ts +1 -0
  164. package/dist/types/lib/monorepo/set-registry-version.d.ts.map +1 -0
  165. package/dist/types/{monorepo → lib/monorepo}/set-workspace-version.d.ts +1 -0
  166. package/dist/types/lib/monorepo/set-workspace-version.d.ts.map +1 -0
  167. package/dist/types/{monorepo → lib/monorepo}/utils.d.cts +1 -0
  168. package/dist/types/lib/monorepo/utils.d.cts.map +1 -0
  169. package/dist/types/{monorepo → lib/monorepo}/utils.d.ts +1 -0
  170. package/dist/types/lib/monorepo/utils.d.ts.map +1 -0
  171. package/dist/types/lib/pui-config.d.ts +2 -0
  172. package/dist/types/lib/pui-config.d.ts.map +1 -0
  173. package/dist/types/lib/release.config.d.ts +11 -0
  174. package/dist/types/lib/release.config.d.ts.map +1 -0
  175. package/dist/types/{server → lib/server}/appRoutes.d.ts +1 -0
  176. package/dist/types/lib/server/appRoutes.d.ts.map +1 -0
  177. package/dist/types/{server → lib/server}/csp.d.ts +3 -2
  178. package/dist/types/lib/server/csp.d.ts.map +1 -0
  179. package/dist/types/lib/server/index.d.ts +2 -0
  180. package/dist/types/lib/server/index.d.ts.map +1 -0
  181. package/dist/types/{server → lib/server}/logger.d.ts +1 -0
  182. package/dist/types/lib/server/logger.d.ts.map +1 -0
  183. package/dist/types/{server → lib/server}/middlewares.d.ts +1 -0
  184. package/dist/types/lib/server/middlewares.d.ts.map +1 -0
  185. package/dist/types/{server → lib/server}/utils.d.ts +2 -0
  186. package/dist/types/lib/server/utils.d.ts.map +1 -0
  187. package/dist/types/lib/server/wsServer.d.ts +14 -0
  188. package/dist/types/lib/server/wsServer.d.ts.map +1 -0
  189. package/dist/types/lib/testing/ExtendedJSDomEnv.d.cts +6 -0
  190. package/dist/types/lib/testing/ExtendedJSDomEnv.d.cts.map +1 -0
  191. package/dist/types/lib/testing/extended/axe-core/getMessageAndPass.d.ts +9 -0
  192. package/dist/types/lib/testing/extended/axe-core/getMessageAndPass.d.ts.map +1 -0
  193. package/dist/types/lib/testing/extended/axe-core/index.d.ts +2 -0
  194. package/dist/types/lib/testing/extended/axe-core/index.d.ts.map +1 -0
  195. package/dist/types/lib/testing/extended/axe-core/reporter.d.ts +3 -0
  196. package/dist/types/lib/testing/extended/axe-core/reporter.d.ts.map +1 -0
  197. package/dist/types/lib/testing/extended/axe-core/shouldIgnoreNodeViolation.d.ts +3 -0
  198. package/dist/types/lib/testing/extended/axe-core/shouldIgnoreNodeViolation.d.ts.map +1 -0
  199. package/dist/types/lib/testing/extended/axe-core/toHaveNoViolations.d.ts +13 -0
  200. package/dist/types/lib/testing/extended/axe-core/toHaveNoViolations.d.ts.map +1 -0
  201. package/dist/types/lib/testing/jest.config.d.cts +46 -0
  202. package/dist/types/lib/testing/jest.config.d.cts.map +1 -0
  203. package/dist/types/{testing → lib/testing}/jest.node.config.d.cts +5 -0
  204. package/dist/types/lib/testing/jest.node.config.d.cts.map +1 -0
  205. package/dist/types/lib/testing/jest.polyfills.d.cts +2 -0
  206. package/dist/types/lib/testing/jest.polyfills.d.cts.map +1 -0
  207. package/dist/types/lib/testing/mocks/axios.d.ts +18 -0
  208. package/dist/types/lib/testing/mocks/axios.d.ts.map +1 -0
  209. package/dist/types/{testing → lib/testing}/mocks/cssModule.d.ts +1 -0
  210. package/dist/types/lib/testing/mocks/cssModule.d.ts.map +1 -0
  211. package/dist/types/{testing → lib/testing}/mocks/html.d.ts +1 -0
  212. package/dist/types/lib/testing/mocks/html.d.ts.map +1 -0
  213. package/dist/types/{testing → lib/testing}/mocks/image.d.ts +1 -0
  214. package/dist/types/lib/testing/mocks/image.d.ts.map +1 -0
  215. package/dist/types/lib/testing/mocks/matchMedia.d.ts +2 -0
  216. package/dist/types/lib/testing/mocks/matchMedia.d.ts.map +1 -0
  217. package/dist/types/lib/testing/mocks/pui-app-loader.d.ts +2 -0
  218. package/dist/types/lib/testing/mocks/pui-app-loader.d.ts.map +1 -0
  219. package/dist/types/{testing → lib/testing}/mocks/pui-diagnostics.d.ts +14 -13
  220. package/dist/types/lib/testing/mocks/pui-diagnostics.d.ts.map +1 -0
  221. package/dist/types/{testing → lib/testing}/mocks/pui-user-monitoring.d.ts +1 -0
  222. package/dist/types/lib/testing/mocks/pui-user-monitoring.d.ts.map +1 -0
  223. package/dist/types/{testing → lib/testing}/mocks/retry-axios.d.ts +1 -0
  224. package/dist/types/lib/testing/mocks/retry-axios.d.ts.map +1 -0
  225. package/dist/types/{testing → lib/testing}/mocks/svg.d.ts +1 -0
  226. package/dist/types/lib/testing/mocks/svg.d.ts.map +1 -0
  227. package/dist/types/{testing → lib/testing}/mocks/webpack-hmr.d.ts +1 -0
  228. package/dist/types/lib/testing/mocks/webpack-hmr.d.ts.map +1 -0
  229. package/dist/types/{testing → lib/testing}/resolver.d.cts +1 -0
  230. package/dist/types/lib/testing/resolver.d.cts.map +1 -0
  231. package/dist/types/lib/testing/setup-react-env.d.ts +2 -0
  232. package/dist/types/lib/testing/setup-react-env.d.ts.map +1 -0
  233. package/dist/types/lib/testing/setup-test-env.d.ts +2 -0
  234. package/dist/types/lib/testing/setup-test-env.d.ts.map +1 -0
  235. package/dist/types/lib/testing/setup-tests.d.ts +2 -0
  236. package/dist/types/lib/testing/setup-tests.d.ts.map +1 -0
  237. package/dist/types/lib/testing/vitest.config.d.ts +2 -0
  238. package/dist/types/lib/testing/vitest.config.d.ts.map +1 -0
  239. package/dist/types/lib/tests/basic.test.d.ts +1 -0
  240. package/dist/types/lib/tests/basic.test.d.ts.map +1 -0
  241. package/dist/types/{transpile → lib/transpile}/esbuild.d.ts +4 -3
  242. package/dist/types/lib/transpile/esbuild.d.ts.map +1 -0
  243. package/dist/types/{transpile → lib/transpile}/react-shim.d.ts +1 -0
  244. package/dist/types/lib/transpile/react-shim.d.ts.map +1 -0
  245. package/dist/types/lib/transpile/swcrc.config.d.cts +2 -0
  246. package/dist/types/lib/transpile/swcrc.config.d.cts.map +1 -0
  247. package/dist/types/lib/typedoc.d.cts +4 -0
  248. package/dist/types/lib/typedoc.d.cts.map +1 -0
  249. package/dist/types/{update-notifier.d.ts → lib/update-notifier.d.ts} +1 -0
  250. package/dist/types/lib/update-notifier.d.ts.map +1 -0
  251. package/dist/types/{utils.d.cts → lib/utils.d.cts} +1 -0
  252. package/dist/types/lib/utils.d.cts.map +1 -0
  253. package/dist/types/{utils.d.ts → lib/utils.d.ts} +1 -0
  254. package/dist/types/lib/utils.d.ts.map +1 -0
  255. package/dist/types/{webpack → lib/webpack}/helpers.d.ts +5 -1
  256. package/dist/types/lib/webpack/helpers.d.ts.map +1 -0
  257. package/dist/types/{webpack → lib/webpack}/webpack.base.babel.d.ts +1 -0
  258. package/dist/types/lib/webpack/webpack.base.babel.d.ts.map +1 -0
  259. package/dist/types/{webpack → lib/webpack}/webpack.dev.babel.d.ts +1 -0
  260. package/dist/types/lib/webpack/webpack.dev.babel.d.ts.map +1 -0
  261. package/dist/types/{webpack → lib/webpack}/webpack.lib.base.babel.d.ts +1 -0
  262. package/dist/types/lib/webpack/webpack.lib.base.babel.d.ts.map +1 -0
  263. package/dist/types/{webpack → lib/webpack}/webpack.lib.dev.babel.d.ts +1 -0
  264. package/dist/types/lib/webpack/webpack.lib.dev.babel.d.ts.map +1 -0
  265. package/dist/types/{webpack → lib/webpack}/webpack.lib.prod.babel.d.ts +1 -0
  266. package/dist/types/lib/webpack/webpack.lib.prod.babel.d.ts.map +1 -0
  267. package/dist/types/{webpack → lib/webpack}/webpack.prod.babel.d.ts +1 -0
  268. package/dist/types/lib/webpack/webpack.prod.babel.d.ts.map +1 -0
  269. package/dist/types/{webpack → lib/webpack}/webpack.storybook.d.ts +1 -1
  270. package/dist/types/lib/webpack/webpack.storybook.d.ts.map +1 -0
  271. package/dist/types/tsconfig.tsbuildinfo +1 -0
  272. package/library.tsconfig.json +6 -1
  273. package/nx.json +97 -0
  274. package/package.json +210 -194
  275. package/dist/cjs/babel.config.cjs +0 -97
  276. package/dist/cjs/dummy.js +0 -1
  277. package/dist/cjs/lint-config/commitlint.config.cjs +0 -1
  278. package/dist/cjs/lint-config/eslint/common.cjs +0 -163
  279. package/dist/cjs/lint-config/eslint/non-react.cjs +0 -14
  280. package/dist/cjs/lint-config/eslint/react.cjs +0 -26
  281. package/dist/cjs/lint-config/eslint/typescript/common.cjs +0 -49
  282. package/dist/cjs/lint-config/eslint/typescript/non-react.cjs +0 -12
  283. package/dist/cjs/lint-config/eslint/typescript/react.cjs +0 -19
  284. package/dist/cjs/lint-config/prettier.config.cjs +0 -8
  285. package/dist/cjs/lint-config/stylelint.config.cjs +0 -19
  286. package/dist/cjs/release.config.cjs +0 -24
  287. package/dist/esm/babel.config.cjs +0 -97
  288. package/dist/esm/dummy.js +0 -0
  289. package/dist/esm/lint-config/commitlint.config.cjs +0 -1
  290. package/dist/esm/lint-config/eslint/common.cjs +0 -163
  291. package/dist/esm/lint-config/eslint/non-react.cjs +0 -14
  292. package/dist/esm/lint-config/eslint/react.cjs +0 -26
  293. package/dist/esm/lint-config/eslint/typescript/common.cjs +0 -49
  294. package/dist/esm/lint-config/eslint/typescript/non-react.cjs +0 -12
  295. package/dist/esm/lint-config/eslint/typescript/react.cjs +0 -19
  296. package/dist/esm/lint-config/stylelint.config.cjs +0 -19
  297. package/dist/esm/release.config.cjs +0 -24
  298. package/dist/types/cli.d.ts +0 -2
  299. package/dist/types/commands/utils.d.ts +0 -17
  300. package/dist/types/dummy.d.ts +0 -0
  301. package/dist/types/index.d.cts +0 -9
  302. package/dist/types/lint-config/commitlint.config.d.cts +0 -4
  303. package/dist/types/lint-config/eslint/common.d.cts +0 -130
  304. package/dist/types/lint-config/eslint/non-react.d.cts +0 -96
  305. package/dist/types/lint-config/eslint/react.d.cts +0 -126
  306. package/dist/types/lint-config/eslint/typescript/common.d.cts +0 -40
  307. package/dist/types/lint-config/eslint/typescript/non-react.d.cts +0 -90
  308. package/dist/types/lint-config/eslint/typescript/react.d.cts +0 -121
  309. package/dist/types/lint-config/prettier.config.d.cts +0 -8
  310. package/dist/types/lint-config/stylelint.config.d.cts +0 -10
  311. package/dist/types/pui-config.d.ts +0 -1
  312. package/dist/types/release.config.d.cts +0 -7
  313. package/dist/types/server/index.d.ts +0 -1
  314. package/dist/types/testing/jest.config.d.cts +0 -41
  315. package/dist/types/testing/mocks/axios.d.ts +0 -17
  316. package/dist/types/testing/mocks/matchMedia.d.ts +0 -1
  317. package/dist/types/testing/mocks/pui-app-loader.d.ts +0 -1
  318. package/dist/types/testing/setup-react-env.d.ts +0 -1
  319. package/dist/types/testing/setup-test-env.d.ts +0 -1
  320. package/dist/types/testing/setup-tests.d.ts +0 -1
  321. package/dist/types/testing/vitest.config.d.ts +0 -1
  322. package/dist/types/transpile/swcrc.config.d.cts +0 -1
  323. package/dist/types/typedoc.d.cts +0 -3
@@ -0,0 +1,155 @@
1
+ import globals from "globals";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { FlatCompat } from "@eslint/eslintrc";
5
+ import js from "@eslint/js";
6
+ import importPlugin from "eslint-plugin-import";
7
+ import jest from "eslint-plugin-jest";
8
+ import jsdoc from "eslint-plugin-jsdoc";
9
+ import eslintConfigPrettier from "eslint-config-prettier";
10
+ import { config as tsConfig } from "./typescript/config.js";
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = path.dirname(__filename);
13
+ const compat = new FlatCompat({
14
+ baseDirectory: __dirname
15
+ });
16
+ const importConfig = {
17
+ // All eslint-plugin-import config is here
18
+ languageOptions: {
19
+ parserOptions: {
20
+ // Eslint doesn't supply ecmaVersion in `parser.js` `context.parserOptions`
21
+ // This is required to avoid ecmaVersion < 2015 error or 'import' / 'export' error
22
+ ecmaVersion: "latest",
23
+ sourceType: "module"
24
+ }
25
+ },
26
+ plugins: { import: importPlugin },
27
+ settings: {
28
+ // This will do the trick
29
+ "import/parsers": {
30
+ espree: [".js", ".cjs", ".mjs", ".jsx"]
31
+ },
32
+ "import/resolver": {
33
+ typescript: true,
34
+ node: true
35
+ }
36
+ },
37
+ rules: {
38
+ ...importPlugin.configs["recommended"].rules
39
+ }
40
+ };
41
+ const e2eTestConfig = {
42
+ files: ["*.func.spec.js", "*.visual.spec.js"],
43
+ rules: {
44
+ "jest/valid-expect": "off"
45
+ }
46
+ };
47
+ const jestConfig = {
48
+ files: ["**/*.test.*", "**/testing/**/*.js"],
49
+ ...jest.configs["flat/recommended"]
50
+ };
51
+ const ignores = {
52
+ ignores: [
53
+ "build/*",
54
+ "**/node_modules/",
55
+ "dist/*",
56
+ "reports/*",
57
+ "coverage/*",
58
+ "demo/*",
59
+ "docs/*",
60
+ "temp/*",
61
+ "**/vendor/*.js",
62
+ ".docusaurus/*"
63
+ ]
64
+ };
65
+ const options = {
66
+ languageOptions: {
67
+ ecmaVersion: "latest",
68
+ sourceType: "module",
69
+ globals: {
70
+ ...globals.builtin,
71
+ ...globals.browser,
72
+ ...globals.es2021,
73
+ ...globals.nodeBuiltin,
74
+ ...globals.node,
75
+ ...globals.serviceworker
76
+ }
77
+ },
78
+ plugins: { jsdoc },
79
+ settings: {
80
+ react: {
81
+ version: "detect"
82
+ },
83
+ jest: {
84
+ version: 28
85
+ }
86
+ }
87
+ };
88
+ const rules = {
89
+ "arrow-body-style": [2, "as-needed"],
90
+ "class-methods-use-this": 0,
91
+ "import/imports-first": 0,
92
+ "import/newline-after-import": 0,
93
+ "import/no-dynamic-require": 0,
94
+ "import/no-extraneous-dependencies": 0,
95
+ "import/no-named-as-default": 0,
96
+ "import/no-unresolved": [
97
+ 2,
98
+ { caseSensitive: true, caseSensitiveStrict: true }
99
+ ],
100
+ // Tip: https://github.com/import-js/eslint-plugin-import/issues/1868
101
+ "import/no-webpack-loader-syntax": 0,
102
+ "import/prefer-default-export": 0,
103
+ "import/extensions": [
104
+ 2,
105
+ "never",
106
+ {
107
+ json: "ignorePackages",
108
+ js: "ignorePackages"
109
+ }
110
+ ],
111
+ indent: [
112
+ 2,
113
+ 2,
114
+ {
115
+ SwitchCase: 1
116
+ }
117
+ ],
118
+ complexity: ["error", { max: 10 }],
119
+ "max-depth": ["error", { max: 4 }],
120
+ "max-lines-per-function": 0,
121
+ "max-nested-callbacks": ["error", { max: 3 }],
122
+ "max-params": ["error", { max: 3 }],
123
+ "max-statements": ["error", { max: 20 }],
124
+ "max-len": 0,
125
+ "newline-per-chained-call": 0,
126
+ "no-confusing-arrow": 0,
127
+ "no-console": 1,
128
+ "no-param-reassign": ["error", { props: false }],
129
+ "no-unused-vars": 2,
130
+ "no-use-before-define": 0,
131
+ "prefer-template": 2,
132
+ "require-yield": 0,
133
+ "jsdoc/require-jsdoc": 0,
134
+ "eslint-comments/disable-enable-pair": ["error", { allowWholeFile: true }]
135
+ };
136
+ const config = [
137
+ ignores,
138
+ js.configs.recommended,
139
+ jestConfig,
140
+ ...compat.extends("plugin:eslint-comments/recommended"),
141
+ ...compat.extends("plugin:wdio/recommended"),
142
+ ...compat.extends("plugin:testing-library/dom"),
143
+ ...compat.extends("plugin:storybook/recommended"),
144
+ importConfig,
145
+ e2eTestConfig,
146
+ options,
147
+ eslintConfigPrettier,
148
+ {
149
+ rules
150
+ },
151
+ ...tsConfig
152
+ ];
153
+ export {
154
+ config
155
+ };
@@ -0,0 +1,76 @@
1
+ import path from "node:path";
2
+ import { fileURLToPath } from "node:url";
3
+ import { FlatCompat } from "@eslint/eslintrc";
4
+ import { config as baseConfig } from "./config.js";
5
+ import reactRecommended from "eslint-plugin-react/configs/recommended";
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = path.dirname(__filename);
8
+ const compat = new FlatCompat({
9
+ baseDirectory: __dirname
10
+ });
11
+ const reactRules = {
12
+ "jsx-a11y/aria-props": 2,
13
+ "jsx-a11y/heading-has-content": 0,
14
+ "jsx-a11y/label-has-associated-control": [
15
+ 2,
16
+ {
17
+ // NOTE: If this error triggers, either disable it or add
18
+ // your custom components, labels and attributes via these options
19
+ // See https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/label-has-associated-control.md
20
+ controlComponents: ["Input"]
21
+ }
22
+ ],
23
+ "jsx-a11y/label-has-for": 0,
24
+ "jsx-a11y/mouse-events-have-key-events": 2,
25
+ "jsx-a11y/role-has-required-aria-props": 2,
26
+ "jsx-a11y/role-supports-aria-props": 2,
27
+ "react/destructuring-assignment": 0,
28
+ "react-hooks/rules-of-hooks": "error",
29
+ "react/jsx-closing-tag-location": 0,
30
+ "react/forbid-prop-types": 0,
31
+ "react/jsx-first-prop-new-line": [2, "multiline"],
32
+ "react/jsx-no-target-blank": 0,
33
+ "react/jsx-props-no-spreading": 0,
34
+ "react/jsx-uses-vars": 2,
35
+ "react/require-default-props": 0,
36
+ "react/require-extension": 0,
37
+ "react/self-closing-comp": 0,
38
+ "react/sort-comp": 0,
39
+ "react/react-in-jsx-scope": 0,
40
+ "react/jsx-filename-extension": [
41
+ 1,
42
+ { extensions: [".js", ".jsx", ".tsx", ".mdx"] }
43
+ ],
44
+ "react/function-component-definition": [
45
+ 2,
46
+ { namedComponents: "arrow-function" }
47
+ ],
48
+ "redux-saga/no-yield-in-race": 2,
49
+ "redux-saga/yield-effects": 2
50
+ };
51
+ const reactRecommendedConfig = {
52
+ ...reactRecommended,
53
+ languageOptions: {
54
+ ...reactRecommended.languageOptions
55
+ }
56
+ };
57
+ const addFileOverride = (configs) => configs.map((config2) => ({
58
+ ...config2,
59
+ files: ["*.jsx", "*.tsx"]
60
+ }));
61
+ const config = [
62
+ ...baseConfig,
63
+ ...addFileOverride([
64
+ reactRecommendedConfig,
65
+ ...compat.extends("plugin:react-hooks/recommended"),
66
+ ...compat.extends("plugin:jsx-a11y/recommended"),
67
+ ...compat.extends("plugin:redux-saga/recommended"),
68
+ ...compat.extends("plugin:mdx/recommended"),
69
+ {
70
+ rules: reactRules
71
+ }
72
+ ])
73
+ ];
74
+ export {
75
+ config
76
+ };
@@ -0,0 +1,67 @@
1
+ import tseslint from "typescript-eslint";
2
+ import importPlugin from "eslint-plugin-import";
3
+ const importTypedConfig = {
4
+ settings: {
5
+ "import/resolver": {
6
+ typescript: true,
7
+ node: true
8
+ }
9
+ },
10
+ rules: {
11
+ ...importPlugin.configs["typescript"].rules
12
+ }
13
+ };
14
+ const rules = {
15
+ "@typescript-eslint/explicit-module-boundary-types": "off",
16
+ "@typescript-eslint/explicit-function-return-type": "off",
17
+ "@typescript-eslint/no-use-before-define": [
18
+ "error",
19
+ { functions: false, classes: true, variables: true, typedefs: true }
20
+ ],
21
+ "@typescript-eslint/unbound-method": [
22
+ "error",
23
+ {
24
+ ignoreStatic: true
25
+ }
26
+ ],
27
+ "@typescript-eslint/no-floating-promises": [
28
+ "error",
29
+ {
30
+ ignoreIIFE: true
31
+ }
32
+ ]
33
+ };
34
+ const options = {
35
+ languageOptions: {
36
+ parserOptions: {
37
+ tsconfigRootDir: process.cwd(),
38
+ project: true
39
+ }
40
+ },
41
+ settings: {
42
+ "import/resolver": {
43
+ typescript: {
44
+ alwaysTryTypes: true
45
+ }
46
+ },
47
+ "import/parsers": {
48
+ "@typescript-eslint/parser": [".ts", ".tsx"]
49
+ }
50
+ }
51
+ };
52
+ const addFileOverride = (configs) => configs.map((config2) => ({
53
+ ...config2,
54
+ files: ["*.ts", "*.tsx"]
55
+ }));
56
+ const config = addFileOverride([
57
+ options,
58
+ ...tseslint.configs.recommendedTypeChecked,
59
+ ...tseslint.configs.stylisticTypeChecked,
60
+ importTypedConfig,
61
+ {
62
+ rules
63
+ }
64
+ ]);
65
+ export {
66
+ config
67
+ };
@@ -1,8 +1,11 @@
1
- exports.prettierConfig = {
1
+ const prettierConfig = {
2
2
  printWidth: 80,
3
3
  tabWidth: 2,
4
4
  useTabs: false,
5
5
  semi: true,
6
6
  singleQuote: true,
7
- trailingComma: 'all',
7
+ trailingComma: "all"
8
+ };
9
+ export {
10
+ prettierConfig
8
11
  };
@@ -0,0 +1,25 @@
1
+ const stylelintConfig = {
2
+ ignoreFiles: [
3
+ "/dist/**/*",
4
+ "/coverage/**/*",
5
+ "/build/**/*",
6
+ "/reports/**/*",
7
+ "/temp/**/*",
8
+ "/docs/**/*",
9
+ "/demo/**/*",
10
+ "/node_modules/**/*",
11
+ "/vendor/**/*"
12
+ ],
13
+ extends: ["stylelint-config-standard"],
14
+ customSyntax: "postcss-styled-syntax",
15
+ rules: {
16
+ "selector-type-no-unknown": null,
17
+ "function-no-unknown": null,
18
+ "value-no-vendor-prefix": true,
19
+ "property-no-vendor-prefix": true,
20
+ "no-empty-source": null
21
+ }
22
+ };
23
+ export {
24
+ stylelintConfig
25
+ };
@@ -3,7 +3,7 @@ const cwd = process.cwd();
3
3
  const execaOptions = { cwd, stdio: "inherit" };
4
4
  const semVerRegEx = /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;
5
5
  const isSemVersion = (tagName) => semVerRegEx.test(tagName);
6
- const branchName = (process.env.BRANCH_NAME || "master").toLowerCase();
6
+ const branchName = (process.env.BRANCH_NAME ?? "master").toLowerCase();
7
7
  const branchTags = {
8
8
  master: /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/,
9
9
  next: /^v.*-next\.(0|[1-9]\d*)/,
@@ -12,8 +12,7 @@ const branchTags = {
12
12
  };
13
13
  const deleteTags = (cmd, filter) => {
14
14
  const result = execSync(cmd, { cwd });
15
- if (!result)
16
- return;
15
+ if (!result) return;
17
16
  const tags = result.toString().split("\n").join(" ");
18
17
  execSync(`git tag -d ${filter ? filter(tags) : tags}`, { cwd });
19
18
  };
@@ -2,7 +2,7 @@ import { readFile, writeFile } from "node:fs/promises";
2
2
  import fg from "fast-glob";
3
3
  import normalizePath from "normalize-path";
4
4
  import { findMonoRepoRoot } from "./utils.js";
5
- const monorepoRoot = normalizePath(findMonoRepoRoot() || "");
5
+ const monorepoRoot = normalizePath(findMonoRepoRoot() ?? "");
6
6
  const setRegistryVersion = async () => {
7
7
  const files = await fg([
8
8
  `${monorepoRoot}/libs/*/package.json`,
@@ -2,7 +2,7 @@ import { readFile, writeFile } from "node:fs/promises";
2
2
  import fg from "fast-glob";
3
3
  import normalizePath from "normalize-path";
4
4
  import { findMonoRepoRoot } from "./utils.js";
5
- const monorepoRoot = normalizePath(findMonoRepoRoot() || "");
5
+ const monorepoRoot = normalizePath(findMonoRepoRoot() ?? "");
6
6
  const setWorkspaceVersion = async () => {
7
7
  const files = await fg([
8
8
  `${monorepoRoot}/libs/*/package.json`,
@@ -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}`
@@ -1,12 +1,13 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ import crypto from "crypto";
3
4
  import express from "express";
4
5
  import cspPolicy from "helmet-csp";
5
- import crypto from "crypto";
6
6
  const CSP_REPORT_URI = "/diagnostics/v1/csp";
7
7
  const sources = [
8
8
  "'self'",
9
9
  "http://localhost:*",
10
+ "ws://localhost:*",
10
11
  "*.elliemae.io",
11
12
  "*.elliemae.com",
12
13
  "*.elliservices.com",
@@ -4,8 +4,9 @@ import {
4
4
  setupDefaultMiddlewares,
5
5
  setupAdditionalMiddlewars
6
6
  } from "./middlewares.js";
7
- import { port, host } from "./utils.js";
7
+ import { port, wsPort, host } from "./utils.js";
8
8
  import { loadRoutes } from "./appRoutes.js";
9
+ import { createWSServer } from "./wsServer.js";
9
10
  (async function startServer() {
10
11
  const app = express();
11
12
  setupDefaultMiddlewares(app);
@@ -17,4 +18,8 @@ import { loadRoutes } from "./appRoutes.js";
17
18
  logger.error(err);
18
19
  process.exit(1);
19
20
  });
21
+ const { wsServer } = await createWSServer({
22
+ port: wsPort
23
+ });
24
+ app.locals.wsServer = wsServer;
20
25
  })();
@@ -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,95 @@
1
+ import http from "node:http";
2
+ import * as wsLib from "ws";
3
+ const PING_INTERVAL = 3e4;
4
+ const DEFAULT_PORT = 5001;
5
+ const onSocketError = (err) => {
6
+ console.error(err);
7
+ };
8
+ const authenticate = (token, cb) => {
9
+ if (!token) cb(4401);
10
+ else cb();
11
+ };
12
+ const getAuthToken = (protocols) => {
13
+ const authProtocol = protocols.find(
14
+ (protocol) => protocol.startsWith("auth--")
15
+ );
16
+ if (!authProtocol) return "";
17
+ return authProtocol.split("--")[1]?.trim?.();
18
+ };
19
+ const createWSServer = ({
20
+ port = DEFAULT_PORT,
21
+ pingInterval = PING_INTERVAL,
22
+ onOpen
23
+ }) => {
24
+ let isAlive = false;
25
+ const heartbeat = () => {
26
+ isAlive = true;
27
+ };
28
+ const httpServer = http.createServer();
29
+ const wsServer = new wsLib.WebSocketServer({ noServer: true });
30
+ httpServer.on("upgrade", (req, socket, head) => {
31
+ socket.on("error", onSocketError);
32
+ wsServer.handleUpgrade(req, socket, head, (ws) => {
33
+ const protocols = req.headers["sec-websocket-protocol"]?.split(",");
34
+ if (!protocols) {
35
+ console.error("no protocols");
36
+ ws.close(4401, "unauthorized");
37
+ socket.destroy();
38
+ socket.removeListener("error", onSocketError);
39
+ return;
40
+ }
41
+ authenticate(getAuthToken(protocols) || "", (errCode) => {
42
+ if (errCode) {
43
+ switch (errCode) {
44
+ case 4401:
45
+ ws.close(errCode, "unauthorized");
46
+ break;
47
+ default:
48
+ ws.close(4400, "Unknown error");
49
+ break;
50
+ }
51
+ socket.destroy();
52
+ socket.removeListener("error", onSocketError);
53
+ } else {
54
+ socket.removeListener("error", onSocketError);
55
+ wsServer.emit("connection", ws, req);
56
+ }
57
+ });
58
+ });
59
+ });
60
+ wsServer.on("connection", (ws) => {
61
+ isAlive = true;
62
+ ws.on("error", console.error);
63
+ ws.on("pong", () => {
64
+ heartbeat();
65
+ });
66
+ ws.on("message", (message) => {
67
+ console.log(
68
+ "message from client:",
69
+ JSON.parse(message)
70
+ );
71
+ ws.send(JSON.stringify(JSON.parse(message)));
72
+ });
73
+ console.log("client connected");
74
+ onOpen?.(ws);
75
+ });
76
+ const interval = setInterval(() => {
77
+ wsServer.clients.forEach((ws) => {
78
+ if (isAlive === false) ws.terminate();
79
+ isAlive = false;
80
+ ws.ping();
81
+ });
82
+ }, pingInterval);
83
+ wsServer.on("close", function close() {
84
+ clearInterval(interval);
85
+ });
86
+ return new Promise((resolve) => {
87
+ httpServer.listen(port, () => {
88
+ console.log(`Websocket server listening on port ${port}`);
89
+ return resolve({ httpServer, wsServer });
90
+ });
91
+ });
92
+ };
93
+ export {
94
+ createWSServer
95
+ };
@@ -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
+ };