From b46b17b6d8f2a40c4566c1ad727403f3192de6e7 Mon Sep 17 00:00:00 2001 From: Jaidev Singh Bhui Date: Tue, 16 Jun 2026 17:03:04 +0530 Subject: [PATCH 1/5] add react19 support; tests migrated to rtl --- package-lock.json | 660 +++----- package.json | 12 +- .../__snapshots__/auth_button.test.jsx.snap | 77 +- src/__tests__/auth_button.test.jsx | 9 +- .../__snapshots__/login_pane.test.jsx.snap | 716 +++++++-- .../password_reset_confirmation.test.jsx.snap | 70 +- .../reset_password.test.jsx.snap | 106 +- .../signed_up_confirmation.test.jsx.snap | 70 +- .../connection/database/login_pane.test.jsx | 2 +- .../__snapshots__/hrd_pane.test.js.snap | 395 +++-- .../__snapshots__/hrd_screen.test.js.snap | 180 +-- .../quick_auth_screen.test.jsx.snap | 230 ++- .../connection/enterprise/hrd_pane.test.js | 3 +- .../__snapshots__/ask_vcode.test.jsx.snap | 86 +- .../email_sent_confirmation.test.jsx.snap | 195 ++- .../signed_in_confirmation.test.jsx.snap | 70 +- .../last_login_screen.test.jsx.snap | 248 ++- .../core/sso/last_login_screen.test.jsx | 14 +- .../classic/__snapshots__/login.test.jsx.snap | 275 ++-- .../mfa_login_screen.test.jsx.snap | 22 +- .../__snapshots__/sign_up_pane.test.jsx.snap | 568 ++++--- .../sign_up_screen.test.jsx.snap | 150 +- .../engine/classic/mfa_login_screen.test.jsx | 3 +- .../engine/classic/sign_up_pane.test.jsx | 7 +- .../engine/classic/sign_up_screen.test.jsx | 3 +- .../social_or_email_login_screen.test.js.snap | 118 +- ..._or_phone_number_login_screen.test.js.snap | 96 +- .../__snapshots__/custom_input.test.jsx.snap | 305 ++-- .../__snapshots__/email_pane.test.jsx.snap | 90 +- .../__snapshots__/login_pane.test.jsx.snap | 462 +++--- .../__snapshots__/mfa_code_pane.test.jsx.snap | 38 +- .../option_selection_pane.test.jsx.snap | 22 +- .../__snapshots__/password_pane.test.jsx.snap | 299 ++-- .../phone_number_pane.test.jsx.snap | 314 +--- .../social_buttons_pane.test.jsx.snap | 156 +- .../__snapshots__/username_pane.test.jsx.snap | 103 +- .../__snapshots__/vcode_pane.test.jsx.snap | 230 +-- src/__tests__/field/captcha.test.jsx | 192 +-- .../__snapshots__/arkose.test.jsx.snap | 16 +- .../__snapshots__/auth0_v2.test.jsx.snap | 16 +- .../friendlyCaptcha.test.jsx.snap | 16 +- .../__snapshots__/hcaptcha.test.jsx.snap | 16 +- .../recaptcha_enterprise.test.jsx.snap | 16 +- .../__snapshots__/recaptchav2.test.jsx.snap | 16 +- src/__tests__/field/captcha/arkose.test.jsx | 4 +- src/__tests__/field/captcha/auth0_v2.test.jsx | 2 + .../field/captcha/friendlyCaptcha.test.jsx | 4 +- src/__tests__/field/captcha/hcaptcha.test.jsx | 4 +- .../captcha/recaptcha_enterprise.test.jsx | 4 +- .../field/captcha/recaptchav2.test.jsx | 4 +- .../captcha/third_party_captcha.test.jsx | 261 ++- src/__tests__/field/custom_input.test.jsx | 10 +- src/__tests__/field/email_pane.test.jsx | 12 +- src/__tests__/field/login_pane.test.jsx | 9 +- src/__tests__/field/mfa_code_pane.test.jsx | 6 +- .../field/option_selection_pane.test.jsx | 10 +- src/__tests__/field/password_pane.test.jsx | 12 +- .../field/phone_number_pane.test.jsx | 10 +- .../field/social_buttons_pane.test.jsx | 14 +- src/__tests__/field/username_pane.test.jsx | 12 +- src/__tests__/field/vcode_pane.test.jsx | 13 +- src/__tests__/setup-tests.js | 5 +- src/__tests__/testUtils.js | 39 +- .../ui/box/__snapshots__/chrome.test.jsx.snap | 1396 +++++++---------- .../confirmation_pane.test.jsx.snap | 154 +- .../box/__snapshots__/container.test.jsx.snap | 56 +- .../global_message.test.jsx.snap | 54 +- src/__tests__/ui/box/global_message.test.jsx | 64 +- .../__snapshots__/input_wrap.test.jsx.snap | 18 +- src/__tests__/ui/input/email_input.test.jsx | 8 +- .../input/password/password_strength.test.jsx | 6 +- .../ui/input/password_input.test.jsx | 43 +- 72 files changed, 4437 insertions(+), 4489 deletions(-) diff --git a/package-lock.json b/package-lock.json index 10fb5c568..4174d6c15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,8 +20,8 @@ "password-sheriff": "^2.0.0", "prop-types": "^15.8.0", "qs": "^6.14.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^18.2.0 || ^19.0.0", + "react-dom": "^18.2.0 || ^19.0.0", "react-transition-group": "^4.4.5", "url-join": "^1.1.0", "validator": "^13.15.22" @@ -48,8 +48,10 @@ "@babel/plugin-syntax-import-meta": "^7.0.0", "@babel/preset-env": "^7.0.0", "@babel/preset-react": "^7.0.0", - "@cfaester/enzyme-adapter-react-18": "^0.8.0", "@google-cloud/translate": "^9.1.0", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^14.6.1", "@types/auth0-js": "^9.21.6", "babel-jest": "^29.3.1", "babel-loader": "8.4.1", @@ -63,7 +65,6 @@ "cross-env": "^7.0.3", "css-loader": "^7.1.2", "emojic": "^1.1.17", - "enzyme": "^3.1.1", "es-check": "^6.0.0", "eslint": "^8.45.0", "eslint-config-prettier": "^8.8.0", @@ -94,7 +95,6 @@ "mocha": "^11.5.0", "prettier": "^2.4.1", "puppeteer": "^24.9.0", - "react-test-renderer": "^18.2.0", "sinon": "^1.15.4", "stylus": "^0.64.0", "stylus-loader": "^3.0.2", @@ -3490,23 +3490,6 @@ "node": ">=8" } }, - "node_modules/@cfaester/enzyme-adapter-react-18": { - "version": "0.8.0", - "integrity": "sha512-3Z3ThTUouHwz8oIyhTYQljEMNRFtlVyc3VOOHCbxs47U6cnXs8K9ygi/c1tv49s7MBlTXeIcuN+Ttd9aPtILFQ==", - "dev": true, - "dependencies": { - "enzyme-shallow-equal": "^1.0.0", - "function.prototype.name": "^1.1.6", - "has": "^1.0.4", - "react-is": "^18.2.0", - "react-shallow-renderer": "^16.15.0" - }, - "peerDependencies": { - "enzyme": "^3.11.0", - "react": ">=18", - "react-dom": ">=18" - } - }, "node_modules/@colors/colors": { "version": "1.5.0", "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", @@ -6205,6 +6188,178 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, + "node_modules/@testing-library/dom": { + "version": "10.4.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", + "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.3.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "picocolors": "1.1.1", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@testing-library/jest-dom": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", + "integrity": "sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.4.0", + "aria-query": "^5.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.6.3", + "picocolors": "^1.1.1", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=14", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/@adobe/css-tools": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.5.0.tgz", + "integrity": "sha512-6OzddxPio9UiWTCemp4N8cYLV2ZN1ncRnV1cVGtve7dhPOtRkleRyx32GQCYSwDYgaHU3USMm84tNsvKzRCa1Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/jest-dom/node_modules/dom-accessibility-api": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz", + "integrity": "sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@testing-library/jest-dom/node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "16.3.2", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-16.3.2.tgz", + "integrity": "sha512-XU5/SytQM+ykqMnAnvB2umaJNIOsLF3PVv//1Ew4CTcpz0/BRyy/af40qqrt7SjKpDdT1saBMc42CUok5gaw+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@testing-library/dom": "^10.0.0", + "@types/react": "^18.0.0 || ^19.0.0", + "@types/react-dom": "^18.0.0 || ^19.0.0", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@testing-library/user-event": { + "version": "14.6.1", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.6.1.tgz", + "integrity": "sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", @@ -6212,6 +6367,14 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/@types/auth0-js": { "version": "9.21.6", "integrity": "sha512-wsvfk03WzQDXCbMdX8lQZH2Thh5AQk9SKQcxrBN1EdRkIOgkw9aIixxBpzsTHu/gj0I514BGQv7t5EyZSgVRmQ==", @@ -7004,6 +7167,16 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "dequal": "^2.0.3" + } + }, "node_modules/array-buffer-byte-length": { "version": "1.0.2", "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", @@ -7087,25 +7260,6 @@ "node": ">=0.10.0" } }, - "node_modules/array.prototype.filter": { - "version": "1.0.4", - "integrity": "sha512-r+mCJ7zXgXElgR4IRC+fkvNCeoaavWBs6EdCso5Tbcf+iEMKzBU/His60lt34WEZ9vlb8wDkZvQGcVI5GwkfoQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-array-method-boxes-properly": "^1.0.0", - "es-object-atoms": "^1.0.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array.prototype.findlast": { "version": "1.2.5", "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", @@ -7964,11 +8118,6 @@ "multicast-dns": "^7.2.5" } }, - "node_modules/boolbase": { - "version": "1.0.0", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, "node_modules/bowser": { "version": "2.14.1", "integrity": "sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==", @@ -8492,42 +8641,6 @@ "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "node_modules/cheerio": { - "version": "1.0.0-rc.12", - "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==", - "dev": true, - "dependencies": { - "cheerio-select": "^2.1.0", - "dom-serializer": "^2.0.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "htmlparser2": "^8.0.1", - "parse5": "^7.0.0", - "parse5-htmlparser2-tree-adapter": "^7.0.0" - }, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/cheeriojs/cheerio?sponsor=1" - } - }, - "node_modules/cheerio-select": { - "version": "2.1.0", - "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-select": "^5.1.0", - "css-what": "^6.1.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, "node_modules/chokidar": { "version": "3.6.0", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", @@ -9379,31 +9492,12 @@ "css": "^2.0.0" } }, - "node_modules/css-select": { - "version": "5.1.0", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==", "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } + "license": "MIT" }, "node_modules/css/node_modules/source-map": { "version": "0.6.1", @@ -9750,6 +9844,16 @@ "deps-sort": "bin/cmd.js" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/des.js": { "version": "1.1.0", "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", @@ -9858,11 +9962,6 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/discontinuous-range": { - "version": "1.0.0", - "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", - "dev": true - }, "node_modules/dns-packet": { "version": "5.6.1", "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", @@ -9885,6 +9984,14 @@ "node": ">=6.0.0" } }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", + "dev": true, + "license": "MIT", + "peer": true + }, "node_modules/dom-helpers": { "version": "5.2.1", "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", @@ -9905,19 +10012,6 @@ "void-elements": "^2.0.0" } }, - "node_modules/dom-serializer": { - "version": "2.0.0", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, "node_modules/domain-browser": { "version": "1.2.0", "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", @@ -9927,31 +10021,6 @@ "npm": ">=1.2" } }, - "node_modules/domelementtype": { - "version": "2.3.0", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ] - }, - "node_modules/domhandler": { - "version": "5.0.3", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/dompurify": { "version": "3.4.11", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.11.tgz", @@ -9961,19 +10030,6 @@ "@types/trusted-types": "^2.0.7" } }, - "node_modules/domutils": { - "version": "3.1.0", - "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", - "dev": true, - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", @@ -10197,17 +10253,6 @@ "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", "dev": true }, - "node_modules/entities": { - "version": "4.5.0", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/env-paths": { "version": "2.2.1", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", @@ -10228,50 +10273,6 @@ "node": ">=4" } }, - "node_modules/enzyme": { - "version": "3.11.0", - "integrity": "sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==", - "dev": true, - "dependencies": { - "array.prototype.flat": "^1.2.3", - "cheerio": "^1.0.0-rc.3", - "enzyme-shallow-equal": "^1.0.1", - "function.prototype.name": "^1.1.2", - "has": "^1.0.3", - "html-element-map": "^1.2.0", - "is-boolean-object": "^1.0.1", - "is-callable": "^1.1.5", - "is-number-object": "^1.0.4", - "is-regex": "^1.0.5", - "is-string": "^1.0.5", - "is-subset": "^0.1.1", - "lodash.escape": "^4.0.1", - "lodash.isequal": "^4.5.0", - "object-inspect": "^1.7.0", - "object-is": "^1.0.2", - "object.assign": "^4.1.0", - "object.entries": "^1.1.1", - "object.values": "^1.1.1", - "raf": "^3.4.1", - "rst-selector-parser": "^2.2.3", - "string.prototype.trim": "^1.2.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/enzyme-shallow-equal": { - "version": "1.0.7", - "integrity": "sha512-/um0GFqUXnpM9SvKtje+9Tjoz3f1fpBC3eXRFrNs8kpYn69JljciYP7KZTqM/YQbUY9KUjvKB4jo/q+L6WGGvg==", - "dev": true, - "dependencies": { - "hasown": "^2.0.0", - "object-is": "^1.1.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/error-ex": { "version": "1.3.2", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", @@ -10348,11 +10349,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, "node_modules/es-check": { "version": "6.2.1", "integrity": "sha512-IPiRXUlwSTd2yMklIf9yEGe6GK5wCS8Sz1aTNHm1QSiYzI4aiq19giYbLi95tb+e0JJVKmcU0iQXQWW60a8V9A==", @@ -12513,14 +12509,6 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "node_modules/has": { - "version": "1.0.4", - "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-ansi": { "version": "2.0.0", "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", @@ -12704,18 +12692,6 @@ "wbuf": "^1.1.0" } }, - "node_modules/html-element-map": { - "version": "1.3.1", - "integrity": "sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==", - "dev": true, - "dependencies": { - "array.prototype.filter": "^1.0.0", - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/html-encoding-sniffer": { "version": "4.0.0", "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", @@ -12767,24 +12743,6 @@ "node": ">=0.10" } }, - "node_modules/htmlparser2": { - "version": "8.0.2", - "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.3", - "domutils": "^3.0.1", - "entities": "^4.4.0" - } - }, "node_modules/http-deceiver": { "version": "1.2.7", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", @@ -13811,11 +13769,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-subset": { - "version": "0.1.1", - "integrity": "sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==", - "dev": true - }, "node_modules/is-symbol": { "version": "1.1.1", "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", @@ -15879,21 +15832,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.escape": { - "version": "4.0.1", - "integrity": "sha512-nXEOnb/jK9g0DYMr1/Xvq6l5xMD7GDG55+GSYIYmS0G4tBk/hURD4JR9WCavs04t33WmJx9kCyp9vJ+mr4BOUw==", - "dev": true - }, - "node_modules/lodash.flattendeep": { - "version": "4.4.0", - "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==", - "dev": true - }, - "node_modules/lodash.isequal": { - "version": "4.5.0", - "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", - "dev": true - }, "node_modules/lodash.isplainobject": { "version": "4.0.6", "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", @@ -16159,6 +16097,17 @@ "yallist": "^3.0.2" } }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "dev": true, + "license": "MIT", + "peer": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, "node_modules/make-dir": { "version": "3.1.0", "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", @@ -16847,6 +16796,16 @@ "node": ">=6" } }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/minimalistic-assert": { "version": "1.0.1", "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", @@ -17242,11 +17201,6 @@ "node": ">= 0.8.0" } }, - "node_modules/moo": { - "version": "0.5.2", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", - "dev": true - }, "node_modules/ms": { "version": "2.1.2", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", @@ -17311,32 +17265,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/nearley": { - "version": "2.20.1", - "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", - "dev": true, - "dependencies": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "bin": { - "nearley-railroad": "bin/nearley-railroad.js", - "nearley-test": "bin/nearley-test.js", - "nearley-unparse": "bin/nearley-unparse.js", - "nearleyc": "bin/nearleyc.js" - }, - "funding": { - "type": "individual", - "url": "https://nearley.js.org/#give-to-nearley" - } - }, - "node_modules/nearley/node_modules/commander": { - "version": "2.20.3", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/negotiator": { "version": "0.6.3", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", @@ -17467,17 +17395,6 @@ "node": ">=8" } }, - "node_modules/nth-check": { - "version": "2.1.1", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, "node_modules/num2fraction": { "version": "1.2.2", "integrity": "sha512-Y1wZESM7VUThYY+4W+X4ySH2maqcA+p7UR+w8VWNWVAd6lwuXXWz/w/Cz43J/dI2I+PS6wD5N+bJUF+gjWvIqg==", @@ -17516,21 +17433,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.6", - "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", @@ -18044,18 +17946,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5-htmlparser2-tree-adapter": { - "version": "7.0.0", - "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==", - "dev": true, - "dependencies": { - "domhandler": "^5.0.2", - "parse5": "^7.0.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/parse5/node_modules/entities": { "version": "6.0.1", "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", @@ -18238,11 +18128,6 @@ "dev": true, "license": "MIT" }, - "node_modules/performance-now": { - "version": "2.1.0", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==", - "dev": true - }, "node_modules/picocolors": { "version": "1.1.1", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", @@ -18846,31 +18731,6 @@ "w-json": "1.3.10" } }, - "node_modules/raf": { - "version": "3.4.1", - "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", - "dev": true, - "dependencies": { - "performance-now": "^2.1.0" - } - }, - "node_modules/railroad-diagrams": { - "version": "1.0.0", - "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", - "dev": true - }, - "node_modules/randexp": { - "version": "0.4.6", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", - "dev": true, - "dependencies": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/randombytes": { "version": "2.1.0", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", @@ -18978,31 +18838,6 @@ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, - "node_modules/react-shallow-renderer": { - "version": "16.15.0", - "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, - "node_modules/react-test-renderer": { - "version": "18.3.1", - "integrity": "sha512-KkAgygexHUkQqtvvx/otwxtuFu5cVjfzTCtjXLH9boS19/Nbtg84zS7wIQn39G8IlrhThBpQsMKkq5ZHZIYFXA==", - "dev": true, - "dependencies": { - "react-is": "^18.3.1", - "react-shallow-renderer": "^16.15.0", - "scheduler": "^0.23.2" - }, - "peerDependencies": { - "react": "^18.3.1" - } - }, "node_modules/react-transition-group": { "version": "4.4.5", "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", @@ -19353,14 +19188,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ret": { - "version": "0.1.15", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, "node_modules/retry": { "version": "0.13.1", "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", @@ -19449,15 +19276,6 @@ "dev": true, "license": "MIT" }, - "node_modules/rst-selector-parser": { - "version": "2.2.3", - "integrity": "sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==", - "dev": true, - "dependencies": { - "lodash.flattendeep": "^4.4.0", - "nearley": "^2.7.10" - } - }, "node_modules/run-applescript": { "version": "7.1.0", "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", diff --git a/package.json b/package.json index 02ff03423..1ca196af6 100644 --- a/package.json +++ b/package.json @@ -63,8 +63,10 @@ "@babel/plugin-syntax-import-meta": "^7.0.0", "@babel/preset-env": "^7.0.0", "@babel/preset-react": "^7.0.0", - "@cfaester/enzyme-adapter-react-18": "^0.8.0", "@google-cloud/translate": "^9.1.0", + "@testing-library/jest-dom": "^6.9.1", + "@testing-library/react": "^16.3.2", + "@testing-library/user-event": "^14.6.1", "@types/auth0-js": "^9.21.6", "babel-jest": "^29.3.1", "babel-loader": "8.4.1", @@ -78,7 +80,6 @@ "cross-env": "^7.0.3", "css-loader": "^7.1.2", "emojic": "^1.1.17", - "enzyme": "^3.1.1", "es-check": "^6.0.0", "eslint": "^8.45.0", "eslint-config-prettier": "^8.8.0", @@ -109,7 +110,6 @@ "mocha": "^11.5.0", "prettier": "^2.4.1", "puppeteer": "^24.9.0", - "react-test-renderer": "^18.2.0", "sinon": "^1.15.4", "stylus": "^0.64.0", "stylus-loader": "^3.0.2", @@ -132,8 +132,8 @@ "password-sheriff": "^2.0.0", "prop-types": "^15.8.0", "qs": "^6.14.1", - "react": "^18.2.0", - "react-dom": "^18.2.0", + "react": "^18.2.0 || ^19.0.0", + "react-dom": "^18.2.0 || ^19.0.0", "react-transition-group": "^4.4.5", "url-join": "^1.1.0", "validator": "^13.15.22" @@ -158,7 +158,7 @@ "/src/", "/src/__tests__" ], - "setupFiles": [ + "setupFilesAfterEnv": [ "/src/__tests__/setup-tests.js" ], "coveragePathIgnorePatterns": [ diff --git a/src/__tests__/__snapshots__/auth_button.test.jsx.snap b/src/__tests__/__snapshots__/auth_button.test.jsx.snap index 0682627e2..264423a2a 100644 --- a/src/__tests__/__snapshots__/auth_button.test.jsx.snap +++ b/src/__tests__/__snapshots__/auth_button.test.jsx.snap @@ -1,55 +1,40 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`AuthButton renders correctly 1`] = ` - -
- - +
+
+ label +
+ + `; exports[`AuthButton renders with style customizations 1`] = ` - -
- - +
+
+ label +
+ + `; diff --git a/src/__tests__/auth_button.test.jsx b/src/__tests__/auth_button.test.jsx index 8f915610e..85df2641c 100644 --- a/src/__tests__/auth_button.test.jsx +++ b/src/__tests__/auth_button.test.jsx @@ -1,5 +1,6 @@ import React from 'react'; -import { mount } from 'enzyme'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import { expectComponent } from 'testUtils'; @@ -24,9 +25,9 @@ describe('AuthButton', () => { /> ).toMatchSnapshot(); }); - it('should trigger onClick when clicked', () => { - const wrapper = mount(); - wrapper.find('a').simulate('click'); + it('should trigger onClick when clicked', async () => { + const { container } = render(); + await userEvent.click(container.querySelector('a')); expect(defaultProps.onClick.mock.calls.length).toBe(1); }); }); diff --git a/src/__tests__/connection/database/__snapshots__/login_pane.test.jsx.snap b/src/__tests__/connection/database/__snapshots__/login_pane.test.jsx.snap index e0c86b07f..10cd66ad9 100644 --- a/src/__tests__/connection/database/__snapshots__/login_pane.test.jsx.snap +++ b/src/__tests__/connection/database/__snapshots__/login_pane.test.jsx.snap @@ -1,129 +1,613 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`LoginPane hides the captcha for SSO connections 1`] = ` -
- -
+ +
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+
`; exports[`LoginPane renders a captcha 1`] = ` -
- -
+ +
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+
+
+ +
+
+
+ + + + + + +
+
+
+
+ `; exports[`LoginPane renders correctly 1`] = ` -
- -
+ +
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+
`; exports[`LoginPane shows the captcha for SSO (ADFS) connections 1`] = ` -
- -
+ +
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+
+
+ +
+
+
+ + + + + + +
+
+
+
+ `; diff --git a/src/__tests__/connection/database/__snapshots__/password_reset_confirmation.test.jsx.snap b/src/__tests__/connection/database/__snapshots__/password_reset_confirmation.test.jsx.snap index 5dab121d8..5df26354a 100644 --- a/src/__tests__/connection/database/__snapshots__/password_reset_confirmation.test.jsx.snap +++ b/src/__tests__/connection/database/__snapshots__/password_reset_confirmation.test.jsx.snap @@ -1,41 +1,43 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`PasswordResetConfirmation renders correctly 1`] = ` -
+
- - - - - - - - - -

+

+ + + + + + + + + +

+

-
+ `; diff --git a/src/__tests__/connection/database/__snapshots__/reset_password.test.jsx.snap b/src/__tests__/connection/database/__snapshots__/reset_password.test.jsx.snap index ac047fada..92a41a9bc 100644 --- a/src/__tests__/connection/database/__snapshots__/reset_password.test.jsx.snap +++ b/src/__tests__/connection/database/__snapshots__/reset_password.test.jsx.snap @@ -1,101 +1,23 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`ResetPasswordScreen a custom connection resolver is being used copies the username to the email field if an email address was entered 1`] = ` -
+ +
+ `; exports[`ResetPasswordScreen a custom connection resolver is being used sets the email field to a blank value if username is not an email address 1`] = ` -
+ +
+ `; exports[`ResetPasswordScreen isSubmitDisabled returns false when \`isEnterpriseDomain\` is false 1`] = ` diff --git a/src/__tests__/connection/database/__snapshots__/signed_up_confirmation.test.jsx.snap b/src/__tests__/connection/database/__snapshots__/signed_up_confirmation.test.jsx.snap index d69239700..2ed5f8fc1 100644 --- a/src/__tests__/connection/database/__snapshots__/signed_up_confirmation.test.jsx.snap +++ b/src/__tests__/connection/database/__snapshots__/signed_up_confirmation.test.jsx.snap @@ -1,41 +1,43 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`SignedUpConfirmation renders correctly 1`] = ` -
+
- - - - - - - - - -

+

+ + + + + + + + + +

+

-
+ `; diff --git a/src/__tests__/connection/database/login_pane.test.jsx b/src/__tests__/connection/database/login_pane.test.jsx index 6e3eb6450..0dca4ff1e 100644 --- a/src/__tests__/connection/database/login_pane.test.jsx +++ b/src/__tests__/connection/database/login_pane.test.jsx @@ -14,7 +14,7 @@ describe('LoginPane', () => { const defaultProps = { emailInputPlaceholder: '', forgotPasswordAction: '', - i18n: {}, + i18n: { str: () => '', html: () => null }, passwordInputPlaceholder: '', showForgotPasswordLink: true, showPassword: true, diff --git a/src/__tests__/connection/enterprise/__snapshots__/hrd_pane.test.js.snap b/src/__tests__/connection/enterprise/__snapshots__/hrd_pane.test.js.snap index 2819ca112..c98041654 100644 --- a/src/__tests__/connection/enterprise/__snapshots__/hrd_pane.test.js.snap +++ b/src/__tests__/connection/enterprise/__snapshots__/hrd_pane.test.js.snap @@ -1,100 +1,309 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`HRDPane renders correctly 1`] = ` -
-
- - -
+ +
+
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+
`; exports[`HRDPane renders the captcha if required 1`] = ` -
-
- - - -
+ +
+
+
+
+ + +
+
+
+
+
+ + +
+
+
+
+
+
+ +
+
+
+ + + + + + +
+
+
+
+ `; diff --git a/src/__tests__/connection/enterprise/__snapshots__/hrd_screen.test.js.snap b/src/__tests__/connection/enterprise/__snapshots__/hrd_screen.test.js.snap index 0ca92abfb..d21a9c037 100644 --- a/src/__tests__/connection/enterprise/__snapshots__/hrd_screen.test.js.snap +++ b/src/__tests__/connection/enterprise/__snapshots__/hrd_screen.test.js.snap @@ -1,146 +1,66 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`HRDScreen Component renders correctly when enterprise domain is undefined 1`] = ` -
- Login with your corporate credentials. [] -

- } - data-i18n={ - { - "str": [Function], - } - } - data-model={ - Immutable.Map { - "id": "__lock-id__", - "i18n": Immutable.Map { - "strings": Immutable.Map { - "enterpriseLoginIntructions": "Login with your corporate credentials.", - "enterpriseActiveLoginInstructions": "Please enter your corporate credentials at %s.", - }, - }, - } - } - data-passwordInputPlaceholder=" []" - data-usernameInputPlaceholder=" []" -/> + +
+ `; exports[`HRDScreen Component renders correctly when there is an enterprise domain 1`] = ` -
- Please enter your corporate credentials at domain.com. -

- } - data-i18n={ - { - "str": [Function], - } - } - data-model={ - Immutable.Map { - "id": "__lock-id__", - "i18n": Immutable.Map { - "strings": Immutable.Map { - "enterpriseLoginIntructions": "Login with your corporate credentials.", - "enterpriseActiveLoginInstructions": "Please enter your corporate credentials at %s.", - }, - }, - } - } - data-passwordInputPlaceholder=" []" - data-usernameInputPlaceholder=" []" -/> + +
+ `; exports[`HRDScreen Component renders correctly when there is no enterprise domain 1`] = ` -
- Login with your corporate credentials. [] -

- } - data-i18n={ - { - "str": [Function], - } - } - data-model={ - Immutable.Map { - "id": "__lock-id__", - "i18n": Immutable.Map { - "strings": Immutable.Map { - "enterpriseLoginIntructions": "Login with your corporate credentials.", - "enterpriseActiveLoginInstructions": "Please enter your corporate credentials at %s.", - }, - }, - } - } - data-passwordInputPlaceholder=" []" - data-usernameInputPlaceholder=" []" -/> + +
+ `; exports[`HRDScreen Component uses fallback message when enterprise domain is empty string 1`] = ` -
- Login with your corporate credentials. [] -

- } - data-i18n={ - { - "str": [Function], - } - } - data-model={ - Immutable.Map { - "id": "__lock-id__", - "i18n": Immutable.Map { - "strings": Immutable.Map { - "enterpriseLoginIntructions": "Login with your corporate credentials.", - "enterpriseActiveLoginInstructions": "Please enter your corporate credentials at %s.", - }, - }, - } - } - data-passwordInputPlaceholder=" []" - data-usernameInputPlaceholder=" []" -/> + +
+ `; exports[`HRDScreen Component uses fallback message when enterprise domain is whitespace only 1`] = ` -
- Login with your corporate credentials. [] -

- } - data-i18n={ - { - "str": [Function], - } - } - data-model={ - Immutable.Map { - "id": "__lock-id__", - "i18n": Immutable.Map { - "strings": Immutable.Map { - "enterpriseLoginIntructions": "Login with your corporate credentials.", - "enterpriseActiveLoginInstructions": "Please enter your corporate credentials at %s.", - }, - }, - } - } - data-passwordInputPlaceholder=" []" - data-usernameInputPlaceholder=" []" -/> + +
+ `; diff --git a/src/__tests__/connection/enterprise/__snapshots__/quick_auth_screen.test.jsx.snap b/src/__tests__/connection/enterprise/__snapshots__/quick_auth_screen.test.jsx.snap index e2b0c462c..b626b8e3a 100644 --- a/src/__tests__/connection/enterprise/__snapshots__/quick_auth_screen.test.jsx.snap +++ b/src/__tests__/connection/enterprise/__snapshots__/quick_auth_screen.test.jsx.snap @@ -1,161 +1,151 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`The quick auth screen renders the connection using the connection display name when preferConnectionDisplayName is true and there are no IdP domains configured 1`] = ` -
- +